Routines| H | Falling object's character number |
| 29896 | 2E02 | LD L,2 | |
| 29898 | 7E | LD A,(HL) | A=y-coordinate of falling object |
| 29899 | FE11 | CP 17 | Has the object hit the bottom floor yet? |
| 29901 | 200C | JR NZ,29915 | Jump if not |
| 29903 | 2E12 | LD L,18 | Remove the address of this routine in the object's buffer (by blanking out the MSB at byte 18) |
| 29905 | 3600 | LD (HL),0 |
| 29907 | CDB461 | CALL 25012 | Update SRB for the object's current animatory state and location |
| 29910 | 2E01 | LD L,1 | Set the object's x-coordinate to 224 (out of sight) |
| 29912 | 36E0 | LD (HL),224 | |
| 29914 | C9 | RET |
| 29915 | FE0D | CP 13 | Is the object at the right height to hit someone? |
| 29917 | 2807 | JR Z,29926 | Jump if so |
| 29919 | CDB461 | CALL 25012 | Update SRB for object's current animatory state and location |
| 29922 | 14 | INC D | Object will fall one more level |
| 29923 | C33061 | JP 24880 | Update SRB for object's new location |
| 29926 | 2E01 | LD L,1 | |
| 29928 | 5E | LD E,(HL) | E=falling object's x-coordinate |
| 29929 | 1611 | LD D,17 | 17=bottom floor (only floor on which characters can be hit) |
| 29931 | CDA074 | CALL 29856 | Check if any of the six adult characters were hit |
| 29934 | 2E00 | LD L,0 | |
| 29936 | 7E | LD A,(HL) | A=animatory state of falling object |
| 29937 | 283C | JR Z,29999 | Jump if an adult character was hit by the falling object |
| 29939 | FE37 | CP 55 | 55: Is the falling object a conker? |
| 29941 | 20E8 | JR NZ,29919 | Jump if not |
| 29943 | 2E02 | LD L,2 | |
| 29945 | 3611 | LD (HL),17 | |
| 29947 | CDAC6C | CALL 27820 | Check if any of the main kids were hit |
| 29950 | 2E02 | LD L,2 | |
| 29952 | 360D | LD (HL),13 | |
| 29954 | 38DB | JR C,29919 | Jump if none of the main kids was hit by the conker |
| 29956 | 7A | LD A,D | A=character number of main kid hit by conker |
| 29957 | FECF | CP 207 | Was it BOY WANDER (206)? |
| 29959 | 3815 | JR C,29982 | Jump if so |
| 29961 | FED1 | CP 209 | |
| 29963 | 3E0A | LD A,10 | |
| 29965 | 300F | JR NC,29982 | Jump unless ANGELFACE (207) or EINSTEIN (208) was hit |
| 29967 | CDB573 | CALL 29621 | Add 100 to the score and print it |
| 29970 | D5 | PUSH DE | |
| 29971 | 1628 | LD D,40 | Make sound effect |
| 29973 | 011228 | LD BC,10258 | |
| 29976 | 3E07 | LD A,7 | |
| 29978 | CD8C74 | CALL 29836 | |
| 29981 | D1 | POP DE |
| 29982 | D5 | PUSH DE |
| 29983 | CDCF74 | CALL 29903 | Terminate the object |
| 29986 | D1 | POP DE |
| 29987 | EB | EX DE,HL | |
| 29988 | 7C | LD A,H | A=number of character hit by object/fist |
| 29989 | FED2 | CP 210 | Was it ERIC? |
| 29991 | 201E | JR NZ,30023 | Jump if not |
| 29993 | 3E80 | LD A,128 | |
| 29995 | 32FB7F | LD (32763),A | Set bit 7: ERIC has been knocked down |
| 29998 | C9 | RET |
| 29999 | FE37 | CP 55 | Is the falling object a conker? |
| 30001 | 201F | JR NZ,30034 | Jump if not |
| 30003 | 0E00 | LD C,0 | |
| 30005 | 0A | LD A,(BC) | A=animatory state of adult character hit by object |
| 30006 | E607 | AND 7 | |
| 30008 | FE06 | CP 6 | Was the character already sitting on the floor? |
| 30010 | CADF74 | JP Z,29919 | Jump if so |
| 30013 | 0E12 | LD C,18 | |
| 30015 | 0A | LD A,(BC) | Pick up byte 18 of the character's buffer |
| 30016 | A7 | AND A | Can this character be knocked over by a conker? |
| 30017 | C2DF74 | JP NZ,29919 | Jump if not |
| 30020 | C5 | PUSH BC | |
| 30021 | 18D8 | JR 29983 |
| 30023 | 2E11 | LD L,17 | Place address 30102 into bytes 17 and 18 of the stricken character's buffer |
| 30025 | 3696 | LD (HL),150 | |
| 30027 | 2C | INC L | |
| 30028 | 3675 | LD (HL),117 | |
| 30030 | 2C | INC L | |
| 30031 | 3613 | LD (HL),19 | |
| 30033 | C9 | RET |
| 30034 | 11007F | LD DE,32512 | |
| 30037 | FE1F | CP 31 | 31: Is the falling object a drop of water? |
| 30039 | 2802 | JR Z,30043 | Jump if so |
| 30041 | 1E04 | LD E,4 | |
| 30043 | 78 | LD A,B | A=number of character hit by the drop of water/sherry |
| 30044 | FECC | CP 204 | Is the stricken character one of the male teachers? |
| 30046 | 30D3 | JR NC,30003 | Jump if not |
| 30048 | D624 | SUB 36 | Point DE at the relevant combination letter or number in one of the tables at 32676 and 32680 |
| 30050 | 83 | ADD A,E | |
| 30051 | 5F | LD E,A | |
| 30052 | EB | EX DE,HL | (HL)=combination letter/number held by teacher just knocked down |
| 30053 | CB7E | BIT 7,(HL) | Has ERIC already discovered this one? |
| 30055 | 2009 | JR NZ,30066 | Jump if so |
| 30057 | CBFE | SET 7,(HL) | Signal: ERIC has discovered this combination letter/number |
| 30059 | C5 | PUSH BC | |
| 30060 | 3E14 | LD A,20 | Add 200 to score and print it |
| 30062 | CDB573 | CALL 29621 | |
| 30065 | C1 | POP BC | |
| 30066 | 7E | LD A,(HL) | |
| 30067 | E67F | AND 127 | A=character code of combination number/letter just revealed |
| 30069 | 328A7F | LD (32650),A | |
| 30072 | D5 | PUSH DE | |
| 30073 | C5 | PUSH BC | |
| 30074 | 60 | LD H,B | H=number of character just struck (200-203) |
| 30075 | CD0074 | CALL 29696 | Determine y-coordinate at which to print letter/number |
| 30078 | CD8C6A | CALL 27276 | Save area of screen to be overwritten by letter/number |
| 30081 | 3808 | JR C,30091 | Jump if teacher is off-screen |
| 30083 | 01460E | LD BC,3654 | Print message and make sound effect |
| 30086 | 3E06 | LD A,6 | |
| 30088 | CD7374 | CALL 29811 | |
| 30091 | C1 | POP BC | |
| 30092 | E1 | POP HL | |
| 30093 | C33375 | JP 30003 |