Prev: 711C Up: Map Next: 716C
714C: Print Character
Used by the routines at DisplayPlayerLives, Score_1UP and PrintString.
Input
A ASCII value to print
HL Screen address
PrintScreen 714C PUSH BC Stash BC, DE and HL on the stack.
714D PUSH DE
714E PUSH HL
714F LD L,A Create an offset in HL.
7150 LD H,$00
7152 ADD HL,HL HL=HL * 08.
7153 ADD HL,HL
7154 ADD HL,HL
7155 LD DE,($5C36) DE=CHARS.
7159 ADD HL,DE DE=HL + 3C00. For examples of usage;
Letter ASCII Value * 8 (offset) CHARS + offset
"U" 55 02A8 3EA8
"L" 4C 0260 3E60
"T" 54 02A0 3EA0
"I" 49 0248 3E48
"M" 4D 0268 3E68
"A" 41 0208 3E08
"T" 54 02A0 3EA0
"E" 45 0228 3E28
715A EX DE,HL
Print the character to the screen.
715B POP HL Restore HL, containing the screen buffer location, from the stack.
This entry point is used by the routine at DisplayPlayerLives.
PrintScreen_0 715C LD B,$08 B=08 (08 rows of pixels).
This entry point is used by the routine at 766D.
PrintScreen_Loop 715E LD A,(DE) Copy a byte from the font data to the screen buffer.
715F LD (HL),A
7160 INC DE Increment the font data by one.
7161 INC H Move onto the next pixel line.
7162 DJNZ PrintScreen_Loop Decrease counter by one and loop back to PrintScreen_Loop until counter is zero.
7164 POP DE Restore DE and BC from the stack.
7165 POP BC
Reset HL and move to the next column, ready to print the next character.
7166 LD A,H H=H - 08 (reset the display line).
7167 SUB $08
7169 LD H,A
716A INC L Increment screen column by one.
716B RET Return.
View the equivalent code in;
Prev: 711C Up: Map Next: 716C