Routines |
Prev: 8E9B | Up: Map | Next: 8F31 |
Used by the routine at 8F9F.
|
||||
8EDD | LD A,($9179) | Increase the frame number between 0 and 3. | ||
8EE0 | INC A | |||
8EE1 | AND $03 | |||
8EE3 | LD ($9179),A | |||
8EE6 | OR A | Is the frame zero? | ||
8EE7 | JP NZ,$9048 | Exit if so. | ||
8EEA | LD HL,$5C7C | Get the current Y co-ordinate. | ||
8EED | INC (HL) | Move up two rows. | ||
8EEE | INC (HL) | |||
8EEF | LD A,$BE | Has the angel reached the top of the screen? | ||
8EF1 | CP (HL) | |||
8EF2 | JR NC,$8F12 | Move forward if not. | ||
The angel has now reached the top of the screen.
|
||||
8EF4 | LD HL,$7780 | 7780 is the empty graphic. | ||
8EF7 | LD ($ECE0),HL | Store the graphic to draw. | ||
8EFA | LD HL,($5C7B) | Get the player's position. | ||
8EFD | LD ($ECDE),HL | |||
8F00 | CALL $EBE0 | Draw (erase) the graphic. | ||
8F03 | LD HL,$8D53 | Get the game flags. | ||
8F06 | RES 1,(HL) | Reset flag 1 (Monty in mid-air). | ||
8F08 | SET 0,(HL) | Set flag 0 (nasties can move) | ||
8F0A | LD A,$FF | Set the frame to FF denoting "not used" | ||
8F0C | LD ($9179),A | |||
8F0F | JP $9048 | Exit to restore all registers. | ||
The angel needs redrawing.
|
||||
8F12 | LD HL,($9177) | Move the current position up a row. | ||
8F15 | LD DE,$0020 | |||
8F18 | ADD HL,DE | |||
8F19 | RES 7,L | |||
8F1B | LD ($9177),HL | |||
8F1E | LD DE,$FF60 | Move back to get an appropriate screen address. | ||
8F21 | ADD HL,DE | |||
8F22 | LD ($ECE0),HL | Set this as the graphic to print. | ||
8F25 | LD HL,($5C7B) | Set the current position as the position to draw. | ||
8F28 | LD ($ECDE),HL | |||
8F2B | CALL $EBE0 | Draw the graphic. | ||
8F2E | JP $9048 | Exit to restore all registers. |
Prev: 8E9B | Up: Map | Next: 8F31 |