TLX 
          IDENT  TLX,TLX
          PERIPH
          BASE   MIXED
          SST 
*COMMENT  TLX - TERMINAL ACTION PROCESSOR.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  TLX - TERMINAL ACTION PROCESSOR. 
          SPACE  4,10 
***       TLX - TERMINAL ACTION PROCESSOR.
*         G. R. MANSFIELD    72/02/08.
*         L. K. TUTTLE       79/04/19.  (RESEQUENCED).
          SPACE  4,10 
**        *TLX* MAY BE CALLED BY A CPU PROGRAM TO ALTER 
*         TERMINAL CONTROL IN IAF.
          SPACE  4,10 
***       CALL. 
* 
* 
*T        18/  *TLX*,6/  AR,12/  CODE,6/  SF,18/  PAR 
*         AR     AUTO RECALL
*         CODE   FUNCTION CODE
*         SF     SUBFUNCTION (FUNCTIONS 12 AND 15)
*         PAR    PARAMETER FOR FUNCTION 
          SPACE  4,10 
***       DAYFILE MESSAGES. 
* 
* 
*         * INCORRECT TERMINAL REQUEST.* = AN UNKNOWN FUNCTION CODE,
*                OR A REQUEST THAT REQUIRES *SSJ=* FROM A NON-*SSJ=*
*                PROGRAM. 
* 
*         * TLX - ARGUMENT ERROR.* = PARAMETER ADDRESS OUT OF RANGE.
* 
*         * TLX - RPV ALREADY SET.* = FUNCTION 0, EXTENDED REPRIEVE 
*                BIT ALREADY SET. 
* 
*         * REQUEST IS VALID ONLY FROM A NETWORK TERMINAL.* = 
*         THE TERMINAL IS NOT A NETWORK TERMINAL OR THE CONNECTION
*         IS NOT ONLINE.
* 
*         * USER CANNOT SWITCH FROM A SECONDARY APPLICATION.* = 
*         A TERMINAL CANNOT REQUEST TO SWITCH TO ANOTHER APPLICATION
*         IF IT IS ALREADY CONNECTED TO A SECONDARY APPLICATION (IAF).
* 
*         * APPLICATION NAME IS REQUIRED.* = WHEN SWITCHING 
*         APPLICATIONS, AN APPLICATION NAME MUST BE SPECIFIED IF THE
*         JOB IS CURRENTLY CONNECTED TO A PRIMARY APPLICATION (IAF).
* 
*         * THIS CONNECTION IS ALREADY LOANED.* = THIS CONNECTION IS
*         ALREADY LOANED, SO ANOTHER SWITCH IS NOT POSSIBLE UNTIL 
*         THE CONNECTION RETURNS TO IAF.  (THIS SHOULD NEVER OCCUR) 
          SPACE  4,10 
***       ACCOUNT FILE MESSAGES.
* 
* 
*         *ACAB.* = SECONDARY APPLICATION ABORTED CONNECTION. 
* 
*         *ACAE.* = IAF INTERNAL ERROR DURING APPLICATION SWITCH. 
* 
*         *ACAF.* = SECONDARY APPLICATION NETTED OFF OR FAILED. 
* 
*         *ACAI.* = USER NOT VALIDATED FOR SECONDARY APPLICATION. 
* 
*         *ACAR.* = SECONDARY APPLICATION TERMINATED CONNECTION.
* 
*         *ACAS, APLNAME.* = APPLICATION SWITCH TO *APLNAME*. 
* 
*         *ACAU.* = SECONDARY APPLICATION REFUSED CONNECTION, NOT 
*                   AVAILABLE, OR AT CONNECTION LIMIT.
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSCPS 
*CALL     COMSJCE 
*CALL     COMSPIM 
*CALL     COMSREM 
*CALL     COMSEJT 
*CALL     COMSEVT 
*CALL     COMSSSD 
          TITLE  MACRO DEFINITIONS. 
 FCNP     SPACE  4,25 
**        FCNP - FUNCTION TABLE MACRO.
* 
*         FCNP   PROC,CODE,NI,DT
* 
*         PROC = FUNCTION PROCESSOR ENTRY POINT.
*         CODE = IAF FUNCTION CODE. 
*         NI = ACTION WHEN NOT INTERACTIVE CONNECTION STATUS (*NICS*).
*                IGN = IGNORE REQUEST.
*                PRO = PROCESS REQUEST. 
*         DT = ACTION WHEN DETACHED CONNECTION STATUS (*DTCS*). 
*                IGN = IGNORE REQUEST.
*                PRO = PROCESS REQUEST. 
*                SUS = SUSPEND JOB. 
* 
*         TABLE ENTRY GENERATED.
* 
*T        12/ PROC ADR,12/ CODE,6/ NI,6/ DT 
* 
*         NI AND DT FIELDS ARE DEFINED AS FOLLOWS 
*                0 = IGNORE REQUEST.
*                1 = PROCESS REQUEST. 
*                2 = SUSPEND JOB. 
  
  
          PURGMAC FCNP
  
 FCNP     MACRO  P,C,N,D
  MACREF FCNP 
  CON P,C 
 .1 SET 7777B 
 .2 SET 7777B 
  ECHO 3,A=(IGN,PRO),B=(0,1)
  IFC EQ,$N$A$,2
  STOPDUP 
 .1 SET B 
  IFEQ .1,7777B,1 
  ERR     INCORRECT *NI* PARAMETER
  ECHO 3,A=(IGN,PRO,SUS),B=(0,1,2)
  IFC EQ,$D$A$,2
  STOPDUP 
 .2 SET B 
  IFEQ .2,7777B,1 
  ERR     INCORRECT *DI* PARAMETER
  VFD 6/.1,6/.2 
  ENDM
 ABORT    SPACE  4,10 
**        ABORT - ERROR PROCESSOR MACRO.
* 
*         ABORT  ADDR 
* 
*         ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
  
  
          PURGMAC  ABORT
 ABORT    MACRO  A
          MACREF ABORT
          LDC    A
          LJM    ERR         PROCESS ERROR EXIT 
          ENDM
 ERROR    SPACE  4,10 
**        ERROR - TRANSFER FILE ERROR PROCESSING MACRO. 
* 
*         ERROR  CODE,X 
* 
*         CODE = RETURN STATUS CODE.
*         X = PREPROCESSING OPTION. 
*           = R, REINSTATE CALLER-S FNT.
*           = B, CHANGE BACK TO CALLER-S CP AND REINSTATE CALLER-S FNT. 
* 
*         CALLS  CCP, RCF, SRS. 
  
  
          PURGMAC  ERROR
  
 ERROR    MACRO  C,X
          MACREF ERROR
 .A       IFC    NE,$X$$
 .B       IFC    EQ,$X$B$ 
          RJM    CCP         CHANGE BACK TO CALLER-S CP 
 .B       ENDIF 
          RJM    RCF         REINSTATE CALLER-S FNT 
 .A       ENDIF 
          LDN    C
          LJM    SRS         SET RETURN STATUS
 ERROR    ENDM
          SPACE  4,10 
**        DIRECT LOCATION ASSIGNMENTS.
  
  
 CN       EQU    20 - 24     CM WORD BUFFER (5 LOCATIONS) 
 TT       EQU    25 - 26     TERMINAL TABLE ADDRESS (2 LOCATIONS) 
 TA       EQU    27          IAF CONTROL POINT ADDRESS (RA).
 TW       EQU    30 - 34     TERMINAL REQUEST WORD (5 LOCATIONS)
 TN       EQU    TW+4        TERMINAL NUMBER
 CS       EQU    35          CONNECTION STATUS
 FN       EQU    36 - 42     FNT ENTRY
 FS       EQU    43 - 47     FST ENTRY
 FA       EQU    60          ADDRESS OF FNT ENTRY IN CALLER-S NFL 
 PP       EQU    61          POT POINTER
 PA       EQU    62 - 63     POT ADDRESS
 RC       EQU    64 - 65     RECALL COUNTERS
          TITLE  MAIN PROGRAM.
          SPACE  4,10 
**        TLX - MAIN PROGRAM. 
* 
*         EXIT   TO FUNCTION PROCESSOR. 
*                (TA) = IAF RA. 
*                (TW) = FUNCTION CODE.
*                (TW+1 - TW+3) = ZERO.
*                (TW+4) = (TN) = TERMINAL NUMBER. 
*                (CS) = CONNECTION STATUS.
  
  
          ORG    PPFW 
  
 TLX      RJM    PRS         PRESET PROGRAM 
          LJM    *           PROCESS REQUEST
 TLXA     EQU    *-1
  
*         FUNCTION REQUEST EXIT.
* 
*         ENTRY  (TW - TW+4) = FORMATTED *TSEM* REQUEST.
  
 TLXX     LDN    10D         ALLOW RECALL IF *TSEM* QUEUE FULL
          RJM    ITF         ISSUE *TSEM* FUNCTION
 DPP      MONITOR DPPM       DROP PP
          LJM    PPR         EXIT TO PP RESIDENT
 TFCN     SPACE  4,10 
