![]() |
Routines |
| Prev: 776E | Up: Map |
|
||||||||
| 776F | CALL $F1E3 | Check for keypresses or hang up the phone | ||||||
| 7772 | RET Z | Return if no key with an ASCII code in the range 0x30-0x7F was pressed | ||||||
| 7773 | CP $61 | Is the ASCII code of the keypress less than 0x61 ('a')? | ||||||
| 7775 | RET C | Return if so | ||||||
| 7776 | CP $68 | Is the ASCII code of the keypress less than 0x68 ('h')? | ||||||
| 7778 | JR C,$777F | Jump if so | ||||||
| 777A | CP $73 | Was 's' pressed? | ||||||
| 777C | RET NZ | Return if not | ||||||
| 777D | SUB $0B | A=0x68 | ||||||
| 777F | ADD A,$07 | A=0x68-0x6F (message number of a name) | ||||||
| 7781 | LD ($7FD0),A | Store this at 7FD0 | ||||||
| 7784 | PUSH AF | Save the name message number briefly | ||||||
| 7785 | LD A,$28 | Message 0x28: ''{name}' I SAID ' | ||||||
| 7787 | CALL $75CA | Queue this message urgently | ||||||
| 778A | LD HL,($7F97) | Collect from 7F97 the address of either the second byte of the relevant phone table entry (if the phone was ringing, or the person Sam's calling has a message for him), or the final byte of the phone message table at 6B72 (if the person Sam's calling has no message for him); the final byte of the phone message table is 0xFF, which does not match the message number of any name | ||||||
| 778D | POP AF | Restore the name message number to A | ||||||
| 778E | CP (HL) | Set the zero flag if Sam has used the correct name | ||||||
| 778F | LD A,$2E | Message 0x2E: 'I DUNNO NO {name}' | ||||||
| 7791 | JR NZ,$7799 | Jump unless Sam has used the correct name | ||||||
|
This entry point is used by the routine at 77A3.
|
||||||||
| 7793 | DEC HL | Point HL at the first byte of the phone entry | ||||||
| 7794 | LD (HL),$00 | Mark the phone entry inactive | ||||||
| 7796 | INC HL | Point HL at the third byte of the phone entry | ||||||
| 7797 | INC HL | |||||||
| 7798 | LD A,(HL) | A=telephone message number | ||||||
| 7799 | LD HL,$0200 | Clear 7F9A and set bit 1 of the telephone call status flags at 7F9B (to disconnect the call) | ||||||
| 779C | LD ($7F9A),HL | |||||||
| 779F | JP $75CA | Queue the telephone message urgently | ||||||
| Prev: 776E | Up: Map |