![]() |
Routines |
| Prev: 8F63 | Up: Map | Next: 8FF4 |
|
Used by the routine at 870E. First check whether Willy has entered the portal.
|
||||
| 8FC5 | LD HL,($80B0) | Pick up the address of the portal's location in the attribute buffer at 5C00 from 80B0 | ||
| 8FC8 | LD A,($806C) | Pick up the LSB of the address of Willy's location in the attribute buffer at 5C00 from 806C | ||
| 8FCB | CP L | Does it match that of the portal? | ||
| 8FCC | JR NZ,$8FDF | Jump if not | ||
| 8FCE | LD A,($806D) | Pick up the MSB of the address of Willy's location in the attribute buffer at 5C00 from 806D | ||
| 8FD1 | CP H | Does it match that of the portal? | ||
| 8FD2 | JR NZ,$8FDF | Jump if not | ||
| 8FD4 | LD A,($808F) | Pick up the portal's attribute byte from 808F | ||
| 8FD7 | BIT 7,A | Is the portal flashing? | ||
| 8FD9 | JR Z,$8FDF | Jump if not | ||
| 8FDB | POP HL | Drop the return address from the stack | ||
| 8FDC | JP $9028 | Move Willy to the next cavern | ||
|
Willy has not entered the portal, or it's not flashing, so just draw it.
|
||||
| 8FDF | LD A,($808F) | Pick up the portal's attribute byte from 808F | ||
| 8FE2 | LD (HL),A | Set the attribute bytes for the portal in the buffer at 5C00 | ||
| 8FE3 | INC HL | |||
| 8FE4 | LD (HL),A | |||
| 8FE5 | LD DE,$001F | |||
| 8FE8 | ADD HL,DE | |||
| 8FE9 | LD (HL),A | |||
| 8FEA | INC HL | |||
| 8FEB | LD (HL),A | |||
| 8FEC | LD DE,$8090 | Point DE at the graphic data for the portal at 8090 | ||
| 8FEF | LD HL,($80B2) | Pick up the address of the portal's location in the screen buffer at 6000 from 80B2 | ||
| 8FF2 | LD C,$00 | C=0: overwrite mode | ||
|
This routine continues into the one at 8FF4.
|
||||
| Prev: 8F63 | Up: Map | Next: 8FF4 |