![]() |
Routines |
| A | Character code |
| C | Vertical pixel lines remaining in buffer |
| HL' | Address of last byte in message buffer |
| 27110 | LD E,A | E=ASCII character code (32-127) |
| 27111 | LD D,215 | DE=anything from 55072 to 55167 |
| 27113 | LD A,(DE) | A=width of character in pixels (1-5) |
| 27114 | LD B,A | Store this in B |
| 27115 | INC D | |
| 27116 | LD A,(DE) | A=bit pattern for one pixel column of the character |
| 27117 | CALL 27125 | Slide this into the message buffer |
| 27120 | DEC C | One fewer pixel column remaining in the message buffer |
| 27121 | DJNZ 27115 | Jump back until all pixel columns for the character have been copied into the message buffer |
| 27123 | DEC C | One fewer pixel column remaining in the message buffer |
| 27124 | XOR A | A=0 (blank pixel column) |
| 27125 | EXX | |
| 27126 | PUSH HL | |
| 27127 | LD C,8 | 8 pixels per column |
| 27129 | LD B,8 | 8 bytes per pixel row (this is LD B,32 during startup; see 21408) |
| 27131 | RRCA | Push a pixel into the carry flag |
| 27132 | RL (HL) | Drag the pixel into the message buffer and shove the existing pixels one place to the left |
| 27134 | DEC HL | |
| 27135 | DJNZ 27132 | |
| 27137 | DEC C | |
| 27138 | JR NZ,27129 | Jump back to collect the next pixel up |
| 27140 | POP HL | Restore the address of the last byte in the message buffer to HL' |
| 27141 | EXX | |
| 27142 | RET |