*DECK RMDTSYS 
          IDENT     RM$TSYS        TAF VERSION OF RM$SYS= 
          COMMENT   CRM - TAF ENVIRONMENT PP REQUEST
          ENTRY     RM$TSYS 
*#
*1CD  RM$TSYS 
*0D   PURPOSE 
*0        ISSUE PP REQUEST IN TAF ENVIRONMENT, AVOID GOING INTO RECALL. 
*0D   CALL
*0        RJ        =XRM$TSYS 
*0D   PARAMETERS
*0        A0        FET ADDRESS 
*         B1        1 
*         X7        RA+1 REQUEST PROPERLY FORMATTED 
*0D   ACTION
*0    1.  FIRST WE CHECK TO SEE IF THIS IS AN RCL REQUEST.  IF IT IS WE 
*         BRANCH TO STEP 3.  WE WILL NOW POST THE REQUEST SO WAIT FOR 
*         RA+1 TO CLEAR.  NOW POST THE REQUEST AFTER CLEARING THE 
*         AUTO-RECALL BIT, BUT REMEMBERING IF IT WAS SET BY ORING IT
*         BACK INTO X7 AFTER THE REQUEST. 
*0    2.  HERE WE TAKE AN XJ, OR WAIT FOR THE REQUEST TO BE PICKED UP.
*         IF THE AUTO-RECALL BIT WAS NOT SET OR THE OPERATION IS
*         COMPLETE THEN EXIT. 
*0    3.  NOW WE ARE GOING TO TAKE THE TAF INTERRUPT INSTEAD OF GOING 
*         INTO RECALL.  FIRST SAVE ALL REGISTERS BUT B017,A17,X1. 
*0    4.  ENTER TAF VIA RJ.  ON RETURN WE CHECK THE AUTO RECALL BIT IN
*         THE SAVED X7.  IF THE REQUEST IS NOT COMPLETE BUT WAS 
*         ISSUES WITH RECALL THEN REPEAT STEP 4.  NOW RESTORE ALL 
*         REGISTERS SAVED AND SET B1=1.  EXIT.
*0    NOTES 
*         UNDER NORMAL CIRCUMSTANCES THIS ROUTINE WILL NOT BE USED. 
*         TAF UNDER NOS LOADS CRM VIA USER CALL LOADER.  AT LOAD TIME 
*         THE LDSET(SUBST) DIRECTIVE WILL FORCE THIS ROUTINE TO BE
*         LOADED IN PLACE OF RM$SYS=.  SINCE RM$SYS= IS REFERENCED FROM 
*         WITHIN THE CRM PASSLOC TABLES THE CAPSULES WILL ALSO LINK TO
*         THE SUBSTITUTED ENTRY POINT.
*0        THE CODE AT *XJPLUG* WAITS FOR RA+1 TO CLEAR AFTER POSTING THE
*         REQUEST.  WHEN XJ HARDWARE IS AVAILABLE OPEN$RM WILL PLUG AN
*         XJ INSTRUCTION INTO THIS LOCATION.  THE LOCATION IS KNOWN TO
*         OPEN$RM VIA THE ADDRESS ASSEMBLED INTO THE LOWER HALF OF THE
*         ENTRY POINT WORD.  THIS ALLOWS COMMON LOGIC TO PLUG THE TAF 
*         AND NOT-TAF EDITIONS WITHOUT THE NEED FOR ANOTHER ENTRY IN
*         THE PASSLOC TABLE AND ADDITIONAL SUBSTITUTE ON TAFS PART. 
*0D   REGISTERS USED
*0        A17,X17,B7
*0D   OTHER CODE REQUIRED 
*0        PROGRAMS- TAF$RM         THE TAF INTERRUPT ROUTINE
*         MACROS-   NONE
*#
          SPACE     2 
 RM.SYS1  BSS       0 
          SX1       B1
          PX1       X1
          FX1       X1/X1          REDUCE PYRAMID CLUTTER 
          FX1       X1/X1 
 XJPLUG   BSS       0              ****** OPEN MAY PLANT XJ HERE ****** 
          SA1       B1
          LX1       60-41 
          MI        X1,RM.SYS1     IF REQUEST NOT TAKEN 
          LX7       18
          SX1       X7-3RTIM
          LX7       60-18 
          ZR        X1,RM$TSYS     NO INTERRUPT ON TIM REQUEST
          SA1       X7             FET+0 / STATUS WORD
          LX7       60-41          SAVED RECALL BIT 
          PL        X7,RM$TSYS     IF REQUEST WAS WITHOUT RECALL
          LX1       59
          LX7       41             REPOSITION REQUEST WORD
          MI        X1,RM$TSYS     IF OPERATION COMPLETE
 TAFINTER BSS       0 
