| Dynamite Dan | Routines |
| Prev: D607 | Up: Map | Next: D655 |
|
||||||||
| D61E | INC A | Add 2 to the Y co-ordinate and set it. | ||||||
| D61F | INC A | |||||||
| D620 | LD ($C872),A | |||||||
| D623 | LD A,($C87B) | Get some lift flags. (C87B) | ||||||
| D626 | BIT 2,A | Is Dan standing on the lift? | ||||||
| D628 | JR NZ,$D639 | Jump forward if so. | ||||||
|
Dan is in mid air.
|
||||||||
| D62A | LD A,($CFCB) | Get the note to play while falling. | ||||||
| D62D | DEC A | Decrement the note to 0, then start again from 00C, cycling repeatedly. | ||||||
| D62E | AND A | |||||||
| D62F | JR NZ,$D633 | |||||||
| D631 | LD A,$0C | |||||||
| D633 | LD ($CFCB),A | |||||||
| D636 | CALL $DB01 | Play the "falling through air" sound. | ||||||
|
Update the graphic buffer, shifting everything down by two rows.
|
||||||||
| D639 | LD HL,$62D6 | Point HL to Dan's current graphic (62D6) | ||||||
| D63C | PUSH HL | Remember this value. | ||||||
| D63D | LD BC,$0006 | Move forward 2 rows. | ||||||
| D640 | ADD HL,BC | |||||||
| D641 | POP DE | Restore the original pointer. | ||||||
| D642 | LD BC,$004E | Copy all the data forward. | ||||||
| D645 | LDIR | |||||||
| D647 | EX DE,HL | |||||||
|
Now copy the data from the row below into the buffer.
|
||||||||
| D648 | LD DE,($C872) | Get Dan's Y co-ordinate in DE. | ||||||
| D64C | LD A,$1A | Add 01A to the X co-ordinate. | ||||||
| D64E | ADD A,E | |||||||
| D64F | LD E,A | |||||||
| D650 | CALL $D655 | Copy the data to the working buffer. | ||||||
| D653 | EXX | Swap registers and return. | ||||||
| D654 | RET | |||||||
| Prev: D607 | Up: Map | Next: D655 |