![]() |
Routines |
| Prev: 5D4F | Up: Map | Next: 5DDB |
| 5D63 | LD HL,$7FF3 | 7FF3 holds ERIC's main action timer | ||
| 5D66 | DEC (HL) | Is it time for ERIC to land? | ||
| 5D67 | RET NZ | Return if not | ||
| 5D68 | LD L,$FB | Reset all of ERIC's status flags at 7FFB (ERIC is no longer doing anything special) | ||
| 5D6A | LD (HL),$00 | |||
| 5D6C | LD H,$D2 | 0xD2=ERIC | ||
| 5D6E | CALL $F986 | Set the zero flag if ERIC is in the same position as a plant pot | ||
| 5D71 | LD A,$02 | Bit 1 set at 7FFB: make the routine at F7AD inspect ERIC's other status flags at 7FED; bit 1 set at 7FED: ERIC is standing on a plant pot | ||
| 5D73 | JR NZ,$5D84 | Jump if ERIC's not in the same position as a plant pot | ||
|
This entry point is used by the routine at 5EC7 with A=0.
|
||||
| 5D75 | LD DE,$7FFB | Set or reset the appropriate status flags at 7FFB | ||
| 5D78 | LD (DE),A | |||
| 5D79 | LD E,$ED | Set or reset the appropriate status flags at 7FED | ||
| 5D7B | LD (DE),A | |||
| 5D7C | CALL $61B4 | Update the SRB for ERIC's current animatory state and location | ||
| 5D7F | AND $80 | Restore ERIC's animatory state to 0x00 (facing left) or 0x80 (facing right) as appropriate | ||
|
This entry point is used by the routine at 5D4F.
|
||||
| 5D81 | JP $F317 | Update ERIC's animatory state and update the SRB | ||
|
ERIC has jumped, but not onto a plant pot.
|
||||
| 5D84 | LD L,A | L=0x02 | ||
| 5D85 | LD A,(HL) | A=ERIC's y-coordinate | ||
| 5D86 | SUB L | |||
| 5D87 | JR Z,$5D91 | Jump if ERIC jumped while on the top floor | ||
| 5D89 | LD H,$D2 | 0xD2=ERIC | ||
| 5D8B | CALL $61B4 | Update the SRB for ERIC's current animatory state and location | ||
| 5D8E | INC D | Increment ERIC's y-coordinate, bringing him back to the floor | ||
| 5D8F | JR $5D7F | Restore ERIC's animatory state and update the SRB | ||
|
ERIC jumped while on the top floor. Up to the drinks cabinet?
|
||||
| 5D91 | LD L,A | L=0x00 | ||
| 5D92 | LD A,(HL) | A=ERIC's animatory state | ||
| 5D93 | INC L | Now A=x-coordinate of ERIC's raised arm | ||
| 5D94 | RLCA | |||
| 5D95 | SBC A,A | |||
| 5D96 | ADD A,A | |||
| 5D97 | CPL | |||
| 5D98 | INC A | |||
| 5D99 | ADD A,(HL) | |||
| 5D9A | LD HL,$7FF4 | 7FF4 holds the door/window status flags | ||
| 5D9D | CP $BE | Did ERIC jump up to the drinks cabinet? | ||
| 5D9F | JR C,$5DBC | Jump if not | ||
| 5DA1 | BIT 5,(HL) | Is the drinks cabinet door open? | ||
| 5DA3 | JR Z,$5D89 | Just bring ERIC back to the floor if not | ||
|
ERIC has jumped up to the drinks cabinet, and it's open. But has he got the water pistol?
|
||||
| 5DA5 | LD L,$EB | HL=7FEB (which holds the inventory flags) | ||
| 5DA7 | BIT 4,(HL) | Has ERIC already got a sherry-filled water pistol? | ||
| 5DA9 | JR NZ,$5D89 | Jump if so | ||
| 5DAB | BIT 3,(HL) | Has ERIC got a water-filled water pistol? | ||
| 5DAD | JR Z,$5D89 | Jump if not | ||
| 5DAF | SET 4,(HL) | Signal: ERIC now has a sherry-filled water pistol | ||
| 5DB1 | CALL $7C02 | Print the inventory | ||
|
Acknowledge the sherry-filled water pistol with a sound effect.
|
||||
| 5DB4 | LD HL,$0216 | Make a sound effect | ||
| 5DB7 | CALL $F2C6 | |||
| 5DBA | JR $5D89 | Bring ERIC back to the floor | ||
|
ERIC has jumped, but not onto a plant pot or up to the drinks cabinet. Up to the safe?
|
||||
| 5DBC | CP $51 | Did ERIC jump up to the safe in WACKER's study? | ||
| 5DBE | JR NZ,$5D89 | Jump if not | ||
| 5DC0 | LD L,$EB | HL=7FEB (which holds the inventory flags) | ||
| 5DC2 | BIT 0,(HL) | Has ERIC got the safe key? | ||
| 5DC4 | JR Z,$5D89 | Just bring ERIC back to the floor if not | ||
|
ERIC has jumped up to the safe, and he has the safe key. Celebration time.
|
||||
| 5DC6 | LD L,$DE | Set 7FDE to 1 so the game will be restarted instead of going into demo mode | ||
| 5DC8 | INC (HL) | |||
| 5DC9 | LD A,$C8 | Add 2000 to the score and print it | ||
| 5DCB | CALL $73B5 | |||
| 5DCE | XOR A | A=0x00: 'ONTO THE NEXT YEAR' | ||
| 5DCF | CALL $7EDE | Print this in the lesson box and ring the bell | ||
| 5DD2 | LD HL,$DC2B | Play the up-a-year tune | ||
| 5DD5 | CALL $5FA5 | |||
| 5DD8 | JP $F6D5 | Restart the game | ||
| Prev: 5D4F | Up: Map | Next: 5DDB |