Prev: 2627 Up: Map Next: 2668
2634: THE' SCANNING INKEY$' ROUTINE
The address of this routine is derived from an offset found in the scanning function table.
Input
Output
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