**        TFCN - TABLE OF FUNCTION CODE PROCESSORS. 
* 
*         ENTRY = 3 WORDS.
* 
*T        12/ ADDR,12/ CODE,6/ NI,6/ DT 
*         ADDR   ADDRESS OF FUNCTION PROCESSOR
*         CODE   FUNCTION CODE FOR *TSEM* REQUEST.
*         NI     ACTION WHEN CONNECTION STATUS IS *NICS*. 
*                0 = IGNORE REQUEST.
*                1 = PROCESS REQUEST. 
*         DT     ACTION WHEN CONNECTION STATUS IS *DTCS*. 
*                0 = IGNORE REQUEST.
*                1 = PROCESS REQUEST. 
*                2 = SUSPEND JOB. 
  
  
 TFCN     BSS    0
          LOC    0
          FCNP   SIA,VSDT,IGN,PRO  SET INTERRUPT ADDRESS
          FCNP   CIA,VCDT,IGN,PRO  CLEAR INTERRUPT ADDRESS
          FCNP   CCR,VCDT,IGN,SUS  CLEAR CHARGE REQUIRED
          FCNP   SCS,VSCS,IGN,PRO  SET CHARACTER SET
          FCNP   PAR,VPTY,IGN,SUS  SET PARITY 
          FCNP   STS,0000,PRO,PRO  RETURN STATUS
          FCNP   SPM,VSDT,IGN,PRO  SET PROMPT OFF 
          FCNP   SPM,VCDT,IGN,PRO  SET PROMPT ON
          FCNP   PSF,VSDT,IGN,SUS  PROCESS SORT FLAG CHANGE 
          FCNP   REC,VREC,IGN,SUS  RECOVER JOB
          FCNP   TWF,VCSM,PRO,PRO  TRANSFER WORKFILE
          FCNP   SSM,VSDT,IGN,SUS  SET SCREEN MODE
          FCNP   SSM,VCDT,IGN,SUS  CLEAR SCREEN MODE
          FCNP   SWS,0000,IGN,PRO  SET NFL WORD *SLMN*
          FCNP   LTI,0000,PRO,PRO  LOOK FOR TYPED AHEAD INPUT 
          FCNP   PDT,VDTJ,PRO,PRO  DETACH JOB 
          FCNP   SEM,VSDT,IGN,PRO  SET USER EFFECT MODE 
          FCNP   SEM,VCDT,IGN,PRO  CLEAR USER EFFECT MODE 
          FCNP   APS,VTLF,IGN,PRO  SWITCH APPLICATIONS
          FCNP   RLC,0000,IGN,PRO  RESTART LOANED CONNECTION
  
 TFCNL    BSS    0           TABLE LWA+1
          LOC    *O 
          TITLE  FUNCTION PROCESSORS. 
 SIA      SPACE  4,10 
***       FUNCTION 0. 
* 
*         SET PROGRAM TERMINAL CONTROL. 
*         SET INTERRUPT ADDRESS = PAR.
  
  
 SIA      LDD    CP          READ ENTRY/EXIT CONTROL WORD 
          ADN    TIAW 
          CRD    CM 
          ADN    EECW-TIAW
          CRD    CN 
          LDD    IR+3        VALIDATE REQUEST ADDRESS 
          LPN    77 
          SHN    14 
          PJN    SIA1        IF FLAG ADDRESS
          ADN    21          ADD EXCHANGE PACKAGE 
 SIA1     LPC    377777 
          ADD    IR+4 
          SHN    -6 
          SBD    FL 
          MJN    SIA2        IF VALID 
          ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
  
 SIA2     LDD    IR+3        ENTER INTERRUPT ADDRESS
          LPN    77 
          STM    SIAB+3 
          LDD    IR+4 
          STM    SIAB+4 
          LDD    CN          CHECK EXTENDED REPRIEVE SET
          SHN    21-12
          PJN    SIA3        IF EXTENDED REPRIEVE NOT SET 
          ABORT  ERRA        * TLX - RPV ALREADY SET.*
  
 SIA3     LDD    MA          ENTER *UADM* SUB-FUNCTION
          CWM    SIAB,ON
          LDN    1
          STD    CM+1        *UADM* WORD COUNT
          STD    CM+2        SPECIFY NO DROP OF PP
          MONITOR UADM
          LDD    HN          SET MASK FOR RECOVERY WORD 
          RJM    URW         UPDATE RECOVERY WORD 
          NJP    DPP         IF NOT ON-LINE JOB 
  
*         COMMON ENTRY TO SET *VSTT*. 
  
 SIA4     LDN    VSTT        SET WORD NUMBER
          STD    TW+2 
 SIAA     LDN    59D         SET BIT NUMBER 
*         LDN    57D         (CHARGE REQUIRED)
*         LDN    55D         (SET/CLEAR USER EFFECT MODE) 
*         LDN    53D         (SET/CLEAR PROMPT MODE)
*         LDN    52D         (SET/CLEAR SORT FLAG)
*         LDN    49D         (SET/CLEAR SCREEN MODE)
          STD    TW+3 
          LJM    TLXX        EXIT 
  
*         *UADM* FUNCTION TO SET/CLEAR TERMINAL INTERRUPT ADDRESS.
  
 SIAB     CON    CSFS        SET VARIABLE FIELD 
          CON    TIAW        WORD TO SET
          CON    18D*100+18D FIELD TO SET AND WIDTH 
          CON    0,0         VALUE FIELD
 CIA      SPACE  4,10 
***       FUNCTION 1. 
* 
*         CLEAR TERMINAL CONTROL. 
*         CLEAR INTERRUPT ADDRESS.
  
  
 CIA      LDD    CP          READ ENTRY/EXIT CONTROL WORD 
          ADN    TIAW 
          CRD    CM 
          ADN    EECW-TIAW
          CRD    CN 
          LJM    SIA3        CLEAR ENTRY/EXIT WORD
 CCR      SPACE  4,10 
***       FUNCTION 2. 
* 
*         CLEAR *CHARGE* REQUIRED.
  
  
 CCR      LCN    59D-57D     SET BIT NUMBER 
          RAM    SIAA 
          UJN    SIA4        PROCESS REQUEST
 SCS      SPACE  4,10 
***       FUNCTION 3. 
* 
*         SET CHARACTER SET MODE. 
*         SETS OR CLEARS EXTENDED CHARACTER SET MODE. 
* 
*         ENTRY  PAR = (IR+4) = 0, SET NORMAL MODE. 
*                             = 1, SET EXTENDED MODE. 
*                             = 2, RESTORE ENTRY MODE.
*                             = 10, SET NORMAL MODE, RESET ENTRY MODE.
*                             = 11, SET EXTENDED MODE,RESET ENTRY MODE. 
  
  
 SCS      LDD    IR+4        SET ARGUMENT 
          STD    TW+2 
          SBN    3
          MJN    SCS3        IF VALID ARGUMENT
          SBN    10-3 
          MJN    SCS1        IF INCORRECT ARGUMENT
          SBN    12-10
          MJN    SCS2        IF VALID ARGUMENT
 SCS1     ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
  
 SCS2     AOM    SCSA        INDICATE RESET ENTRY MODE
 SCS3     LDD    CS 
          LMK    OLCS 
          ZJP    TLXX        IF ON-LINE JOB, ENTER REQUEST
          NFA    RC1N        READ RECOVERY WORD FROM NFL
          CRD    CM 
          LDD    CM+3        CLEAR CURRENT CHARACTER SET
          SCN    7
          STD    CM+3 
          SHN    -3          SAVE INITIAL CHARACTER SET 
          LPN    7
          STD    T1 
          LDD    IR+4 
          LPN    7
          LMN    2
          ZJN    SCS4        IF RESTORE ENTRY MODE
          LMN    2
          STD    T1 
 SCS4     LDD    T1          SET NEW CURRENT CHARACTER SET
          RAD    CM+3 
 SCSA     LDN    0
*         LDN    1           (RESET ENTRY MODE) 
          ZJN    SCS5        IF NO RESET NEEDED 
          LDD    CM+3        RESET ENTRY MODE 
          SHN    -3+22
          SCN    7
          LMD    T1 
          SHN    3
          STD    CM+3 
 SCS5     NFA    RC1N        REWRITE RECOVERY WORD
          CWD    CM 
          LJM    DPP         DROP PP
 PAR      SPACE  4,10 
***       FUNCTION 4. 
* 
*         SET TERMINAL PARITY.
* 
*         ENTRY  PAR = (IR+4) = 0, SET EVEN PARITY. 
*                             = 1, SET ODD PARITY.
  
  
 PAR      LDD    IR+4        CHECK ARGUMENT 
          STD    TW+3 
          SBN    2
          MJP    TLXX        IF VALID ARGUMENT, ENTER REQUEST 
          ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
 STS      SPACE  4,30 
***       FUNCTION 5. 
* 
*         RETURN TERMINAL STATUS. 
* 
*         ENTRY  (IR+3 - IR+4) = 6/ L,18/ PAR 
* 
*         L = LENGTH OF RETURN BUFFER (2 IF NOT SPECIFIED). 
*         PAR = ADDRESS OF PARAMETER WORD.
* 
*         EXIT   TERMINAL STATUS RETURNED TO USER.
* 
*T  PAR   42/TERMINAL ID, 6/SUB, 12/TN
*T, PAR+1 3/ ,3/ NT,6/ CS,4/,8/ NDT,18/ INT,6/ TC,12/ STATUS
*T, PAR+2 42/TERMINAL NAME, 18/0            (IF *L* .GT. 2) 
* 
*         SUB    = SUBSYSTEM. 
*         TN     = TERMINAL NUMBER. 
*         NT     = NETWORK TYPE.
*         CS     = CONNECTION STATUS. 
*         NDT    = NETWORK TERMINAL DEVICE TYPE.
*         INT    = INTERRUPT ADDRESS IF SET.
*         TC     = TRANSMISSION CODE. 
*                  0 = ASCII. 
*                  1 = CORRESPONDENCE.
*                  2 = NIXDORF. 
*                  3 = NETWORK. 
* 
*         STATUS -                     BIT
* 
*                USER FORMAT EFFECTORS 6
*                BRIEF MODE            5
*                TAPE MODE             4
*                FULL DUPLEX           3
*                CURRENT CHARACTER SET 2  (EXTENDED IF SET) 
*                ENTRY CHARACTER SET   1  (EXTENDED IF SET) 
*                PARITY                0  (ODD IF SET)
* 
*         IF CONNECTION STATUS IS NOT ONLINE, STATUS WILL BE RETURNED 
*         BUT THE ONLY VALID FIELD WILL BE *CS*.  ALL OTHER FIELDS
*         WILL BE ZERO EXCEPT *TERMINAL ID* WHICH WILL BE BLANK.
* 
*         CALLS  GPA, RRR, SDT, SNI, SRR, STA, STI. 
* 
*         MACROS ABORT. 
  
  
 STS4     ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
  
 STS      LDD    IR+3        VALIDATE RETURN ADDRESS
          SHN    14 
          STD    T7          SAVE RETURN BUFFER LENGTH
          ADD    IR+4 
          SHN    -6 
          SBD    FL 
          PJN    STS4        IF INVALID ADDRESS 
          LDD    T7 
          SBN    3
          MJN    STS0        IF NOT EXTENDED STATUS 
          LDN    ZERL        PRESET TERMINAL NAME 
          CRD    FN 
          LDN    PSNI 
          STM    STSB 
 STS0     LDD    CS 
          LMN    OLCS 
          NJP    STS3        IF NOT ON LINE 
          LDN    VTTL        READ TERMINAL TABLE
          STD    T1 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA
          CRM    TTTA,T1
          RJM    RRR         RESTORE R-REGISTER 
  
