Routines |
Prev: 09767 | Up: Map | Next: 09832 |
The address of this routine is derived from an offset found in the scanning function table.
|
||||
S_INKEY | 09780 | LD BC,4186 | Priority 16, operation code 90 for the 'read-in' subroutine. | |
09783 | RST 32 | |||
09784 | CP "#" | If next char. is '#', jump. There will be a numerical argument. | ||
09786 | JP Z,S_PUSH_PO | |||
09789 | LD HL,23611 | This is FLAGS. | ||
09792 | RES 6,(HL) | Reset bit 6 for a string result. | ||
09794 | BIT 7,(HL) | Test for syntax checking. | ||
09796 | JR Z,S_INK_EN | Jump if required. | ||
09798 | CALL KEY_SCAN | Fetch a key-value in DE. | ||
09801 | LD C,0 | Prepare empty string; stack it if too many keys pressed. | ||
09803 | JR NZ,S_IK_STK | |||
09805 | CALL K_TEST | Test the key value; stack empty string if unsatisfactory. | ||
09808 | JR NC,S_IK_STK | |||
09810 | DEC D | 255 to D for 'L' mode (bit 3 set). | ||
09811 | LD E,A | Key-value to E for decoding. | ||
09812 | CALL K_DECODE | Decode the key-value. | ||
09815 | PUSH AF | Save the ASCII value briefly. | ||
09816 | LD BC,1 | One space is needed in the work space. | ||
09819 | RST 48 | Make it now. | ||
09820 | POP AF | Restore the ASCII value. | ||
09821 | LD (DE),A | Prepare to stack it as a string. | ||
09822 | LD C,1 | Its length is one. | ||
S_IK_STK | 09824 | LD B,0 | Complete the length parameter. | |
09826 | CALL STK_STO | Stack the required string. | ||
S_INK_EN | 09829 | JP S_CONT_2 | Jump forward. |
Prev: 09767 | Up: Map | Next: 09832 |