53Fermer55
VasiliyFamiliyaLe 01/10/2019 à 13:30
01FE98: 43F9 0002 00D8 lea $200d8.l, A1 ; A1=[$200d8] 01FE9E: 1039 0010 FD98 move.b $10fd98.l, D0 ; D0=P1_REPEAT value 01FEA4: 8039 0010 FD9E or.b $10fd9e.l, D0 ; D0=P1_REPEAT value|P2_REPEAT value 01FEAA: 0240 000F andi.w #$f, D0 ; D0=(P1_REPEAT value|P2_REPEAT value)&#$f 01FEAE: 6700 005A beq $1ff0a ; if (P1_REPEAT value|P2_REPEAT value)&#$f=0 => neither P1 stick nor P2 stick is active then end the subroutine 01FEB2: 322D 8D00 move.w (-$7300,A5), D1 ; D1=[A5-$7300] value 01FEB6: 342D 8D02 move.w (-$72fe,A5), D2 ; D2=[A5-$72fe] value 01FEBA: 41ED 8D02 lea (-$72fe,A5), A0 ; A0=[A5-$72fe] 01FEBE: 3A2D 8D0A move.w (-$72f6,A5), D5 ; D5=[A5-$72f6] value 01FEC2: 0C6D 0001 8D00 cmpi.w #$1, (-$7300,A5) 01FEC8: 6300 000E bls $1fed8 ; if [A5-$7300] value<=1 then skip next 3 steps 01FECC: 342D 8D04 move.w (-$72fc,A5), D2 ; D2=[A5-$72fc] value 01FED0: 41ED 8D04 lea (-$72fc,A5), A0 ; A0=[A5-$72fc] 01FED4: 3A2D 8D0C move.w (-$72f4,A5), D5 ; D5=[A5-$72f4] value 01FED8: 7800 moveq #$0, D4 ; D4=0 01FEDA: D040 add.w D0, D0 ; D0=((P1_REPEAT value|P2_REPEAT value)&#$f)*2 01FEDC: 1631 0000 move.b (A1,D0.w), D3 ; D3=[$200d8+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value 01FEE0: 1831 0001 move.b ($1,A1,D0.w), D4 ; D4=[$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value 01FEE4: 4883 ext.w D3 01FEE6: 4884 ext.w D4 01FEE8: D641 add.w D1, D3 ; D3=[$200d8+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$7300] value 01FEEA: 0243 0003 andi.w #$3, D3 ; D3=([$200d8+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$7300] value)&3 01FEEE: D842 add.w D2, D4 ; D4=[$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fe] value or D4=[$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fc] value 01FEF0: 6A00 000A bpl $1fefc ; if ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fe] value) or ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fc] value) is positive then skip next 2 steps 01FEF4: 383C 0000 move.w #$0, D4 ; else D4=0 01FEF8: 6000 000A bra $1ff04 01FEFC: B845 cmp.w D5, D4 01FEFE: 6500 0004 bcs $1ff04 ; if C flag=1 as a result of ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fe] value)-[A5-$72f6] value, or ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fc] value)-[A5-$72f6] value, or ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fe] value)-[A5-$72f4] value, or ([$200d9+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+[A5-$72fc] value)-[A5-$72f4] value then skip next step 01FF02: 3810 move.w (A0), D4 ; else D4=[A5-$72fe] value or [A5-$72fc] value 01FF04: 3B43 8D00 move.w D3, (-$7300,A5) ; [A5-$7300] value=([$200d8+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value+old [A5-$7300] value)&3 01FF08: 3084 move.w D4, (A0) 01FF0A: 4E75 rts