多看多写点程序, 有助增进编程技巧! 楼主这段程序我只看了一点, 没真正去了解其运作, 有以下几点建议 由于没有试过,可能会有点错误)
在2018有程序中若改为:
2018 LDY $85
201A BEQ $202A
201C LDA $7E
201E CLC
201F ADC #$14
2021 BCC $2025
2023 INC $7F
2025 DEY
2026 BNE $201E
2028 STA $7E
亦可改为
2018 LDY $85
201A LDA $7E
201C CLC
201D DEY
201E BMI $2028
2020 ADC #$14
2022 BCC $201D
2024 INC $7F
2026 BCS $201C
2028 STA $7E
在206B中的
LSR
LSR
LSR
ASL
ASL
ASL (按思考应可以用一个AND #$F8来取代)
208B中 由于$82基本上值是由$0-$13,因此可用
208B LDY $82
208D LDA ($80),Y
208F STA $3001,Y
2092 DEY
2093 BPL $208D (省了CPY $82 ,而CPY $82每次执行时间为3个cycle, 虽是作用不大)
最后是2097, 可改为
2097 LDY $3000
209A LDA $82
209C STA $87
209E LDX #$00
20A0 CLC
20A1 ROR $3001,X
20A4 INX
20A5 DEC $87
20A7 BNE $20A1
20A9 ROR $3001,X
20AC DEY
20AD BNE $209C (php/plp每次一入一出, 用了7个cycle, 因此在循环执行多次的程序中, 如非必要就最好不要使用, 不过当不是要求以最佳速度地方使用也亦可, 若要再加快速度, 可考虑用零页地址[ZEROPAGE]取代$30xx作有关数据存放)
[此贴子已经被作者于2005-4-16 2:28:31编辑过]
|