*         SET TERMINAL IDENTIFICATION.
  
          RJM    SNI         SET NETWORK IDENTIFICATION 
          STD    T2 
          NJN    STS1        IF NETWORK TERMINAL
          RJM    STI         SET MUX TERMINAL IDENTIFICATION
  
*         FORMAT TERMINAL PARAMETERS. 
  
 STS1     LDD    CP          SET INTERRUPT ADDRESS
          ADN    TIAW 
          CRD    CN 
          LDN    0
          STD    CN 
          STD    CN+1 
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          LDM    TTTA+VDPT*5+3
          STD    T1 
          LPN    1           SET PARITY BIT 
          STD    CN+4 
          LDD    T1          SET DUPLEX BIT 
          SHN    3-6
          LPN    10 
          RAD    CN+4 
          LDM    TTTA+VDCT*5+0
          STD    T1 
          SHN    4-0         SET TAPE MODE BIT
          LPN    20 
          RAD    CN+4 
          LDD    T1          SET BRIEF MODE FLAG
          SHN    5-7
          LPN    40 
          RAD    CN+4 
          LDD    T1          SET CHARACTER SET MODE 
          SHN    2-3
          LPN    4
          RAD    CN+4 
          LDD    CM+4        SET TRANSMISSION CODE
          LPN    77 
          RAD    CN+3 
          LDD    TN          SET TERMINAL NUMBER
          STD    CM+4 
          LDM    TTTA+VSTT*5+3  SET SUBSYSTEM 
          STD    T1 
          LMD    CM+3 
          SCN    77 
          LMD    T1 
          STD    CM+3 
          LDD    T1          SET ENTRY CHARACTER SET MODE 
          SHN    1-6
          LPN    2
          RAD    CN+4 
          LDM    TTTA+VSTT*5
          SHN    6-7
          LPC    100         SET FORMAT EFFECTOR BIT
          RAD    CN+4 
          LDD    T2          CHECK IF NETWORK TERMINAL
          ZJP    STS2        IF NOT NETWORK TERMINAL
          LDD    T7 
          SBN    3
          MJN    STS1.1      IF NOT EXTENDED STATUS 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          LDD    TA          GET TERMINAL NAME TABLE POINTERS 
          SHN    6
          ADN    VTNP 
          CRD    FN 
          LDD    FN+1 
          LPN    77B
          SHN    6
          ADD    TA 
          SHN    6
          ADD    FN+2 
          ADD    TN          ADD TERMINAL NUMBER
          CRD    FN          READ NETWORK TERMINAL NAME 
          RJM    RRR         RESTORE R-REGISTER 
          LDN    0           CLEAR UNUSED BITS
          STD    FN+4 
          LDD    FN+3 
          SCN    77 
          STD    FN+3 
 STS1.1   RJM    SDT         SET DEVICE TYPE AND TRANSMISSION CODE
          LDD    T0          SET NETWORK TYPE 
          SHN    6-12 
          LPC    100
          ADD    HN 
 STS2     LMD    CS          SET CONNECTION STATUS
          STD    CN 
  
*         WRITE STATUS INTO USER BUFFER.
  
          RJM    GPA         GET PARAMETER WORD ADDRESS 
          CWD    CM 
          ADN    1
          CWD    CN 
 STSB     UJN    STS2.1      DROP PP
*         PSN                (IF EXTENDED STATUS) 
          ADN    1
          CWD    FN 
 STS2.1   LJM    DPP         DROP PP
  
*         PROCESS SPECIAL STATUS. 
  
 STS3     LDD    MA 
          CWM    STSA,ON
          SBN    1
          CRD    CM 
          LDN    ZERL 
          CRD    CN 
          LDN    0
          UJN    STS2        WRITE STATUS 
  
 STSA     VFD    42/1H ,18/0
 SPM      SPACE  4,10 
***       FUNCTIONS 6 AND 7.
* 
*         SET/CLEAR PROMPT MODE BIT IN *VSTT* 
  
  
 SPM      LCN    59D-53D     SET BIT 53 *VSTT*
          RAM    SIAA 
          LDN    1           SET MASK FOR RECOVERY WORD 
          RJM    URW         UPDATE RECOVERY WORD 
          NJP    DPP         IF NOT ON-LINE JOB 
          LJM    SIA4        PROCESS REQUEST
 PSF      SPACE  4,10 
***       FUNCTION 10B. 
* 
*         SET OR CLEAR SORT FLAG. 
* 
*         ENTRY  PAR = SUBFUNCTION CODE, SORT FLAG VALUE TO SET.
*                    = 0, CLEAR SORT FLAG, FILE SORTED. 
*                    = 1, SET SORT FLAG, FILE UNSORTED. 
  
  
 PSF      LDD    IR+4        CHECK FUNCTION CODE
          ZJN    PSF1        IF ONE, SET FLAG 
          SBN    1
          ZJN    PSF2        IF ZERO, CLEAR FLAG
          ABORT  ERIR        * TLX - INCORRECT TERMINAL REQUEST.* 
  
 PSF1     AOD    TW 
 PSF2     LCN    59D-52D     SET BIT NUMBER 
          RAM    SIAA 
          LJM    SIA4        PROCESS REQUEST
 REC      SPACE  4,10 
**        FUNCTION 11B. 
* 
*         RECOVER JOB.
* 
*         JSN IS FOUND IN BITS 23-0 OF THE REQUEST. 
  
  
 REC      LDD    IR+3        TRANSFER JSN 
          STD    TW+1 
          LDD    IR+4 
          STD    TW+2 
          LDN    ZERL 
          CRD    CM 
          LDD    CP          CLEAR MESSAGE
          ADK    MS1W 
          CWD    CM 
          LDN    RODS        SET TO ROLLOUT AND DISABLE 
          STD    CM+1 
          MONITOR  ROCM 
          LJM    TLXX        EXIT 
          SPACE  4,35 
**        FUNCTION 12B. 
* 
*         TRANSFER WORKFILE.
* 
*         ENTRY  (IR+3 - IR+4) = 6/ TF,18/ ADDR 
* 
*         TF = TRANSFER FUNCTION. 
*                0 = TRANSFER TO SUBSYSTEM. 
*                1 = TRANSFER FROM SUBSYSTEM. 
* 
*         ADDR = ADDRESS OF PARAMETER WORD. 
* 
*T  ADDR  12/ FNTR,12/ FNTS,12/ SSID,12/0,11/ ST,1/ C 
* 
*         FNTR   = FNT OFFSET IN RECEIVER-S NFL.
*         FNTS   = FNT OFFSET IN SOURCE-S NFL.
*         SSID   = RECEIVER-S SUBSYSTEM ID. 
*         ST     = RETURN STATUS CODE (SEE *COMSREM*) 
*         C      = COMPLETION BIT.
* 
*         EXIT   SUBFUNCTION 0 - TO *TWR*.
*                SUBFUNCTION 1 - TO *SRS*.
* 
*         CALLS  AST, CCP, CSP, CLF, CPR, GPA, GSC, RCF, RTE, SPJ, SRS, 
*                TWR. 
* 
*         MACROS ABORT, ERROR, NFA. 
  
  
 TWF      LDD    CP          GET NFL FL 
          ADN    FLSW 
          CRD    CM 
          ADN    SEPW-FLSW   GET SPECIAL ENTRY POINTS 
          CRD    T1 
          RJM    GPA         GET PARAMETER WORD ADDRESS 
          CRD    CN 
          LDD    T1 
          SHN    21-2 
          MJN    TWF2        IF SSJ=
 TWF1     ERROR  RSSI        RETURN SUBSYSTEM INACCESSIBLE STATUS 
  
 TWF2     LDD    IR+3 
          SHN    -6 
          NJN    TWF3        IF TRANSFER FROM SUBSYSTEM 
          LDD    CS 
          LMN    OLCS 
          NJN    TWF1        IF NOT ON LINE 
 TWF3     LDD    CN+1        VALIDATE SOURCE FNT OFFSET 
          STD    FA 
          ADC    -FNTN
          PJN    TWF5        IF NOT TOO SMALL 
 TWF4     ERROR  RSFN        RETURN FILE NOT FOUND STATUS 
  
 TWF5     LDD    CM 
          SHN    6           NFL FL 
          SBD    CN+1 
          MJN    TWF4        IF SOURCE NFL OFFSET TOO LARGE 
          NFA    CN+1,R      GET FNT/FUT
          CRD    FN 
          CRD    FS 
          ADN    FUTL-FNTL
          CRM    TWFB,ON
          LDD    IR+3        CHECK TRANSFER FUNCTION
          SHN    -6 
          ZJN    TWF7        IF TRANSFER TO SUBSYSTEM 
          SBN    1
          NJN    TWF6        IF INCORRECT TRANSFER FUNCTION 
          LJM    TWF17       PROCESS TRANSFER FROM SUBSYSTEM
  
 TWF6     ABORT  ERIR        * TLX - INCORRECT TERMINAL REQUEST.* 
  
