VasiliyFamiliyaLe 30/09/2019 à 17:34
01F83C: 1039 0010 FD98 move.b $10fd98.l, D0 ; D0=P1_REPEAT value
01F842: 8039 0010 FD9E or.b $10fd9e.l, D0 ; D0=P1_REPEAT value|P2_REPEAT value
01F848: 0240 000F andi.w #$f, D0 ; D0=(P1_REPEAT value|P2_REPEAT value)&#$f
01F84C: 6700 002C beq $1f87a ; if (P1_REPEAT value|P2_REPEAT value)&#$f=0 => neither P1 stick nor P2 stick is active then end the subroutine
01F850: D040 add.w D0, D0 ; else D0=((P1_REPEAT value|P2_REPEAT value)&#$f)*2
01F852: D430 0000 add.b (A0,D0.w), D2 ; D2+[A0+$(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value
01F856: 6B00 0022 bmi $1f87a ; if old D2 value+[A0+$(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value is negative then end the subroutine
01F85A: 0C02 0011 cmpi.b #$11, D2
01F85E: 6700 001A beq $1f87a ; else if old D2 value+[A0+$(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value=#$11 then end the subroutine
01F862: D630 0001 add.b ($1,A0,D0.w), D3 ; else D3+[(A0+1)+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value
01F866: 6B00 0012 bmi $1f87a ; if old D3 value+[(A0+1)+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value is negative then end the subroutine
01F86A: 0C03 000A cmpi.b #$a, D3
01F86E: 6700 000A beq $1f87a ; else if old D3 value+[(A0+1)+(((P1_REPEAT value|P2_REPEAT value)&#$f)*2)] value=#$a then end the subroutine
01F872: 1B42 8D10 move.b D2, (-$72f0,A5) ; else D2=[A5-$72f0] value
01F876: 1B43 8D11 move.b D3, (-$72ef,A5) ; else D3=[A5-$72ef] value
01F87A: 4E75 rts