|  | Routines | 
| Prev: $3AB4 | Up: Map | Next: $3B46 | 
| $3AD5 | LDA #$0F | Reset the MSB of the lesson clock at $40 to $0F. | ||
| $3AD7 | STA $40 | |||
| $3AD9 | INC $41 | Increment the current lesson number at $41 and pick up the new value. | ||
| $3ADB | LDA $41 | |||
| $3ADD | CMP #$40 | Is it $40? | ||
| $3ADF | BNE $3AE5 | Branch if not. | ||
| $3AE1 | LDA #$00 | Otherwise reset the lesson number to 0. | ||
| $3AE3 | STA $41 | |||
| $3AE5 | LDA #$00 | Prepare to address the main timetable at $5D00. | ||
| $3AE7 | STA $4E | |||
| $3AE9 | LDA #$5D | |||
| $3AEB | STA $4F | |||
| $3AED | LDY $41 | Pick up the current lesson identifier ($E0-$FF) from the main timetable and store it at $42. | ||
| $3AEF | LDA ($4E),Y | |||
| $3AF1 | STA $42 | |||
| $3AF3 | TAY | Transfer the current lesson identifier to Y. | ||
| $3AF4 | LDA #$8C | The table of lesson descriptors is in page $8C. | ||
| $3AF6 | STA $4F | |||
| $3AF8 | LDA ($4E),Y | Copy the lesson descriptor for the new lesson to $70. | ||
| $3AFA | STA $70 | |||
| $3AFC | JSR $2573 | Print the teacher and room name in the lesson box. | ||
| $3AFF | JSR $3B46 | Select a special PLAYTIME occasionally. | ||
| $3B02 | LDA #$03 | Set the sound effect identifier at $2C to 3: the bell is ringing. | ||
| $3B04 | STA $2C | |||
| $3B06 | LDA #$21 | Initialise the sound effect timer at $2D. | ||
| $3B08 | STA $2D | |||
| $3B0A | JSR $392D | Clear all the signal flags. | ||
| $3B0D | LDX #$12 | There are 18 characters (11 little boys, 4 teachers and 3 main kids) to prepare for the new lesson. | ||
| $3B0F | LDA #$00 | Reset the identifier of the next lines reprimand for the teacher fetching the truant ERIC at $C8. | ||
| $3B11 | STA $C8 | |||
| $3B13 | STA $C2 | Reset the birth year question indicator at $C2. | ||
| $3B15 | STA $60 | Set the current character number at $60 to $00 (little boy no. 1). | ||
| $3B17 | STA $50 | Prepare to address the characters' personal timetables, starting with little boy no. 1's at $78E0. | ||
| $3B19 | LDA #$78 | |||
| $3B1B | STA $51 | |||
| 
Now we enter a loop to update the command list start address for each character.
 | ||||
| $3B1D | TXA | Save the character counter on the stack. | ||
| $3B1E | PHA | |||
| $3B1F | JSR $3279 | Copy the current character's buffer to page 0. | ||
| $3B22 | LDY $42 | Pick up the lesson identifier ($E0-$FF) from $42. | ||
| $3B24 | LDA ($50),Y | Obtain the command list number from the character's personal timetable and store it at $43. | ||
| $3B26 | STA $43 | |||
| $3B28 | LDY #$00 | Collect the start address of the command list from the table at $4480 and store it in the character's buffer at $3D. | ||
| $3B2A | LDA ($43),Y | |||
| $3B2C | STA $3D | |||
| $3B2E | INY | |||
| $3B2F | LDA ($43),Y | |||
| $3B31 | STA $3E | |||
| $3B33 | LDA $3F | Set bit 7 at $3F, triggering a command list restart at the next available opportunity. | ||
| $3B35 | ORA #$80 | |||
| $3B37 | STA $3F | |||
| $3B39 | JSR $33BF | Restore the current character's buffer from page 0. | ||
| $3B3C | INC $60 | Increment the current character number at $60. | ||
| $3B3E | INC $51 | Next character's personal timetable. | ||
| $3B40 | PLA | Restore the character counter to X. | ||
| $3B41 | TAX | |||
| $3B42 | DEX | Have we dealt with every character yet? | ||
| $3B43 | BNE $3B1D | Branch back if not. | ||
| $3B45 | RTS | |||
| Prev: $3AB4 | Up: Map | Next: $3B46 |