Routines |
Prev: F54A | Up: Map | Next: F5B7 |
|
||||||||
F55F | LD L,$1D | Set bit 7 of byte 0x1D of MR WACKER's buffer, making him run | ||||||
F561 | SET 7,(HL) | |||||||
F563 | LD A,$FF | Set the MSB of the lesson clock at 7FE3 to 0xFF (this lesson will not end until ERIC's expelled) | ||||||
F565 | LD ($7FE4),A | |||||||
F568 | CALL $6558 | Move MR WACKER one step closer to ERIC (if he's not yet close enough) | ||||||
F56B | LD HL,$C800 | Point HL at byte 0x00 of MR WACKER's buffer | ||||||
F56E | BIT 0,(HL) | Is MR WACKER now midstride? | ||||||
F570 | RET NZ | Return if so | ||||||
F571 | INC L | L=0x01 | ||||||
F572 | LD DE,($D201) | E=ERIC's x-coordinate, D=ERIC's y-coordinate | ||||||
F576 | LD A,(HL) | A=MR WACKER's x-coordinate | ||||||
F577 | SUB E | Is MR WACKER within 3 x-coordinates of ERIC? | ||||||
F578 | ADD A,$03 | |||||||
F57A | CP $07 | |||||||
F57C | RET NC | Return if not | ||||||
F57D | INC L | L=0x02 | ||||||
F57E | LD A,(HL) | A=MR WACKER's y-coordinate | ||||||
F57F | SUB D | Is MR WACKER within 3 y-coordinates of ERIC? | ||||||
F580 | ADD A,$03 | |||||||
F582 | CP $07 | |||||||
F584 | RET NC | Return if not | ||||||
MR WACKER has found ERIC.
|
||||||||
F585 | LD HL,$7FFB | 7FFB holds ERIC's status flags | ||||||
F588 | LD (HL),$40 | Set bit 6: MR WACKER is expelling ERIC (who is now paralysed) | ||||||
F58A | LD L,$ED | HL=7FED (ERIC's other status flags) | ||||||
F58C | BIT 5,(HL) | Bit 5 is set if ERIC jumped out of the top-floor window | ||||||
F58E | LD H,$C8 | 0xC8=MR WACKER | ||||||
F590 | LD E,$63 | Message 0x63: YOU HAVE 10000 LINES... | ||||||
F592 | JR Z,$F595 | Jump if ERIC didn't jump out of the top-floor window (i.e. he has 10000 lines) | ||||||
F594 | INC E | E=0x64: YOU ARE NOT A BIRD... | ||||||
F595 | LD BC,$6A08 | Redirect control to the routine at 6A08 (make character speak) and return to F59B (below) when done | ||||||
F598 | CALL $639F | |||||||
F59B | LD DE,($7FE5) | Collect the score from 7FE5 into DE | ||||||
F59F | LD HL,($7FE9) | Collect the current hi-score from 7FE9 into HL | ||||||
F5A2 | AND A | Clear the carry flag ready for subtraction | ||||||
F5A3 | SBC HL,DE | Do we have a new hi-score? | ||||||
F5A5 | JR NC,$F5AB | Jump if not | ||||||
F5A7 | LD ($7FE9),DE | Insert the new hi-score | ||||||
F5AB | LD HL,$0000 | Reset the score (at 7FE5) and the lines total (at 7FE7) to 0 | ||||||
F5AE | LD ($7FE5),HL | |||||||
F5B1 | LD ($7FE7),HL | |||||||
F5B4 | JP $F6D5 | Enter demo mode |
Prev: F54A | Up: Map | Next: F5B7 |