![]() |
Routines |
Prev: 2627 | Up: Map |
The address of this routine is derived from an offset found in the scanning function table.
|
||||||||
S_INKEY | 2634 | LD BC,$105A | Priority +10, operation code +5A for the 'read-in' subroutine. | |||||
2637 | RST $20 | |||||||
2638 | CP "#" | If next char. is '#', jump. There will be a numerical argument. | ||||||
263A | JP Z,S_PUSH_PO | |||||||
263D | LD HL,$5C3B | This is FLAGS. | ||||||
2640 | RES 6,(HL) | Reset bit 6 for a string result. | ||||||
2642 | BIT 7,(HL) | Test for syntax checking. | ||||||
2644 | JR Z,S_INK_EN | Jump if required. | ||||||
2646 | CALL KEY_SCAN | Fetch a key-value in DE. | ||||||
2649 | LD C,$00 | Prepare empty string; stack it if too many keys pressed. | ||||||
264B | JR NZ,S_IK_STK | |||||||
264D | CALL K_TEST | Test the key value; stack empty string if unsatisfactory. | ||||||
2650 | JR NC,S_IK_STK | |||||||
2652 | DEC D | +FF to D for 'L' mode (bit 3 set). | ||||||
2653 | LD E,A | Key-value to E for decoding. | ||||||
2654 | CALL K_DECODE | Decode the key-value. | ||||||
2657 | PUSH AF | Save the ASCII value briefly. | ||||||
2658 | LD BC,$0001 | One space is needed in the work space. | ||||||
265B | RST $30 | Make it now. | ||||||
265C | POP AF | Restore the ASCII value. | ||||||
265D | LD (DE),A | Prepare to stack it as a string. | ||||||
265E | LD C,$01 | Its length is one. | ||||||
S_IK_STK | 2660 | LD B,$00 | Complete the length parameter. | |||||
2662 | CALL STK_STO | Stack the required string. | ||||||
S_INK_EN | 2665 | JP S_CONT_2 | Jump forward. |
Prev: 2627 | Up: Map |