![]() |
Routines |
| Prev: 62794 | Up: Map | Next: 62903 |
| H | 200 (MR WACKER) |
| 62815 | LD L,29 | Set bit 7 of byte 29 of MR WACKER's buffer, making him run |
| 62817 | SET 7,(HL) | |
| 62819 | LD A,255 | Set the MSB of the lesson time counter at 32739 to 255 (this lesson will not end until ERIC's expelled) |
| 62821 | LD (32740),A | |
| 62824 | CALL 25944 | Make MR WACKER track down ERIC |
| 62827 | LD HL,51200 | Point HL at byte 0 of MR WACKER's buffer |
| 62830 | BIT 0,(HL) | Is MR WACKER midstride? |
| 62832 | RET NZ | Return if so |
| 62833 | INC L | L=1 |
| 62834 | LD DE,(53761) | E=ERIC's x-coordinate, D=ERIC's y-coordinate |
| 62838 | LD A,(HL) | A=MR WACKER's x-coordinate |
| 62839 | SUB E | Is MR WACKER within 3 x-coordinates of ERIC? |
| 62840 | ADD A,3 | |
| 62842 | CP 7 | |
| 62844 | RET NC | Return if not |
| 62845 | INC L | L=2 |
| 62846 | LD A,(HL) | A=MR WACKER's y-coordinate |
| 62847 | SUB D | Is MR WACKER within 3 y-coordinates of ERIC? |
| 62848 | ADD A,3 | |
| 62850 | CP 7 | |
| 62852 | RET NC | Return if not |
|
MR WACKER has found ERIC.
|
||
| 62853 | LD HL,32763 | 32763 holds ERIC's status flags |
| 62856 | LD (HL),64 | Set bit 6: MR WACKER is expelling ERIC (who is now paralysed) |
| 62858 | LD L,237 | HL=32749 (ERIC's other status flags) |
| 62860 | BIT 5,(HL) | Bit 5 is set if ERIC jumped out of the top floor window |
| 62862 | LD H,200 | 200=MR WACKER |
| 62864 | LD E,99 | Message 99: YOU HAVE 10000 LINES... |
| 62866 | JR Z,62869 | Jump if ERIC didn't jump out of the top-floor window (i.e. he has 10000 lines) |
| 62868 | INC E | E=100: YOU ARE NOT A BIRD... |
| 62869 | LD BC,27144 | Redirect control to the routine at 27144 (make character speak) and return to 62875 (below) when done |
| 62872 | CALL 25503 | |
| 62875 | LD DE,(32741) | Collect the score from 32741 into DE |
| 62879 | LD HL,(32745) | Collect the current hi-score from 32745 into HL |
| 62882 | AND A | Clear the carry flag ready for subtraction |
| 62883 | SBC HL,DE | Do we have a new hi-score? |
| 62885 | JR NC,62891 | Jump if not |
| 62887 | LD (32745),DE | Insert the new hi-score |
| 62891 | LD HL,0 | Reset the score (at 32741) and the lines total (at 32743) to 0 |
| 62894 | LD (32741),HL | |
| 62897 | LD (32743),HL | |
| 62900 | JP 63189 | Restart the game |
| Prev: 62794 | Up: Map | Next: 62903 |