![]() |
Routines |
| Prev: 60225 | Up: Map | Next: 60300 |
|
Used by the routines at Reset_Text_Position, Print_Menu_Strings, Initialise_New_Game, MainMenu_SelectOptions, Print_ControlKeyLabels and Draw_MainMenuLogo.
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 |