![]() |
Routines |
| Prev: EC4C | Up: Map | Next: ECBD |
|
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 |