Prev: 9D33 Up: Map Next: A15C
9D42: Routine at 9D42
Used by the routines at AroundTheClock and AADC.
9D42 CALL $CC62 Call CC62.
9D45 LD A,($9B2C) A=*9B2C.
9D48 AND A Jump to 9D53 if *9B2C is zero.
9D49 JR Z,$9D53
9D4B CALL $A41E Call A41E.
9D4E LD A,$02 Write 02 to *9B0F.
9D50 LD ($9B0F),A
This entry point is used by the routine at Messaging_YouWin.
9D53 CALL $CC62 Call CC62.
9D56 LD A,($9B2C) Jump to 9D6A if *9B2C is zero.
9D59 AND A
9D5A JR Z,$9D6A
9D5C LD A,($9B2D) Jump to AA0A if *9B2D is zero.
9D5F AND A
9D60 JP Z,$AA0A
9D63 LD A,($9B2A) Jump to A9E5 if *9B2A is not equal to zero.
9D66 AND A
9D67 JP NZ,$A9E5
9D6A XOR A Write 00 to;
9D6B LD ($9B06),A
9D6E LD ($9B04),A
9D71 LD ($9B05),A
9D74 LD HL,$9B25 HL=9B25.
9D77 DEC (HL) Decrease *HL by one.
9D78 JP P,$9DB3 Jump to 9DB3 if *HL is greater than or equal to A.
9D7B PUSH HL Stash HL on the stack.
9D7C LD HL,$9B07 HL=9B07.
9D7F LD A,($9B10) E=*9B10.
9D82 LD E,A
9D83 LD D,$00 D=00.
9D85 ADD HL,DE HL+=DE.
9D86 LD A,(HL) A=*HL.
9D87 POP HL Restore HL from the stack.
9D88 LD (HL),A Write A to *HL.
9D89 LD A,($9AC7) A=*9AC7.
9D8C INC A Increment A by one.
9D8D LD ($9AC7),A Write A to *9AC7.
9D90 CP $06 Jump to 9D98 if A is not equal to 06.
9D92 JR NZ,$9D98
9D94 XOR A Write 00 to *9AC7.
9D95 LD ($9AC7),A
9D98 LD A,($9AC7) A=*9AC7.
9D9B ADD A,A A+=A.
9D9C ADD A,A A+=A.
9D9D LD E,A E=A.
9D9E LD D,$00 D=00.
9DA0 LD HL,$9AC8 HL=9AC8.
9DA3 ADD HL,DE HL+=DE.
9DA4 LD E,(HL) E=*HL.
9DA5 INC HL Increment HL by one.
9DA6 LD D,(HL) D=*HL.
9DA7 LD ($9B13),DE Write DE to *9B13.
9DAB INC HL Increment HL by one.
9DAC LD E,(HL) E=*HL.
9DAD INC HL Increment HL by one.
9DAE LD D,(HL) D=*HL.
9DAF LD ($9B15),DE Write DE to *9B15.
9DB3 LD A,($F821) A=*ControlByte.
9DB6 BIT 4,A Test bit 4 of A.
9DB8 JP Z,Messaging_YouWin_8 Jump to Messaging_YouWin_8 if HL is equal to 00.
9DBB LD HL,$9AA9 HL=9AA9.
9DBE INC (HL) Increment *HL by one.
9DBF LD HL,$0001 Write 0001 to *9B1B.
9DC2 LD ($9B1B),HL
9DC5 LD HL,$0064 Write 0064 to *9B1D.
9DC8 LD ($9B1D),HL
9DCB LD A,($9B11) A=*9B11.
9DCE ADD A,$10 A+=10.
9DD0 LD ($9B12),A Write A to *9B12.
9DD3 LD HL,($9AC3) HL=*9AC3.
9DD6 INC L Increment L by one.
9DD7 LD A,H A=H.
9DD8 SUB $05 A-=05.
9DDA LD H,A H=A.
9DDB LD ($9AC5),HL Write HL to *9AC5.
9DDE LD A,($9B0F) A=*9B0F.
9DE1 INC A Increment A by one.
9DE2 LD ($9B0F),A Write A to *9B0F.
9DE5 LD HL,$8940 Write 8940 to *9B13.
9DE8 LD ($9B13),HL
9DEB LD HL,$8AC8 Write 8AC8 to *9B15.
9DEE LD ($9B15),HL
9DF1 LD HL,$8C50 HL=8C50.
9DF4 LD DE,$9B35 DE=9B35.
9DF7 LD BC,$0120 BC=0120.
9DFA LDIR LDIR.
9DFC LD HL,$9B35 HL=9B35.
9DFF LD B,$03 B=03.
9E01 LD A,$A7 Write A7 to *A641.
9E03 LD ($A641),A
9E06 PUSH BC Stash BC and HL on the stack.
9E07 PUSH HL
9E08 CALL $A639 Call A639.
9E0B POP HL Restore HL from the stack.
9E0C LD DE,$0030 HL+=0030.
9E0F ADD HL,DE
9E10 POP BC Restore BC from the stack.
9E11 DJNZ $9E06 Decrease counter by one and loop back to 9E06 until counter is zero.
9E13 LD B,$03 B=03.
9E15 LD A,$37 Write 37 to *A641.
9E17 LD ($A641),A
9E1A PUSH BC Stash BC and HL on the stack.
9E1B PUSH HL
9E1C CALL $A639 Call A639.
9E1F POP HL Restore HL from the stack.
9E20 LD DE,$0030 HL+=0030.
9E23 ADD HL,DE
9E24 POP BC Restore BC from the stack.
9E25 DJNZ $9E1A Decrease counter by one and loop back to 9E1A until counter is zero.
9E27 LD HL,$9B35 Write 9B35 to *9B17.
9E2A LD ($9B17),HL
9E2D LD HL,$9BC5 Write 9BC5 to *9B19.
9E30 LD ($9B19),HL
9E33 LD HL,$9AC4 HL=9AC4.
9E36 INC (HL) Increment *HL by one.
9E37 CALL $A461 Call A461.
9E3A CALL $A491 Call A491.
9E3D LD B,$10 B=10.
9E3F PUSH BC Stash BC on the stack.
9E40 LD BC,($9B1B) BC=*9B1B.
9E44 DEC BC Decrease BC by one.
9E45 LD A,B Jump to 9E44 until BC is zero.
9E46 OR C
9E47 JR NZ,$9E44
9E49 LD HL,($9B1B) HL=*9B1B.
9E4C LD BC,($9B1D) BC=*9B1D.
9E50 ADD HL,BC HL+=BC.
9E51 LD ($9B1B),HL Write HL to *9B1B.
9E54 LD HL,$9B12 HL=9B12.
9E57 DEC (HL) Decrease *HL by one.
9E58 CALL $A491 Call A491.
9E5B POP BC Restore BC from the stack.
9E5C DJNZ $9E3F Decrease counter by one and loop back to 9E3F until counter is zero.
9E5E LD BC,$1770 BC=1770.
9E61 DEC BC Decrease BC by one.
9E62 LD A,B Jump to 9E61 until BC is zero.
9E63 OR C
9E64 JR NZ,$9E61
9E66 LD B,$10 B=10.
9E68 PUSH BC Stash BC on the stack.
9E69 LD A,B Jump to 9E7C if B is less than 08.
9E6A CP $08
9E6C JR C,$9E7C
9E6E LD HL,$9B65 Write 9B65 to *9B17.
9E71 LD ($9B17),HL
9E74 LD HL,$9BF5 Write 9BF5 to *9B19.
9E77 LD ($9B19),HL
9E7A JR $9E88 Jump to 9E88.
9E7C LD HL,$9B95 Write 9B95 to *9B17.
9E7F LD ($9B17),HL
9E82 LD HL,$9C25 Write 9C25 to *9B19.
9E85 LD ($9B19),HL
9E88 LD BC,($9B1B) BC=*9B1B.
9E8C DEC BC Decrease BC by one.
9E8D LD A,B Jump to 9E8C until BC is zero.
9E8E OR C
9E8F JR NZ,$9E8C
9E91 LD HL,($9B1B) HL=*9B1B.
9E94 LD BC,($9B1D) BC=*9B1D.
9E98 SBC HL,BC HL-=BC.
9E9A LD ($9B1B),HL Write HL to *9B1B.
9E9D LD HL,$9B12 HL=9B12.
9EA0 INC (HL) Increment *HL by one.
9EA1 CALL $A491 Call A491.
9EA4 POP BC Restore BC from the stack.
9EA5 DJNZ $9E68 Decrease counter by one and loop back to 9E68 until counter is zero.
9EA7 CALL Sounds_OpponentDart Call Sounds_OpponentDart.
9EAA LD HL,$9C55 HL=9C55.
9EAD LD DE,$004A DE=004A.
9EB0 LD A,($9B0F) A=*9B0F.
9EB3 DEC A Decrease A by one.
9EB4 JR Z,$9EBA Jump to 9EBA if A is equal to C.
9EB6 ADD HL,DE HL+=DE.
9EB7 DEC A Decrease A by one.
9EB8 JR $9EB4 Jump to 9EB4.
9EBA LD DE,($9AC5) DE=*9AC5.
9EBE DEC E Decrease E by one.
9EBF LD (HL),E Write E to *HL.
9EC0 INC HL Increment HL by one.
9EC1 LD (HL),D Write D to *HL.
9EC2 INC HL Increment HL by one.
9EC3 INC D Increment D by two.
9EC4 INC D
9EC5 CALL $A4AB Call A4AB.
9EC8 LD B,$05 B=05.
9ECA LD DE,($9AC5) DE=*9AC5.
9ECE LD HL,$7800 HL=7800.
9ED1 CALL $A774 Call A774.
9ED4 LD A,($9AC5) A=*9AC5.
9ED7 ADD A,A A+=A.
9ED8 ADD A,A A+=A.
9ED9 ADD A,A A+=A.
9EDA LD B,A B=A.
9EDB LD A,($9B10) A=*9B10.
9EDE ADD A,B A+=B.
9EDF LD B,$A0 B=A0.
9EE1 SUB B A-=B.
9EE2 ADD A,$02 A+=02.
9EE4 LD ($9B28),A Write A to *9B28.
9EE7 LD E,A E=A.
9EE8 LD D,$00 D=00.
9EEA LD A,($9AC6) A=*9AC6.
9EED ADD A,$03 A+=03.
9EEF ADD A,A A+=A.
9EF0 ADD A,A A+=A.
9EF1 ADD A,A A+=A.
9EF2 LD B,A B=A.
9EF3 LD A,($9B11) A=*9B11.
9EF6 ADD A,B A+=B.
9EF7 LD B,A B=A.
9EF8 LD A,$C0 A=C0.
9EFA SUB B A-=B.
9EFB LD B,$60 B=60.
9EFD SUB B A-=B.
9EFE ADD A,$02 A+=02.
9F00 LD ($9B29),A Write A to *9B29.
9F03 LD H,A H=A.
9F04 LD L,$00 L=00.
9F06 LD A,E A=E.
9F07 AND A Jump to 9F18 if D is greater than or equal to A.
9F08 JP P,$9F18
9F0B NEG NEG.
9F0D LD E,A E=A.
9F0E LD A,H A=H.
9F0F AND A Jump to 9F27 if D is greater than or equal to A.
9F10 JP P,$9F27
9F13 NEG NEG.
9F15 LD H,A H=A.
9F16 JR $9F2C Jump to 9F2C.
9F18 LD A,H A=H.
9F19 AND A Jump to 9F22 if D is greater than or equal to A.
9F1A JP P,$9F22
9F1D NEG NEG.
9F1F LD H,A H=A.
9F20 JR $9F31 Jump to 9F31.
9F22 LD BC,$9AEC BC=9AEC.
9F25 JR $9F34 Jump to 9F34.
9F27 LD BC,$9AF2 BC=9AF2.
9F2A JR $9F34 Jump to 9F34.
9F2C LD BC,$9AF8 BC=9AF8.
9F2F JR $9F34 Jump to 9F34.
9F31 LD BC,$9AFE BC=9AFE.
9F34 LD ($9ABD),BC Write BC to *9ABD.
9F38 LD A,E A=E.
9F39 AND A Jump to 9F41 if D is not equal to A.
9F3A JR NZ,$9F41
9F3C LD BC,$0646 BC=0646.
9F3F JR $9F4A Jump to 9F4A.
9F41 LD BC,$0000 BC=0000.
9F44 SBC HL,DE HL-=DE (with carry).
9F46 INC BC Increment BC by one.
9F47 JR NC,$9F44 Jump to 9F44 if BC is greater than or equal to A.
9F49 DEC BC Decrease BC by one.
9F4A LD H,B H=B.
9F4B LD L,C L=C.
9F4C XOR A A=00.
9F4D LD DE,$9AE0 DE=9AE0.
9F50 EX DE,HL Exchange the DE and HL registers.
9F51 LD C,(HL) C=*HL.
9F52 INC HL Increment HL by one.
9F53 LD B,(HL) B=*HL.
9F54 INC HL Increment HL by one.
9F55 EX DE,HL Exchange the DE and HL registers.
9F56 AND A Set flags.
9F57 SBC HL,BC HL-=BC.
9F59 ADD HL,BC HL+=BC.
9F5A JR NC,$9F5F Jump to 9F5F if HL is greater than or equal to A.
9F5C INC A Increment A by one.
9F5D JR $9F50 Jump to 9F50.
9F5F LD HL,($9ABD) HL=*9ABD.
9F62 LD E,A E=A.
9F63 LD D,$00 D=00.
9F65 ADD HL,DE HL+=DE.
9F66 LD A,(HL) A=*HL.
9F67 LD ($AF49),A Write A to *AF49.
9F6A LD ($9B2E),A Write A to *9B2E.
9F6D XOR A Write 00 to *AF4A.
9F6E LD ($AF4A),A
9F71 LD A,($9B28) A=*9B28.
9F74 AND A Jump to 9F7A if A is greater than or equal to A.
9F75 JP P,$9F7A
9F78 NEG NEG.
9F7A LD E,A E=A.
9F7B LD D,$00 D=00.
9F7D LD HL,$0000 HL=0000.
9F80 AND A Jump to 9F87 if A is equal to A.
9F81 JR Z,$9F87
9F83 ADD HL,DE HL+=DE.
9F84 DEC A Decrease A by one.
9F85 JR $9F80 Jump to 9F80.
9F87 PUSH HL Stash HL on the stack.
9F88 LD A,($9B29) A=*9B29.
9F8B AND A Jump to 9F91 if A is greater than or equal to A.
9F8C JP P,$9F91
9F8F NEG NEG.
9F91 LD E,A E=A.
9F92 LD D,$00 D=00.
9F94 LD HL,$0000 HL=0000.
9F97 AND A Jump to 9F9E if A is equal to A.
9F98 JR Z,$9F9E
9F9A ADD HL,DE HL+=DE.
9F9B DEC A Decrease A by one.
9F9C JR $9F97 Jump to 9F97.
9F9E EX DE,HL Exchange the DE and HL registers.
9F9F POP HL Restore HL from the stack.
9FA0 ADD HL,DE HL+=DE.
9FA1 LD BC,$000A BC=000A.
9FA4 AND A Set flags.
9FA5 SBC HL,BC HL-=BC.
9FA7 ADD HL,BC HL+=BC.
9FA8 JR NC,$9FB9 Jump to 9FB9 if A is greater than or equal to A.
9FAA LD A,$32 A=32.
9FAC LD ($AF49),A Write A to *AF49.
9FAF LD ($9B2E),A Write A to *9B2E.
9FB2 LD HL,$9B05 HL=9B05.
9FB5 LD (HL),$01 Write 01 to *HL.
9FB7 JR $A010 Jump to A010.
9FB9 LD BC,$003B BC=003B.
9FBC AND A Set flags.
9FBD SBC HL,BC HL-=BC.
9FBF ADD HL,BC HL+=BC.
9FC0 JR NC,$9FCC Jump to 9FCC if A is greater than or equal to A.
9FC2 LD A,$19 A=19.
9FC4 LD ($AF49),A Write A to *AF49.
9FC7 LD ($9B2E),A Write A to *9B2E.
9FCA JR $A010 Jump to A010.
9FCC LD BC,$0678 BC=0678.
9FCF AND A Set flags.
9FD0 SBC HL,BC HL-=BC.
9FD2 ADD HL,BC HL+=BC.
9FD3 JR C,$A010 Jump to A010 if A is less than A.
9FD5 LD BC,$0900 BC=0900.
9FD8 AND A Set flags.
9FD9 SBC HL,BC HL-=BC.
9FDB ADD HL,BC HL+=BC.
9FDC JR NC,$9FE9 Jump to 9FE9 if A is greater than or equal to A.
9FDE LD A,($AF49) A=*AF49.
9FE1 LD B,A B=A.
9FE2 ADD A,A A+=A.
9FE3 ADD A,B A+=B.
9FE4 LD ($AF49),A Write A to *AF49.
9FE7 JR $A010 Jump to A010.
9FE9 LD BC,$12C2 BC=12C2.
9FEC AND A Set flags.
9FED SBC HL,BC HL-=BC.
9FEF ADD HL,BC HL+=BC.
9FF0 JR C,$A010 Jump to A010 if A is less than A.
9FF2 LD BC,$1690 BC=1690.
9FF5 AND A Set flags.
9FF6 SBC HL,BC HL-=BC.
9FF8 ADD HL,BC HL+=BC.
9FF9 JR NC,$A009 Jump to A009 if A is greater than or equal to A.
9FFB LD A,($AF49) A=*AF49.
9FFE ADD A,A A+=A.
9FFF LD ($AF49),A Write A to *AF49.
A002 LD HL,$9B04 HL=9B04.
A005 LD (HL),$01 Write 01 to *HL.
A007 JR $A010 Jump to A010.
A009 XOR A Write 00 to;
A00A LD ($AF49),A
A00D LD ($9B2E),A
A010 LD A,($9B2C) A=*9B2C.
A013 AND A Jump to A046 if A is equal to A.
A014 JR Z,$A046
A016 CALL $A434 Call A434.
A019 LD A,($9B2E) A=*9B2E.
A01C LD B,A B=A.
A01D LD A,($9B2D) A=*9B2D.
A020 CP B Jump to A0B9 if A is not equal to B.
A021 JP NZ,$A0B9
A024 DEC A Decrease A by one.
A025 LD ($9B2D),A Write A to *9B2D.
A028 CALL PrintString_Loop Call PrintString_Loop.
A02B DEFB $16,$05,$01 PRINT AT: 05, 01.
A02E DEFM " " "     ".
A033 DEFB $16,$06,$01 PRINT AT: 06, 01.
A036 DEFM " " "     ".
A03B DEFB $16,$07,$01 PRINT AT: 07, 01.
A03E DEFM " " "     ".
A043 DEFB $FF Terminator.
A044 JR $A0B9 Jump to A0B9.
A046 LD DE,($AF49) DE=*AF49.
A04A LD A,($AF49) A=*AF49.
A04D LD B,A B=A.
A04E LD A,($9AAD) A=*9AAD.
A051 ADD A,B A+=B.
A052 LD ($9AAD),A Write A to *9AAD.
A055 LD A,($9AB7) Jump to A06B if *9AB7 is zero.
A058 AND A
A059 JR Z,$A06B
A05B LD A,($9AB8) Jump to A066 if *ActivePlayer is zero.
A05E AND A
A05F JR Z,$A066
A061 LD HL,($9AB0) HL=*2UP_Total.
A064 JR $A06E Jump to A06E.
A066 LD HL,($9AB2) HL=*1UP_Total.
A069 JR $A06E Jump to A06E.
A06B LD HL,($9B1F) HL=*Score.
A06E SBC HL,DE HL-=DE (with carry).
A070 JP C,$A0D6 Jump to A0D6 if ?? is less than A.
A073 JP NZ,$A08F Jump to A08F if ?? is not equal to A.
A076 LD A,($9B04) Jump to A087 if *9B04 is not equal to zero.
A079 AND A
A07A JP NZ,$A087
A07D LD A,($9B05) Jump to A087 if *9B05 is not equal to zero.
A080 AND A
A081 JP NZ,$A087
A084 JP $A0D6 Jump to A0D6.
A087 LD HL,$9B06 HL=9B06.
A08A LD (HL),$01 Write 01 to *HL.
A08C JP $A103 Jump to A103.
A08F LD A,L A=L.
A090 DEC A Decrease A by one.
A091 OR H Set the bits from H.
A092 JP Z,$A0D6 Jump to A0D6 if A is equal to H.
A095 LD A,($9AB7) Jump to A0AB if *9AB7 is zero.
A098 AND A
A099 JR Z,$A0AB
A09B LD A,($9AB8) Jump to A0A6 if *ActivePlayer is zero.
A09E AND A
A09F JR Z,$A0A6
A0A1 LD ($9AB0),HL Write HL to *2UP_Total.
A0A4 JR $A0AE Jump to A0AE.
A0A6 LD ($9AB2),HL Write HL to *1UP_Total.
A0A9 JR $A0AE Jump to A0AE.
A0AB LD ($9B1F),HL Write HL to *Score.
A0AE CALL $AE17 Call AE17.
A0B1 LD A,($AF5E) A=*AF5E.
A0B4 ADD A,$02 A+=02.
A0B6 LD ($AF5E),A Write A to *AF5E.
A0B9 CALL $B77A Call B77A.
A0BC LD HL,$0810 Write 0810 to *9AC3.
A0BF LD ($9AC3),HL
A0C2 CALL $A461 Call A461.
A0C5 LD A,($9B2C) Jump to 9D42 if *9B2C is not equal to zero.
A0C8 AND A
A0C9 JP NZ,$9D42
A0CC LD A,($9B0F) Jump to A103 if *9B0F is equal to 03.
A0CF CP $03
A0D1 JR Z,$A103
A0D3 JP Messaging_YouWin_24 Jump to Messaging_YouWin_24.
A0D6 CALL PrintString_Loop Call PrintString_Loop.
A0D9 DEFB $16,$0A,$01 PRINT AT: 0A, 01.
A0DC DEFM "BUST[[" bust
A0E2 DEFB $FF Terminator.
A0E3 LD HL,$9AA8
A0E6 INC (HL)
A0E7 LD HL,($9B33)
A0EA LD A,($9AB7)
A0ED AND A
A0EE JR Z,$A100
A0F0 LD A,($9AB8)
A0F3 AND A
A0F4 JR Z,$A0FB
A0F6 LD ($9AB0),HL
A0F9 JR $A103
A0FB LD ($9AB2),HL
A0FE JR $A103
A100 LD ($9B1F),HL
A103 LD HL,$0810
A106 LD ($9AC3),HL
A109 LD A,($9AB7)
A10C AND A
A10D JR Z,$A11F
A10F LD A,($9AB8)
A112 AND A
A113 JR Z,$A11A
A115 LD HL,($9AB0)
A118 JR $A122
A11A LD HL,($9AB2)
A11D JR $A122
A11F LD HL,($9B1F)
A122 LD ($AF49),HL
A125 LD HL,$0C01
A128 LD ($AF5D),HL
A12B CALL $AE17
A12E LD A,($9AAD)
A131 CP $B4
A133 JR NZ,$A13E
A135 LD A,($9AA8)
A138 AND A
A139 JR NZ,$A13E
A13B CALL $CA7C
A13E XOR A
A13F LD ($9AAD),A
A142 LD ($9AA8),A
A145 LD A,($9B06)
A148 AND A
A149 JR NZ,Messaging_YouWin_0
A14B CALL LongPause
A14E LD A,($9AB7)
A151 AND A
A152 JR Z,Messaging_YouWin
A154 CALL Print_CurrentPlayerID
A157 CALL $A7F8
A15A JR Messaging_YouWin_0
Prev: 9D33 Up: Map Next: A15C