Routines |
Prev: 7EB0 | Up: Map | Next: 7EEF |
Used by the routine at F74D. Prints the lesson or 'DEMO.MODE' in the lesson box, and makes the bell sound effect.
|
||||
7EB1 | LD HL,$7FDE | 7FDE holds the current game mode | ||
7EB4 | LD A,(HL) | A=0xFF if we're in demo mode, 0x00 otherwise | ||
7EB5 | INC A | Set the zero flag if we're in demo mode | ||
7EB6 | LD A,$3F | Message 0x3F: DEMO.MODE | ||
7EB8 | JR Z,$7EDE | Jump if we're in demo mode | ||
A real game is in progress. First, figure out what to print in the bottom row of the lesson box (the room name, 'LIBRARY', 'PLAYTIME', 'ASSEMBLY' or 'DINNER').
|
||||
7EBA | LD L,$E0 | HL=7FE0 (lesson descriptor) | ||
7EBC | LD A,(HL) | Pick this up in A | ||
7EBD | AND $0F | Keep only the room identifier bits | ||
7EBF | LD E,$20 | 0x20 is the ASCII code for SPACE | ||
7EC1 | ADD A,$7E | D=message number for the text to go on the bottom row of the lesson box | ||
7EC3 | LD D,A | |||
7EC4 | CP $83 | Is it PLAYTIME (0x80), ASSEMBLY (0x81) or DINNER (0x82)? | ||
7EC6 | JR C,$7ED6 | Jump if so | ||
7EC8 | LD E,$87 | Message 0x87: REVISION | ||
7ECA | JR Z,$7ED6 | Jump if it's REVISION LIBRARY (D=0x83: LIBRARY) | ||
Next, figure out what to print (if anything) in the top row of the lesson box (the teacher's name, or 'REVISION').
|
||||
7ECC | LD A,(HL) | A=lesson descriptor | ||
7ECD | AND $F0 | Keep only the teacher-identifying bits and push them into bits 0-3 | ||
7ECF | RLCA | |||
7ED0 | RLCA | |||
7ED1 | RLCA | |||
7ED2 | RLCA | |||
7ED3 | ADD A,$14 | E=0x16, 0x17 or 0x18 (teacher's name) | ||
7ED5 | LD E,A | |||
Now we can construct message 0x10 (teacher/room) ready for printing.
|
||||
7ED6 | LD L,$88 | Place the teacher message number (or ASCII code for SPACE) in 7F88 | ||
7ED8 | LD (HL),E | |||
7ED9 | LD L,$8A | Place the room message number in 7F8A | ||
7EDB | LD (HL),D | |||
7EDC | LD A,$10 | Message 0x10: teacher/room | ||
This entry point is used by the routine at 5D63.
|
||||
7EDE | LD DE,$5AB0 | DE=base display file address for the lesson box | ||
7EE1 | LD C,$57 | INK 7: PAPER 2: BRIGHT 1 | ||
7EE3 | CALL $6B46 | Print the lesson | ||
And finally, ring the bell.
|
||||
7EE6 | LD BC,$8010 | Set the parameters for the bell sound effect | ||
7EE9 | LD D,C | |||
7EEA | LD A,$01 | |||
7EEC | JP $748C | Ring the bell |
Prev: 7EB0 | Up: Map | Next: 7EEF |