Routines |
Prev: 8912 | Up: Map | Next: 89AD |
Used by the routine at 89AD.
|
||||
898B | LD A,($85CC) | Pick up the number of lives remaining from 85CC | ||
898E | LD HL,$50A0 | Set HL to the display file address at which to draw the first Willy sprite | ||
8991 | OR A | Are there any lives remaining? | ||
8992 | RET Z | Return if not | ||
8993 | LD B,A | Initialise B to the number of lives remaining | ||
The sprite-drawing loop begins.
|
||||
8994 | LD C,$00 | C=0; this tells the sprite-drawing routine at 9456 to overwrite any existing graphics | ||
8996 | PUSH HL | Save HL and BC briefly | ||
8997 | PUSH BC | |||
8998 | LD A,($85E1) | Pick up the in-game music note index from 85E1; this will determine the animation frame for the Willy sprites | ||
899B | RLCA | Now A=0x00 (frame 0), 0x20 (frame 1), 0x40 (frame 2) or 0x60 (frame 3) | ||
899C | RLCA | |||
899D | RLCA | |||
899E | AND $60 | |||
89A0 | LD E,A | Point DE at the corresponding Willy sprite (at 9D00+A) | ||
89A1 | LD D,$9D | |||
89A3 | CALL $9456 | Draw the Willy sprite on the screen | ||
89A6 | POP BC | Restore HL and BC | ||
89A7 | POP HL | |||
89A8 | INC HL | Move HL along to the location at which to draw the next Willy sprite | ||
89A9 | INC HL | |||
89AA | DJNZ $8994 | Jump back to draw any remaining sprites | ||
89AC | RET |
Prev: 8912 | Up: Map | Next: 89AD |