![]() |
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 |