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 rts
04BDBA: 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 rts
04CD6E: 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 rts
04D28A: 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 rts
04DB40: 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 rts
04E1D6: 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