|  | Routines | 
| Prev: 38670 | Up: Map | Next: 38740 | 
| 
Used by the routines at Print_ASCII_Space, PrintString_Loop, ControlCode_Repeater and ControlCode_01.
 
 | ||||||||
| PrintCharacter | 38710 | PUSH HL | Stash the string pointer and the character to print on the stack. | |||||
| 38711 | PUSH AF | |||||||
| 
Check the buffer status.
 | ||||||||
| 38712 | LD A,(63509) | Jump to Controller_CharacterPrinting if *Buffer_Counter is empty. | ||||||
| 38715 | AND A | |||||||
| 38716 | JR Z,Controller_CharacterPrinting | |||||||
| 
Buffer handling.
 | ||||||||
| 38718 | POP AF | A=the character to print (from the stack). | ||||||
| 38719 | PUSH AF | Keep a copy of the character to print on the stack. | ||||||
| 38720 | LD HL,(63498) | HL=*Buffer_Pointer. | ||||||
| 38723 | LD (HL),A | Write the character to print into the buffer. | ||||||
| 38724 | INC HL | Increment the character printing buffer pointer by one. | ||||||
| 38725 | LD (63498),HL | Update the *Buffer_Pointer. | ||||||
| 
Update the buffer counter.
 | ||||||||
| 38728 | LD A,(63509) | A=*Buffer_Counter. | ||||||
| 38731 | DEC A | Decrease the buffer counter by one. | ||||||
| 38732 | LD (63509),A | Update the *Buffer_Counter. | ||||||
| 38735 | JR Z,Handler_ControlCode | Jump to Handler_ControlCode if the buffer is now empty. | ||||||
| 38737 | POP AF | Restore the character to print and the string pointer from the stack. | ||||||
| 38738 | POP HL | |||||||
| 38739 | RET | Return. | ||||||
| Prev: 38670 | Up: Map | Next: 38740 |