OS_Esc, Examine special condition

Register parameters

RST 20H, DEFB $6F
IN:
     A = reason code

     Reason codes are as follows:

     SC_BIT ($00)   Test for Escape. Returns Fc = 1 if escape has been
                    pressed, else Fc = 0.

     SC_ACK ($01)   Acknowledge escape and also flush input buffer.
                    Fz = 1 if there was no escape to acknowledge, else
                    Fz = 0. Note that RC_ESC = SC_ACK so you can acknowledge
                    escape with this call without reloading the accumulator.
                    This also resets the machine timeout.

     SC_SET ($02)   Set escape, ie. simulate an escape condition

     SC_RES ($03)   Reset escape without flushing the input buffer.

     SC_TST ($04)   Test if escape detection is enabled or disabled. Fc = 0
                    always, and A = SC_ENA if it is enabled, A = SC_DIS if
                    it is disabled.

     SC_ENA ($05)   Enable escape detection
     SC_DIS ($06)   Disable escape detection.

OUT:     if A(in) = SC_BIT then
          Fc = 0, no escape
          Fc = 1, escape detected
     if A(in) = SC_ACK then
          Fc = 0,
          Fz = 1, no escape
          Fz = 0, escape acknowledged, machine timeout reset
     if A(in) = SC_TST then
          Fc = 0
          A = SC_ENA, escape detection enabled
          A = SC_DIS, escape detection disabled
     other A(in) values
          Fc = 0

Registers changed after return:
     ..BCDEHL/IXIY same
     AF....../.... different

Note

On entry to an application, Escape detection is always disabled. Application may have to enable it if API with timeout requires escape detection (like OS_Tin, OS_Dly or OS_Si).

Related system calls

GN_Err, display an interactive error box
GN_Esp, return an extended pointer to a system error message
OS_Erc, get error context
OS_Erh, set error handler

web analytics