Prev: 60225 Up: Map Next: 60300
60263: Print Character
Print the character code in DE at attribute address HL using the character set at Pointer_CurrentCharacterSet and attribute CurrentTextAttribute.
Print_Character 60263 PUSH DE Stash DE, HL and BC on the stack.
60264 PUSH HL
60265 PUSH BC
60266 LD A,(29447) Load A with the current text attribute (CurrentTextAttribute).
60269 LD (HL),A Set the byte at HL.
60270 LD A,H Copy H into A.
60271 ADD A,A Multiply A by 8 to form the screen-bitmap high byte.
60272 ADD A,A
60273 ADD A,A
60274 AND %01011011 A&=91.
60276 LD H,A Copy A into H.
60277 PUSH HL Stash HL on the stack.
60278 EX DE,HL Exchange DE and HL.
60279 ADD HL,HL Multiply HL by 8 to index the character glyph.
60280 ADD HL,HL
60281 ADD HL,HL
60282 LD DE,(29433) Load DE with the current character-set pointer (Pointer_CurrentCharacterSet).
60286 ADD HL,DE HL+=DE.
60287 POP DE Restore DE from the stack.
60288 LD B,8 Load B with loop count 8.
Blit 8 pixel rows of the character glyph into the screen bitmap.
Print_CharacterLoop 60290 LD A,(HL) Fetch the next script byte.
60291 LD (DE),A Set the byte at DE.
60292 INC D Advance the high byte of the screen address by one.
60293 INC HL Advance the data pointer in HL by one byte.
60294 DJNZ Print_CharacterLoop Decrease the loop counter in B and jump to Print_CharacterLoop if more iterations remain.
60296 POP BC Restore BC, HL and DE from the stack.
60297 POP HL
60298 POP DE
60299 RET Return.
Prev: 60225 Up: Map Next: 60300