19Fermer21
VasiliyFamiliyaLe 11/03/2019 à 02:56
Zerosquare (./19):
VasiliyFamiliya (./18) :
0331D8: 7200 moveq #$0, D1 ; D1=0 0331DA: 1230 0000 move.b (A0,D0.w), D1 ; D1=($331f4)+D0 (why to zeroize D1 before it?)
move.b only modifies the lowest byte. To use D1 as a word or double-word value, you need to clear the upper bytes manually; that's what the moveq before does.

VasiliyFamiliya (./18) :
add.w D1, D1 add.w D1, D1 ; else (($331f4)+D0)*4 (why so strange way to do it has been selected?)
Because it executes faster than a multiplication or a bit shift.


Thank you!

Zerosquare (./19):
VasiliyFamiliya (./18) :
(($331f4)+D0)*4
You should not use parentheses both for grouping and for addressing, this is confusing.

Now I put all the addresses in the comments (excepting auto-generated by MAME disassembler) to square brackets instead of parentheses.

04BA6E: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04BA74: 4EBA 019E jsr ($19e,PC) ; ($4bc14) 04BA78: 4E71 nop 04BA7A: 082C 0000 00C9 btst #$0, ($c9,A4) 04BA80: 6700 0014 beq $4ba96 04BA84: 4EBA 004C jsr ($4c,PC) ; ($4bad2) 04BA88: 4E71 nop 04BA8A: 4EBA 01BA jsr ($1ba,PC) ; ($4bc46) 04BA8E: 4E71 nop 04BA90: 4EBA 0218 jsr ($218,PC) ; ($4bcaa) 04BA94: 4E71 nop 04BA96: 4E75 rts04BDBA: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04BDC0: 4EBA 0034 jsr ($34,PC) ; ($4bdf6) 04BDC4: 4E71 nop 04BDC6: 4EBA 0570 jsr ($570,PC) ; ($4c338) 04BDCA: 4E71 nop 04BDCC: 4EBA 0730 jsr ($730,PC) ; ($4c4fe) 04BDD0: 4E71 nop 04BDD2: 4EBA 052A jsr ($52a,PC) ; ($4c2fe) 04BDD6: 4E71 nop 04BDD8: 4E75 rts04CD6E: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04CD74: 4EBA 0034 jsr ($34,PC) ; ($4cdaa) 04CD78: 4E71 nop 04CD7A: 4EBA 026A jsr ($26a,PC) ; ($4cfe6) 04CD7E: 4E71 nop 04CD80: 4EBA 0348 jsr ($348,PC) ; ($4d0ca) 04CD84: 4E71 nop 04CD86: 4EBA 0224 jsr ($224,PC) ; ($4cfac) 04CD8A: 4E71 nop 04CD8C: 4E75 rts04D28A: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04D290: 4EBA 0034 jsr ($34,PC) ; ($4d2c6) 04D294: 4E71 nop 04D296: 4EBA 0254 jsr ($254,PC) ; ($4d4ec) 04D29A: 4E71 nop 04D29C: 4EBA 0360 jsr ($360,PC) ; ($4d5fe) 04D2A0: 4E71 nop 04D2A2: 4EBA 020E jsr ($20e,PC) ; ($4d4b2) 04D2A6: 4E71 nop 04D2A8: 4E75 rts04DB40: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04DB46: 4EBA 002E jsr ($2e,PC) ; ($4db76) 04DB4A: 4E71 nop 04DB4C: 4EBA 016C jsr ($16c,PC) ; ($4dcba) 04DB50: 4E71 nop 04DB52: 4EBA 012C jsr ($12c,PC) ; ($4dc80) 04DB56: 4E71 nop 04DB58: 4E75 rts04E1D6: 4DF9 0010 FD96 lea $10fd96.l, A6 ; P1_CURRENT value moving to A6 04E1DC: 4EBA 0034 jsr ($34,PC) ; ($4e212) 04E1E0: 4E71 nop 04E1E2: 4EBA 0158 jsr ($158,PC) ; ($4e33c) 04E1E6: 4E71 nop 04E1E8: 4EBA 01F2 jsr ($1f2,PC) ; ($4e3dc) 04E1EC: 4E71 nop 04E1EE: 4EBA 01B2 jsr ($1b2,PC) ; ($4e3a2) 04E1F2: 4E71 nop 04E1F4: 4E75 rts