| Currah μSpeech | Routines |
| Prev: 0038 | Up: Map | Next: 01CD |
|
Used by the routine at HandleInterrupt.
Copy the "speech system © CURRAH 1983" bitmaps into the display file, using BannerAddresses.
|
||||||||
| PrintBanner | 01AB | LD DE,$4000 | Start at the top of the display file. | |||||
| 01AE | LD BC,$075B | Use the banner address list. | ||||||
| 01B1 | RES 7,(HL) | Mark the banner as drawn. | ||||||
| PrintBanner_Loop | 01B3 | LD A,(BC) | Fetch the next bitmap address. | |||||
| 01B4 | LD L,A | |||||||
| 01B5 | INC BC | |||||||
| 01B6 | LD A,(BC) | Return if the list has ended. | ||||||
| 01B7 | CP $FF | |||||||
| 01B9 | RET Z | |||||||
| 01BA | LD H,A | Complete the bitmap pointer. | ||||||
| 01BB | PUSH BC | Stash the list pointer on the stack. | ||||||
| 01BC | LD B,$08 | Set the row counter to 08. | ||||||
| PrintBanner_Column | 01BE | LD A,(HL) | Write one pixel row to the display file. | |||||
| 01BF | LD (DE),A | |||||||
| 01C0 | INC HL | Move to the next pixel row. | ||||||
| 01C1 | INC D | |||||||
| 01C2 | DJNZ PrintBanner_Column | Decrease the row counter and loop back to PrintBanner_Column until the character is done. | ||||||
| 01C4 | LD A,D | Return to the top of the character cell. | ||||||
| 01C5 | SUB $08 | |||||||
| 01C7 | LD D,A | |||||||
| 01C8 | INC DE | Move to the next character column. | ||||||
| 01C9 | POP BC | Restore the list pointer from the stack. | ||||||
| 01CA | INC BC | Move to the next address. | ||||||
| 01CB | JR PrintBanner_Loop | Jump to PrintBanner_Loop. | ||||||
| Prev: 0038 | Up: Map | Next: 01CD |