Prev: 62987 Up: Map Next: 63040
63005: Print text/graphic character in A and advance bitmap virtual text cursor
Used by the routines at 47326, 48389, 63302, 63691 and 63740.
Input
A Index of character to print
63005 PUSH HL Store HL
The operand of the instruction at 63006 represents the base address of the character set. This is modified by the instructions between 63478 and 63482.
63006 LD DE,27480 Point to (effective) start of character set graphics
63009 ADD A,A Load index of character into HL and multiply by 8...
63010 LD H,0 ...
63012 LD L,A ...
63013 ADD HL,HL ...
63014 ADD HL,HL ...
63015 ADD HL,DE ...and add to DE to obtain memory location of required character in the character set
63016 EX DE,HL Swap values (DE now holds memory location of character to print and HL holds 27480)
The operand of the instruction at 63017 represents the address of the bitmap virtual text cursor. This is modified by the instructions at 38804, 38816, 38832, 39425, 39634, 40501, 41358, 41374, 41395, 46481, 47322, 47409, 47836, 48529, 63259, 63363, 63625, 63642 and 64797.
63017 LD HL,0 Load (video) memory location to start printing character into HL
63020 LD B,8 For eight bytes (i.e. full height of character)...
63022 LD A,(DE) ...get graphic data from character set...
63023 LD (HL),A ...and load into video memory...
63024 INC DE ...move to next pixel row in character set...
63025 INC H ...and move to next pixel row in video memory
63026 DJNZ 63022 Loop back to 63022
63028 CALL 63286 Update attribute virtual text cursor based upon current bitmap virtual text cursor
63031 LD A,(23695) Load A with attribute stored at 23695 (71 = BRIGHT white)
63034 LD (HL),A Apply attribute to character just printed
63035 CALL 63247 Advance bitmap virtual text cursor right by one character
63038 POP HL Restore HL
63039 RET Return
Prev: 62987 Up: Map Next: 63040