*         TRANSFER WORKFILE TO SUBSYSTEM. 
  
 TWF7     RJM    SFB         SET FILE BUSY
          ZJN    TWF8        IF FILE NOT PREVIOUSLY BUSY
          ERROR  RSFB        RETURN FILE BUSY STATUS
  
 TWF8     LDD    FN+4        CHECK FILE TYPE
          SHN    -6 
          SBN    LOFT 
          ZJN    TWF10       IF LOCAL FILE TYPE 
 TWF9     ERROR  RSIT        RETURN INCORRECT FILE TYPE STATUS
  
 TWF10    LDD    FN+3        CHECK ACCESS MODE
          LPN    1
          NJN    TWF9        IF READ ONLY 
          LDD    FS+1        VERIFY TRACK CHAIN EXISTS
          ZJN    TWF9        IF NO TRACK CHAIN
          LDD    CN+2        CHECK *SSID* 
          ADC    -SMSI
          ZJN    TWF11       IF *SMF* *SSID*
          ERROR  RSSK        RETURN UNKNOWN *SSID* STATUS 
  
 TWF11    LDC    FECF*10000B GET SUBSYSTEM *SSCT* ENTRY 
          ADD    CN+2 
          RJM    AST
          SHN    21-13
          MJN    TWF12       IF SUBSYSTEM ACCESSIBLE
          ERROR  RSSI        RETURN SUBSYSTEM INACCESSIBLE STATUS 
  
 TWF12    RJM    GSC         GET SUBSYSTEM CP NUMBER
  
*         CHANGE FILE TYPE, ACCESS MODE IN SOURCE-S FNT ENTRY.
  
          LDD    FN+4        SET *LIBRARY* FILE TYPE
          LPN    77 
          ADC    LIFT*100 
          STD    FN+4 
          AOD    FN+3        SET WRITE LOCKOUT BIT
          NFA    CN+1,R 
          CWD    FN 
  
*         WRITE FNT/FST INTO SUBSYSTEM NFL. 
  
          RJM    CSP         CHANGE TO SUBSYSTEM CONTROL POINT
          NJN    TWF13       IF CHANGE MADE 
          ERROR  RSSI,R      RETURN SUBSYSTEM INACCESSIBLE STATUS 
  
 TWF13    LDM    CSPB 
          ZJN    TWF14       IF CP CHANGED AND *SMF* THERE
          ERROR  RSSI,B      RETURN SUBSYSTEM INACCESSIBLE STATUS 
  
 TWF14    RJM    CLF         CREATE LOCAL FNT ENTRY 
          LDN    30          SET ALTER ONLY MODE
          RAD    T4 
          LDD    FN+4        SET *LIBRARY* FILE TYPE
          STD    T5 
          LDD    FS+4        CLEAR FILE BUSY STATUS 
          LMN    1
          STD    FS+4 
          NFA    CN,R 
          CWD    T1 
          ADN    FSTL-FNTL
          CWD    FS 
          ADN    FUTL-FSTL
          CWM    TWFB,ON
  
*         CHANGE BACK TO CALLER CONTROL POINT.
  
          RJM    CCP         CLEAR ALTERNATE CP ASSIGNMENT
          RJM    GPA         GET PARAMETER WORD ADDRESS 
          CWD    CN          WRITE FUNCTION PARAMETER WORD
*         LDN    0           INDICATE CONNECTION
*         STD    TW+3 
          LDN    0
          RJM    ITF         ISSUE *TSEM* FUNCTION
          LDN    77          LOOP UNTIL CONNECTION SET
          STD    T1 
 TWF15    DELAY 
          LDD    TT          GET *VFST* 
          SHN    14 
          LMD    TT+1 
          ADN    VFST 
          CRD    CM 
          LDD    CM+3        CHECK CONNECT CODE 
          SHN    -6 
          NJN    TWF16       IF CONNECTION SET
          SOD    T1 
          NJN    TWF15       IF NOT TIMEOUT 
  
*         SET TIMED EVENT ROLLOUT AND PP RECALL.
  
 TWF16    RJM    RTE         REQUEST TIMED/EVENT ROLLOUT
          LJM    TWR         TRANSFER WORKFILE FUNCTION RECALL
  
*         TRANSFER WORKFILE FROM SUBSYSTEM. 
  
 TWF17    RJM    CPR         CHECK PREMATURE RECALL 
          NJN    TWF16       IF PREMATURE 
          RJM    RCF         REINSTATE CALLER-S FNT ENTRY 
          RJM    SFN         SET FILE NOT BUSY
          LDD    CS          CHECK CONNECTION STATUS
          LMN    OLCS 
          ZJN    TWF18       IF ON LINE 
          LMN    NICS&OLCS
          ZJN    TWF19       IF NOT INTERACTIVE 
          LJM    SPJ         SUSPEND JOB
  
 TWF18    LDN    1           INDICATE DISCONNECTION 
          STD    TW+3 
          LDN    0
          RJM    ITF         ISSUE *TSEM* FUNCTION
 TWF19    LDN    RSSN        SET SWITCH NORMAL RETURN STATUS
          LJM    SRS         SET RETURN STATUS
  
 TWFA     CON    0           CALLER EJT ORDINAL 
 TWFB     VFD    60/0        WORKFILE FUT ENTRY 
 SSM      SPACE  4,10 
***       FUNCTIONS 13B AND 14B.
* 
*         SET/CLEAR SCREEN MODE BIT IN *VSTT*.
  
  
 SSM      LCN    59D-49D     SET BIT 49 *VSTT*
          RAM    SIAA 
          LJM    SIA4        PROCESS REQUEST
 SWS      SPACE  4,25 
***       FUNCTION 15B. 
* 
*         SET WORD *SLMN*.
* 
*         ENTRY  (IR+3 - IR+4) = 6/ W,18/ ADDR
* 
*         W = READ OR WRITE NFL WORD *SLMN*.
*                0 = READ.
*                1 = WRITE. 
*         ADDR = ADDRESS OF PARAMETER WORD. 
* 
*         PARAMETER WORD FORMAT - 
* 
*T        53/ 0,1/ SM,6/ TM 
*         SM = SCREEN MODE FLAG.
*                0 = LINE MODE. 
*                1 = SCREEN MODE. 
*         TM = TERMINAL MODEL.  AN ORDINAL FROM 1 TO 63 DECIMAL.
*              ZERO MEANS TYPE UNKNOWN.  SEE TABLE OF CORRESPONDING 
*              TERMINAL ORDINALS, *TCTO*, IN *COMCGTO* FOR MORE 
*              INFORMATION. 
* 
*         EXIT   TERMINAL WORD *SLMN* READ OR WRITTEN.
  
  
 SWS      LDD    IR+3        CHECK READ OR WRITE
          SHN    -6 
          ZJN    SWS2        IF READ *SLMN* 
          SBN    1
          ZJN    SWS4        IF WRITE 
 SWS1     ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
  
 SWS2     NFA    SLMN        GET WORD *SLMN*
          CRD    T2 
          RJM    GPA         GET PARAMETER WORD ADDRESS 
          CWD    T2 
 SWS3     LJM    DPP         DROP PP
  
 SWS4     RJM    GPA         GET PARAMETER WORD ADDRESS 
          CRD    T2 
          LDD    T6 
          LPC    177
          STD    T6 
          NFA    SLMN        GET *SLMN* 
          CRD    T1 
          LDD    T5 
          LPC    7600 
          LMD    T6 
          STD    T5 
          NFA    SLMN        WRITE *SLMN* 
          CWD    T1 
          UJN    SWS3        RETURN 
 LTI      SPACE  4,10 
***       FUNCTION 16B. 
* 
*         LOOK FOR TYPED AHEAD INPUT. 
* 
*         ENTRY  PAR = ADDRESS FOR RETURN DATA. 
* 
*         EXIT   (PAR) = 0 IF NO DATA TYPED AHEAD.
* 
*         CALLS  GPA, RRR, SRR, STA.
  
  
 LTI      LDN    ZERL        PRESET ZERO RETURN 
          CRD    CN 
          LDD    CS 
          LMK    OLCS 
          NJP    LTI2        IF NOT ONLINE
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA         SET TERMINAL TABLE ADDRESS 
          ADN    VROT        CHECK FOR PREPROCESSED INPUT 
          CRD    CM 
          LDD    CM+1 
          STD    CN+4 
          NJN    LTI1        IF INPUT PRESENT 
          LDD    TA          TIMESHARING REFERENCE ADDRESS
          SHN    6
          ADN    VNTP        TERMINAL TABLE POINTER 
          CRD    CM 
          LDD    CM+2 
          ZJN    LTI1        IF NO NETWORK TERMINALS DEFINED
          SBN    1           (A) = HIGHEST MUX TERMINAL NUMBER
          SBD    TN 
          PJN    LTI1        IF A MUX TERMINAL
          LDD    TA          IAF REFERENCE ADDRESS
          SHN    6
          ADN    VMST        TERMINAL STATUS MESSAGE WORD 
          CRD    CM 
          LDD    CM+1 
          SHN    6
          ADD    TA 
          SHN    6
          ADD    CM+2 
          ADD    TN 
          CRD    CM          READ TERMINAL MESSAGE WORD 
          LDD    CM+4        INPUT TYPEAHEAD QUEUE POINTER
          STD    CN+4 
 LTI1     RJM    RRR         RESTORE R-REGISTER 
 LTI2     RJM    GPA         GET PARAMETER WORD ADDRESS 
          CWD    CN 
          LJM    DPP         EXIT 
 PDT      SPACE  4,10 
***       FUNCTION 17B. 
* 
*         DETACH JOB FROM TERMINAL. 
  
  
 PDT      LDD    CS          CHECK CONNECTION STATUS
          LMK    OLCS 
          NJP    DPP         IF NOT ONLINE
          LDN    PDRC        SET PROGRAM INITIATED DETACH REASON CODE 
          STD    TW+2 
          LJM    TLXX        SEND *TSEM* REQUEST
 SEM      SPACE 4,10
**        FUNCTION 20 AND 21B.
* 
*         SET/CLEAR USER EFFECT MODE BIT IN *VSTT*. 
  
 SEM      LCN    59D-55D     SET BIT 55 IN *VSTT* 
          RAM    SIAA 
          LDC    400         SET MASK FOR RECOVERY WORD 
          RJM    URW         UPDATE RECOVERY WORD 
          NJP    DPP         IF NOT ON-LINE JOB 
          LJM    SIA4        PROCESS REQUEST
 APS      SPACE  4,10 
