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 |