![]() |
Routines |
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 |
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 |