注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

是直到最后都无法放手的一种气息,是我们生命中最后的思念……

 
 
 

日志

 
 

"FC专用编译器"计划和进度  

2009-10-04 22:10:50|  分类: FC开发记录 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

NES编译器计划及进度

维京猎人

一。界面操作过程

界面外表 。(完成度100%)

预操作:Mapper资料的新建,修改,删除,可永久保存。(完成度100%)

BEGIN

1建立项目,定义一个项目名,同时也是项目文件名。(完成度100%)

2编辑文件头,文件夹头内容记录于项目文件中,同时生成头文件。(完成度100%)

3调用模版生成代码文件框架(代码分主单元和子单元两子种) 主单元名记入项目文件 (完成度 100% 2009-10-5)
主单元要选地址和长度,再调用模版,同时加入地址和长度。
子单元(和中断调用的子单元)要调用对应模版。

4编辑代码(复制,粘贴,删除)(完成度100%)

5编排PROM,各分页和常驻在ROM中的次序。记入项目文件 (完成度 100% 2009-10-5)

6编排VROM,各CHR文件在ROM中的次序。记入项目文件 (完成度 100% 2009-10-5)

7指定程序入口,记入项目文件 (完成度 100% 2009-10-5)

8编译生成NES文件。 (完成度 80% 最难的完成了)

END


二。编译生成NES文件的算法:

BEGIN

1 每个单元(包括主单元和子单元)都去除注释,按代码结构分析,抽取词得到文件(.ini) (这个原来是第二难的),比较检查变量和宏的重名(...结果文件用过就自动删除)(完成度100%)

2 抽取工程调用次序,递归定义。调用次序文件(.vfs)(完成度 100%)

3 按调用次序,分配内存块,(中断代码占用零页,主程从$200到$7FF)以文件为节,产生变量记录文件(和文件名)(.vram)(完成度100% )

4 各单元完成代码体的宏和模块的替代,留下DB和Include(要计算长度),变量,接口的内存指派,剩标签和汇编代码的代码文件。(.VUC)(完成度 90%)(余下连结,并测试)

5 按次序文件,标签全以00代替,初次编译,记录下标签名称和行位,,生成新代码文件(.VUC_),按上一个单元的束位置开始编译,记下单元首地址,并记录下各标签所在地址点,生成标签文件(.VLB)同时代码结构化,记于(.VUC_)(得到指令码,码长)记录下结束点。(完成度 0% )

6 将标签地址和单元首地址写回去(.VUC_)(完成度 0% )

7 生成一个机器码文件(.VPR)(完成度 100% 转换机器码部分(核心,也是最难的)

8 以CHR为单位,以VROM次序连接成VROM(.VVR)。连接VPR,加上文件头生成NES。(完成度 0%)

END

		34;FC专用编译器34;计划和进度 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

                                                  2010-03-23 改

后记

理清所有的操作,真是一件不容易的事呀,竞思索了好几周.

界面~~~

		34;FC专用编译器34;计划和进度 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

  评论这张
 
阅读(323)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017