Routines| H | Character number of teacher (201-204) |
| 61696 | 3AE07F | LD A,(32736) | Pick up the lesson identifier in A |
| 61699 | E6F0 | AND 240 | Keep only the teacher-identifying bits |
| 61701 | 07 | RLCA | |
| 61702 | 07 | RLCA | |
| 61703 | 07 | RLCA | |
| 61704 | 07 | RLCA | |
| 61705 | C6C7 | ADD A,199 | A=character number of teacher taking ERIC's class (201-203) |
| 61707 | BC | CP H | Is this teacher taking ERIC's class? |
| 61708 | 2832 | JR Z,61760 | Jump if so |
| 61710 | 010F68 | LD BC,26639 | Routine at 26639: wipe board |
| 61713 | CD9F63 | CALL 25503 | Redirect control to 26639 and return to 61716 when done |
| 61716 | 2E01 | LD L,1 | |
| 61718 | 7E | LD A,(HL) | A=teacher's x-coordinate |
| 61719 | C603 | ADD A,3 | A=x-coordinate of middle of blackboard |
| 61721 | 2E0B | LD L,11 | |
| 61723 | 77 | LD (HL),A | Place it in byte 11 ready for the routine at 25581 |
| 61724 | 01ED63 | LD BC,25581 | Routine at 25581: walk to a location |
| 61727 | CD9F63 | CALL 25503 | Redirect control to 25581 and return to 61730 when done |
| 61730 | CD9162 | CALL 25233 | Get a random number in A |
| 61733 | 018068 | LD BC,26752 | Routine at 26752: write on board |
| 61736 | FEA0 | CP 160 | Should the teacher write on the board? |
| 61738 | D49F63 | CALL NC,25503 | If so, redirect control to 26752 and return to 61741 when done |
| 61741 | CD5DF0 | CALL 61533 | Tell class what to do |
| 61744 | 2E01 | LD L,1 | |
| 61746 | 7E | LD A,(HL) | A=teacher's x-coordinate |
| 61747 | EE03 | XOR 3 | Now A=x-coordinate of position 3 paces away from teacher |
| 61749 | 2E0B | LD L,11 | Place this in byte 11 of the teacher's buffer, ready for the routine at 25581 |
| 61751 | 77 | LD (HL),A | |
| 61752 | 01ED63 | LD BC,25581 | Routine at 25581: walk to a location |
| 61755 | CD9F63 | CALL 25503 | Redirect control to 25581 and return to 61758 when done |
| 61758 | 18F0 | JR 61744 | Make the teacher pace up (or down) again |
| 61760 | 3A807F | LD A,(32640) | |
| 61763 | CBF7 | SET 6,A | Signal: ERIC should be in class now |
| 61765 | 32807F | LD (32640),A | |
| 61768 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61771 | 2828 | JR Z,61813 | Jump if so |
| 61773 | 0117F0 | LD BC,61463 | Routine at 61463: make EINSTEIN talk |
| 61776 | 1E12 | LD E,18 | 18: Please Sir...ERIC is not here |
| 61778 | CD9F63 | CALL 25503 | Make EINSTEIN grass on ERIC, then return control to 61781 |
| 61781 | 0ED0 | LD C,208 | 208=EINSTEIN |
| 61783 | CD2FF0 | CALL 61487 | Give lines |
| 61786 | CD157D | CALL 32021 | Is ERIC in class? |
| 61789 | 3A807F | LD A,(32640) | |
| 61792 | 2808 | JR Z,61802 | Jump if he is |
| 61794 | CBFF | SET 7,A | Signal: teacher had to hunt down the tardy ERIC |
| 61796 | 32807F | LD (32640),A | |
| 61799 | C3D0F0 | JP 61648 | Go and find ERIC |
| 61802 | 07 | RLCA | Set carry if teacher's already had to chase ERIC |
| 61803 | 0614 | LD B,20 | 20: STAY TILL I DISMISS YOU |
| 61805 | 3ED2 | LD A,210 | 210=ERIC |
| 61807 | 3801 | JR C,61810 | Jump if teacher's already had to chase or give lines to ERIC for being late or leaving early |
| 61809 | 05 | DEC B | B=19: DON'T BE LATE AGAIN |
| 61810 | CD40F0 | CALL 61504 | Give lines |
| 61813 | 3A807F | LD A,(32640) | Set bits 6 (ERIC should be in class) and 7 (teacher has reprimanded ERIC for being late or trying to leave early) at 32640 |
| 61816 | F6C0 | OR 192 | |
| 61818 | 32807F | LD (32640),A | |
| 61821 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61824 | 20CB | JR NZ,61773 | Jump if ERIC is missing |
| 61826 | CD9162 | CALL 25233 | A=random number |
| 61829 | FEDC | CP 220 | Should EINSTEIN tell tales? |
| 61831 | 3813 | JR C,61852 | Jump if not |
| 61833 | 1E57 | LD E,87 | 87: Please Sir...ERIC hit me |
| 61835 | 0117F0 | LD BC,61463 | Routine at 61463: make EINSTEIN talk |
| 61838 | CD9F63 | CALL 25503 | Redirect control to 61463 and return to 61841 when done |
| 61841 | 01D261 | LD BC,25042 | B=97: DON'T HIT YOUR MATES; C=210 (ERIC) |
| 61844 | CD2FF0 | CALL 61487 | Give lines |
| 61847 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61850 | 20B1 | JR NZ,61773 | Jump if ERIC's missing |
| 61852 | CD5567 | CALL 26453 | Collect information about the blackboard |
| 61855 | 04 | INC B | |
| 61856 | 48 | LD C,B | |
| 61857 | 067F | LD B,127 | |
| 61859 | 0A | LD A,(BC) | A=character number of person who last wrote on blackboard |
| 61860 | FED2 | CP 210 | Was it ERIC? |
| 61862 | 280F | JR Z,61879 | Jump if so |
| 61864 | FECE | CP 206 | Or was it BOY WANDER? |
| 61866 | 201F | JR NZ,61899 | Jump if not |
| 61868 | CD9162 | CALL 25233 | A=random number |
| 61871 | FEC3 | CP 195 | Should EINSTEIN blame BOY WANDER for writing on the board? |
| 61873 | 3ECE | LD A,206 | 206=BOY WANDER |
| 61875 | 3802 | JR C,61879 | Jump if so |
| 61877 | 3ED2 | LD A,210 | Blame ERIC instead |
| 61879 | 32907F | LD (32656),A | |
| 61882 | 0117F0 | LD BC,61463 | Routine at 61463: make EINSTEIN talk |
| 61885 | 1E58 | LD E,88 | 88: Please Sir...X wrote on the board |
| 61887 | CD9F63 | CALL 25503 | Redirect control to 61463 and return to 61890 when done |
| 61890 | 3A907F | LD A,(32656) | |
| 61893 | 4F | LD C,A | |
| 61894 | 0656 | LD B,86 | 86: DON'T TOUCH BLACKBOARDS |
| 61896 | CD2FF0 | CALL 61487 | Give lines |
| 61899 | 010F68 | LD BC,26639 | Routine at 26639: wipe board |
| 61902 | CD9F63 | CALL 25503 | Redirect control to 26639 and return to 61905 when done |
| 61905 | 2E01 | LD L,1 | |
| 61907 | 7E | LD A,(HL) | A=teacher's x-coordinate |
| 61908 | C603 | ADD A,3 | A=x-coordinate of middle of blackboard |
| 61910 | 2E0B | LD L,11 | Place it in byte 11 of the teacher's buffer, ready for the routine at 25581 |
| 61912 | 77 | LD (HL),A | |
| 61913 | 01ED63 | LD BC,25581 | Routine at 25581: walk to location |
| 61916 | CD9F63 | CALL 25503 | Redirect control to 25581 and return to 61919 when done |
| 61919 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61922 | C24DF1 | JP NZ,61773 | Jump if ERIC's missing |
| 61925 | CD9162 | CALL 25233 | Get a random number in A |
| 61928 | 018068 | LD BC,26752 | Routine at 26752: write on board |
| 61931 | FEB8 | CP 184 | Should the teacher write on the board? |
| 61933 | D49F63 | CALL NC,25503 | Redirect control to 26752 if so, and return to 61936 when done |
| 61936 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61939 | 20ED | JR NZ,61922 | Jump if ERIC's missing |
| 61941 | CD9162 | CALL 25233 | Get random number in A |
| 61944 | FEE8 | CP 232 | Should this be a questions-and-answers lesson? |
| 61946 | 3818 | JR C,61972 | Jump if so |
| 61948 | CD5DF0 | CALL 61533 | Tell class what to do |
| 61951 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 61954 | 20DE | JR NZ,61922 | Jump if ERIC's missing |
| 61956 | 2E01 | LD L,1 | |
| 61958 | 7E | LD A,(HL) | A=x-coordinate of teacher |
| 61959 | EE03 | XOR 3 | Now A=x-coordinate of location three paces away from teacher |
| 61961 | 2E0B | LD L,11 | Place this in byte 11 of the teacher's buffer ready for the routine at 25581 |
| 61963 | 77 | LD (HL),A | |
| 61964 | 01ED63 | LD BC,25581 | Routine at 25581: walk to location |
| 61967 | CD9F63 | CALL 25503 | Redirect control to 25581 and return to 61970 when done |
| 61970 | 18EB | JR 61951 |
| 61972 | CD9162 | CALL 25233 | Get random number in A |
| 61975 | E687 | AND 135 | Keep only bits 0-2 and 7 |
| 61977 | F5 | PUSH AF | |
| 61978 | 4F | LD C,A | |
| 61979 | 118C7F | LD DE,32652 | |
| 61982 | 7C | LD A,H | |
| 61983 | 92 | SUB D | |
| 61984 | 87 | ADD A,A | |
| 61985 | 87 | ADD A,A | |
| 61986 | 87 | ADD A,A | |
| 61987 | 87 | ADD A,A | |
| 61988 | B1 | OR C | Now A=message number of mountain, animal or king |
| 61989 | 12 | LD (DE),A | |
| 61990 | C608 | ADD A,8 | A=message number of corresponding country, habitat or date |
| 61992 | 1E8E | LD E,142 | DE=32654 |
| 61994 | 12 | LD (DE),A | |
| 61995 | F1 | POP AF | |
| 61996 | 07 | RLCA | |
| 61997 | 9F | SBC A,A | |
| 61998 | 84 | ADD A,H | |
| 61999 | 84 | ADD A,H | |
| 62000 | 87 | ADD A,A | |
| 62001 | C627 | ADD A,39 | Now A=message number for EINSTEIN's reply |
| 62003 | 320BD0 | LD (53259),A | Store it in byte 11 of EINSTEIN's buffer |
| 62006 | 3C | INC A | A=message number for teacher's question |
| 62007 | 5F | LD E,A | |
| 62008 | 01086A | LD BC,27144 | Routine at 27144: ask question |
| 62011 | CD9F63 | CALL 25503 | Redirect control to 27144 and return to 62014 when done |
| 62014 | 011BF0 | LD BC,61467 | Routine at 61467: make EINSTEIN give answer |
| 62017 | CD9F63 | CALL 25503 | Redirect control to 61467 and return to 62020 when done |
| 62020 | CD48F0 | CALL 61512 | Are ERIC and EINSTEIN both in class? |
| 62023 | 28CB | JR Z,61972 | Jump if they are |
| 62025 | C34DF1 | JP 61773 | Jump elsewhere if ERIC's missing |