Routines |
Prev: 7CFC | Up: Map | Next: 7D83 |
Used by the routine at 7DB2. Makes the teacher wipe the board (if there is one), tell the kids what to do, and then walk up and down until the end of the lesson.
|
||||||||
7D30 | CALL $7128 | A=identifier of the blackboard the teacher is next to | ||||||
7D33 | LD C,A | Copy this to C | ||||||
7D34 | CP $EC | Is the teacher on the top floor? | ||||||
7D36 | JR NZ,$7D3E | Jump if not | ||||||
7D38 | INC L | L=0x62 | ||||||
7D39 | LD A,(HL) | A=teacher's x-coordinate | ||||||
7D3A | CP $3A | Is the teacher in the Map Room? | ||||||
7D3C | JR NC,$7D70 | Jump if so (there's no blackboard in the Map Room) | ||||||
7D3E | LD BC,$71DC | Hand over control to the routine at 71DC, making the teacher wipe the blackboard | ||||||
7D41 | CALL $7CF1 | |||||||
Control returns here when the teacher has finished wiping the blackboard.
|
||||||||
7D44 | LD L,$62 | A=teacher's x-coordinate (equal to that of the left edge of the blackboard) | ||||||
7D46 | LD A,(HL) | |||||||
7D47 | ADD A,$03 | Place the x-coordinate of the middle of the blackboard into byte 0x6B of the teacher's buffer, and the same value into byte 0x6C (which ensures that the routine at 633C will not relinquish control before the teacher has reached the middle of the blackboard) | ||||||
7D49 | LD L,$6B | |||||||
7D4B | LD (HL),A | |||||||
7D4C | INC L | |||||||
7D4D | LD (HL),A | |||||||
7D4E | LD BC,$633C | Hand over control to the routine at 633C, making the teacher walk to the middle of the blackboard | ||||||
7D51 | CALL $7CF1 | |||||||
Control returns here when the teacher has reached the middle of the blackboard.
|
||||||||
7D54 | CALL $61A1 | A=random number | ||||||
7D57 | CP $A0 | Should the teacher write on the blackboard? | ||||||
7D59 | JR C,$7D70 | Jump if not | ||||||
7D5B | LD BC,$7264 | Hand over control to the routine at 7264, making the teacher write on the blackboard | ||||||
7D5E | CALL $7CF1 | |||||||
Control returns here when the teacher has finished writing on the blackboard.
|
||||||||
7D61 | CALL $61A1 | A=random number | ||||||
7D64 | CP $A0 | Should the teacher tell the kids to write an essay? | ||||||
7D66 | JR C,$7D70 | Jump if not | ||||||
7D68 | LD BC,$F2D6 | F2D6: 'WRITE AN ESSAY WITH THIS TITLE' | ||||||
7D6B | CALL $7D26 | Make the teacher tell the kids to write an essay | ||||||
7D6E | JR $7D73 | |||||||
7D70 | CALL $7CFC | Make the teacher tell the kids to go to a page in their books | ||||||
Now we enter a loop that makes the teacher walk up and down next to the blackboard (or the map).
|
||||||||
7D73 | LD L,$62 | A=teacher's x-coordinate | ||||||
7D75 | LD A,(HL) | |||||||
7D76 | XOR $03 | Store the x-coordinate of the location 1 or 3 spaces behind the teacher in byte 0x6B of his buffer | ||||||
7D78 | LD L,$6B | |||||||
7D7A | LD (HL),A | |||||||
7D7B | LD BC,$633C | Hand over control to the routine at 633C, making the teacher turn round and walk 1 or 3 paces | ||||||
7D7E | CALL $7CF1 | |||||||
7D81 | JR $7D73 | Make the teacher turn round and walk 1 or 3 paces again |
Prev: 7CFC | Up: Map | Next: 7D83 |