***       FUNCTION 22B. 
* 
*         PROCESS APPLICATION SWITCH. 
* 
*         ENTRY  (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
*                (TN) = TERMINAL NUMBER.
*                (TA) = IAF REFERENCE ADDRESS.
*                (TW) = *TSEM* REQUEST VALUE. 
*                (CS) = CONNECTION STATUS.
* 
*T,PAR           42/ANAME, 18/0 
*T,PAR+1 - PAR+5 REMAINDER OF COMMAND LINE. 
* 
*                ANAME = NEXT APPLICATION NAME. 
* 
*         EXIT   TO *TLXX* TO MAKE *TSEM* REQUEST FOR SWITCH. 
* 
*         CALLS  CKA, DFM, RRR, SNI, SPA, SRR, STA. 
* 
*         MACROS ABORT, DELAY, MONITOR. 
  
  
 APS      LDN    6           SET WORD COUNT 
          STD    T1 
          RJM    CKA         CHECK APPLICATION NAME ADDRESS 
          CRM    APSC,T1
          LDD    CS          CHECK CONNECTION STATUS
          LMN    OLCS 
          NJP    APS7        IF NOT ONLINE CONNECTION STATUS
          RJM    SNI         CHECK IF NETWORK TERMINAL
          ZJP    APS7        IF NOT A NETWORK TERMINAL
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA         SET TERMINAL TABLE ADDRESS 
          ADK    VDCT 
          CRD    CM          READ UP *VDCT* 
          RJM    RRR         RESTORE R-REGISTER 
          LDD    CM+1 
          SHN    21-13       CHECK PRIMARY CONNECTION BIT 
          MJP    APS10       IF CONNECTION ALREADY LOANED 
          SHN    1           CHECK SECONDARY CONNECTION BIT 
          PJN    APS1        IF IAF NOT SECONDARY APPLICATION 
          LDM    APSC 
          ZJN    APS0        IF NO APPLICATION SPECIFIED
          LMC    2RAB        CHECK FOR *ABORT*
          NJP    APS8        IF NOT ABORT APPLICATION 
          LDM    APSC+1 
          LMC    2ROR 
          NJP    APS8        IF NOT ABORT APPLICATION 
          LDM    APSC+2 
          LMC    1RT*100
          NJP    APS8        IF NOT ABORT APPLICATION 
 APS0     UJN    APS2        CONTINUE 
  
 APS1     LDM    APSC        GET APPLICATION NAME 
          ZJP    APS9        IF NO NAME SPECIFIED 
          LMC    2RIA 
          NJN    APS2        IF NOT *APPSW,IAF* 
          LDM    APSC+1 
          SHN    -6 
          LMN    1RF
          ZJP    APS11       IF *APPSW,IAF* 
 APS2     LDN    ZERL 
          CRD    CM 
 APS3     LDN    1           SET POTS REQUIRED
          STD    CM+1 
          MONITOR  TGPM      MAKE POT REQUEST 
          LDD    CM+1 
          ZJP    APS6        IF IAF NOT ACTIVE
          LMC    7777 
          NJN    APS5        IF POTS AVAILABLE
          LDC    600         SET DELAY
          STD    T1 
 APS4     DELAY 
          SOD    T1 
          NJN    APS4        IF DELAY NOT COMPLETE
          UJN    APS3        REISSUE REQUEST
  
 APS5     LDD    CM+1        SET POT POINTER
          STD    PP 
          STD    TW+3        SAVE POINTER IN REQUEST
          LDC    1           SET LOGOUT TYPE IN REQUEST 
          STD    TW+2 
          LDN    VCPC-1 
          STD    T1 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    SPA         SET POT ADDRESS
          ADN    1
          CWM    APSC,T1     WRITE NAME AND TEXT TO POT 
          RJM    RRR         RESTORE R-REGISTER 
  
*         TERMINATE ACCOUNT FILE MESSAGE. 
  
          LCN    0           INITIALIZE MESSAGE INDEX 
          STD    T1 
 APS5.1   AOD    T1          INCREMENT MESSAGE INDEX
          LDM    APSC,T1
          ZJN    APS5.2      IF END OF NAME 
          LPN    77 
          NJN    APS5.1      IF NOT END OF NAME 
          LDM    APSC,T1     ADD PERIOD TERMINATOR TO MESSAGE 
          LMN    1R.
          STM    APSC,T1
          UJN    APS5.3      STORE END OF LINE IN MESSAGE 
  
 APS5.2   LDC    1R.*100     ADD PERIOD TERMINATOR TO MESSAGE 
          STM    APSC,T1
 APS5.3   LDN    0           STORE END OF LINE IN MESSAGE 
          STM    APSC+1,T1
          LDC    APSB+ACFN
          RJM    DFM         ISSUE ACCOUNT MESSAGE
          LDN    RODS        SET DISABLE OPTION 
          STD    CM+1 
          MONITOR  ROCM 
 APS6     LJM    TLXX        EXIT 
  
 APS7     ABORT  ERNT        NETWORK TERMINAL COMMAND ONLY
  
 APS8     ABORT  ERSA        INCORRECT SECONDARY APPLICATION SWITCH 
  
 APS9     ABORT  ERNR        APPLICATION NAME REQUIRED
  
 APS10    ABORT  ERAL        CONNECTION ALREADY LOANED
  
 APS11    ABORT  ERCS        CANNOT SWITCH TO CURRENT APPLICATION (IAF) 
  
  
 APSB     DATA   6LACAS,     ACCOUNT MESSAGE HEADER 
 APSC     BSSZ   6*5         APPLICATION NAME AND Z PARAMETER 
          BSSZ   2*5         TERMINATOR WORDS 
 RLC      SPACE  4,20 
***       FUNCTION 23B. 
* 
*         RESTART LOANED CONNECTION.
* 
*         ISSUE APPROPRIATE ACCOUNTING AND DAYFILE MESSAGES AND 
*         RESTART, DETACH, OR TERMINATE THE RETURNED JOB. 
* 
*         ENTRY  (TN) = TERMINAL NUMBER.
*                (TA) = IAF REFERENCE ADDRESS.
*                (TW) = *TSEM* REQUEST VALUE. 
*                *VROT*, BYTE 2 CONTAINS THE LOAN STATUS VALUE. 
* 
*         EXIT   TO *DPP* IF CONTROL POINT NOT TO BE ABORTED. 
*                TO *ERR1* IF CONTROL POINT TO BE ABORTED.
* 
*         CALLS  DFM, ITF, RRR, SRR, STA. 
* 
*         MACROS MONITOR. 
  
  
 RLC      BSS    0           ENTRY
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA         SET TERMINAL TABLE ADDRESS 
          ADK    VROT 
          CRD    CN          READ *VROT*
          RJM    RRR         RESTORE R-REGISTER 
          LDD    CN+2        GET LOAN STATUS VALUE
          NJN    RLC0        IF A VALUE DEFINED 
          LDN    ERLS        SET ERROR STATUS 
          STD    CN+2 
 RLC0     LDM    TACM,CN+2
          ZJN    RLC1        IF NO ACCOUNTING MESSAGE 
          STM    RLCA+1 
          LDC    RLCA+ACFN   ISSUE ACCOUNT MESSAGE
          RJM    DFM
 RLC1     LDM    TLSM,CN+2   GET APPROPRIATE DAYFILE MESSAGE
          ZJP    RLC2        IF NO DAYFILE MESSAGE
          RJM    DFM         ISSUE DAYFILE MESSAGE
 RLC2     LDD    CN+2 
          STD    T1          SAVE LOAN STATUS VALUE 
          SBN    LDLS 
          ZJN    RLC2.1      IF LINE DISCONNECT IN SECONDARY
          LDN    0           CLEAR LOAN STATUS VALUE IN *VROT*
          STD    CN+2 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA
          ADK    VROT 
          CWD    CN          REWRITE *VROT* 
          RJM    RRR         RESTORE R-REGISTER 
 RLC2.1   LDM    TPSR,T1     GET SPECIAL PROCESSOR ADDRESS
          ZJP    DPP         IF NO SPECIAL PROCESSING NECESSARY 
          STM    RLCB 
          LJM    *           JUMP TO PROCESSOR
 RLCB     EQU    *-1
  
 RLC3     LDN    PIDL        SET DETACH VALUE IN EJT PARAMETER BLOCK
          STD    TW+2 
          LDC    VDTJ        *TSEM* REQUEST TYPE
          STD    TW 
          UJN    RLC5        CONTINUE 
  
 RLC4     LCN    SARC        SET FORCE LOGOFF VALUE IN EJT PARAM. BLOCK 
          STD    TW+2 
          LDC    VTLF        *TSEM* REQUEST TYPE
          STD    TW 
 RLC5     LDN    0           CLEAR MESSAGE FROM MESSAGE BUFFER
          STD    CM 
          LDD    CP 
          ADK    MS1W 
          CWD    CM 
          LDN    0
          RJM    ITF         ISSUE *TSEM* REQUEST 
          LJM    ERR1        ABORT
  
  
 RLCA     DATA   5LACXX.
          CON    0           END OF BUFFER
 TACM     SPACE  4,10 
**        TABLE OF ACCOUNT MESSAGES.
* 
*         INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
  
 TACM     INDEX 
          INDEX  SCLS,2RAB
          INDEX  SVLS,2RAI
          INDEX  SOLS,2RAF
          INDEX  SFLS,2RAF
          INDEX  SULS,2RAI
          INDEX  STLS,2RAR
          INDEX  SRLS,2RAU
          INDEX  SALS,2RAU
          INDEX  SLLS,2RAU
          INDEX  ERLS,2RAE
          INDEX  MXLS 
 TLSM     SPACE  4,10 
**        TABLE OF LOAN STATUS MESSAGES.
* 
*         INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
  
 TLSM     INDEX 
          INDEX  SCLS,(=C* SECONDARY APPLICATION ABORTED CONNECTION.*)
          INDEX  SVLS,(=C* USER NOT VALIDATED FOR SECONDARY APPLICATION.
,*) 
          INDEX  SOLS,(=C* SECONDARY APPLICATION NETTED OFF.*)
          INDEX  SFLS,(=C* SECONDARY APPLICATION FAILED.*)
          INDEX  SULS,(=C* UNKNOWN SECONDARY APPLICATION.*) 
          INDEX  STLS,(=C* SECONDARY APPLICATION PROCESSING COMPLETE.*) 
          INDEX  SRLS,(=C* SECONDARY APPLICATION REFUSED CONNECTION.*)
          INDEX  SALS,(=C* SECONDARY APPLICATION NOT AVAILABLE.*) 
          INDEX  SLLS,(=C* SECONDARY APPLICATION CONNECTION LIMIT.*)
          INDEX  ERLS,(=C* RETRY APPLICATION SWITCH.*)
          INDEX  LDLS,(=C* LINE WAS DISCONNECTED WHILE LOANED.*)
          INDEX  MXLS 
 TPSR     SPACE  4,10 
**        TABLE OF PROCESSORS FOR SECONDARY CONNECTION RETURN.
* 
*         INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
  
 TPSR     INDEX 
          INDEX  SCLS,RLC4
          INDEX  SVLS,ERR1
          INDEX  SOLS,ERR1
          INDEX  SFLS,ERR1
          INDEX  SULS,ERR1
          INDEX  SRLS,ERR1
          INDEX  SALS,ERR1
          INDEX  SLLS,ERR1
          INDEX  ERLS,RLC3
          INDEX  LDLS,RLC3
          INDEX  MXLS 
          TITLE  SUBROUTINES. 
 CCP      SPACE  4,10 
**        CCP - CLEAR ALTERNATE CONTROL POINT ASSIGNMENT. 
* 
*         EXIT   ALTERNATE CONTROL POINT ASSIGNMENT CLEARED.
* 
*         USES   CM+1.
* 
*         MACROS MONITOR. 
  
  
 CCP      SUBR               ENTRY/EXIT 
          LDC    ALCS        SET ALTERNATE CP FLAG
          STD    CM+1 
          MONITOR  CCAM      CLEAR ALTERNATE CP ASSIGNMENT
          UJN    CCPX        RETURN 
 CKA      SPACE  4,10 
**        CKA - CHECK ADDRESS.
* 
*         THIS ROUTINE CALCULATES THE ABSOLUTE ADDRESS FROM THE 
*         RELATIVE ADDRESS IN IR+3 - IR+4.
* 
*         ENTRY  (IR+3 - IR+4) = ADDRESS. 
*                (T1) = WORD COUNT MINUS ONE. 
* 
*         EXIT   (A) = ABSOLUTE ADDRESS.
  
  
 CKA2     LDD    IR+3        LOAD ABSOLUTE ADDRESS
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
  
 CKA      SUBR               ENTRY/EXIT 
          LDD    IR+3 
          SCN    37 
          NJN    CKA1        IF OUT OF RANGE
          LDD    IR+3 
          SHN    14 
          LMD    IR+4 
          ADD    T1 
          SHN    -6 
          SBD    FL 
          MJN    CKA2        IF < FL - WORD COUNT 
 CKA1     ABORT  ERAE        *TLX - ARGUMENT ERROR* 
 CLF      SPACE  4,15 
**        CLF - CREATE LOCAL FNT ENTRY. 
* 
*         ENTRY  (TWFA) = CALLER EJT ORDINAL. 
* 
*         EXIT   (CN) = FNT ORDINAL IF ENTRY CREATED. 
*                (T1 - T4) = FILE NAME. 
*                TO ERROR PROCESSOR IF NO NFL AVAILABLE OR
*                FILE LIMIT.
* 
*         USES   T1 - T6, CM - CM+4.
* 
*         MACROS ERROR, MONITOR, SFA. 
  
  
 CLF      SUBR               ENTRY/EXIT 
          LDC    2RWK        SET FILE NAME
          STD    T1 
          LDM    TWFA        GET JSN
          SFA    EJT
          ADK    JSNE 
          CRD    T2 
          LDN    0
          STD    T4 
          STD    T5 
          LDD    MA          SET FILE NAME IN MB
          CWD    T1 
          LDN    CRFS        CREATE LOCAL FNT ENTRY 
          STD    CM+1 
          MONITOR  PLFM 
          LDD    CM+1        SAVE FNT ORDINAL 
          STD    CN 
          LDD    CM+4 
          ZJN    CLFX        IF FILE CREATED
  
*         FILE NOT CREATED, PROCESS ERROR STATUS. 
  
          SHN    21-2 
          PJN    CLF1        IF NOT NFL INCREASE NEEDED 
          ERROR  RSNP,B      RETURN NO SPACE IN NFL STATUS
  
 CLF1     ERROR  RSFL,B      RETURN FILE LIMIT STATUS 
 CPR      SPACE  4,20 
**        CPR - CHECK PREMATURE RECALL. 
* 
*         ENTRY  (CS) = CONNECTION STATUS.
*                (CN - CN+4) = FUNCTION PARAMETER WORD. 
*                (TWFA) = CALLER EJT ORDINAL. 
* 
*         EXIT   (A) = 0 IF DISCONNECT STATUS.
*                (A) .NE. 0 IF ONE OF THE FOLLOWING IS TRUE - 
*                     1.  CONNECTION STATUS IS ON LINE AND *SMF* FIELD
*                         OF *VFST* .NE. 0. 
*                     2.  WORKFILE FNT ENTRY STILL EXISTS IN
*                         SUBSYSTEM NFL.
* 
*         USES   T2 - T6, CM - CM+4.
* 
*         CALLS  CCP, CSP, GSC, RRR, SRR, STA.
* 
*         MACROS NFA, SFA.
  
  
 CPR      SUBR               ENTRY/EXIT 
          LDD    CS          CHECK CONNECTION STATUS
          LMN    OLCS 
          NJN    CPR1        IF NOT ON LINE 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          RJM    STA         READ TERMINAL TABLE WORD *VFST*
          ADN    VFST 
          CRD    CM 
          RJM    RRR         RESTORE R-REGISTER 
          LDD    CM+3        CHECK *SMF* FIELD
          SHN    -6 
          NJN    CPRX        IF *SMF* CONNECTED 
 CPR1     RJM    GSC         GET SUBSYSTEM CP NUMBER
          ZJN    CPRX        IF *SMF* GONE
          RJM    CSP         SET ALTERNATE CP ASSIGNMENT TO SUBSYSTEM 
          ZJN    CPRX        IF *SMF* GONE AND CP NOT CHANGED 
          LDM    CSPB 
          NJN    CPR1.1      IF CP CHANGED BUT *SMF* NOT THERE
          NFA    CN,R        CHECK FOR FNT ENTRY IN SUBSYSTEM NFL 
          CRD    T2 
          RJM    CCP         CLEAR ALTERNATE CP ASSIGNMENT
          LDC    2RWK        CHECK FOR WORKFILE 
          LMD    T2 
          NJN    CPR2        IF NOT WORKFILE
          LDM    TWFA        GET JSN
          SFA    EJT
          ADK    JSNE 
          CRD    CM 
          LDD    CM 
          LMD    T3 
          NJN    CPR2        IF NOT WORKFILE
          LDD    CM+1 
          LMD    T4 
          NJN    CPR2        IF NOT WORKFILE
          LDN    1
          UJN    CPR3        RETURN PREMATURE STATUS
  
 CPR1.1   RJM    CCP         CLEAR ALTERNATE CP ASSIGNMENT
 CPR2     LDN    0           RETURN DISCONNECT STATUS 
 CPR3     UJP    CPRX        RETURN 
 CSP      SPACE  4,15 
**        CSP - SET ALTERNATE CONTROL POINT ASIGNMENT TO SUBSYSTEM. 
* 
*         ENTRY  (CSPA) = SUBSYSTEM CONTROL POINT NUMBER. 
*                (CN+2) = SUBSYSTEM ID. 
* 
*         EXIT   (A) = 0 IF *SMF* GONE AND CONTROL POINT NOT CHANGED. 
*                    .NE. 0 IF CONTROL POINT CHANGED. 
*                (CSPB) .NE. 0 IF *SMF* GONE AND CONTROL POINT CHANGED. 
* 
*         USES   T2, CM - CM+4. 
* 
*         CALLS  AST. 
* 
*         MACROS DELAY, MONITOR, PAUSE. 
  
  
 CSP3     LDD    CP          CHECK SUBSYSTEM ID 
          ADK    JCIW 
          CRD    CM 
          LDD    CN+2 
          LMD    CM+2 
          STM    CSPB        SET *SMF* FLAG 
          LDN    1           SET CONTROL POINT CHANGE MADE
  
 CSP      SUBR               ENTRY/EXIT 
 CSP1     LDM    CSPA        GET SUBSYSTEM CP NUMBER
          LMC    ALCS        SET ALTERNATE CP FLAG
          STD    CM+1 
          MONITOR  CCAM      SET ALTERNATE CP ASSIGNMENT
          LDD    CM+1 
          ZJP    CSP3        IF CHANGE MADE 
          PAUSE  ST 
          LDC    3600 
          STD    T2 
 CSP2     DELAY 
          SOD    T2 
          NJN    CSP2        IF STILL DELAYING
          LDC    FEAF*10000B GET *SSAT* ENTRY 
          ADD    CN+2 
          RJM    AST
          ZJN    CSPX        IF *SMF* NOT PRESENT 
          SFA    EJT         GET EJT ADDRESS
          ADN    SCHE        GET SCHEDULING DATA
          CRD    CM 
          LDD    CM+3        GET CP NUMBER
          LPN    77 
          STM    CSPA        RESET SUBSYSTEM CP NUMBER
          UJP    CSP1        TRY AGAIN
  
  
 CSPA     CON    0           *SMF* CONTROL POINT NUMBER 
 CSPB     CON    0           *SMF* FLAG 
 ERR      SPACE  4,10 
**        ERR - PROCESS ERROR.
* 
*         ENTRY  (A) = FWA OF ERROR MESSAGE FOR DAYFILE.
* 
*         EXIT   TO *PPR*.
*                DAYFILE MESSAGE ISSUED.
*                CONTROL POINT ABORTED. 
* 
*         CALLS  DFM. 
* 
*         MACROS MONITOR. 
  
  
 ERR      RJM    DFM         ISSUE DAYFILE MESSAGE
 ERR1     MONITOR  ABTM      ABORT CONTROL POINT
          LJM    PPR         EXIT TO PP RESIDENT
  
  
*         ERROR MESSAGES. 
  
  
 ERAE     DATA   C* TLX - ARGUMENT ERROR.*
 ERIR     DATA   C* INCORRECT TERMINAL REQUEST.*
 ERRA     DATA   C* TLX - RPV ALREADY SET.* 
 ERNT     DATA   C* REQUEST IS VALID ONLY FROM A NETWORK TERMINAL.* 
 ERSA     DATA   C* USER CANNOT SWITCH FROM A SECONDARY APPLICATION.* 
 ERNR     DATA   C* APPLICATION NAME IS REQUIRED.*
 ERAL     DATA   C* THIS CONNECTION IS ALREADY LOANED.* 
 ERCS     DATA   C* USER CANNOT SWITCH TO CURRENT APPLICATION.* 
 GPA      SPACE  4,10 
**        GPA - GET PARAMETER ADDRESS.
* 
*         ENTRY  (IR+3 - IR+4) = ADDRESS. 
* 
*         EXIT   (A) = ABSOLUTE ADDRESS.
*                TO *ERR* IF ADDRESS OUT OF RANGE.
* 
*         MACROS ABORT. 
  
  
 GPA1     LDD    IR+3 
          LPN    77 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
  
 GPA      SUBR               ENTRY/EXIT 
          LDD    IR+3        VALIDATE ADDRESS 
          LPN    77 
          SHN    14 
          ADD    IR+4 
          SHN    -6 
          SBD    FL 
          MJN    GPA1        IF NOT OUT OF RANGE
          ABORT  ERAE        * TLX - ARGUMENT ERROR.* 
 GSC      SPACE  4,15 
**        GSC - GET SUBSYSTEM CONTROL POINT NUMBER. 
* 
*         ENTRY  (CN+2) = SUBSYSTEM *SSID*. 
* 
*         EXIT   (CSPA) = SUBSYSTEM CP NUMBER.
* 
*         USES   T1 - T5. 
* 
*         CALLS  AST. 
* 
*         MACROS SFA. 
  
  
 GSC      SUBR               ENTRY/EXIT 
          LDC    FEAF*10000B GET *SSAT* ENTRY 
          ADD    CN+2 
          RJM    AST
          ZJN    GSCX        IF *SMF* GONE
          SFA    EJT         GET EJT ADDRESS
          ADN    SCHE        GET SCHEDULING DATA
          CRD    T1 
          LDD    T4          GET CP NUMBER
          LPN    77 
          STM    CSPA        SAVE SUBSYSTEM CP NUMBER 
          UJN    GSCX        RETURN 
 ITF      SPACE  4,10 
**        ITF - ISSUE *TSEM* FUNCTION.
* 
*         ENTRY  (TW - TW+4) = *TSEM* REQUEST.
*                (A) = NUMBER OF RECALLS TO TRY IF *TSEM* QUEUE FULL. 
* 
*         USES   CM - CM+4, RC - RC+1.
* 
*         MACROS DELAY, MONITOR, PAUSE. 
  
  
 ITF      SUBR               ENTRY/EXIT 
          STD    RC          RECALL FLAG
          STD    RC+1        RECALL COUNTER 
          LDD    MA 
          CWD    TW 
 ITF1     LDK    ZERL 
          CRD    CM 
          MONITOR  TSEM 
          LDD    CM+1 
          ZJN    ITFX        IF *IAF* INACCESSIBLE OR ERROR 
          LMC    7777 
          NJN    ITFX        IF REQUEST COMPLETE
          PAUSE  ST 
          LDC    3600        *TSEM* QUEUE FULL - DELAY AND RETRY
          STD    T1 
 ITF2     DELAY 
          SOD    T1 
          NJN    ITF2        IF STILL DELAYING
          SOD    RC+1 
          NJN    ITF1        IF TIME TO REISSUE REQUEST 
          LDD    RC 
          ZJN    ITF1        IF NO RECALL 
          UJP    RCL         RECALL PP
 RCF      SPACE  4,10 
**        RCF - REINSTATE CALLER FNT. 
* 
*         ENTRY  (CN+1) = CALLER FNT ORDINAL. 
* 
*         EXIT   CALLER WORKFILE FNT REWRITTEN WITH THE WRITE 
*                LOCKOUT BIT CLEARED AND FILE TYPE = *LOFT*.
* 
*         USES   CM - CM+4. 
* 
*         MACROS NFA. 
  
  
 RCF      SUBR               ENTRY/EXIT 
          NFA    CN+1,R      GET FNT ENTRY
          CRD    CM 
          LDD    CM+3        CLEAR WRITE LOCKOUT BIT
          SCN    1
          STD    CM+3 
          LDD    CM+4        SET *LOCAL* FILE TYPE
          LPN    77 
          ADC    LOFT*100 
          STD    CM+4 
          NFA    CN+1,R 
          CWD    CM 
          UJN    RCFX        RETURN 
 RCL      SPACE  4,10 
**        RCL - RECALL PPU. 
* 
*         EXIT   TO *PPR*.
* 
*         MACROS MONITOR. 
  
  
 RCL      BSS    0           ENTRY
          LDD    MA          WRITE *TLX* CALL 
          CWD    IR 
          LDN    ZERL 
          CRD    CM 
          LDN    PTMF        SET TIMED RECALL 
          STD    CM+1 
          MONITOR RECM
          LJM    PPR         EXIT TO PP RESIDENT
 RTE      SPACE  4,10 
**        RTE - REQUEST TIMED EVENT ROLLOUT.
* 
*         EXIT   TIMED/EVENT ROLLOUT REQUESTED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 RTE      SUBR               ENTRY/EXIT 
          LDD    CP          READ TIMED EVENT ROLLOUT WORD
          ADN    TERW 
          CRD    CM 
          LDD    CM          SET EJT ORDINAL
          STD    CM+4 
          LDK    WRKE/10000  SET EVENT
          STD    CM+3 
          LDC    777         SET TIME 
          STD    CM+2 
          LDD    MA          WRITE *ROCM* PARAMETERS TO MB
          CWD    CM 
          LDN    ROTE        SET TIMED/EVENT ROLLOUT
          STD    CM+1 
          MONITOR  ROCM 
          UJN    RTEX        RETURN 
 SDT      SPACE  4,15 
**        SDT - SET DEVICE TYPE.
* 
*         ENTRY  (TN) = TERMINAL NUMBER.
*                (TA) = IAF RA. 
* 
*         EXIT   (CN+1) = DEVICE TYPE.
*                (CN+3) = TRANSMISSION CODE.
*                (T0)-(T4) = VMST ENTRY.
* 
*         USES   T0 - T4. 
* 
*         CALLS  RRR, SRR.
  
  
 SDT      SUBR               ENTRY/EXIT 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          LDD    TA          GET FWA OF MESSAGE STATUS TABLE
          SHN    6
          ADN    VMST 
          CRD    T0 
          LDD    T0+1        SET TABLE ADDRESS OF TERMINAL
          SHN    6
          ADD    TA 
          SHN    6
          ADD    T0+2 
          ADD    TN 
          CRD    T0          READ TABLE ENTRY 
          LDD    T0+1        SET DEVICE TYPE
          LPC    377
          STD    CN+1 
          LDD    CN+3        SET TRANSMISSION CODE
          SCN    77 
          ADN    3
          STD    CN+3 
          LDD    T0          SAVE (T0)
          STM    SDTA 
          RJM    RRR         RESTORE R-REGISTER 
          LDM    SDTA        RESTORE (T0) 
          STD    T0 
          UJN    SDTX        RETURN 
  
 SDTA     BSS    1           (T0) 
 SFN      SPACE  4,10 
**        SFN - SET FILE NOT BUSY.
* 
*         ENTRY  (CN+1) = CALLER FNT ORDINAL. 
* 
*         EXIT   CALLER-S WORKFILE SET NOT BUSY.
* 
*         USES   CM - CM+4. 
* 
*         MACROS NFA. 
  
  
 SFN      SUBR               ENTRY/EXIT 
          NFA    CN+1,R      GET FST ENTRY
          ADN    FSTL 
          CRD    CM 
          LDD    CM+4        CLEAR FILE BUSY STATUS 
          SCN    1
          LMN    1
          STD    CM+4 
          NFA    CN+1,R      WRITE FST
          ADN    FSTL 
          CWD    CM 
          UJN    SFNX        RETURN 
 SNI      SPACE  4,10 
**        SNI - SET NETWORK IDENTIFICATION. 
* 
*         ENTRY  (TN) = TERMINAL NUMBER.
*                (TA) = IAF RA. 
* 
*         EXIT   (A) = ZERO IF NOT NETWORK TERMINAL.
*                (CM - CM+4) = *NAMIAF    * IF A NETWORK TERMINAL.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  RRR, SRR.
  
  
 SNI      SUBR               ENTRY/EXIT 
          RJM    SRR         SET R-REGISTER TO IAF RA 
          LDD    TA          READ NETWORK TERMINAL POINTERS 
          SHN    6
          ADN    VNTP 
          CRD    CM 
          RJM    RRR         RESTORE R-REGISTER 
          LDD    CM+2        GET FIRST NETWORK TERMINAL NUMBER
          ZJN    SNIX        IF NO NETWORK TERMINALS
          SBN    1
          SBD    TN 
          MJN    SNI1        IF NETWORK TERMINAL
          LDN    0
          UJN    SNIX        RETURN 
  
*         SET NETWORK TERMINAL IDENTIFICATION.
  
 SNI1     LDD    MA          MOVE TERMINAL NAME TO (CM - CM+4)
          CWM    SNIA,ON
          SBN    1
          CRD    CM 
          UJN    SNIX        RETURN 
  
 SNIA     DATA   10LNAMIAF
 SPJ      SPACE  4,10 
**        SPJ - SUSPEND JOB.
* 
*         EXIT   TO *RCL*.
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 SPJ      BSS    0           ENTRY
          LDN    ZERL 
          CRD    CM 
          LDN    ROSU        JOB SUSPENSION OPTION
          STD    CM+1 
          MONITOR  ROCM 
          LJM    RCL         RECALL PP
 SRS      SPACE  4,10 
**        SRS - SET RETURN STATUS.
* 
*         ENTRY  (A) = RETURN STATUS CODE.
*                (CN - CN+4) = TRANSFER FUNCTION PARAMETER WORD.
* 
*         EXIT   TO *DPP*.
*                RETURN STATUS, COMPLETE BIT SET IN TRANSFER FUNCTION 
*                     PARAMETER WORD. 
* 
*         CALLS  GPA, SFN.
  
  
 SRS      SHN    1
          LMN    1           SET COMPLETE BIT 
          STD    CN+4 
          SHN    -1 
          ZJN    SRS1        IF NORMAL RETURN STATUS
          SBN    RSFB 
          ZJN    SRS1        IF FILE BUSY RETURN STATUS 
          SBN    RSFN&RSFB
          ZJN    SRS1        IF FILE NOT FOUND STATUS 
          RJM    SFN         SET FILE NOT BUSY
 SRS1     RJM    GPA         GET PARAMETER WORD ADDRESS 
          CWD    CN          WRITE FUNCTION PARAMETER WORD
          LJM    DPP         DROP PP
 STI      SPACE  4,10 
**        STI - SET TERMINAL IDENTIFICATION.
* 
* 
*         ENTRY  (TA) = IAF RA. 
*                (TTTA) = USER TERMINAL TABLE.
* 
*         EXIT   (CM - CM+4) = TERMINAL IDENTIFICATION CODE.
*                            = *TTY* IF UNDEFINED.
* 
*         USES   T1, T3, CM - CM+4. 
* 
*         CALLS  RRR, SRR.
  
  
 STI      SUBR               ENTRY/EXIT 
          LDM    TTTA+VDPT*5+3  SET TRANSLATION TABLE INDEX 
          SHN    0-7
          LPN    37 
          STD    T1 
          LDN    0
          STD    T3 
          RJM    SRR         SET R-REGISTER TO IAF RA 
 STI1     LDD    T3 
          SBN    VTSR-VDRL-1
          ZJN    STI2        IF THROUGH TESTING ALL DRIVERS 
          LDD    TA          READ DRIVER STACK POINTER
          SHN    6
          ADN    VDRL 
          ADD    T3 
          CRD    CM 
          AOD    T3          INCREMENT DRIVER STACK POINTER INDEX 
          LDD    CM+4        GET DRIVER FIRST TERMINAL NUMBER 
          ADD    CM+3        CALCULATE DRIVER LAST TERMINAL NUMBER
          SBN    1
          SBD    TN 
          MJN    STI1        IF NOT THIS DRIVER 
          LDD    CM+1        SET DRIVER STACK ADDRESS 
          LPN    37 
          SHN    6
          ADD    TA 
          SHN    6
          ADD    CM+2 
          ADN    4           READ STACK *LIMIT* POINTER 
          CRD    CM 
          LDD    CM+3        SET IDENTIFICATION TABLE ADDRESS 
          LPN    77 
          SHN    6
          ADD    TA 
          SHN    6
          ADD    CM+4 
          ADD    T1          ADD TRANSLATION TABLE INDEX
          CRD    CM          READ TRANSLATION TABLE ID WORD 
          LDD    CM          CHECK TERMINAL ID
          NJN    STI3        IF DEFINED 
 STI2     LDD    MA          SET DEFAULT
          CWM    STIA,ON
          SBN    1
          CRD    CM 
 STI3     RJM    RRR         RESTORE R-REGISTER 
          LJM    STIX        RETURN 
  
  
 STIA     DATA   10LTTY 
 TWR      SPACE  4,10 
**        TWR - TRANSFER WORKFILE FUNCTION RECALL.
* 
*         EXIT   TO *RCL*.
*                RECALL SET FOR TRANSFER WORKFILE FROM SUBSYSTEM. 
  
  
 TWR      BSS    0           ENTRY
          LDD    IR+3        SET TRANSFER FROM SUBSYSTEM
          LPN    77 
          LMC    100
          STD    IR+3 
          LJM    RCL         RECALL PP
 URW      SPACE  4,15 
**        URW - UPDATE RECOVERY WORD. 
* 
*         ENTRY  (A) = MASK TO UPDATE NFL RECOVERY WORD (*RC1N*). 
* 
*         EXIT   (A) = 0, IF ON-LINE JOB. 
*                    .NE. 0, IF NOT ON-LINE.
*                (RC1N) UPDATED IF NOT ON-LINE. 
* 
*         USES   CN, CM - CM+4. 
* 
*         MACROS NFA. 
  
  
 URW      SUBR               ENTRY/EXIT 
          STD    CN 
          LMC    -0 
          STM    URWA 
          LDD    CS 
          LMK    OLCS 
          ZJN    URWX        IF ON-LINE JOB 
  
*         UPDATE RECOVERY WORD IN NFL.
  
          NFA    RC1N        READ RECOVERY WORD 
          CRD    CM 
          LDD    CM+4        CLEAR BIT IN RECOVERY WORD 
          LPC    ** 
 URWA     EQU    *-1         (RECOVERY WORD MASK) 
          STD    CM+4 
          LDD    TW 
          LMC    VCDT 
          ZJN    URW1        IF CLEAR BIT FUNCTION
          LDD    CN          SET BIT IN RECOVERY WORD 
          RAD    CM+4 
 URW1     NFA    RC1N        REWRITE RECOVERY WORD
          CWD    CM 
          UJN    URWX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPAST 
 PIR$     EQU    1           SELECT ASSEMBLY OF *PIR* FOR IAF R-REG 
*CALL     COMPSRR 
*CALL     COMPSFB 
*CALL     COMPSTA 
          SPACE  4
*CALL     COMPSPA 
          USE    PRESET 
          TITLE  PRESET AND BUFFERS.
**        THE FOLLOWING CODE MAY BE OVERLAID. 
  
  
*         TTTA - TERMINAL TABLE BUFFER. 
  
 TTTA     EQU    *
 PRS      SPACE  4,15 
**        PRS - PRESET PROGRAM. 
* 
*         EXIT   (TW+1 - TW+3) = ZERO.
*                (TA) = IAF RA. 
*                (CS) = CONNECTION STATUS.
*                (TWFA) = EJT ORDINAL OF CALLER.
*                IF (CS) IS NOT *OLCS*, TW AND TA EXIT CONDITIONS 
*                ARE NOT ESTABLISHED. 
* 
*         USES   CS, TN, T7, CM - CM+4, CN - CN+4, TW - TW+3. 
* 
*         CALLS  AST, CRS, PIR. 
* 
*         MACROS ABORT, SFA.
  
  
 PRS      SUBR               ENTRY/EXIT 
          RJM    CRS         CHECK RECALL STATUS
          ZJN    PRS1        IF NOT AUTO RECALL 
          RJM    PIR         PRESET WITH IAF R-REGISTER 
          LDD    IR+2        CHECK FUNCTION CODE
          SHN    1
          ADD    IR+2 
          STD    T7 
          SBK    TFCNL
          PJN    PRS1        IF INCORRECT CODE
          LDM    TFCN,T7     SET ADDRESS PROCESSOR
          STM    TLXA 
          ZJN    PRS1        IF UNDEFINED FUNCTION
          LDD    CP 
          ADK    SEPW 
          CRD    CM 
          LDD    CM 
          SHN    21-2 
          MJN    PRS2        IF CALLER IS *SSJ=* PROGRAM
          LDD    IR+2        CHECK FUNCTION CODE
          LMN    11B
          NJN    PRS2        IF NOT *RECOVER* REQUEST 
 PRS1     ABORT  ERIR        * INCORRECT TERMINAL REQUEST.* 
  
 PRS2     LDM    TFCN+1,T7   SET *TSEM* FUNCTION
          STD    TW 
          LDD    CP          READ EJT ORDINAL 
          ADN    TFSW 
          CRD    CM 
          LDD    CM 
          STM    TWFA        SAVE EJT ORDINAL 
          SFA    EJT         READ EJT ENTRY 
          ADK    JSNE 
          CRD    CM 
          LDD    CM+4        GET CONNECTION STATUS
          SHN    -7 
          LPN    17 
          STD    CS 
          LMN    OLCS 
          NJN    PRS5        IF NOT ON LINE 
          STD    TW+1        CLEAR REQUEST BUFFER 
          STD    TW+2 
          STD    TW+3 
          LDD    CP          GET THE TERMINAL NUMBER
          ADK    TTNW 
          CRD    CM 
          LDD    CM+1 
          STD    TN 
          LDC    FECF*10000B+IFSI  FETCH IAF *SSET* ENTRY 
          RJM    AST
          SHN    21-13
          PJN    PRS9        IF IAF NOT ACCESSIBLE
*         RJM    PIR         (CALL SHOULD BE HERE)
 PRS4     LJM    PRSX        RETURN 
  
*         PROCESS OFF-LINE STATUS.
  
 PRS5     LDM    TFCN+2,T7
          STD    CM+1 
          LDD    CS 
          LMN    DTCS 
          ZJN    PRS7        IF DETACHED
          LDD    CM+1 
          SHN    -6 
          STD    CM+1 
 PRS7     LDD    CM+1 
          LPN    77 
          LMN    1
          ZJN    PRS4        IF TO PROCESS WITHOUT IAF
          LMN    2&1
          ZJN    PRS9        IF TO SUSPEND
 PRS8     LJM    DPP         IGNORE REQUEST 
  
*         SUSPEND JOB.
  
 PRS9     LDD    CP 
          ADK    EOJW 
          CRD    CN 
          LDD    CN 
          SHN    -11
          LMK    SUJT 
          NJN    PRS8        IF NOT SUSPEND TERMINATION OPTION
          LJM    SPJ         SUSPEND JOB
          SPACE  4,10 
*         COMMON DECKS WHICH MAY BE OVERLAID. 
  
*CALL     COMPCRS 
 EJT$     EQU    0
*CALL,COMPGFP 
          SPACE  4,10 
          OVERFLOW
          SPACE  4,10 
          END 
