|  | Routines | 
| Prev: 970E | Up: Map | Next: 9754 | 
| 
Used by the routines at Print_ASCII_Space, PrintString_Loop, ControlCode_Repeater and ControlCode_01.
 
 | ||||||||
| PrintCharacter | 9736 | PUSH HL | Stash the string pointer and the character to print on the stack. | |||||
| 9737 | PUSH AF | |||||||
| 
Check the buffer status.
 | ||||||||
| 9738 | LD A,($F815) | Jump to Controller_CharacterPrinting if *Buffer_Counter is empty. | ||||||
| 973B | AND A | |||||||
| 973C | JR Z,Controller_CharacterPrinting | |||||||
| 
Buffer handling.
 | ||||||||
| 973E | POP AF | A=the character to print (from the stack). | ||||||
| 973F | PUSH AF | Keep a copy of the character to print on the stack. | ||||||
| 9740 | LD HL,($F80A) | HL=*Buffer_Pointer. | ||||||
| 9743 | LD (HL),A | Write the character to print into the buffer. | ||||||
| 9744 | INC HL | Increment the character printing buffer pointer by one. | ||||||
| 9745 | LD ($F80A),HL | Update the *Buffer_Pointer. | ||||||
| 
Update the buffer counter.
 | ||||||||
| 9748 | LD A,($F815) | A=*Buffer_Counter. | ||||||
| 974B | DEC A | Decrease the buffer counter by one. | ||||||
| 974C | LD ($F815),A | Update the *Buffer_Counter. | ||||||
| 974F | JR Z,Handler_ControlCode | Jump to Handler_ControlCode if the buffer is now empty. | ||||||
| 9751 | POP AF | Restore the character to print and the string pointer from the stack. | ||||||
| 9752 | POP HL | |||||||
| 9753 | RET | Return. | ||||||
| Prev: 970E | Up: Map | Next: 9754 |