Prev: EC4C Up: Map Next: ECBD
EC75: Clear the panel's box for the thing in use, and number it
Used by the routines at SHOW_THING_IN_USE, CREATURE_UPDATE and MAIN_LOOP.
The author's INFO0 (named by its calls in the leftover source text). The panel shows the thing in use in a box 24 pixels wide and 32 high at x 20, row 40 down, and the number of its carried place (1-5) above it at x 10, y 50. The box is put back as the clean copy of the screen (LOADING_TUNE) has it: the compositor (COMPOSITE_TO_SCREEN) is given its second plane all set, which takes every pixel from the clean copy, so whatever sprite it finds does not matter. Then the digit is printed, from SELECTED. Called on its own when a thing is dropped (CREATURE_UPDATE) or an empty place is chosen (MAIN_LOOP), and by SHOW_THING_IN_USE.
CLEAR_THING_BOX EC75 LD B,$20 the second plane all set: every pixel from the clean copy
EC77 LD HL,BUFFER_DA00
EC7A LD DE,$FFFF
EC7D CALL FILL_BELOW
EC80 LD HL,BUFFER_D900 the first plane clear
EC83 LD B,$20
EC85 CALL CLEAR_BELOW
EC88 LD HL,$2814 the box: x 20, row 40, 24 by 32
EC8B LD (POINT),HL
EC8E LD HL,$2018
EC91 LD (SECOND_POINT),HL
EC94 LD HL,BUFFER_D800 not used: COMPOSITE_TO_SCREEN loads HL itself
EC97 LD (IY+WORK_DIRECTION-V),$00 nothing else to merge; 4 bytes wide
EC9B LD A,$04
EC9D LD (DRAW_WIDTH),A
ECA0 CALL COMPOSITE_TO_SCREEN put the box back
ECA3 LD A,(SELECTED) the place in use ($9F-$A7 in twos) as a digit 1-5, into the string
ECA6 SUB $9E
ECA8 RRA
ECA9 ADD A,$1C
ECAB LD ($ECB4),A
ECAE CALL PRINT print it (the string follows the CALL, laid out by the data generator)
ECB1 DEFB $C8,$0A,$32 Print at x 10, y 50
ECB4 DEFB $00 " "
ECB5 DEFB $A4 End of the string
ECB6 LD HL,$2814
ECB9 LD (POINT),HL
ECBC RET
Prev: EC4C Up: Map Next: ECBD