* 
*                                  SAVE THE REGISTERS 
* 
          SA7       REGS           X7 
          SX1       A6+ 
          SX7       A5+ 
          LX1       18
          BX7       X7+X1 
          SA6       A7+B1          X6 
          SX1       A4+ 
          LX7       18
          BX7       X7+X1 
          SA7       A6+B1          A654 
          SX1       A3
          MX6       -18 
          SX7       A2
          LX1       18
          BX7       X7+X1 
          SX1       A0
          BX1       -X6*X1         AVOID SIGN EXTENSION 
          LX7       18
          BX7       X7+X1 
          SA7       A7+B1          A320 
          SX1       B7
          SX7       B6
          BX1       -X6*X1
          BX7       -X6*X7
          LX1       18
          BX7       X7+X1 
          SX1       B5
          BX1       -X6*X1
          LX7       18
          BX7       X7+X1 
          SA7       A7+B1          B765 
          SX1       B4
          SX7       B3
          BX1       -X6*X1
          BX7       -X6*X7
          LX1       18
          BX7       X7+X1 
          SX1       B2
          BX1       -X6*X1
          LX7       18
          BX7       X7+X1 
          SA7       A7+B1          B432 
          BX7       X5
          BX6       X4
          SA7       A7+B1          X5 
          SA6       A7+B1          X4 
          BX7       X3
          BX6       X2
          SA7       A6+B1          X3 
          SA6       A7+B1          X2 
          BX7       X0
          SA7       A6+B1          X0 
 AGAIN    BSS       0 
          SA1       REGS           PASS ORIGINAL REQUEST IN X1
          RJ        =XTAF$RM       TAKE THE TAF INTERRUPT 
* 
*                                  RESTORE THE REGISTERS
* 
          SA1       REGS           X7 
          SA2       X1+            FET+0 / STATUS WORD
          BX7       X1
          LX2       59             BUSY BIT 
          LX1       60-41          AUTO-RECALL BIT
          BX3       -X2*X1
          MI        X3,AGAIN       IF BUSY AND AUTO-RECALL REQUESTED
          SB1       1 
          SA3       A1+B1          X6 
          SA1       A3+B1          A654 
          SA4       X1+ 
          AX1       18
          SA5       X1+ 
          AX1       18
          SA2       X1             PRESERVE MEMORY CONTENT
          BX6       X2
          SA6       X1
          SA1       A1+B1          A320 
          BX6       X3
          SA0       X1
          AX1       18
          SA2       X1
          AX1       18
          SA3       X1
          SA1       A1+B1          B765 
          SB5       X1
          AX1       18
          SB6       X1
          AX1       18
          SB7       X1
          SA1       A1+B1          B432 
          SB2       X1
          AX1       18
          SB3       X1
          AX1       18
          SB4       X1
          SA1       A1+B1          X5 
          BX5       X1
          SA1       A1+B1          X4 
          BX4       X1
          SA1       A1+B1          X3 
          BX3       X1
          SA1       A1+B1          X2 
          BX2       X1
          SA1       A1+B1          X0 
          BX0       X1
 RM$TSYS  EQ        *+1S17         --- ENTRY / EXIT --- 
 -        VFD       12/0,18/XJPLUG LOCATION TO RECEIVE XJ INSTRUCTION 
          LX7       18
          SX1       X7-3RRCL
          LX7       60-18 
          ZR        X1,TAFINTER    IF RCL REQUEST 
 WAIT     BSS       0 
          SA1       B1
          NZ        X1,WAIT        WAIT PREVIOUS REQUEST TO BE TAKEN
          MX1       1 
          LX1       41
          BX1       X1*X7          REMEMBER IF AUTO-RECALL
          BX7       -X1*X7         CLEAR AUTO-RECALL BIT IN REQUEST 
          SA7       B1             POST THE REQUEST 
          BX7       X1+X7          SAVE AUTO-RECALL INDICATOR 
          EQ        XJPLUG         WAIT RA+1 CLEAR OR ISSUE XJ
          SPACE     2 
 REGS     BSS       11             REGISTER SAVE AREA 
          END 
