| Dynamite Dan | Routines |
| Prev: E592 | Up: Map | Next: E62F |
|
Used by the routine at C800.
|
||||
| E5E8 | LD HL,$C87E | Get the game flags. (C87E) | ||
| E5EB | BIT 7,(HL) | Is the blimp been launched? | ||
| E5ED | JR NZ,$E62F | Display the winning text if so. | ||
| E5EF | LD A,($CFCA) | Get the current room. (CFCA) | ||
| E5F2 | CP $2B | Is it the start room? (2B)? | ||
| E5F4 | RET NZ | Return if not. | ||
| E5F5 | LD A,$02 | |||
| E5F7 | LD ($CFD3),A | |||
| E5FA | LD A,($C872) | Is the Y co-ordinate 16? | ||
| E5FD | CP $16 | |||
| E5FF | RET NZ | Return if not. | ||
| E600 | LD A,($C873) | Is the X co-ordinate between 08 and 14? | ||
| E603 | SUB $0C | |||
| E605 | CP $08 | |||
| E607 | RET NC | Return if not. | ||
| E608 | BIT 1,(HL) | Does Dan have the plans? | ||
| E60A | RET Z | Return if not. | ||
|
Dan is in the blimp and has the plans. Launch it.
|
||||
| E60B | LD (HL),$80 | Set bit 7 to denote Dan has the plans, clear all other flags. | ||
| E60D | LD HL,$40B0 | Starting screen address. | ||
| E610 | LD B,$08 | Loop 8 times. | ||
| E612 | LD A,$FF | Load A with all bits set. | ||
| E614 | PUSH HL | Remember the current screen address. | ||
| E615 | LD (HL),A | Set the next three columns to this. | ||
| E616 | INC L | |||
| E617 | LD (HL),A | |||
| E618 | INC L | |||
| E619 | LD (HL),A | |||
| E61A | POP HL | Restore the screen address. | ||
| E61B | INC H | Move down a row. | ||
| E61C | DJNZ $E614 | Loop until the number of rows has been scrolled. | ||
| E61E | LD HL,$5855 | Starting attribute address. | ||
| E621 | LD (HL),$06 | Set yellow on black. | ||
| E623 | LD BC,$0904 | Fill for 9 columns, 4 rows. | ||
| E626 | LD DE,$0C05 | Start at co-ordinate 0C 05. | ||
| E629 | LD A,$05 | Fill with cyan on black. | ||
| E62B | CALL $E8BA | |||
| E62E | RET | Return for another run round the main loop. | ||
| Prev: E592 | Up: Map | Next: E62F |