![]()  | 
Routines | 
| Prev: 34166 | Up: Map | Next: 34459 | 
| 
 
Used by the routine at 34166.
 
  | 
|||||||||||||||||||||||
| 
 
Prints using the standard ZX Spectrum CHARSET.
 
 | 
|||||||||||||||||||||||
| PrintChar | 34426 | PUSH AF | Push AF, BC, DE and HL on the stack. | ||||||||||||||||||||
| 34427 | PUSH BC | ||||||||||||||||||||||
| 34428 | PUSH DE | ||||||||||||||||||||||
| 34429 | PUSH HL | ||||||||||||||||||||||
| 34430 | SUB 32 | Create offset for the font graphic data look-up. For example; 
  | 
|||||||||||||||||||||
| 34432 | LD L,A | ||||||||||||||||||||||
| 34433 | LD H,0 | ||||||||||||||||||||||
| 34435 | ADD HL,HL | ||||||||||||||||||||||
| 34436 | ADD HL,HL | ||||||||||||||||||||||
| 34437 | ADD HL,HL | ||||||||||||||||||||||
| 34438 | LD DE,15616 | Calculate font graphic data address using CHARSET + offset. | |||||||||||||||||||||
| 34441 | ADD HL,DE | ||||||||||||||||||||||
| 34442 | EX DE,HL | Store the result in DE, restore the screen location to HL. | |||||||||||||||||||||
| 34443 | POP HL | ||||||||||||||||||||||
| 34444 | PUSH HL | ||||||||||||||||||||||
| 34445 | LD B,8 | Set a counter for 8 lines. | |||||||||||||||||||||
| PrintChar_Loop | 34447 | LD A,(DE) | Fetch the font byte and copy it to the screen. | ||||||||||||||||||||
| 34448 | LD (HL),A | ||||||||||||||||||||||
| 34449 | INC DE | Move onto the next font data byte. | |||||||||||||||||||||
| 34450 | INC H | Move the screen pointer down one row. | |||||||||||||||||||||
| 34451 | DJNZ PrintChar_Loop | Decrease counter by one and loop back to PrintChar_Loop until counter is zero. | |||||||||||||||||||||
| 34453 | POP HL | Restore HL, DE, BC and AF off the stack. | |||||||||||||||||||||
| 34454 | POP DE | ||||||||||||||||||||||
| 34455 | POP BC | ||||||||||||||||||||||
| 34456 | POP AF | ||||||||||||||||||||||
| 34457 | INC L | Move the screen pointer across one column, ready for printing the next character. | |||||||||||||||||||||
| 34458 | RET | Return. | |||||||||||||||||||||
| Prev: 34166 | Up: Map | Next: 34459 |