Routines |
Prev: 2627 | Up: Map | Next: 2668 |
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 | Next: 2668 |