Prev: 52178 Up: Map Next: 52267
52220: Draw a Character
Used by the routine at 23451.
Input
DE Location on screen to print
A Character to print, in ASCII
Print_TwoToneText_SpaceCheck 52220 CP 32 If the character isnot a space then jump forward to Print_TwoToneText_SpaceCheck_0.
52222 JR NZ,Print_TwoToneText_SpaceCheck_0
52224 LD HL,23296 Point to empty space
52227 LD BC,4097 16 rows, 1 characters
52230 EX DE,HL Print a blank space on screen.
52231 PUSH HL
52232 CALL Copy_Routine
52235 POP HL
52236 JR Print_TwoToneText_SpaceCheck_2 Move forward.
Print_TwoToneText_SpaceCheck_0 52238 CP 65 Is this a letter?
52240 JR NC,Print_TwoToneText_SpaceCheck_1 Jump forward if so.
52242 ADD A,42 Adjust numbers to be in the right place in the character set.
Print_TwoToneText_SpaceCheck_1 52244 SUB 65 Convert from ASCII to index in the character set.
52246 ADD A,10
52248 PUSH DE Remember the screen address.
52249 CALL Draw_Number Copy the character to screen.
52252 POP HL Restore screen address in HL.
Print_TwoToneText_SpaceCheck_2 52253 CALL 52267 Get the attribute address from the screen address.
52256 LD BC,(52176) Load the stored top/ bottom attribute bytes back into BC and write them to the screen.
52260 LD (HL),B
52261 LD DE,32
52264 ADD HL,DE
52265 LD (HL),C
52266 RET Return.
Prev: 52178 Up: Map Next: 52267