|  | Routines | 
| Prev: 8576 | Up: Map | Next: 869B | 
| 
Used by the routine at 8576.
 
 | |||||||||||||||||||||||
| 
Prints using the standard ZX Spectrum CHARSET.
 | |||||||||||||||||||||||
| PrintChar | 867A | PUSH AF | Push AF, BC, DE and HL on the stack. | ||||||||||||||||||||
| 867B | PUSH BC | ||||||||||||||||||||||
| 867C | PUSH DE | ||||||||||||||||||||||
| 867D | PUSH HL | ||||||||||||||||||||||
| 867E | SUB $20 | Create offset for the font graphic data look-up. For example; 
 | |||||||||||||||||||||
| 8680 | LD L,A | ||||||||||||||||||||||
| 8681 | LD H,$00 | ||||||||||||||||||||||
| 8683 | ADD HL,HL | ||||||||||||||||||||||
| 8684 | ADD HL,HL | ||||||||||||||||||||||
| 8685 | ADD HL,HL | ||||||||||||||||||||||
| 8686 | LD DE,$3D00 | Calculate font graphic data address using CHARSET + offset. | |||||||||||||||||||||
| 8689 | ADD HL,DE | ||||||||||||||||||||||
| 868A | EX DE,HL | Store the result in DE, restore the screen location to HL. | |||||||||||||||||||||
| 868B | POP HL | ||||||||||||||||||||||
| 868C | PUSH HL | ||||||||||||||||||||||
| 868D | LD B,$08 | Set a counter for $08 lines. | |||||||||||||||||||||
| PrintChar_Loop | 868F | LD A,(DE) | Fetch the font byte and copy it to the screen. | ||||||||||||||||||||
| 8690 | LD (HL),A | ||||||||||||||||||||||
| 8691 | INC DE | Move onto the next font data byte. | |||||||||||||||||||||
| 8692 | INC H | Move the screen pointer down one row. | |||||||||||||||||||||
| 8693 | DJNZ PrintChar_Loop | Decrease counter by one and loop back to PrintChar_Loop until counter is zero. | |||||||||||||||||||||
| 8695 | POP HL | Restore HL, DE, BC and AF off the stack. | |||||||||||||||||||||
| 8696 | POP DE | ||||||||||||||||||||||
| 8697 | POP BC | ||||||||||||||||||||||
| 8698 | POP AF | ||||||||||||||||||||||
| 8699 | INC L | Move the screen pointer across one column, ready for printing the next character. | |||||||||||||||||||||
| 869A | RET | Return. | |||||||||||||||||||||
| Prev: 8576 | Up: Map | Next: 869B |