Prev: BEB3 Up: Map Next: BEE4
BEBF: Print a list of strings
Used by the routines at game_over_summary and game_complete_msg.
Prints each string at its position in its colour. The first list printed after $5BB8 is cleared also draws the border and copies the buffer to the screen; later calls only redraw into the buffer (and write the attributes directly), which is how the menu can update its flashing lines every pass without redrawing the screen.
Input
B how many
DE' the colours, one byte per string
HL the positions, an (x, y) pair per string
DE the strings, one after another, in the text code without colour bytes
display_text_list BEBF EXX this string's colour, for print_text_single_colour
BEC0 LD A,(DE)
BEC1 LD ($5BB6),A
BEC4 INC DE
BEC5 EXX
BEC6 PUSH BC L = x, H = y; HL advanced to the next pair
BEC7 LD A,(HL)
BEC8 INC HL
BEC9 INC HL
BECA PUSH HL
BECB DEC HL
BECC LD H,(HL)
BECD LD L,A
BECE CALL print_text_single_colour
BED1 POP HL
BED2 POP BC
BED3 DJNZ display_text_list
BED5 LD A,($5BB8) already shown once: leave the screen alone
BED8 AND A
BED9 RET NZ
BEDA INC A first time: flag it, draw the border and show the buffer
BEDB LD ($5BB8),A
BEDE CALL print_border
BEE1 JP update_screen
Prev: BEB3 Up: Map Next: BEE4