OS_Tin, Read character from standard input, with timeout

Register parameters

RST 20H, DEFB $2D
IN:
     BC = timeout in 1/100 seconds

OUT, if call successful:
     Fc = 0
     A = character read from standard input
     BC = time remaining in 1/100 seconds

OUT, if call failed:     Fc = 1
     A = error code:
          RC_SUSP ($69), suspension
          RC_DRAW ($66), application pre-empted and screen corrupted
          RC_QUIT ($67), KILL request
          RC_ESC ($01), escape condition detected
          RC_TIME ($02), call has timed out

Registers changed after return:
     ....DEHL/IXIY same
     AFBC..../.... different 

Notes

Application use this when it is convenient to toggle between reading keyboard a short while and do other house keeping tasks.

Bugs

Crashes OZ while in a popdown with safe workspace more than 32 bytes, and the popdown gets pre-empted (RC_QUIT).

Related calls

GN_Sip, system input line routine
OS_In, read (wait for) character from standard input
OS_Pur, purge keyboard buffer
OS_Xin, examine input

web analytics