|
1.按键地址查找0
找到为001A
2.纵坐标查找
0308和030B
3.加速度查找
一般跳起时加速度的值为FA-FF之间,下落时为00-05之间,不动时为0
找到为030F
4.下落时加速度断点
找到为938C
5.找空白空间
FFA0-FFDF
6.写程序
48 PHA 保护寄存器A的内容
A5 1A LDA $1A 读取地址$1A的数据 c9 84 xmp #$80 与立即数#$84比较(按了选择加下)
F0 1B BEQ 如果相同就跳过XX字节)
A5 1A LDA $1A 读取地址$1A的数据
29 80 AND #$80 与立即数#$80相与,判断按键中是否有跳跃键
F0 15 BEQ 如果没有按就跳过XX字节
68 PLA 出栈
AD 0B 03 LDA $030B 读取$030B的数据(读取纵坐标数据)
C9 25 CMP #$25 与#$25比较
B0 07 BCS 如果大于就跳过XX字节
A9 00 LDA #$00 读取立即数
8D 0F 03 STA $030B 送入地址$030F(加速度)
F0 05 BNE 为0跳过XX字节
A9 FD LDA #$FD 读取立即数#$FD
8D 0F 03 STA $030F 送入地址$030F(加速度)
60 RTS 转回程序
68 PLA 出栈
8D 0F 03 STA $030F 送入地址$030F(加速度)
60 RTS 转回程序
机器码:
方案148 A5 1A C9 84 F0 1B A5 1A 29 80 F0 15 68 AD 0B 03 C9 25 B0 07 A9 00 8D 0F 03 F0 05 A9 FD 8D 0F 03 60 68 8D 0F 03 60
方案2:48 A5 1E 29 80 F0 07 68 A9 FA 8D 0F 03 60 68 8D 0F 03 60
7.粘贴程序
8.跳转程序
9.测试
测试无限跳没有问题
10.保存文件
11.收工 |
|