GN_Sip, System input line routine

Register parameters

RST 20H, DEFW $0E09
IN:
     DE = buffer for input string

     A0 = 1, buffer already contains data to be edited
     A1 = 1, force insert/overwrite mode (see A2)
     A2 = 1, 0 = insert mode, 1 = overwrite mode (ignored if A1 = 0)
     A3 = 1, return special characters, else ignore
     A4 = 1, return if wrap occurs
     A5 = 1, single line lock control
     A6 = 1, display in reverse video
     A7 = 1, if A3 = 1, allow for insert/overwrite return

     B = length of buffer
     C = cursor position, if A0 = 1 (set C = B if C > B)
     L = width of line, if A5 = 1 (incl. null-terminator)

OUT, if call successful:
     Fc = 0
     B = length of line entered, including terminating null
     C = cursor position on exit
     A = character which caused end of input
OUT, if call failed:
     Fc = 1
     A = error code:
          RC_BAD ($04), bad arguments
          RC_WRAP ($0D), wrapping has occurred (only if A4 = 1)
          RC_SUSP ($69), suspicion of suspension
          RC_DRAW ($66), application screen needs redrawing
          RC_QUIT ($67), kill request (e.g. from INDEX)
          RC_ESC ($01), if escape detection is enabled

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

Bugs

Crashes OZ while in a popdown and an error handler is installed in segment 2, when the popdown is pre-empted (with RC_QUIT) during the GN_Sip call.

Related calls

GN_Gmt, get (read) machine time in internal format 
GN_Gtm, convert an ASCII string to a time in internal format 
GN_Msc, miscellaneous time operations 
GN_Pmt, put (set) machine time 
GN_Ptm, write internal time as ASCII string 
OS_Dly, delay a given period