Prev: A774 Up: Map Next: A7F8
A7A5: Print Play Area
Used by the routines at 9D33, Messaging_YouWin, AA0A, Handler_Match, Handler_SemiFinal and AADC.
Print_PlayArea A7A5 LD HL,$6000 Copy 1800 bytes of data from *DartBoard to Loading.
A7A8 LD DE,$4000
A7AB LD BC,$1800
A7AE LDIR
A7B0 LD B,$18 B=18.
A7B2 LD HL,$5800 HL=5800 (screen buffer location).
Print_PlayArea_Loop A7B5 PUSH BC Stash BC and HL on the stack.
A7B6 PUSH HL
A7B7 LD BC,$0008 BC=0008.
A7BA LD D,H D=H.
A7BB LD E,L E=L.
A7BC INC DE Increment DE by one.
A7BD LD (HL),$47 Write INK: WHITE, PAPER: BLACK (BRIGHT) to *HL.
A7BF LDIR LDIR.
A7C1 LD BC,$0017 BC=0017.
A7C4 LD (HL),$70 Write INK: BLACK, PAPER: YELLOW (BRIGHT) to *HL.
A7C6 LDIR LDIR.
A7C8 LD DE,$0020 DE=0020.
A7CB POP HL Restore HL from the stack.
A7CC ADD HL,DE HL+=DE.
A7CD POP BC Restore BC from the stack.
A7CE DJNZ Print_PlayArea_Loop Decrease counter by one and loop back to Print_PlayArea_Loop until counter is zero.
A7D0 LD A,($9AB7) Return if *9AB7 is not zero.
A7D3 AND A
A7D4 RET NZ
Set the 1UP leg count.
A7D5 LD A,($9AA6) A=*Leg_1UP.
A7D8 ADD A,$30 Add 30 (ASCII "0") to A to "convert" it to ASCII and write A to *Messaging_LegCount_1UP.
A7DA LD ($A7F1),A
Set the 2UP leg count.
A7DD LD A,($9AA7) A=*Leg_2UP.
A7E0 ADD A,$30 Add 30 (ASCII "0") to A to "convert" it to ASCII and write it to *Messaging_LegCount_2UP.
A7E2 LD ($A7F5),A
A7E5 CALL PrintString_Loop Call PrintString_Loop.
A7E8 DEFB $11,$00 PAPER: BLACK.
A7EA DEFB $10,$06 INK: YELLOW.
A7EC DEFB $12,$01 FLASH: ON.
A7EE DEFB $16,$01,$01 PRINT AT: 01, 01.
Messaging_LegCount_1UP A7F1 DEFM " " " ".
A7F2 DEFB $16,$16,$01 PRINT AT: 16, 01.
Messaging_LegCount_2UP A7F5 DEFM " " " ".
A7F6 DEFB $FF Terminator.
A7F7 RET Return.
Prev: A774 Up: Map Next: A7F8