|  | Routines | 
| Prev: D962 | Up: Map | Next: DBAE | 
| 
Used by the routine at 947A.
 | ||||
| DAC0 | LD A,$00 | Set screen border color to black | ||
| DAC2 | OUT ($FE),A | |||
| DAC4 | LD DE,$6018 | Copy graphic data of FOOTMAN falling at $E336 into the buffer at $6018 | ||
| DAC7 | LD HL,$E336 | |||
| DACA | LD BC,$00C0 | |||
| DACD | LDIR | |||
| DACF | LD DE,$4000 | Copy the contents of the screen buffer at E4FF to the display and attribute file | ||
| DAD2 | LD HL,$E4FF | |||
| DAD5 | LD BC,$1B00 | |||
| DAD8 | LDIR | |||
| DADA | LD B,$05 | Set B to the number of lines of text of the select control popup | ||
| DADC | LD IX,$DF05 | Point IX at the first byte of the text definition data for the select control popup | ||
| DAE0 | CALL $A13E | Draws the select control popup on display file | ||
| DAE3 | LD DE,$E4FF | Copy the display and attribute file to the screen buffer at E4FF | ||
| DAE6 | LD HL,$4000 | |||
| DAE9 | LD BC,$1B00 | |||
| DAEC | LDIR | |||
| 
Prepares to display the enemies windows showroom on title screen
 | ||||
| DAEE | LD DE,$4000 | Copy the contents of the screen buffer at E4FF to the display and attribute file | ||
| DAF1 | LD HL,$E4FF | |||
| DAF4 | LD BC,$1B00 | |||
| DAF7 | LDIR | |||
| DAF9 | XOR A | Set A=0 | ||
| DAFA | LD ($A07F),A | Initialise the animation frame number for the enemy animation on tile screen at A07F | ||
| DAFD | LD ($A085),A | Initialise the enemy windows of the tile screen to hidden at A085 | ||
| DB00 | LD HL,$E05B | Initialise address for the animation definition at A083 | ||
| DB03 | LD ($A083),HL | |||
| DB06 | LD A,$32 | Initialise loop counter at A065 | ||
| DB08 | LD ($A065),A | |||
| DB0B | LD HL,$DC26 | Initialise the pointer to the first byte of the windows definition for the FOOT MAN POINTS popup | ||
| DB0E | LD ($A086),HL | |||
| 
Draws the windows, the animated enemies and check for keyboard inputs There is a routine that waits aprox. 100 ms every loop of the counter (50 times), so the windows display duration and the duration between windows is aprox. 5 seconds.
 | ||||
| DB11 | LD HL,($A083) | Set HL to the address pointer to the enemy animation definition | ||
| DB14 | CALL $E00B | Draws the animation frame for the corresponding enemy | ||
| DB17 | LD BC,$07D0 | Set BC=2000 | ||
| DB1A | CALL $C8DB | Wait ~ 100ms = 182 t-states 2000 times | ||
| DB1D | LD BC,$F7FE | Read keys 1-2-3-4-5 into A | ||
| DB20 | IN A,(C) | |||
| DB22 | BIT 3,A | Key 4 is pressed? | ||
| DB24 | JP Z,$DE5D | Jump if so | ||
| DB27 | LD BC,$F7FE | Read keys 1-2-3-4-5 into A | ||
| DB2A | IN A,(C) | |||
| DB2C | BIT 2,A | Key 3 is pressed? | ||
| DB2E | JP Z,$DE99 | Jump if so | ||
| DB31 | LD BC,$F7FE | Read keys 1-2-3-4-5 into A | ||
| DB34 | IN A,(C) | |||
| DB36 | BIT 1,A | Key 2 is pressed? | ||
| DB38 | JP Z,$DE20 | Jump if so | ||
| DB3B | LD BC,$F7FE | Read keys 1-2-3-4-5 into A | ||
| DB3E | IN A,(C) | |||
| DB40 | BIT 0,A | Key 1 is pressed? | ||
| DB42 | JP Z,$DD54 | Jump if so | ||
| DB45 | LD A,($A065) | Decrease the loop counter at A065 | ||
| DB48 | DEC A | |||
| DB49 | LD ($A065),A | |||
| DB4C | OR A | The loop counter is $00? | ||
| DB4D | JP NZ,$DB11 | Jump back if not | ||
| DB50 | LD A,$32 | Reset the loop counter at A065 to $32 | ||
| DB52 | LD ($A065),A | |||
| DB55 | LD A,($A085) | Show/hide the enemy windows in the title screen | ||
| DB58 | XOR $01 | |||
| DB5A | LD ($A085),A | |||
| DB5D | OR A | Is the enemy windows hidden? | ||
| DB5E | JP Z,$DB90 | Jump if so | ||
| DB61 | LD HL,($A083) | Set HL to the value of the current address of the enemy animation defnition | ||
| DB64 | LD DE,$000C | Point HL to the next enemy animation definition | ||
| DB67 | ADD HL,DE | |||
| DB68 | LD A,(HL) | Pick up the first byte of the enemy animation definition | ||
| DB69 | CP $FF | Is an end marker? | ||
| DB6B | JP NZ,$DB71 | Jump if not | ||
| DB6E | LD HL,$E067 | Point A083 to the initial enemy animation definition address | ||
| DB71 | LD ($A083),HL | |||
| DB74 | LD IX,($A086) | Point IX to the address of the text definition data at A086 | ||
| DB78 | LD B,$02 | Set B to the number of files of the windows | ||
| DB7A | CALL $A13E | Draw the corresponding windows in tile screen | ||
| DB7D | LD A,(IX+$00) | Set A to the first byte of the text definition data | ||
| DB80 | CP $FF | Is an end marker? | ||
| DB82 | JP NZ,$DB89 | Jump if not | ||
| DB85 | LD IX,$DC26 | Set IX to the address of the first windows definition (FOOT MAN) at DC26 | ||
| DB89 | LD ($A086),IX | Save to A086 this windows defintion address | ||
| DB8D | JP $DB11 | Jump back | ||
| DB90 | CALL $DB96 | Hide the current visible enemy animation windows | ||
| DB93 | JP $DB11 | Jump back | ||
| 
Hide the current visible enemy animation windows
 | ||||
| DB96 | LD HL,$5800 | Draw a rectangle (15x4) of color attribute $02 directly into the attribute file It does not seem necessary because later overwrites it with the content of the screen buffer | ||
| DB99 | LD B,$04 | |||
| DB9B | LD E,$0F | |||
| DB9D | LD A,$02 | |||
| DB9F | CALL $D909 | |||
| DBA2 | LD DE,$4000 | Copy the contents of the screen buffer at $E4FF into de display file | ||
| DBA5 | LD HL,$E4FF | |||
| DBA8 | LD BC,$1B00 | |||
| DBAB | LDIR | |||
| DBAD | RET | |||
| Prev: D962 | Up: Map | Next: DBAE |