![]() |
Routines |
Prev: 62667 | Up: Map | Next: 62766 |
H | 205 (ALBERT) |
62668 | LD L,0 | Point HL at byte 0 of ALBERT's buffer |
62670 | LD A,(HL) | A=ALBERT's animatory state |
62671 | OR 250 | Is ALBERT midstride or lying on his back? |
62673 | RET PO | Return if so |
62674 | LD DE,(53761) | Collect ERIC's coordinates in DE |
62678 | LD A,D | A=ERIC's y-coordinate |
62679 | CP 14 | Is ERIC above the level of the stage? |
62681 | JR C,62698 | Jump if so |
62683 | LD A,E | A=ERIC's x-coordinate |
62684 | CP 96 | Is ERIC inside the boys' skool? |
62686 | JR C,62698 | Jump if so |
62688 | LD L,1 | Point HL at byte 1 of ALBERT's buffer |
62690 | CP (HL) | Is ERIC to the left of ALBERT? |
62691 | JR NC,62698 | Jump if not |
62693 | ADD A,6 | Is ERIC within 6 spaces to the left of ALBERT? |
62695 | CP (HL) | |
62696 | JR NC,62711 | Jump if so |
ERIC's not in the "danger zone". Let ALBERT lower his arm if he has it raised.
|
||
62698 | LD L,0 | Point HL at byte 0 of ALBERT's buffer |
62700 | LD A,(HL) | A=ALBERT's animatory state |
62701 | CP 127 | 127: Is ALBERT facing left with his arm up? |
62703 | RET NZ | Return if not |
62704 | POP BC | Drop the return address (25431) from the stack |
62705 | POP BC | Drop the character buffer reference used by the routine at 25296 |
62706 | LD A,120 | 120: ALBERT facing left, standing, arm down |
62708 | JP 62452 | Update ALBERT's animatory state and SRB |
ERIC is in the "danger zone" near ALBERT.
|
||
62711 | DEC L | L=0 |
62712 | POP BC | Drop the return address (25431) from the stack |
62713 | POP BC | Drop the character buffer reference used by the routine at 25296 |
62714 | BIT 7,(HL) | Is ALBERT facing right? |
62716 | JP NZ,25648 | Turn ALBERT round if so |
62719 | LD A,127 | 127: ALBERT facing left with his arm up |
62721 | CP (HL) | Is ALBERT already holding ERIC back? |
62722 | RET Z | Return if so |
62723 | CALL 62452 | Make ALBERT put his arm up and update SRB |
62726 | LD HL,32640 | 32640 holds various game status flags |
62729 | BIT 1,(HL) | Is MR WACKER already looking for ERIC in order to expel him? |
62731 | JR NZ,62750 | Jump if so |
62733 | BIT 2,(HL) | Is MR WACKER already looking for the truant ERIC? |
62735 | JR NZ,62750 | Jump if so |
62737 | SET 2,(HL) | Signal: MR WACKER is looking for the truant ERIC |
62739 | LD HL,51227 | Place the address of the command list at 62766 into bytes 27 and 28 of MR WACKER's buffer; this command list contains a single entry: the address of the routine at 32054 |
62742 | LD (HL),46 | |
62744 | INC L | |
62745 | LD (HL),245 | |
62747 | INC L | Set bit 0 of byte 29 of MR WACKER's buffer, triggering a command list restart (at 62766) |
62748 | SET 0,(HL) | |
62750 | LD H,205 | 205=ALBERT |
62752 | CALL 29696 | Determine the coordinates at which to print ALBERT's exclamation |
62755 | CALL 27276 | Save the area of the screen that will be overwritten by the message box |
62758 | LD BC,25138 | B=message 98 (MR WACKER^HE'S ESCAPING), C=50 (INK 2: PAPER 3) |
62761 | LD A,2 | The border colour will be red |
62763 | JP 29811 | Make ALBERT sound the alarm |
Prev: 62667 | Up: Map | Next: 62766 |