![]() |
Routines |
| Prev: 48686 | Up: Map | Next: 48725 |
|
Used by the routines at PrintString, PrintStringAndANewline, Handler_UserInput, Parser_MatchInputWord, Handler_DisplayRoom and PrintInputPrompt.
Print one character, scrolling the text window when the cursor reaches its edge.
|
||||||||
| PrintCharacter | 48695 | PUSH AF | Keep the character safe on the stack. | |||||
| 48696 | LD A,(23689) | Jump to PrintCharacter_Direct if the line byte of S_POSN (23689) is not row 3. | ||||||
| 48699 | CP 3 | |||||||
| 48701 | JR NZ,PrintCharacter_Direct | |||||||
| 48703 | POP AF | Restore the character from the stack, leaving a copy. | ||||||
| 48704 | PUSH AF | |||||||
| 48705 | CP 13 | Jump to PrintCharacter_CheckColumn if this is not a newline (13). | ||||||
| 48707 | JR NZ,PrintCharacter_CheckColumn | |||||||
|
A newline scrolls the text window and prints nothing.
|
||||||||
| 48709 | CALL ScrollScreen | Call ScrollScreen. | ||||||
| 48712 | POP AF | Discard the character from the stack. | ||||||
| 48713 | RET | Return. | ||||||
|
Check the column.
|
||||||||
| PrintCharacter_CheckColumn | 48714 | LD A,(23688) | Call ScrollScreen if *S_POSN is column 1. | |||||
| 48717 | CP 1 | |||||||
| 48719 | CALL Z,ScrollScreen | |||||||
|
Print the character.
|
||||||||
| PrintCharacter_Direct | 48722 | POP AF | Restore the character from the stack. | |||||
| 48723 | RST 16 | Print it with PRINT_A_1. | ||||||
| 48724 | RET | Return. | ||||||
|
View the equivalent code in;
|
||||||||
| Prev: 48686 | Up: Map | Next: 48725 |