Routines| H | Character number of teacher (200-204) |
| 25944 | 2E00 | LD L,0 | |
| 25946 | CB46 | BIT 0,(HL) | Is the teacher midstride? |
| 25948 | 280D | JR Z,25963 | Jump if not |
| 25950 | CDB461 | CALL 25012 | Update SRB for teacher's current animatory state and location |
| 25953 | 47 | LD B,A | Save animatory state temporarily |
| 25954 | 2E0F | LD L,15 | Now A=1 if the teacher is descending a staircase, 0 otherwise |
| 25956 | 7E | LD A,(HL) | |
| 25957 | 82 | ADD A,D | If the teacher's descending a staircase, he will drop a level at the same time as finishing his stride |
| 25958 | 57 | LD D,A | |
| 25959 | 78 | LD A,B | Restore the animatory state to A |
| 25960 | C30064 | JP 25600 | Make teacher finish his stride |
| 25963 | CD526E | CALL 28242 | Is the teacher on a staircase? |
| 25966 | 3827 | JR C,26007 | Jump if so |
| 25968 | ED5B01D2 | LD DE,(53761) | Pick up ERIC's coordinates in DE |
| 25972 | 2E00 | LD L,0 | |
| 25974 | CB7E | BIT 7,(HL) | Is the teacher facing left? |
| 25976 | 2E01 | LD L,1 | |
| 25978 | 2804 | JR Z,25984 | Jump if so |
| 25980 | 7B | LD A,E | A=ERIC's x-coordinate |
| 25981 | 96 | SUB (HL) | Subtract that of the teacher |
| 25982 | 1802 | JR 25986 | |
| 25984 | 7E | LD A,(HL) | A=teacher's x-coordinate |
| 25985 | 93 | SUB E | Subtract that of ERIC |
| 25986 | FE04 | CP 4 | Is ERIC less than 4 spaces in front of the teacher? |
| 25988 | 300E | JR NC,26004 | Jump if not |
| 25990 | 2C | INC L | |
| 25991 | 7E | LD A,(HL) | A=teacher's y-coordinate |
| 25992 | D604 | SUB 4 | |
| 25994 | 3803 | JR C,25999 | Jump if the teacher's on the top floor |
| 25996 | BA | CP D | IS ERIC too far above the teacher to be seen? |
| 25997 | 3005 | JR NC,26004 | Jump if so |
| 25999 | C607 | ADD A,7 | |
| 26001 | BA | CP D | |
| 26002 | 3F | CCF | |
| 26003 | D8 | RET C | Return if ERIC is too far below the teacher to be seen |
| 26004 | CDBE63 | CALL 25534 | Now D=3, 10, 14, or 17 (floor ERIC's closest to) |
| 26007 | CDF364 | CALL 25843 | Work out how teacher can reach ERIC from here |
| 26010 | CB5F | BIT 3,A | Is there a closed door in the way? |
| 26012 | C2A270 | JP NZ,28834 | Open it if so |
| 26015 | 010000 | LD BC,0 | |
| 26018 | FE02 | CP 2 | Is the teacher descending a staircase? |
| 26020 | 2001 | JR NZ,26023 | Jump if not |
| 26022 | 04 | INC B | B=1 |
| 26023 | 3001 | JR NC,26026 | Jump if the teacher is not ascending a staircase |
| 26025 | 0D | DEC C | C=255 |
| 26026 | FE03 | CP 3 | Is the teacher on a staircase? |
| 26028 | 380F | JR C,26045 | Jump if so |
| 26030 | 2E00 | LD L,0 | |
| 26032 | FE04 | CP 4 | |
| 26034 | CB7E | BIT 7,(HL) | |
| 26036 | 3805 | JR C,26043 | Jump if the teacher must go left to reach ERIC |
| 26038 | 2005 | JR NZ,26045 | Jump if the teacher is facing right |
| 26040 | C33064 | JP 25648 | Turn the teacher round |
| 26043 | 20FB | JR NZ,26040 | Turn the teacher round if he's facing right |
| 26045 | 2E0F | LD L,15 | Set byte 15 of teacher's buffer to 1 if the teacher is descending a staircase, 0 if ascending a staircase or not on one |
| 26047 | 70 | LD (HL),B | |
| 26048 | C5 | PUSH BC | |
| 26049 | CDB461 | CALL 25012 | Update SRB for teacher's current animatory state and location |
| 26052 | C1 | POP BC | |
| 26053 | CB41 | BIT 0,C | Is the teacher ascending a staircase? |
| 26055 | 2801 | JR Z,26058 | Jump if not |
| 26057 | 15 | DEC D | Up a stair |
| 26058 | 3C | INC A | One foot forward (midstride) |
| 26059 | C33061 | JP 24880 | Update SRB for teacher's new animatory state and location |