*DECK QGOTOX
          NAM    QGOTOX 
* 
*      CALLING SEQUENCE 
*         RTJ    QGOTOX 
*         ADC    RETURN ADDRESS 
*         NUM    LEVEL NO. AND NON-INT FLAG 
* 
*      GIF = GLOBAL INTERRUPT FLAG (1ST WORD IN STACK AREA HEADER)
*      NAW = NEXT AVAILABLE WORD POINTER (2ND WORD IN STACK AREA HEADER)
* 
          ENT    QGOTOX 
          EXT    QTOPSK 
          EXT    QDEBUG 
* 
QGOTOX    NOP    0
          IIN    0            INHIBIT INTERRUPTS
          LDA*   (QGOTOX) 
          STA*   RETADR       SAVE RETURN ADDRESS 
          RAO*   QGOTOX 
          LDA*   (QGOTOX)     LOAD LEVEL NO.
          XFA    3            SAVE NON-INTERRUPTIBLE FLAG 
          AND*   K7FFF        ISOLATE LEVEL NO. 
          SAN    Q010         SKIP IF NOT RETURNING TO MAIN$
          LDA*   TOP          RETURNING TO MAIN$
          XFA    I            UPDATE I-REG
          INA    4
          STA-   1,I          UPDATE NAW
          LR1-   8,I          RESTORE R1-REG
          LR2-   9,I          RESTORE R2-REG
          JMP*   Q040 
Q010      INA    -1           RETURNING TO LEVEL N PROCEDURE
          TCA    Q            Q-REG = -(LEVEL NO. - 1)
Q020      SRI*   NXTAVL       POTENTIAL NAW 
          LRI*   (K0),I       NEXT STACK BACK 
          LDA-   2,I          LEVEL NO. 
          AAQ    A
          SAZ    Q030         MATCH ON LEVEL NO.
          JMP*   Q020 
Q030      LDA*   NXTAVL 
          LDQ*   TOP
          STA-   1,Q          UPDATE NAW
          LR1-   4,A          RESTORE R1-REG
          LR2-   5,A          RESTORE R2-REG
Q040      LDA*   (TOP)        LOAD GIF
          S3P    Q060-*-1     SKIP IF NOT NON-INTERRUPTIBLE PROCEDURE 
          INA    -1           DECREMENT GIF 
          SAP    Q050 
          RTJ    QDEBUG       CALL QDEBUG IF GIF GOES NEGATIVE
          ADC    K6 
          ADC    K0 
Q050      STA*   (TOP)        UPDATE GIF
Q060      SAN    Q070         SKIP IF GIF NON-ZERO
          EIN    0            ENABLE INTERRUPTS 
Q070      JMP*   (RETADR)     EXIT JUMP 
* 
TOP       ADC    QTOPSK       POINTER TO TOP OF STACK AREA
K0        NUM    0            CONSTANT 0
K6        NUM    6            CONSTANT 6
K7FFF     NUM    $7FFF        CONSTANT 7FFF 
RETADR    NUM    0            RETURN ADDRESS
NXTAVL    NUM    0            SAVE POTENTIAL NAW
          END 
