Prev: 0038 Up: Map Next: 01CD
01AB: Print Banner
Used by the routine at HandleInterrupt.
Copy the "speech system © CURRAH 1983" bitmaps into the display file, using BannerAddresses.
Input
HL Workspace flags pointer
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