Prev: CB5A Up: Map Next: CBC3
CB8A: Draw the border round the screen
Used by the routines at GAME_ENDED and DISPLAY_MENU.
From BORDER_DATA, into the buffer through the spare record at PANEL_RECORD: the corner sprite (graphic 4) drawn four times, turned each way; the top and bottom edges as 24 pieces of graphic 6, 8 pixels apart; and the sides as 128 of graphic 5 -- a sprite one pixel high -- a pixel apart. It frames the menu (DISPLAY_MENU, the first text list printed) and the screens after a game (GAME_ENDED); a room has none. Knight Lore's print_border, with the same counts and steps.
PRINT_BORDER CB8A LD IX,PANEL_RECORD IX = the spare record; the first entry
CB8E LD HL,BORDER_DATA
CB91 CALL TRANSFER_SPRITE_AND_PRINT The four corners
CB94 CALL TRANSFER_SPRITE_AND_PRINT
CB97 CALL TRANSFER_SPRITE_AND_PRINT
CB9A CALL TRANSFER_SPRITE_AND_PRINT
CB9D CALL TRANSFER_SPRITE The top edge: 24 pieces, 8 pixels apart
CBA0 LD DE,$0008
CBA3 LD B,$18
CBA5 CALL MULTIPLE_PRINT_SPRITE
CBA8 CALL TRANSFER_SPRITE The bottom edge, the same upside down
CBAB LD B,$18
CBAD CALL MULTIPLE_PRINT_SPRITE
CBB0 CALL TRANSFER_SPRITE The left edge: 128 pieces, a pixel apart going up
CBB3 LD DE,$0100
CBB6 LD B,$80
CBB8 CALL MULTIPLE_PRINT_SPRITE
CBBB CALL TRANSFER_SPRITE The right edge, mirrored
CBBE LD B,$80
CBC0 JP MULTIPLE_PRINT_SPRITE
Prev: CB5A Up: Map Next: CBC3