![]() |
Routines |
Prev: 7CF1 | Up: Map |
|
||||||||||
7CFC | LD DE,$F26F | BC=F262 (TURN TO PAGE 123 OF YOUR BOOKS...); DE=F26F (the '123' in this message) | ||||||||
7CFF | LD C,$62 | |||||||||
7D01 | LD B,D | |||||||||
7D02 | CALL $61A1 | A=random number | ||||||||
7D05 | RLCA | This jump (which decides between the message at F262 and the message at F29D) is performed half the time | ||||||||
7D06 | JR C,$7D0C | |||||||||
7D08 | LD E,$BA | BC=F29D (ANSWER THE QUESTIONS ON PAGE 123 OF YOUR LOVELY TEXTBOOK); DE=F2BA (the '123' in this message) | ||||||||
7D0A | LD C,$9D | |||||||||
7D0C | SCF | A=128-255 (random page number to insert into the message) | ||||||||
7D0D | RRA | |||||||||
7D0E | NOP | |||||||||
7D0F | EX DE,HL | Point HL at the slot for the 100s digit of the page number in the message | ||||||||
7D10 | LD (HL),$2F | Compute and insert the ASCII code for the 100s digit of the page number | ||||||||
7D12 | INC (HL) | |||||||||
7D13 | SUB $64 | |||||||||
7D15 | JR NC,$7D12 | |||||||||
7D17 | INC L | Point HL at the slot for the 10s digit of the page number | ||||||||
7D18 | ADD A,$64 | Compensate for the trial subtraction of 100 above | ||||||||
7D1A | LD (HL),$2F | Compute and insert the ASCII code for the 10s digit of the page number | ||||||||
7D1C | INC (HL) | |||||||||
7D1D | SUB $0A | |||||||||
7D1F | JR NC,$7D1C | |||||||||
7D21 | INC L | Point HL at the slot for the units digit of the page number | ||||||||
7D22 | ADD A,$3A | Compensate for the trial subtraction of ten above, and add an extra 0x30 (the ASCII code for '0') | ||||||||
7D24 | LD (HL),A | Insert the ASCII code for the units digit of the page number | ||||||||
7D25 | EX DE,HL | Restore the teacher's character number to H | ||||||||
This entry point is used by the routines at 7D30, 7D84, F300, F7E0, F800 and F9F6.
|
||||||||||
7D26 | LD L,$6C | Place the address of the message into bytes 0x6B and 0x6C of the character's buffer | ||||||||
7D28 | LD (HL),B | |||||||||
7D29 | DEC L | |||||||||
7D2A | LD (HL),C | |||||||||
7D2B | LD BC,$7986 | Place the address of the interruptible subcommand routine at 7986 (make character speak) into bytes 0x69 and 0x6A of the character's buffer and jump to it | ||||||||
7D2E | JR $7CF1 |
Prev: 7CF1 | Up: Map |