![]() |
Routines |
Prev: 09767 | Up: Map |
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 |