//用NCTOOLS手工建立一个 BIN文件
有了前面的知识,我们现在就来在 NCTOOLS里面手工建立一个 BIN文件,以巩固我们前面的知识.
这里由于程序比较小,所以我们决定制作 <8K 的BIN文件.
我们应该都玩过 电子宠物猫 吧,那么我们这里就制作一个 电子宠物猫存档修改器
由于 RESET 后,养的猫就 没有了,我们 我们推断,存档一定是存在 RAM区域,那么需要我们去查找
存档的位置,方法很简单,如下:
如上,我们先领养一只猫,名字叫做"土豆",然后马上你就看到一只活蹦乱跳的猫眯了.
然后我们退出游戏,进入 NCTOOLS,查找 "土豆",查找范围当然是RAM区域,地址范围 0000-3FFF
输入 SC 0000 3FFF,输入 "土豆",然后我们马上就找到了,如图:
哦,原来是地址06DC啊,居然名字存在这里,那附近一定就是其他参数的存贮位置啊,我们看看我们的 土豆 的参数,如图:
![]() |
![]() |
好了,我们的 土豆 有 自身状态 和 物品状态
自身状态是 07 00 00 03 ..
物品状态是 C8 09 08 07 ..
我们往地址06DC附近看看,是不是有这些数据,结果找到了,如图:
我们总结如下:
地址 06D6: 金钱 06D7: 猫粮 06D8: 超级猫粮 06D9: 牛奶 06DA: 鱼 06DB: 球
地址 06C3: 体重 06C4: 成长 06C5: 天使 06C6: 饥饱度 06C7: 口渴度 06C8: 清洁度
06C9: 训练度 06CA: 兴奋度
由于我们这里主要是介绍 手工建立一个 BIN,所以这里我们程序尽量简单些,这里我们只是实现把宠物猫的物品数全部调为 200
也就是 #$C8,然后 弹出一个信息框,显示"猫猫所有物品达200",然后就结束了.
我们先实现主程序,即将物品全部改为 200个,从地址2010开始编写:
同时 按住 Z + H 键,把地址2000-2FFF的内容全部清为 FF
A 2010
2010: LDX #$00
2012: LDA #$C8
2014: STA $06D7,X
2017: INX
2018: CPX #$06
201A: BNE $2014
201C:RTS
这段程序就实现了改物品的个数,是不是很简单?
然后我们实现弹出 的信息框,我 V 2020, 按 输入法,输入 " 猫猫物品达200啦",然后后面再输入 00 00
作为结束标志,如图:
然后我们做表,从地址 2038开始 输入如下数据,如图:
我们做弹出信息框:
A 2048
2048:LDX #$38
204A: LDY #$20
204C: LDA #$00
204E: INT $C312
2051: INT $C007
2054: RTS
然后我们实现主程序,从地址2058开始
A 2058
2058: JSR $2010
205B: JSR $2048
205E: RTS
我们 G 2058 试试,出现下图:
我们回到游戏,看看物品是不是200个,一看,果然是,如图:
好了,我们已经完成了这个简单的BIN程序,现在我们要做BIN文件了
1.先做文件头
E C 2000
输入 AA A5 5A
输入文件实际长度 60 00 00
输入 20
输入 4C
输入入口地址 58 20
输入 70 03 31 03 FF FF
那么就是这样的,如图:
2.找一块 空闲的闪存,只要有 4K 就可以了.我们在闪存分配表里找 FF FF FF FF,然后把地址2000-2FFF内容送相应的闪存地址
这里我们找到了一块空闲的闪存,大家看到 地址 70DC-70DF的内容为 FF FF FF FF,那我们就放这里吧,计算一下,发现是
06 页码的 7000-7FFF,大家应该会算吧?
然后我们 输入命令 W 7000 06,就把数据写入了,如图
3.然后我们修改闪存分配表,即把原来的 FF FF FF FF改为 ?? 5E 00 C2,这里??的值不能与其他重复
这里我们取 0F 5E 00 C2,这样系统就认为该块闪存已经被利用了,就不会分配数据到该块闪存了.
4.最后我们修改 BIN文件表,就是加入一个新的文件信息给系统
我们先要找到 BIN文件表,怎么找呢?在前面已经讲过,这里就不说了,你也可以在 NCTOOLS里,按帮助,按系统信息,
按 文件列表 ,按 应用程序,找到了,如图
然后我们 从地址 B040开始输入 C8 DF
然后就是文件名,这里取 猫猫存档修改.bin
然后 输入文件建立日期 7A 09 04
然后输入 FF FF FF
然后输入文件大小 00 10 00
然后输入 XX 的值 0F (因为先前是 0F 5E 00 C2)
然后输入 00
那么就可以了,按 网络,是不是看见文件了
我们执行一下看看,如图: