Prev: 09767 Up: Map Next: 09832
09780: THE' SCANNING INKEY$' ROUTINE
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