VasiliyFamiliyaLe 01/10/2019 à 07:39
01F884: 1039 0010 FD98 move.b $10fd98.l, D0 ; D0=P1_REPEAT value
01F88A: 8039 0010 FD9E or.b $10fd9e.l, D0 ; D0=P1_REPEAT value|P2_REPEAT value
01F890: 0240 00F0 andi.w #$f0, D0 ; D0=(P1_REPEAT value|P2_REPEAT value)&#$f0
01F894: 6700 003C beq $1f8d2 ; if (P1_REPEAT value|P2_REPEAT value)&#$f0=0 => neither P1 A/B/C/D buttons nor P2 A/B/C/D buttons is pressed then end the subroutine
01F898: 4A03 tst.b D3
01F89A: 6600 000C bne $1f8a8 ; if D3!=0 then skip next 2 steps
01F89E: 4EB9 0001 F8D4 jsr $1f8d4.l
01F8A4: 6000 002C bra $1f8d2
01F8A8: 0C03 0001 cmpi.b #$1, D3
01F8AC: 6600 000C bne $1f8ba ; if D3!=1 then skip next 2 steps
01F8B0: 4EB9 0001 F8F6 jsr $1f8f6.l
01F8B6: 6000 001A bra $1f8d2
01F8BA: 0C02 0010 cmpi.b #$10, D2
01F8BE: 6600 000C bne $1f8cc ; if D2!=#$10 then skip next 2 steps
01F8C2: 4EB9 0001 F92C jsr $1f92c.l
01F8C8: 6000 0008 bra $1f8d2
01F8CC: 4EB9 0001 F982 jsr $1f982.l
01F8D2: 4E75 rts
01F8D4: 0800 0004 btst #$4, D0
01F8D8: 6700 001A beq $1f8f4 ; if 5th bit of ((P1_REPEAT value|P2_REPEAT value)&#$f0) value=0 then end the subroutine
01F8DC: 422D 8D12 clr.b (-$72ee,A5) ; else [A5-$72ee] value=0
01F8E0: 062D 0001 8D13 addi.b #$1, (-$72ed,A5) ; [A5-$72ed] value+1
01F8E6: 0C2D 000D 8D13 cmpi.b #$d, (-$72ed,A5)
01F8EC: 6600 0006 bne $1f8f4 ; if old [A5-$72ed] value+1!=#$d then end the subroutine
01F8F0: 422D 8D13 clr.b (-$72ed,A5) ; else [A5-$72ed]=0
01F8F4: 4E75 rts
01F8F6: 0800 0004 btst #$4, D0
01F8FA: 6700 0008 beq $1f904 ; if 5th bit of ((P1_REPEAT value|P2_REPEAT value)&#$f0) value=0 then skip next step
01F8FE: 062D 0001 8D12 addi.b #$1, (-$72ee,A5) ; else [A5-$72ee]+1
01F904: 7000 moveq #$0, D0 ; D0=0
01F906: 102D 8D13 move.b (-$72ed,A5), D0 ; D0=[A5-$72ed] value
01F90A: 41F9 0002 427C lea $2427c.l, A0 ; A0=[$2427c]
01F910: E548 lsl.w #2, D0 ; D0=[A5-$72ed] value<<2
01F912: 2070 0000 movea.l (A0,D0.w), A0 ; A0=[$2427c+([A5-$72ed] value<<2)]
01F916: 7000 moveq #$0, D0 ; D0=0
01F918: 102D 8D12 move.b (-$72ee,A5), D0 ; D0=[A5-$72ee] value
01F91C: E548 lsl.w #2, D0 ; D0=[A5-$72ee] value<<2
01F91E: 2030 0000 move.l (A0,D0.w), D0 ; D0=[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value
01F922: 6600 0006 bne $1f92a ; if [($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value!=0 then skip next step
01F926: 422D 8D12 clr.b (-$72ee,A5) ; else [A5-$72ee] value=0
01F92A: 4E75 rts
01F92C: 7200 moveq #$0, D1 ; D1=0
01F92E: 122D 8D13 move.b (-$72ed,A5), D1 ; D1=[A5-$72ed] value
01F932: 41F9 0002 427C lea $2427c.l, A0 ; A0=[$2427c]
01F938: E549 lsl.w #2, D1 ; D1=[A5-$72ed] value<<2
01F93A: 2070 1000 movea.l (A0,D1.w), A0 ; A0=[$2427c+([A5-$72ed] value<<2)]
01F93E: 7200 moveq #$0, D1 ; D1=0
01F940: 122D 8D12 move.b (-$72ee,A5), D1 ; D1=[A5-$72ee] value
01F944: E549 lsl.w #2, D1 ; D1=[A5-$72ee] value<<2
01F946: 2230 1000 move.l (A0,D1.w), D1 ; D1=[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value
01F94A: 0281 7FFF FFFF andi.l #$7fffffff, D1 ; D1=[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff
01F950: 2041 movea.l D1, A0 ; A0=[[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff]
01F952: 7200 moveq #$0, D1 ; D1=0
01F954: 122D 8D11 move.b (-$72ef,A5), D1 ; D1=[A5-$72ef] value
01F958: 0401 0002 subi.b #$2, D1 ; D1=[A5-$72ef] value-2
01F95C: E549 lsl.w #2, D1 ; D1=([A5-$72ef] value-2)<<2
01F95E: D0C1 adda.w D1, A0 ; A0=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)]
01F960: 5448 addq.w #2, A0 ; A0=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)+2]
01F962: D1FC 0000 0000 adda.l #$0, A0 ; A0=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)+2]
01F968: 0800 0004 btst #$4, D0
01F96C: 6700 0006 beq $1f974 ; if 5th bit of ((P1_REPEAT value|P2_REPEAT value)&#$f0) value=0 then skip next step
01F970: 0410 0001 subi.b #$1, (A0) ; else [([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)+2] value-1
01F974: 0800 0005 btst #$5, D0
01F978: 6700 0006 beq $1f980 ; if 6th bit of ((P1_REPEAT value|P2_REPEAT value)&#$f0) value=0 then end the subroutine
01F97C: 0610 0001 addi.b #$1, (A0) ; else [([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)+2] value+1
01F980: 4E75 rts
01F982: 0800 0004 btst #$4, D0
01F986: 6700 0052 beq $1f9da ; if 5th bit of ((P1_REPEAT value|P2_REPEAT value)&#$f0) value=0 then end the subroutine
01F98A: 206D 8A0A movea.l (-$75f6,A5), A0 ; else A0=[[A5-$75f6] value]
01F98E: 7200 moveq #$0, D1 ; D1=0
01F990: 122D 8D13 move.b (-$72ed,A5), D1 ; D1=[A5-$72ed] value
01F994: 41F9 0002 427C lea $2427c.l, A0 ; A0=[$2427c]
01F99A: E549 lsl.w #2, D1 ; D1=[A5-$72ed] value<<2
01F99C: 2070 1000 movea.l (A0,D1.w), A0 ; A0=[$2427c+([A5-$72ed] value<<2)]
01F9A0: 7200 moveq #$0, D1 ; D1=0
01F9A2: 122D 8D12 move.b (-$72ee,A5), D1 ; D1=[A5-$72ee] value
01F9A6: E549 lsl.w #2, D1 ; D1=[A5-$72ee] value<<2
01F9A8: 2230 1000 move.l (A0,D1.w), D1 ; D1=[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value
01F9AC: 0281 7FFF FFFF andi.l #$7fffffff, D1 ; D1=[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff
01F9B2: 2041 movea.l D1, A0 ; A0=[[($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff]
01F9B4: 7200 moveq #$0, D1 ; D1=0
01F9B6: 122D 8D11 move.b (-$72ef,A5), D1 ; D1=[A5-$72ef] value
01F9BA: 0401 0002 subi.b #$2, D1 ; D1=[A5-$72ef] value-2
01F9BE: E549 lsl.w #2, D1 ; D1=([A5-$72ef] value-2)<<2
01F9C0: D0C1 adda.w D1, A0 ; A0=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)]
01F9C2: 3210 move.w (A0), D1 ; D1=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)] value
01F9C4: D1FC 0000 0000 adda.l #$0, A0 ; A0=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)]
01F9CA: 363C 8000 move.w #$8000, D3 ; D3=#$8000
01F9CE: 7400 moveq #$0, D2 ; D2=0
01F9D0: 142D 8D10 move.b (-$72f0,A5), D2 ; D2=[A5-$72f0] value
01F9D4: E46B lsr.w D2, D3 ; D3=#$8000>>[A5-$72f0] value
01F9D6: B741 eor.w D3, D1 ; D1=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)] value^(#$8000>>[A5-$72f0] value)
01F9D8: 3081 move.w D1, (A0) ; [([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)] value=[([($2427c+([A5-$72ed] value<<2))+([A5-$72ee] value<<2)] value&#$7fffffff)+(([A5-$72ef] value-2)<<2)] value^(#$8000>>[A5-$72f0] value)
01F9DA: 4E75 rts