1TA 
          IDENT  1TA,ITA
          PERIPH
          BASE   MIXED
          SST 
 QUAL$    EQU    1           DEFINE UNQUALIFIED COMMON DECKS
 EOR$     EQU    1           DEFINE POSITION AFTER EOR
*COMMENT  1TA - IAF AUXILIARY FUNCTION PROCESSOR. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  1TA - TIMESHARING AUXILIARY PROCESSOR. 
          SPACE  4,10 
*****     1TA - TIMESHARING AUXILIARY PROCESSOR.
* 
*         K. E. ZINNEL.      70/03/09.
*         R. E. TATE.        71/01/25.
*         P. D. FARRELL.     75/02/07.
*         A. D. FORET.       76/04/26.
*         P. D. FARRELL      77/03/17.
*         M. J. CARIDDI, L. K. TUTTLE  81/07/02.
          SPACE  4,10 
***              1TA PROCESSES FUNCTIONS FOR *IAF* WHICH REQUIRE
*         PP ACTION.
          SPACE  4,10,25
***       CALLS.
* 
* 
*         GROUP REQUEST.
*T        18/  *1TA*,6/  CP,6/ ,18/ RETURN ADDRESS,12/ PP 
* 
*         CP     CONTROL POINT. 
*         PP     POT POINTER TO REQUEST QUEUE POT(S). 
* 
*         SINGLE REQUEST. 
*T        18/  *1TA*,6/  CP,12/ 40FC,12/ TN,12/ ARG 
* 
*         REQUEST QUEUE FORMAT. 
*T        24/ ,12/ FC,12/ TN,12/ ARG
* 
*         FC     FUNCTION CODE. 
*         TN     TERMINAL NUMBER. 
*         ARG    POT POINTER OR REQUEST TYPE. 
* 
*                VROT STATUS BITS USED. 
*                 BIT 0 - COMPLETION STATUS BIT.
*                 BIT 11- ERROR RETURN. 
          SPACE  4,10,10
***       ACCOUNT FILE MESSAGES.
* 
* 
*         CHARACTER ACCUMULATOR OVERFLOW -
*                *UCCO, 000000.000KCHS.* = CHARACTERS OUT.
*                *UCCI, 000000.000KCHS.* = CHARACTERS IN. 
*                *ABLQ, JSNN, YY/MM/DD, HH.MM.SS*   INPUT FILE QUEUED 
          SPACE  4,10,10
**        ROUTINES USED.
* 
* 
*         0AV - VERIFY USER NAME. 
*         0QM - ISSUE QUEUE FILE ACCOUNTING MESSAGE.
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSACC 
*CALL     COMSCPS 
*CALL     COMSEJT 
*CALL     COMSEVT 
*CALL     COMSJIO 
*CALL     COMSJRO 
*CALL     COMSMSC 
*CALL     COMSMSP 
*CALL     COMSPFM 
*CALL     COMSPIM 
*CALL     COMSPRD 
*CALL     COMSREM 
*CALL     COMSSRU 
*CALL     COMSSSE 
*CALL     COMSTCM 
*CALL     COMSWEI 
*CALL     COMSZOL 
          TITLE  PROGRAM EQUIVALENCES.
****      DIRECT LOCATION ASSIGNMENTS.
  
 QF       EQU    25          QFT ORDINAL
 PW       EQU    26          POT WORD COUNT 
 FP       EQU    27          FIRST POT
 CN       EQU    30 - 34     VROT STATUS WORD BUFFER (5 LOCATIONS)
 PA       EQU    35 - 36     POT ADDRESS (2 LOCATIONS)
 PP       EQU    37          POT POINTER
 DF       EQU    40 - 44     DESIGNATED FILE NAME (5 LOCATIONS) 
 WC       EQU    45          WORD COUNT 
 TT       EQU    46 - 47     TERMINAL TABLE ADDRESS (2 LOCATIONS) 
 TN       EQU    IR+3        TERMINAL NUMBER
 FN       EQU    60 - 64     FILE NAME (5 LOCATIONS)
 OT       EQU    65          ORIGIN TYPE
 NC       EQU    66          NUMBER OF CONTROL POINTS 
 MF       EQU    67          MESSAGE FLAG 
          SPACE  4,10 
**        MICRO DEFINITIONS.
  
  
 TE       OCTMIC TTEQ,2      TTY PSEUDO-EQUIPMENT MICRO 
          SPACE  4,10 
****      PROGRAM EQUIVALENCES. 
  
  
 SYSN     EQU    0           SYSTEM SECTOR NUMBER 
 CPSN     EQU    1           C.P. AREA SECTOR NUMBER
 NSVR     EQU    6           NUMBER OF SERVICE CLASS VALIDATION RETRIES 
 EJTT     EQU    EJTR*2      EJT THRESHOLD
 BUFFER   SPACE  4,10,10
****      BUFFER DEFINITIONS. 
  
 FBUF     EQU    BFMS-502-LENF*5+1*5  NFL/INPUT/EOI BUFFER
 CBUF     EQU    FBUF-504    CONTROL POINT AREA SECTOR BUFFER 
  
          ERRNG  EPFW-CBUF-ZAVL  CHECK *0AV* OVERFLOW 
          ERRNG  BFMS-CBUF-ZQML  CHECK *0QM* OVERFLOW 
          TITLE  OVERLAY COMMUNICATION MACROS.
 OVERLAY  SPACE  4,10 
**        OVERLAY - GENERATE OVERLAY CONSTANTS. 
* 
* QUAL    OVERLAY (TEXT),ADDR 
* 
*         QUAL   OVERLAY QUALIFIER NAME 
*         TEXT   TEXT OF SUBTITLE.
*         ADDR   OPTIONAL LOAD ADDRESS, IF TO BE OTHER THAN *OVL*.
  
  
          NOREF  .M 
          PURGMAC OVERLAY 
 .M       SET    0
  
          MACRO  OVERLAY,Q,T,A
          LOCAL  LADDR
          QUAL
 .M       SET    .M+1 
          USE    LITERALS 
 .1       MICRO  .M,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ 
 .3       MICRO  1,3, 3T".1"
 Q_O      EQU    1R".1" 
 Q        MICRO  1,4, O_Q 
          TITLE  ".3" - T 
          IDENT  ".3","Q" - T 
*COMMENT  1TA - T 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          ORG    A OVL
 "Q"      LJM    *
          UJN    *-2
          QUAL   Q
 OVERLAY  ENDM
 ENTRY    SPACE  4,10,10
**        ENTRY - DEFINE OVERLAY ENTRY POINT. 
* 
*         ENTRY  NAME 
* 
*         ENTRY  *NAME* = NAME OF ENTRY ADDRESS.
  
  
          PURGMAC ENTRY 
  
 ENTRY    MACRO  NAME 
          QUAL
 NAME     EQU    *+1R".1"*10000 
          QUAL   *
 ENTRY    ENDM
 FCN      SPACE  4,10,10
**        FCN - DEFINE FUNCTION PROCESSOR.
* 
*         FCN    NAME 
* 
*         ENTRY  *NAME* = NAME OF FUNCTION PROCESSOR. 
  
          NOREF  .I 
 .I       SET    0
  
          MACRO  FCN,L,A
          LOC    .I/2+1 
 L        CON    A/10000,A-A/10000*10000
 .I       SET    .I+2 
          ENDM
 SCLASS   SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC  SCLASS 
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .A       IFC    NE,$NM$SSSC$ 
 .SCL     RMT 
          INDEX  NM,1R_DF    TX 
 .SCL     RMT 
 .SCLVSP  RMT 
          INDEX  NM,MN_MK    TX 
 .SCLVSP  RMT 
 .A       ENDIF 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
          TITLE  MAIN PROGRAM.
 1TA      SPACE  4,10 
**        1TA -  MAIN PROGRAM.
* 
*         LOADS AND EXECUTES THE VARIOUS FUNCTION PROCESSOR 
*         OVERLAYS. 
* 
*         CALLS  CHG, EXR, PPR, SPA, STA, UPP.
  
  
          ORG    PPFW 
 ITA      LJM    INI         INITIALIZE 
  
*         ENTRY FROM FUNCTION PROCESSOR.
  
 ITAX     AOM    ITAC        INCREMENT TO NEXT ENTRY
*         LJM    DPP         (IF SINGLE FUNCTION) 
          LMN    VCPC 
          NJN    ITA1        IF NOT THE END OF A POT
          STM    ITAC 
          LDC    *           READ UP NEXT POT 
 ITAA     EQU    *-1
          STD    PP 
          RJM    UPP         GET NEXT POT 
          ZJN    ITA2        IF LAST POT PROCESSED
          STM    ITAA 
          RJM    SPA         SET POT ADDRESS
          STM    ITAB+1 
          SHN    -14
          ADC    LDCI 
          STM    ITAB 
  
*         MULTIPLE FUNCTION RETURN FROM *INI*.
  
 ITA1     LDC    *           READ UP ENTRY
 ITAB     EQU    *-2
          ADC    0
 ITAC     EQU    *-1
          CRD    IR 
          LDD    TN 
          NJN    ITA4        IF STILL MORE ENTRIES TO PROCESS 
 ITA2     LDD    IA          SET COMPLETION 
          CRD    IR 
          LDN    ZERL 
          CRD    IR-3 
 ITAD     LDC    *
          CWD    IR 
  
*         ENTRY TO DROP PPU.
  
 DPP      MONITOR DPPM       DROP PPU 
          LJM    PPR         RETURN TO PP RESIDENT
  
*         SINGLE FUNCTION RETURN FROM *INI*.
  
 ITA4     RJM    STA         SET TERMINAL TABLE ADDRESS 
          LDD    IR+2        GENERATE FUNCTION CODE INDEX 
          SHN    1
          STD    T7 
          SBN    TFCNL+1
          MJN    ITA6        IF LEGAL FUNCTION CODE 
 ITA5     LDN    0           SET NO ERROR FLAG
          RJM    CHG         CONDITIONALLY HANG PP
          UJP    DPP         DROP PP
  
**        *1TA* FUNCTION LOAD.
* 
*         ENTRY  (T7) = FUNCTION CODE INDEX.
  
  
 ITA6     LDM    TFCN-1,T7   SET PROCESSOR ADDRESS
          ZJN    ITA5        IF UNDEFINED FUNCTION
          STM    ITAE 
          LDM    TFCN-2,T7   SET OVERLAY NAME 
          ZJN    ITA7        IF NO OVERLAY REQUIRED 
          SHN    6
          LMM    OVL-4
          SCN    77 
          ZJN    ITA7        IF OVERLAY ALREADY LOADED
          LDM    TFCN-2,T7   LOAD OVERLAY 
          LMC    2L3T 
          RJM    EXR         LOAD OVERLAY 
 ITA7     LJM    *           PROCESS REQUEST
 ITAE     EQU    *-1
 TFCN     SPACE  4,10 
**        TFCN - TABLE OF FUNCTION CODE PROCESSORS. 
* 
*         ENTRY - TWO WORDS.
*                 WORD 1 = FUNCTION PROCESSOR OVERLAY NAME. 
*                 WORD 2 = FUNCTION PROCESSOR ADDRESS.
  
  
 TFCN     BSS    0
          FCN    TFL         ADJUST TIMESHARING EXECUTIVE FIELD LENGTH
          FCN    CIQ         CREATE INPUT QUEUE ENTRY 
          FCN    IAM         ISSUE ACCOUNTING MESSAGES
          FCN    IRL         INCREMENT RESOURCE LIMIT 
          FCN    RJS         RETURN JOB STATUS
          LOC    *O 
 TFCNL    EQU    *-TFCN      LENGTH OF FUNCTION TABLE 
          TITLE  GENERAL SUBROUTINES. 
 CCA      SPACE  4,10 
**        CCA - COMPUTE CPA/PCPA ADDRESS. 
* 
*         ENTRY  (A) = CP/PCP NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS. 
* 
*         EXIT   (A) = CPA/PCPA ADDRESS.
  
  
 CCA1     ADD    NC 
          SHN    7
  
 CCA      SUBR               ENTRY/EXIT 
          SBD    NC 
          MJN    CCA1        IF CONTROL POINT 
          ZJN    CCA1        IF SYSTEM CONTROL POINT
          SHN    7
 CCAA     ADC    **          (PCP AREAS BASE ADDRESS) 
          UJN    CCAX        RETURN 
 CFN      SPACE  4,10 
**        CFN - CHECK FILE NAME.
* 
*         ENTRY  (A) = ADDRESS OF FILE NAME 1.
*                (DF - DF+3) = FILE NAME 2. 
* 
*         EXIT   (A) = ZERO IF FILE NAMES MATCH.
* 
*         USES   T3.
  
  
 CFN      SUBR               ENTRY/EXIT 
          STD    T3          SAVE ADDRESS OF FILE NAME
          LDI    T3          COMPARE FIRST TWO CHARACTERS 
          LMD    DF 
          NJN    CFNX        IF NO MATCH
          LDM    1,T3        COMPARE NEXT CHARACTERS
          LMD    DF+1 
          NJN    CFNX        IF NO MATCH
          LDM    2,T3        COMPARE NEXT CHARACTERS
          LMD    DF+2 
          NJN    CFNX        IF NO MATCH
          LDM    3,T3        COMPARE LAST CHARACTER 
          LMD    DF+3 
          SCN    77 
          UJN    CFNX        RETURN 
 CHG      SPACE  4,10 
**        CHG - CONDITIONALLY HANG PP.
* 
*         ENTRY  (A) = ERROR FLAG.
* 
*         EXIT   (A) = ZERO.
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 CHG      SUBR               ENTRY/EXIT 
          STD    CM+2        SET ERROR FLAG 
          LDM    CHG         GET ADDRESS WHERE ERROR DETECTED 
          STD    CM+1 
          MONITOR  CHGM      CONDITIONALLY HANG PP
          UJN    CHGX        RETURN 
 DPT      SPACE  4,10 
**        DPT - DROP POTS.
* 
*         ENTRY  (PP) = FIRST POT CHAIN TO BE DROPPED.
*                (TN) = TERMINAL NUMBER.
* 
*         EXIT   MONITOR FUNCTION TO DROP POT(S) COMPLETE.
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  ITF. 
  
  
 DPT      SUBR               ENTRY/EXIT 
          LDN    ZERL        CLEAR REQUEST WORD 
          CRD    CM 
          LDC    VDPO        DROP POTS
          STD    CM 
          LDD    PP 
          STD    CM+3 
          RJM    ITF         ISSUE *TSEM* FUNCTION
          UJN    DPTX        RETURN 
 ERX      SPACE  4,10,10
**        ERX - ERROR EXIT. 
* 
*         EXIT   COMPLETION BIT AND ERROR BIT SET IN VROT.
* 
*         USES   CM+4.
* 
*         USES   CN - CN+4. 
* 
*         NOTE   *ERX* IS ENTERED BY A RETURN JUMP TO ALLOW 
*                SAVING THE ADDRESS AT WHICH THE ERROR OCCURRED.
  
  
 ERX      CON    0           ENTRY / RETURN ADDRESS SAVED 
          RJM    STT         GET TERMINAL TABLE ADDRESS 
          ADK    VROT 
          CRD    CN 
          LDD    CN+4        INSURE ERROR AND COMPLETION BIT SET
          LPC    3776 
          LMC    4001 
          STD    CN+4 
          RJM    STT         SET TERMINAL TABLE ADDRESS 
          ADK    VROT 
          CWD    CN 
          LJM    ITAX        DROP PP
 ITF      SPACE  4,10 
**        ITF - ISSUE *TSEM* FUNCTION.
* 
*         ENTRY  (CM - CM+4) = *TSEM* REQUEST.
* 
*         USES   T1, CM - CM+4. 
* 
*         MACROS DELAY, MONITOR, PAUSE. 
  
  
 ITF      SUBR               ENTRY/EXIT 
          LDD    TN 
          STD    CM+4 
          LDD    MA 
          CWD    CM 
 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 
          ZJN    ITF1        IF TIME TO REISSUE REQUEST 
          UJN    ITF2        CONTINUE TO DELAY
 MSR      SPACE  4,10 
**        MSR - MASS STORAGE READ ERROR PROCESSOR.
* 
*         EXIT   TO RRF1 TO SET UP ERROR EXIT CONDITIONS. 
  
  
 MSR      SUBR               ENTRY/EXIT 
          UJN    RRF1        SET EXIT 
 RRF      SPACE  4,20 
**        RRF - READ ROLLOUT FILE.
* 
*         ENTRY  (A) = 0, READ SYSTEM SECTOR AND CPA SECTOR.
*                (A) = CPSN, READ CPA SECTOR ONLY.
*                (CN - CN+1) = ROLLOUT FILE ADDRESS.
* 
*         EXIT   (A) = 0, IF NO ROLLOUT FILE OR IF READ ERROR 
*                         ENCOUNTERED.
*                (A) .NE. 0, IF ROLLOUT FILE READ WITHOUT ERROR.
*                SYSTEM SECTOR READ INTO *BFMS*, IF REQUESTED.
*                FIRST SECTOR OF CPA READ INTO *CBUF*.
* 
*         USES   T5, T6, T7.
* 
*         CALLS  RNS, RSS.
* 
*         MACROS ENDMS, SETMS.
  
  
 RRF      SUBR               ENTRY/EXIT 
          STD    T7          SET FIRST SECTOR TO READ 
          LDD    CN+1        SET TRACK
          STD    T6 
          ZJN    RRFX        IF EMPTY ROLLOUT FILE
          LDD    CN 
          STD    T5          SET EQUIPMENT
          SETMS  IO 
          LDD    T7 
          NJN    RRF2        IF NOT STARTING WITH SYSTEM SECTOR 
  
*         READ SYSTEM SECTOR. 
  
          RJM    RSS         READ SYSTEM SECTOR 
          NJN    RRF1        IF ERROR IN SYSTEM SECTOR
          LDM    FNSS+4 
          SHN    -6 
          LMN    ROFT 
          ZJN    RRF2        IF ROLLOUT FILE TYPE 
          ENDMS 
 RRF1     LDN    0
          UJN    RRFX        RETURN, ROLLOUT FILE BAD 
  
*         READ CONTROL POINT AREA SECTOR. 
  
 RRF2     LDC    CBUF        READ FIRST SECTOR OF CPA 
          RJM    RNS         READ NEXT SECTOR 
          ENDMS 
          LDN    1           INDICATE GOOD ROLLOUT FILE 
          LJM    RRFX        RETURN 
 STT      SPACE  4,10,10
**        STT - SET TERMINAL TABLE ADDRESS. 
* 
*         ENTRY  (TT - TT+1) = TERMINAL TABLE ADDRESS.
* 
*         EXIT   (A) = TERMINAL TABLE ADDRESS 
  
  
 STT      SUBR               ENTRY/EXIT 
          LDD    TT 
          SHN    14 
          LMD    TT+1 
          UJN    STTX 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPC2D 
 IFP$     SET    1           ASSEMBLE REMOTE INITIALIZATION 
 QFT$     SET    1           ASSEMBLE QFT ADDRESSING
 EJT$     SET    1           ASSEMBLE EJT ADDRESSING
*CALL     COMPGFP 
 MSR$     EQU    0           DEFINE PROGRAM PROCESSED DISK ERRORS 
*CALL     COMPRNS 
*CALL     COMPRSS 
*CALL     COMPSPA 
*CALL     COMPSTA 
*CALL     COMPUPP 
          USE    OVERLAY
 OVL      EQU    *+10 
          SPACE  4,10 
 IFP      HERE
 INI      TITLE  INITIALIZATION.
**        INI - INITIALIZE *1TA*. 
  
  
 INI      BSS    0
          RJM    IFP         INITIALIZE *COMPGFP* 
          LDK    NCPL        GET NUMBER OF CONTROL POINTS 
          CRD    CM 
          AOD    CM+1        SET NUMBER OF CONTROL POINTS 
          STD    NC 
          LDK    PCPP        SET FWA OF PCPA-S
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          SBK    200B 
          STM    CCAA+1 
          SHN    -14
          LMC    ADCI 
          STM    CCAA 
          LDD    IR+2        SET COMPLETION ADDRESS 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+3 
          STM    ITAD+1 
          SHN    -14
          RAM    ITAD 
          ERRNG  *-OVL-4     *OVL* OVERLAYS PRESET CODE 
          LDN    0           CLEAR OVERLAY LOAD INDICATOR 
          STM    OVL-4
          LDD    IR+2        SET POT POINTER FOR REQUEST QUEUE
          SHN    6
          MJN    INI1        IF ONLY 1 FUNCTION 
  
*         PROCESS MULTIPLE FUNCTION CALL. 
  
          LDD    IR+4 
          STD    PP 
          STM    ITAA 
          RJM    SPA         SET POT ADDRESS OF FIRST POT 
          STM    ITAB+1 
          SHN    -14
          RAM    ITAB 
          LJM    ITA1        PROCESS MULTIPLE FUNCTION CALL 
  
*         PROCESS SINGLE FUNCTION CALL. 
  
 INI1     LDC    -4000       CLEAR FUNCTION FLAG
          RAD    IR+2 
          LDC    LJMI        SET TO DROP PP 
          STM    ITAX 
          LDC    DPP
          STM    ITAX+1 
          LJM    ITA4        PROCESS SINGLE FUNCTION CALL.
          SPACE  4,10 
**        TEST FOR OVERFLOW.
  
  
          OVERFLOW  PPFW,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR 
  
          USE    OVERFLOW 
          ERRNG  CBUF-*      OVERFLOW INTO *CBUF* 
 TFL      OVERLAY (ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.)
 TFL      SPACE  4,10,10
****      TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.
* 
*T, IR    24/ ,12/ 1,6/ ,18/ FL 
* 
*         FL   FIELD LENGTH REQUESTED.
 TFL      SPACE  4,10,10
**        TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.
* 
*         USES   WC, CM - CM+4, IR - IR+4, T2 - T7. 
* 
*         CALLS  RSI. 
  
  
          ENTRY  TFL
          LDD    IR+3 
          SHN    14 
          ADD    IR+4 
          ADN    77 
          SHN    -6 
          RJM    RSI         REQUEST STORAGE INCREASE/DECREASE
          NJN    TFL2        IF STORAGE INCREASE NOT AVAILABLE
          LDN    ZERL 
          CRD    CM 
          LDD    RA          RESET TOTAL POTS AVAILABLE AND CLEAR FLAG
          SHN    6
          ADN    VCPL 
          CRD    T2 
          ADN    VPAL-VCPL
          CWD    T2 
          SBN    VPAL-VCPL
          CWD    CM          INDICATE FL CHANGE COMPLETE
          LDD    CP          READ FIELD LENGTH CONTROL WORD 
          ADN    FLCW 
          CRD    CM 
          LDD    FL          SET CURRENT FL AS RFL
          STD    CM+1 
          LDD    CP 
          ADN    FLCW 
          CWD    CM 
          UJN    TFL3        EXIT 
  
 TFL2     LDD    IA          SET PP RECALL
          CRD    IR 
          LDN    ZERL 
          CRD    CM 
          LDD    MA 
          CWD    IR 
          ADN    1
          CWD    CM 
          LDC    4000        SET TO NOT DROP PP 
          STD    CM+1 
          MONITOR  RECM 
 TFL3     LJM    ITAX        EXIT 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPRSI 
          SPACE  4,10 
**        TEST FOR OVERFLOW.
  
  
          OVERFLOW  OVL,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR
 CIQ      OVERLAY  (CREATE INPUT QUEUE ENTRY.)
 CIQ      SPACE  4,20 
**        CIQ - CREATE INPUT QUEUE ENTRY. 
* 
*T, IR    24/ ,12/ FC,12/ TN,12/ PP 
* 
*         FC = FUNCTION  CODE.
*         TN = TERMINAL NUMBER. 
*         PP = POT POINTER LOGIN PARAMETERS.
* 
*         *1TA* WILL CREATE AN INPUT FILE AND A *QFT* 
*         ENTRY FOR A LOGIN.  THE INPUT FILE WILL CONTAIN 
*         PRELIMINARY CONTROL CARDS FOR LOGIN.  PARAMETERS
*         ON THE CARDS ARE TAKEN FROM *VALIDUZ* FILE AND ARE
*         USED FOR DEFAULT VALUES.
* 
*         IF NO INPUT QUEUE ENTRY CAN BE CREATED BECAUSE THE
*         INFORMATION COULD NOT BE WRITTEN TO DISK (DUE TO A
*         MASS STORAGE ERROR), AN ERROR CODE IS RETURNED TO *IAF*.
  
  
          ENTRY  CIQ         ENTRY
          LDC    CSS0.1      INITIALIZE INSTRUCTION MODIFICATIONS 
          STM    CSSG 
          LDC    LDNI+2 
          STM    CIQB 
          RJM    PLI         PRE LOG IN USER
          LDN    0           CLEAR QFT ORDINAL
          STD    QF 
          LDC    101         CLEAR SECTOR 
          STD    T1 
          LDC    BFMS 
          RJM    CBU         CLEAR BUFFER 
          RJM    CEF         CHECK EJT FULL 
 CIQ0     RJM    CSS         CREATE SYSTEM SECTOR 
          RJM    CIS         CREATE INPUT SECTOR
  
*         QUEUE FILE - WRITE QFT ENTRY. 
  
          LDN    QFTE*5-1    SAVE QFT ENTRY 
          STD    T4 
 CIQ1     LDM    IOSS,T4
          STM    CIQA,T4
          SOD    T4 
          PJN    CIQ1        IF MORE TO MOVE
          RJM    WDI         WRITE DISK INFORMATION 
          PJN    CIQ2        IF NO MASS STORAGE ERROR ENCOUNTERED 
  
*         MASS STORAGE ERROR ENCOUNTERED - RELEASE TRACKS AND RETRY.
  
          LDN    ZERL        DROP TRACKS
          CRD    CM 
          LDD    T5          EST ORDINAL TO DROP
          STD    CM+1 
          LDD    T6          TRACK TO DROP
          STD    CM+2 
          MONITOR  DTKM 
          SOM    CIQB 
 CIQB     LDN    2
*         LDN    1           (AFTER FIRST TRY FAILED) 
*         LDN    0           (AFTER SECOND TRY FAILED)
          NJP    CIQ0        IF RETRY ATTEMPT NEEDED
  
*         RETURN QFT ENTRY TO POOL.  RETURN MASS STORAGE ERROR CODE 
*         CODE TO *IAFEX*.
  
          LDD    QF          QFT ORDINAL
          STD    CM+1 
          LDN    PQFT        ENTRY IS IN QFT
          STD    CM+2 
          MONITOR  MTRM 
          LDN    20          MASS STORAGE ERROR ENCOUNTERED 
          STD    CN+4 
          RJM    SPA
          ADN    VUTA 
          CWD    CN 
          RJM    ERX         ERROR EXIT (EXIT TO *ITAX*)
  
 CIQ2     LDN    QFTE 
          STD    T4 
          SFA    QFT,QF 
          CWM    CIQA,T4     WRITE QFT ENTRY
  
*         ISSUE *ABLQ* ACCOUNTING MESSAGE.
  
          LDC    2RAB 
          STM    CBUF-2 
          LDC    2RLQ 
          STM    CBUF-1 
          EXECUTE  0QM,CBUF  ISSUE ACCOUNT MESSAGE
  
*         REQUEST SCHEDULER.
  
          LDN    ZERL        CLEAR PARAMETERS 
          CRD    CM 
          AOD    CM+2        SET QFT SCHEDULING OPTION
          MONITOR  RSJM 
          LJM    ITAX        TERMINATE
  
 CIQA     BSS    QFTE*5      QFT ENTRY BUFFER 
 CBU      SPACE  4,10 
**        CBU - CLEAR BUFFER. 
* 
*         ENTRY  (A) = FWA OF AREA TO CLEAR.
*                (T1) = NUMBER OF CM WORDS TO CLEAR.
* 
*         EXIT   BUFFER CLEARED.
* 
*         USES   T1, T2.
  
  
 CBU      SUBR               ENTRY/EXIT 
          STM    CBUA        SAVE ADDRESS TO START CLEARING 
          LDN    7
          STD    T2 
          LDD    OA          CLEAR OUTPUT REGISTER AND MESSAGE BUFFER 
          CWM    CBUB,T2
 CBU1     LCN    7
          RAD    T1 
          PJN    CBU2        IF SEVEN OR MORE WORDS LEFT TO CLEAR 
          RAD    T2          ADJUST WORD COUNT
 CBU2     LDD    OA 
          CRM    *,T2 
 CBUA     EQU    *-1
          LDN    7*5         ADVANCE BUFFER ADDRESS 
          RAM    CBUA 
          LDD    T1 
          ZJN    CBUX        IF COMPLETE
          SHN    21-13
          PJN    CBU1        IF NOT COMPLETE
          UJN    CBUX        RETURN 
  
 CBUB     BSSZ   7*5
 CEF      SPACE  4,10 
**        CEF - CHECK EJT FULL. 
* 
*         EXIT   TO *SEC* IF NUMBER OF AVAILABLE ENTRIES IN THE EJT 
*                ARE .LT. *EJTT*. 
* 
*         USES   CM - CM+4. 
  
  
 CEF      SUBR               ENTRY/EXIT 
          LDK    EJTP 
          CRD    CM 
          LDD    CM+3 
          SBN    EJTT        EJT THRESHOLD VALUE
          PJN    CEFX        IF ENOUGH ENTRIES IN TABLE 
          LDN    40          *SYSTEM FULL*
          RJM    SEC         SET ERROR CODE (NO RETURN) 
 CIS      SPACE  4,10 
**        CIS - CREATE INPUT SECTOR.
* 
*         ENTRY  SYSTEM SECTOR IN BFMS. 
* 
*         EXIT   INPUT CARDS CREATED IN FBUF. 
*                (WC) = CM WORD COUNT IN SECTOR 
* 
*         USES   T1, T3, WC.
* 
*         CALLS  ACS, ANS, CBF, DV5, SEL. 
  
  
 CIS      SUBR               ENTRY/EXIT 
          LDC    101         CLEAR SECTOR 
          STD    T1 
          LDC    FBUF 
          RJM    CBU         CLEAR BUFFER 
          LDC    FBUF+2      SET BUFFER ADDRESS 
          STD    T1 
          LDC    JNSS        SET UJN HASH 
          RJM    ACS
          LDC    CISG        SET PERIOD 
          RJM    ACS
          RJM    SEL         SET EOL
          LDC    CISH        SET USER CARD
          RJM    ACS
          LDC    CISB        SET USERNAME 
          RJM    ACS
          LDC    CISF        SET COMMA
          RJM    ACS
          LDC    CISF        SET COMMA
          RJM    ACS
          LDC    CISD        SET FAMILY NAME
          RJM    ACS
          LDC    CISG        SET PERIOD 
          RJM    ACS
          RJM    SEL         SET EOL
          STM    CISA        STORE PLACE TO CONTINUE ASSEMBLY 
          LDN    CISEL
          RJM    DV5         WORD COUNT TO TRANSFER 
          STD    T2 
          LDD    MA 
          CWM    CISE,T2
          SBD    T2 
          CRM    *,T2 
 CISA     EQU    *-1
          LDD    T1 
          ADN    CISEL
          ADC    -FBUF+2
          RJM    DV5         DIVIDE BY 5
          STD    WC 
          LJM    CISX        RETURN 
  
 CISB     BSS    5           USERNAME 
 CISC     BSS    5           PASSWORD 
 CISD     BSS    5           FAMILY NAME
 CISE     VFD    60/10L$RECOVER,O 
          VFD    60/4LP=T.
 CISEL    EQU    *-CISE 
 CISF     CON    1L,         COMMA
 CISG     CON    1L.         PERIOD 
 CISH     VFD    36/5LUSER, 
 CSS      SPACE  4,30 
**        CSS - CREATE SYSTEM SECTOR. 
* 
*         CREATE SYSTEM SECTOR FOR INPUT FILE.
*         CREATE AN *QFT* ENTRY FOR THE NEW FILE. 
* 
*         ENTRY  (CISB) = CREATION USER NUMBER. 
*                (CISD) = CREATE FAMILY NAME. 
*                (ABUF = ABUF+15) = VALIDATION ACCOUNT BLOCK. 
*                (IR+3) = TERMINAL NUMBER.
*                (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB. 
*                (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB. 
*                (CSSE) = SERVICE CLASS.
*                (QF) = 0, IF INITIAL *CSS* CALL (NO QFT ENTRY
*                          ASSIGNED). 
*                     = QFT ORDINAL OF ASSIGNED ENTRY, IF INITIAL 
*                          CALL TO *CSS* RESERVED AN ENTRY BUT THE
*                          SYSTEM SECTOR COULD NOT BE WRITTEN DUE TO
*                          AN I/O ERROR.
* 
*         EXIT   (T5) = EQUIPMENT.
*                (T6) = TRACK.
*                (T7) = SECTOR. 
*                (QF) = QFT ORDINAL OF ASSIGNED ENTRY.
*                *QFT* ENTRY IN IOSS. 
*                SYSTEM SECTOR CREATED IN BFMS. 
*                CORRECT EOI SET IN TRT.
* 
*         USES   CM - CM+4, FN - FN+4, QF, T1, T2, T5, T6.
* 
*         CALLS  CTE, GNB, RFI, RJC, SEC, STT, TLI. 
* 
*         MACROS MONITOR. 
  
  
 CSS      SUBR               ENTRY/EXIT 
          LDN    ZERL        CLEAR PARAMETERS 
          CRD    CM 
          LDN    INPS        SELECT INPUT DEVICE
          STD    CM+2 
          LDM    CSSC        SELECT ON LOWER ACCESS LEVEL OF JOB
          ADN    40 
          SHN    6
          STD    CM+3 
          LDN    3           SET NUMBER OF SECTORS
          STD    CM+4 
          MONITOR  RTCM      ASSIGN MASS STORAGE SPACE
          LDD    CM+1        SET EQUIPMENT
          STD    T5 
          LDD    CM+4        SET TRACK
          STD    T6 
          NJN    CSS0        IF TRACK ASSIGNED
          LDD    QF          QFT ORDINAL
          ZJN    CSS1        IF NO QFT ENTRY RESERVED 
          STD    CM+1 
          LDN    PQFT        ENTRY IS IN QFT
          STD    CM+2 
          MONITOR  MTRM      RETURN QFT ENTRY TO POOL 
*         LDN    0
          UJN    CSS1        SET ERROR STATUS 
  
 CSS0     LJM    CSS0.1      REQUEST QFT ENTRY
*         LJM    CSS2.1      (QFT ENTRY PREVIOUSLY REQUESTED/ASSIGNED)
 CSSG     EQU    *-1
  
*         REQUEST *QFT* ENTRY.
  
 CSS0.1   LDN    ZERL        CLEAR FIRST WORD VALUE 
          CRD    CM+3 
          LDN    7
          STD    CM+7        SET INTERLOCK BIT
          LDN    PQFT        GET QFT ENTRY WITH JSN 
          RJM    CTE         CREATE TABLE ENTRY 
          NJN    CSS2        IF QFT NOT FULL
          LDN    ZERL        CLEAR PARAMETERS 
          CRD    CM 
          LDD    T5          SET EQUIPMENT AND TRACK TO DROP
          STD    CM+1 
          LDD    T6 
          STD    CM+2 
          MONITOR  DTKM      DROP TRACKS
          LDN    40          FLAG *SYSTEM FULL* ERROR 
 CSS1     RJM    SEC         SET ERROR CODE (NO RETURN) 
  
*         FORMAT SYSTEM SECTOR AND *QFT* ENTRY. 
  
 CSS2     CRM    IOSS,ON     READ INTO SYSTEM SECTOR QFT
          SBN    1
          CRM    OJSS,ON
          LDC    CSS2.1      BYPASS FORMATTING ON SUBSEQUENT CALLS
          STM    CSSG 
          LDD    CM+1        SAVE QFT ORDINAL 
          STD    QF 
          STM    GQSS 
          LDD    CP          SET CREATING JOB JSN 
          ADK    TFSW 
          CRD    CM 
          SFA    EJT,CM 
          ADK    JSNE 
          CRM    CJSS,ON
          LDN    0
          STM    CJSS+2 
          STM    PRSS 
          RJM    STT         GET TERMINAL TABLE ADDRESS 
          ADK    VFST 
          CRD    CM 
          LDM    IOSS        ADD JSN TO *VFST*
          STD    CM 
          LDM    IOSS+1 
          STD    CM+1 
          RJM    STT
          ADK    VFST 
          CWD    CM 
 CSS2.1   LDK    RTCL        SET ENTRY TIME 
          CRD    CM 
          LDD    CM 
          STM    IOSS+ENTQ*5+3
          LDD    CM+1 
          STM    IOSS+ENTQ*5+4
          LDD    T6          SET TRACK
          STM    IOSS+ENTQ*5+1
          LDD    T5          SET EQUIPMENT
          STM    IOSS+ENTQ*5
          LDC    NOQF*100    SET QUEUE FILE TYPE
          STM    IOSS+JSNQ*5+4
          LDC    ** 
 CSSE     EQU    *-1         (SERVICE CLASS TO ASSIGN)
          SHN    6
          ADN    IAOT        SET ORIGIN TYPE
          STM    IOSS+SCLQ*5
          LDN    PDTL        SET PACKED DATE AND TIME 
          CRD    CM 
          LDD    CM+2 
          STM    CDSS+2 
          LDD    CM+3 
          STM    CDSS+3 
          LDD    CM+4 
          STM    CDSS+4 
          LDN    IPRL        SET DEFAULT KEYPUNCH MODE
          CRD    CM 
          LDD    CM+2 
          SHN    -13
          STM    JFSS 
          LDN    3           SET FLAGS - FILE IN ACTIVE QUEUE 
          STM    FGSS 
          LDC    2RIN        SET DISPOSITION CODE 
          STM    DCSS 
          LDC    MMFL        SET MACHINE ID 
          CRD    CM 
          LDD    CM 
          STM    RMSS 
          STM    CMSS 
          LDN    3           SET FILE LENGTH IN SECTORS 
          STM    FLSS+1 
          LDC    FLSS        GET ADDRESS OF SYSTEM SECTOR FILE LENGTH 
          RJM    RFI         SET FILE SIZE INDEX IN QFT ENTRY 
          LDD    MA          SET CREATION USER NUMBER 
          CWM    ABUF+ACCN*5,ON 
          CWM    CISD,ON   SET CREATION FAMILY
          SBN    2
          CRM    ACSS,ON
          CRM    FMSS,ON
          SBN    2
          CRM    OASS,ON
          CRM    FOSS,ON
          LDN    0           CLEAR CONTROL POINT AND SLID 
          STM    CPSS 
          STM    SLSS+1 
          LDM    SLSS 
          SCN    77 
          STM    SLSS 
          LDD    PA          GET TERMINAL NAME FROM POT 
          SHN    14 
          ADD    PA+1 
          ADN    VTRY 
          CRM    TNSS,ON
          LDD    IR+3        SET TERMINAL NUMBER
          STM    TRSS 
          LDM    ABUF+ATIS*5+1  SET INITIAL INTERACTIVE SUBSYSTEM 
          SHN    -6 
          LPN    37 
          LMM    ISSS 
          LPN    77 
          LMM    ISSS 
          STM    ISSS 
          LDM    ABUF+APXI*5+3  SET INTERACTIVE PW EXPIRATION DATE
          LPN    77 
          STM    PESS 
          LDM    ABUF+APXI*5+4
          STM    PESS+1 
  
*         MOVE FIRST HALF OF VALIDATION ACCOUNT BLOCK TO SYSTEM SECTOR. 
  
          LDN    0
          STD    T1 
 CSS3     LDM    ABUF,T1
          STM    VASS,T1
          AOD    T1 
          LMC    ABSS*5 
          NJN    CSS3        IF NOT LAST BYTE 
  
*         SET USER INDEX/FAMILY ORDINAL/ACCESS LEVEL LIMITS INTO QFT. 
  
          LDM    ABUF+AUIN*5+3  GET USER INDEX
          LPN    77 
          STM    IOSS+JSNQ*5+2
          STD    T1          FOR BANNER NAME
          LDM    ABUF+AUIN*5+4
          STM    IOSS+JSNQ*5+3
          STD    T2          FOR BANNER NAME
          LDC    *           SAVE FO
 CSSA     EQU    *-1         FAMILY ORDINAL - SET BY *PLI*
          SHN    6           POSITION FO
          RAM    IOSS+JSNQ*5+2
          LDM    IOSS+INSQ*5+3  SET ACCESS LEVEL LIMITS 
          SHN    -11
          SHN    3
          LMC    *
 CSSF     EQU    *-1         (LOWER ACCESS LEVEL LIMIT) 
          SHN    3
          LMC    *
 CSSC     EQU    *-1         (INITIAL JOB ACCESS LEVEL) 
          SHN    3
          LMC    *
 CSSD     EQU    *-1         (UPPER ACCESS LEVEL LIMIT) 
          STM    IOSS+INSQ*5+3
  
*         GENERATE UJN FOR JOB. 
  
          RJM    GBN         GENERATE BANNER NAME 
          LDN    ZERL 
          CRD    CM 
          LDD    T1 
          STD    CM 
          LDD    T2 
          STD    CM+1 
          LDD    MA 
          CWD    CM 
          CRM    JNSS,ON
  
*         SET TIME LIMIT AND CM AND EM SERVICE LIMITS.
  
          LCN    0           PRESET LIMITS
          STM    JCSS 
          STM    JESS 
          LDM    CSSE        GET JCB ADDRESS
          RJM    RJC
          ZJN    CSS4        IF JCB NOT DEFINED 
          ADN    MCMT        GET CM LIMIT 
          CRD    CM 
          ADN    MECT-MCMT   GET EM LIMIT 
          CRD    FN 
          LDD    CM+2        SET LIMITS IN SYSTEM SECTOR
          STM    JCSS 
          LDD    FN+2 
          STM    JESS 
 CSS4     LDM    VASS+AHTL*5+2  GET TIME LIMIT
          RJM    TLI         COMPUTE TL/10B 
          SHN    3
          STM    JTSS+1 
          SHN    -14
          STM    JTSS 
  
*         SET LOCAL FNT WORD. 
  
          LDD    MA 
          CWM    CSSB,ON
          SBN    1
          CRM    FNSS,ON
          LJM    CSSX        RETURN 
  
 CSSB     VFD    42/0LINPUT,6/0,6/INFT,6/0
 PLI      SPACE  4,25 
**        PLI - PRE LOG IN USER.
* 
*         VALIDATES USER NUMBER AND PASSWORD. 
* 
*         ENTRY  (IR+4) = POT POINTER TO POT WITH 
*                LOGIN INFORMATION. 
* 
*         EXIT   IF VALID, USER INDEX AND ACCOUNT INFORMATION 
*                RETURNED TO TERMINAL TABLE AND USER VALIDATION FIELDS
*                PRESET IN CONTROL POINT AREA.
*                (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB. 
*                (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB. 
*                (CSSE) = SERVICE CLASS TO BE ASSIGNED. 
*                IF NOT VALID OR IF *0AV* ENCOUNTERED AN INACCESSIBLE 
*                DEVICE OR A MASS STORAGE ERROR, AN  ERROR CODE IS
*                RETURNED.
* 
*         USES   OT, PP, T1, T2, T3, T5, T7, CM - CM+4, CN - CN+4,
*                DF - DF+4, FN - FN+4.
* 
*         CALLS  ERX, GFM, GFO, ITF, SPA, VPW, VSP, *0AV*.
* 
*         MACROS EXECUTE, MONITOR.
  
  
 PLI      SUBR               ENTRY/EXIT 
          LDD    IR+4        POT POINTER WITH LOGIN INFORMATION 
          STD    PP 
          RJM    SPA         SET POT ADDRESS
          ADN    VFNA        SET FAMILY NAME FOR 0AV
          CRD    CN 
          CRM    CISD,ON
          ADK    VUNA-VFNA-1 GET USER NAME
          CRD    DF 
          CRM    CISB,ON
          LDD    CN 
          NJN    PLI2        IF FAMILY NAME SUPPLIED
          LDD    CN+4 
          NJN    PLI1        IF FAMILY ORDINAL SUPPLIED 
          LDN    1           SET DEFAULT FAMILY ORDINAL 
 PLI1     RJM    GFM         GET FAMILY NAME
          LDD    FN+3 
          SCN    77 
          STD    FN+3 
          LDN    0
          STD    FN+4 
          LDD    MA 
          CWD    FN 
          CRD    CN 
          CRM    CISD,ON
 PLI2     LDD    DF+3        CLEAR UI FIELD 
          SCN    77 
          STD    DF+3 
          STM    CISB+3 
          LDN    0
          STD    DF+4 
          STD    CN+4 
          STM    CISB+4 
          EXECUTE  0AV,CBUF 
          PJN    PLI3        IF NO MASS STORAGE ERROR ENCOUNTERED 
          LDN    20          FLAG MASS STORAGE ERROR
          LJM    PLI19       SET ERROR CODE 
  
 PLI3     LDD    T4          SAVE (T4)
          STD    T5 
  
*         CHECK FOR ACCOUNT FOUND.
  
          LDN    0           SET INDEX
          STD    T7 
          LDD    T1          CHECK USER INDEX 
          ADD    T2 
          NJN    PLI4        IF ACCOUNT FOUND 
          LJM    PLI16       SET ERROR
  
*         MOVE USER ACCOUNT BLOCK.
  
 PLI4     LDI    T3 
          STM    ABUF,T7
          AOD    T3 
          AOD    T7 
          LMC    ARBS*5 
          NJN    PLI4        IF NOT LAST BYTE 
          STD    T2          INITIALIZE TABLE INDEX 
  
*         SET SERVICE CLASS.
  
          LDM    ABUF+ASC1*5+1  GET USER DEFAULT FOR INTERACTIVE ORIGIN 
          LPN    77 
          STD    T1 
 PLI5     LDM    TVSC,T2     SEARCH FOR VALID SERVICE CLASS 
          LMD    T1 
          ZJN    PLI6        IF MATCH FOUND 
          AOD    T2          INCREMENT TABLE INDEX
          LDN    MXSC 
          SBD    T2 
          MJN    PLI8        IF END OF TABLE
          UJN    PLI5        CHECK NEXT ENTRY 
  
 PLI6     STD    T3          CHECK IF SERVICE CLASS IS VALID FOR USER 
          LDN    IAOT        SET ORIGIN TYPE
          STD    OT 
          LDD    T2          SET SERVICE CLASS
          STM    CSSE 
 PLI7     LDD    MA          GET VALIDATION MASK
          CWM    ABUF+ASCV*5,ON 
          SBN    1
          CRD    CN 
          LDM    CSSE 
          RJM    VSP         VALIDATE SERVICE CLASS 
          ZJN    PLI12       IF NO ERROR
          LMN    3
 PLI8     NJN    PLI10       IF NOT SERVICE CLASS FULL
          LDN    NSVR        NUMBER OF SERVICE CLASS VALIDATION RETRIES 
 PLIA     EQU    *-1
          ZJN    PLI11       IF NO MORE RETRIES POSSIBLE
          SOM    PLIA        DECREMENT RETRY COUNT
          LDC    3600        DELAY PRIOR TO RETRY 
          STD    T1 
 PLI9     DELAY 
          SOD    T1 
          NJN    PLI9        IF NOT DONE DELAYING 
          UJN    PLI7        RETRY SERVICE CLASS VALIDATION 
  
 PLI10    LDN    2&4         SET INVALID SERVICE CLASS ERROR
 PLI11    LMN    4
          STD    CN+4 
          LJM    PLI19       PROCESS ERROR
  
  
*         GET FAMILY ORDINAL. 
  
 PLI12    LDD    MA          SET FAMILY NAME
          CWM    CISD,ON
          SBN    1
          CRD    FN 
          LDN    1           DO NOT ADD FAMILY NAME TO FOT
          RJM    GFO         GET FAMILY ORDINAL 
          ZJN    PLI13       IF NO ERROR OCCURRED 
          LJM    PLI16       SET ERROR
  
 PLI13    RJM    STT
          ADK    VUIT 
          CRD    CM 
          LDD    FN+4        INSERT FAMILY ORDINAL IN TERMINAL TABLE
          STM    CSSA 
          ADK    VUFO 
          LDD    CM+3 
          SCN    77 
          LMD    FN+4 
          STD    CM+3 
          RJM    STT
          ADK    VUIT 
          CWD    CM 
  
*         CHECK FOR VALID USER. 
  
          LDD    RA          CHECK TERMINAL TYPE
          SHN    6
          ADN    VNTP 
          CRD    DF 
          LDD    DF+2 
          ZJN    PLI14       IF NO NETWORK TERMINALS
          SBD    TN 
          SBN    1
          MJN    PLI17       IF NETWORK TERMINAL
 PLI14    LDD    T5          CHECK UI FLAG FROM *0AV* 
          NJN    PLI16       IF UI EXCEEDS AUIMX
          RJM    VPW         VALIDATE PASSWORD
          NJN    PLI16       IF INVALID PASSWORD
          LDD    T6 
          NJN    PLI18       IF SECURITY COUNT NOT EXHAUSTED
          LDN    1           FLAG *SECURITY COUNT EXHAUSTED* ERROR
 PLI15    LJM    PLI19       SET ERROR CODE 
  
 PLI16    LDN    0           FLAG *INVALID USER* ERROR
          UJN    PLI15       SET ERROR CODE 
  
 PLI17    LDD    PA          READ PASSWORD
          SHN    14 
          LMD    PA+1 
          ADN    VPWA 
          CRD    CM 
          LDD    CM 
          ZJN    PLI18       IF PASSWORD IS ZERO, BYPASS VALIDATION 
          RJM    VPW         VALIDATE PASSWORD
          MJN    PLI16       IF PASSWORD IS NOT VALID, ERROR EXIT 
          LDD    PA          CLEAR PASSWORD FIELD IN PARAMETER POT
          SHN    14 
          LMD    PA+1 
          ADN    VPWA 
          CRD    CM 
          LDN    0
          STD    CM 
          LDD    PA 
          SHN    14 
          LMD    PA+1 
          ADN    VPWA 
          CWD    CM 
  
*         DETERMINE VALID ACCESS LEVELS AND CATEGORIES FOR JOB. 
  
 PLI18    LDD    PA          GET LINE ACCESS LEVEL LIMIT
          SHN    14 
          LMD    PA+1 
          ADN    VLAL 
          CRD    CM 
          LDD    CM+4        SET UPPER ACCESS LEVEL LIMIT TO LINE LIMIT 
          LPN    7
          STD    CM+3 
          LDN    0           SET LOWER ACCESS LEVEL LIMIT 
          STD    CM+4 
          LDN    IAOT 
          STD    CM+2 
          LDN    VJCS        VALIDATE JOB CREATION PARAMETERS 
          STD    CM+1 
          LDD    MA 
          CWM    ABUF+ASVW*5,ON  SET SECURITY VALIDATION WORD 
          MONITOR  VSAM 
          LDD    MA 
          CRM    ABUF+ASVW*5,ON  READ UPDATED SECURITY VALIDATIONS
          LDD    CM+4        SAVE RESTRICTED ACCESS LEVEL LIMITS
          STM    CSSF 
          LDD    CM+3 
          STM    CSSD 
          LDD    CM+2        SAVE INITIAL JOB ACCESS LEVEL
          STM    CSSC 
          LDD    CM+1 
          ZJN    PLI20       IF NO REJECT 
          LDN    10          FLAG *SECURITY VIOLATION* ERROR
 PLI19    RJM    SEC         SET ERROR CODE (NO RETURN) 
  
*         USER SUCCESSFULLY VALIDATED.
*         PUT VALIDATION IN POT AND TERMINAL TABLE. 
  
 PLI20    LDD    PA 
          SHN    14 
          ADD    PA+1 
          ADN    VUTA 
          CWM    ABUF+AAWC*5,ON 
          ADK    VUTD-VUTA-1
          CWM    ABUF+ATPA*5,ON 
          LDM    ABUF+ATPA*5+1
          SHN    21-13
          PJN    PLI21       IF NORMAL MODE 
          LDN    ZERL        CLEAR REQUEST WORD 
          CRD    CM 
          LDC    VSCS        SET CHARACTER SET MODE 
          STD    CM 
          LDN    11 
          STD    CM+2 
          RJM    ITF         ISSUE *TSEM* FUNCTION
PLI21     LJM    PLIX        RETURN 
 TSVC     SPACE  4,10 
**        TSVC - TABLE OF VALID USER DEFAULT SERVICE CLASSES. 
* 
*T        12/ SUFFIX
*         SUFFIX = ONE CHARACTER SUFFIX, RIGHT JUSTIFIED, FOR SERVICE 
*         CLASS.
  
  
 TVSC     INDEX 
          LIST   D
 .SCL     HERE
          LIST   *
          INDEX  MXSC 
 SEC      SPACE  4,10 
**        SEC - SET ERROR CODE. 
* 
*         ENTRY  (A) = ERROR CODE.
* 
*         EXIT   TO *ERX*.
*                ERROR CODE SET IN BYTE 4, WORD *VUTA* OF LOGIN POT.
* 
*         USES   CN - CN+4. 
* 
*         CALLS  SPA, ERX.
  
  
 SEC      SUBR               ENTRY
          STD    CN+4 
          RJM    SPA
          ADN    VUTA 
          CWD    CN 
          RJM    ERX         ERROR EXIT (NO RETURN) 
 SEL      SPACE  4,10 
**        SEL - SET END OF LINE.
* 
*         ENTRY  (T1) = LAST BYTE ASSEMBLED IN FBUF.
* 
*         EXIT   (T1) = NEXT BYTE TO ASSEMBLE INTO IN FBUF. 
* 
*         USES   T1, T2.
* 
*         CALLS  DV5. 
  
  
 SEL      SUBR
          LDI    T1 
          ZJN    SEL1        IF ZERO BYTE 
          AOD    T1 
 SEL1     LDD    T1 
          ADC    -FBUF-2+5   ROUND UP 
          RJM    DV5
          STD    T2 
          SHN    2           * 4
          ADD    T2          * 5
          ADC    FBUF+2-1 
          STD    T1          POSSIBLE EOL 
          LDI    T1 
          ZJN    SEL2        IF EOL IN PLACE
          LDN    5
          RAD    T1 
 SEL2     AOD    T1          SET NEXT BYTE TO ASSEMBLE INTO 
          UJN    SELX        EXIT 
 VPW      SPACE  4,10 
**        VPW - VALIDATE PASSWORD.
* 
*         ENTRY  (PA - PA+1) = ADDRESS OF LOGIN POT.
*                (ABUF) = VALIDATION FILE ENTRY.
* 
*         EXIT   (A) = 0 IF PASSWORD VALID. 
* 
*         USES   CM - CM+4, DF - DF+4.
* 
*         CALLS  CFN. 
* 
*         MACROS MONITOR. 
  
  
 VPW      SUBR               ENTRY/EXIT 
          LDM    ABUF+APWI*5+3  CHECK PASSWORD EXPIRATION DATE
          LPN    77 
          STD    CM+3 
          SHN    14 
          LMM    ABUF+APWI*5+4
          ZJN    VPW1        IF NONEXPIRING PASSWORD
          STD    CM+4 
          LDN    VEDS        VALIDATE EXPIRATION DATE 
          STD    CM+1 
          MONITOR  VSAM 
          LDD    CM+1 
          NJN    VPWX        IF PASSWORD EXPIRED
 VPW1     LDD    PA          READ PASSWORD
          SHN    14 
          LMD    PA+1 
          ADN    VPWA 
          CRD    CM 
          LDD    MA          ENCRYPT PASSWORD 
          CWD    CM 
          LDN    REPS 
          STD    CM+1 
          MONITOR  RDCM 
          LDD    MA 
          CRD    DF 
          LDC    ABUF+APWI*5
          RJM    CFN         COMPARE PASSWORDS
          UJP    VPWX        RETURN 
 WDI      SPACE  4,20 
**        WDI - WRITE DISK INFORMATION. 
* 
*         ENTRY  (T5) = EQUIPMENT.
*                (T6) = TRACK.
*                (T7) = SECTOR. 
*                (BFMS) = SYSTEM SECTOR.
*                (FBUF) = INPUT SECTOR. 
*                (WC) = WORD COUNT IN SECTOR. 
* 
*         EXIT   (A) = 0, IF NO ERRORS.  THE SYSTEM SECTOR, THE INPUT 
*                         SECTOR, AND THE EOI SECTOR ARE WRITTEN. 
*                    .LT. 0, IF WRITE ERRORS ENCOUNTERED. 
* 
*         USES   FA, T1, T4, T7, KWC. 
* 
*         CALLS  CBU, WDS, WEI, WSS.
* 
*         MACROS SETMS, SFA.
  
  
 WDI      SUBR               ENTRY/EXIT 
  
*         WRITE SECTORS.
  
          SETMS  IO,,BFMS 
          RJM    WSS         WRITE SYSTEM SECTOR
          MJN    WDIX        IF MASS STORAGE ERROR
          LDD    T7          SET SECTOR LINKAGE 
          ADN    1
          STM    FBUF 
          LDD    WC          SET WORD COUNT 
          STM    FBUF+1 
          LDC    FBUF+WCSF
          RJM    WDS         WRITE SECTOR 
          MJN    WDIX        IF MASS STORAGE ERROR
          LDM    FBUF        SET NEXT SECTOR
          STD    T7 
          LDD    T6          SET FIRST TRACK IN EOI SECTOR
          STM    FBUF+FTEI
          LDD    MA          TRANSFER FNT/FST/DATE TO *FBUF*
          CWM    BFMS+2,TR
          SBN    3
          CRM    FBUF+2,TR
          LDN    75          CLEAR REMAINDER OF EOI 
          STD    T1 
          LDC    FBUF+2+3*5 
          RJM    CBU         CLEAR BUFFER 
          LDC    FBUF 
          RJM    WEI         WRITE EOI SECTOR 
          MJN    WDI1        IF MASS STORAGE ERROR
          ENDMS 
*         LDN    0           INDICATE NO ERROR
 WDI1     LJM    WDIX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPACS 
*CALL     COMPANS 
*CALL     COMPCTE 
 TLI$     SET    1
*CALL     COMPCVI 
*CALL     COMPDV5 
*CALL     COMPGBN 
*CALL     COMPRFI 
*CALL     COMPRJC 
          IF     DEF,FA,1 
          ERR                CHECK *COMPWSS* AND *COMPWEI*
*CALL     COMPSFI 
*CALL     COMPSSE 
 GFM$     SET    1
 GFO$     SET    1
*CALL     COMPUFT 
 CJL$     EQU    1           CHECK IF SERVICE CLASS AT JOB LIMIT
 CUV$     EQU    1           CHECK IF USER VALIDATED FOR SERVICE CLASS
*CALL     COMPVSP 
 WEI$     EQU    1           USE ALTERNATE EOI BUFFER 
*CALL     COMPWEI 
 WCS$     SET    1           USE WRITE CONTINOUS SECTORS IN *COMPWSS* 
*CALL     COMPWSS 
  
          USE    OVERLAY
  
 ABUF     EQU    *           USER ACCOUNT BLOCK 
          SPACE  4,10 
**        TEST FOR OVERFLOW.
  
  
          OVERFLOW  OVL,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR
  
          USE    OVERFLOW 
          ERRNG  CBUF-*      OVERFLOW INTO *CBUF* 
 IAM      OVERLAY  (ISSUE ACCOUNTING MESSAGES.) 
 IAM      SPACE  4,25 
***       IAM - ISSUE ACCOUNTING MESSAGES.
* 
*T, IR    24/ ,12/ FC,12/ APTN,12/ 400B 
* 
*         FC = FUNCTION CODE. 
*         APTN = ACCOUNTING PSEUDO TERMINAL NUMBER. 
* 
*         REQUEST QUEUE FORMAT. 
*T, IR    36/ ,12/ TN,10/ ,1/O,1/R
* 
*         TN = TERMINAL NUMBER. 
*         O = COMBINED INPUT/OUTPUT OVERFLOW FLAG.
*         R = RESOURCE TYPE.
*           = 0 IF OUTPUT.
*           = 1 IF INPUT. 
* 
*         EXIT   ACCOUNTING MESSAGES ISSUED.
*                TERMINAL TABLE SET TO COMPLETION STATUS. 
* 
*         USES   FP, PP, TN, WC, IR - IR+4, CM - CM+4, CN - CN+4, 
*                DF - DF+4. 
* 
*         CALLS  DFM, DPT, SJN, SPA, STA, TWD, UPP. 
  
  
          ENTRY  IAM
          RJM    STT         SET TERMINAL TABLE ADDRESS 
          ADK    VROT 
          CRD    CN 
          LDD    CN+3        SET FIRST POT
          STD    FP 
          STD    PP 
          LDN    0
          STD    WC 
  
*         PROCESS REQUEST POT.
  
 IAM1     RJM    SPA         READ REQUEST WORD
          ADD    WC 
          CRD    IR 
          LDD    TN          CHECK TERMINAL NUMBER
          NJN    IAM2        IF NOT TERMINATOR
          LJM    IAM4        COMPLETE PROCESSING
  
 IAM2     RJM    STA         SET TERMINAL TABLE ADDRESS 
          ADK    VUIT 
          CRD    DF 
          ADK    VFST-VUIT
          CRD    CM 
          LDD    CM          TRANSFER JSN 
          STM    MSFA 
          LDD    CM+1 
          STM    MSFA+1 
          SFA    EJT,DF+4 
          ADN    SCLE 
          CRD    CM 
          LDD    CM 
          SHN    -6 
          STM    MSFA+4      SET SERVICE CLASS
          LDD    IR+4        SET RESOURCE TYPE
          LPN    1
          STD    T1 
          LDM    TRST,T1
          STM    MSFB+1 
          LDD    MA          SET OVERFLOW QUANTITY
          CWM    IAMA,ON
          SBN    1
          CRM    MSFC,ON
          LDC    MSFA+AJNN   ISSUE DAYFILE MESSAGE
          RJM    DFM
          LDD    IR+4 
          SHN    21-1 
          PJN    IAM2.1      IF NO COMBINED OVERFLOW
          LDC    2RCT        SET COMBINED OVERFLOW
          STM    MSFB+1 
          LDD    MA          SET COMBINED OVERFLOW QUANTITY 
          CWM    IAMB,ON
          SBN    1
          CRM    MSFC,ON
          LDC    MSFA+AJNN   ISSUE DAYFILE MESSAGE
          RJM    DFM
 IAM2.1   AOD    WC          INCREMENT POT ADDRESS
          LMN    VCPC 
          NJN    IAM3        IF NOT AT END OF POT 
          STD    WC          RESET TO FWA OF POT
          RJM    UPP         UPDATE POT POINTER 
          ZJN    IAM4        IF POT NOT LINKED
 IAM3     LJM    IAM1        CONTINUE PROCESSING
  
 IAM4     STD    CN+3        CLEAR POT POINTER
          LDD    FP          DROP POTS
          STD    PP 
          RJM    DPT
          LDN    ACPT        RESET TERMINAL NUMBER
          STD    TN 
          AOD    CN+4        SET COMPLETE 
          RJM    STA
          ADK    VROT 
          CWD    CN 
          LJM    ITAX        EXIT 
  
 IAMA     DATA   10H     4.096  INPUT OR OUTPUT OVERFLOW QUANTITY 
 IAMB     DATA   10H 16777.216  COMBINED INPUT/OUTPUT OVERFLOW QUANTITY 
 TRST     SPACE  4,10 
**        TRST - TABLE OF RESOURCE TYPES. 
  
  
 TRST     BSS    0
          DATA   2HCO        CHARACTERS OUT 
          DATA   2HCI        CHARACTERS IN
 MSF      SPACE  4,10 
**        MSF - MESSAGE FORMAT FOR ACCOUNTING MESSAGES. 
  
  
 MSFA     DATA   10HJSNA    SC    JOB NAME
 MSFB     DATA   6HUCXX,     RESOURCE TYPE
 MSFC     DATA   10H     Q.QQQ  QUANTITY
          DATA   6HKCHS.     UNITS
          CON    0           TERMINATOR 
          SPACE  4,10 
**        TEST FOR OVERFLOW.
  
  
          OVERFLOW  OVL,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR
 IRL      OVERLAY (INCREMENT RESOURCE LIMIT.) 
 IRL      SPACE  4,20 
***       IRL - INCREMENT RESOURCE LIMIT. 
* 
*T,IR     24/ ,12/ FC,12/ TN,12/ PP.
* 
*         FC = FUNCTION CODE. 
*         TN = TERMINAL NUMBER. 
*         PP = REQUEST POT POINTER. 
* 
*         REQUEST POT FORMAT -
*T,       36/ 0,  6/ FC,  18/  SR.
*         FC = *1RI* FUNCTION CODE. 
*         SR = RESOURCE INCREMENT.
* 
*         INCREMENT SRU LIMIT.
* 
*         THE REQUESTED SRU INCREMENT IS PLACED IN THE ROLLOUT
*         FILE SYSTEM SECTOR FOR PROCESSING BY *1RI*, IF NO ERROR 
*         ENCOUNTERED FROM READING/UPDATING THE ROLLOUT FILE. 
*         IF A MASS STORAGE ERROR WAS ENCOUNTERED, AN ERROR CODE
*         IS RETURNED TO *IAF*. 
  
  
          ENTRY  IRL         ENTRY
          RJM    STT         SET TERMINAL TABLE ADDRESS 
          ADK    VUIT 
          CRD    CN 
          SFA    EJT,CN+4    SET EJT ENTRY ADDRESS
          ADN    SCHE 
          CRD    CN 
          LDN    SYSN        SET TO READ SYSTEM SECTOR AND CPA
          RJM    RRF         READ ROLLOUT FILE
          NJN    IRL1        IF NO ERROR ON READ
          LJM    IRL6        RETURN ERROR CODE AND EXIT 
  
 IRL1     LDD    IR+4        SET REQUEST POT POINTER
          STD    PP 
          RJM    SPA         READ REQUEST POT 
          CRD    CM 
          LDD    CM+4        SET REQUEST IN SYSTEM SECTOR 
          STM    SRSS+4 
          LDD    CM+3 
          STM    SRSS+3 
          SHN    -6 
          LMN    RLIT 
          NJN    IRL3        IF NOT TIME LIMIT REQUEST
          LDM    CBUF+2+SRUW*5  CHECK FOR VALIDATION LIMIT
          LPC    5777        CLEAR TIME LIMIT EXCEEDED FLAG 
          STM    CBUF+2+SRUW*5
          SHN    6
          PJN    IRL3        IF NOT VALIDATION LIMIT
 IRL2     RJM    ERX         ERROR EXIT 
 IRL3     LDM    CBUF+2+SRUW*5  CHECK FOR SRU VALIDATION LIMIT
          LPC    7377        CLEAR SRU LIMIT FLAG 
          STM    CBUF+2+SRUW*5
          SHN    10 
          MJN    IRL2        IF VALIDATION LIMIT SET
          SETMS  IO,(RW),BFMS 
          LDN    0           SET SECTOR 
          STD    T7 
          LDC    BFMS+WCSF   REWRITE SYSTEM SECTOR
          STM    WDSE 
          RJM    WDS
          MJN    IRL6        IF MASS STORAGE ERROR ENCOUNTERED
          LDM    CBUF        REWRITE CONTROL POINT AREA 
          SBN    1
          STD    T7 
          LDC    CBUF+WLSF   WRITE CONTROL POINT AREA SECTOR
          RJM    WDS
 IRL5     MJN    IRL6        IF MASS STORAGE ERROR ENCOUNTERED
          ENDMS 
          RJM    STT         SET TERMINAL TABLE COMPLETE
          ADK    VROT 
          CRD    CN 
          AOD    CN+4 
          RJM    STT
          ADK    VROT 
          CWD    CN 
          LJM    ITAX        EXIT 
  
 IRL6     LDN    20          INDICATE MASS STORAGE ERROR ENCOUNTERED
          STD    CN+4 
          RJM    SPA
          ADN    VUTA 
          CWD    CN 
          RJM    ERX         EXIT (TO *ITAX*) 
          SPACE  4,10,10
**        COMMON DECKS. 
  
 TLI$     SET    1           SELECT TIME LIMIT CONVERSION 
*CALL     COMPCVI 
          SPACE  4,10 
**        TEST FOR OVERFLOW.
  
  
          OVERFLOW  OVL,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR
  
  
          ERRMI  CBUF-*      OVERFLOW INTO BUFFER AREA
          SPACE  4,10,10
 RJS      OVERLAY  (RETURN JOB STATUS.) 
 RJS      SPACE  4,25 
***       RJS - RETURN JOB STATUS.
* 
*T,IR     24/ ,12/ FC,12/ TN,12/ PP.
* 
*         FC = FUNCTION CODE. 
*         TN = TERMINAL NUMBER. 
*         PP = POT POINTER. 
* 
*         RETURN JOB STATUS.
* 
*                CALLED TO RETURN THE CURRENT JOB STATUS FOR
*                THE *ENQUIRE* COMMAND. 
* 
*                IF POSSIBLE THE CONTENTS OF THE CONTROL
*                POINT MESSAGE BUFFER (MS1W) IS RETURNED.  IF MS2W
*                IS AVAILABLE, IT IS RETURNED INSTEAD OF MS1W.
* 
*                IF THE MESSAGE CANNOT BE READ BECAUSE THE
*                FNT INTERLOCK IS SET AN ERROR STATUS IS
*                RETURNED.
* 
*                *VROT* COMPLETION BIT NOT USED.
* 
*         ENTRY  (CN - CN+4) = TERMINAL TABLE WORD VROT.
  
  
          ENTRY  RJS
          LDN    0           CLEAR MESSAGE FLAG 
          STD    MF 
          LDD    IR+4 
          STD    PP 
          LDN    MS2W-MS1W+IN0W-MS2W  SET *MS1W* + *MS2W* LENGTH
          STD    PW 
          RJM    STT         SET TERMINAL TABLE ADDRESS 
          ADK    VUIT 
          CRD    CN 
          SFA    EJT,CN+4 
          STM    RJSD+1 
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          ADK    LDCI 
          STM    RJSD 
          LDN    0           SET INTERLOCK ON EJT 
          STD    CM+1 
          STD    CM+2 
          MONITOR  UTEM 
          LDD    CM+1 
          ZJN    RJS1        IF INTERLOCKED 
          LDN    0
          STD    CM+1 
          LJM    RJS10       RETURN ERROR STATUS
  
 RJS1     LDM    RJSD 
          LPN    77 
          SHN    14 
          ADM    RJSD+1 
          ADK    JSNE 
          CRD    CM           READ EJT ENTRY
          ADN    SCHE-JSNE
          CRD    CN 
          LDD    CM+4 
          LPN    76 
          LMN    EXJS*2 
          NJN    RJS1.2      IF NOT AT A CONTROL POINT
          LDD    CN+3        CP NUMBER
          SHN    7           SET CP ADDRESS 
 RJS1.1   ADN    MS1W        READ *MS1W* AND *MS2W* 
          CRM    CBUF+2+MS1W*5,PW 
          ADN    SRUW-IN0W   READ *SRUW*
          CRM    CBUF+2+SRUW*5,ON 
          LJM    RJS3        SET MESSAGE IN POT 
  
 RJS1.2   LMN    PCJS*2&EXJS*2
          NJN    RJS2        IF NOT AT A PSEUDO CONTROL POINT 
          LDD    CN+1        SET PCP ADDRESS
          RJM    CCA
          UJN    RJS1.1      READ PCPA FIELDS 
  
 RJS2     LMN    SWJS*2&PCJS*2
          NJN    RJS2.1      IF NOT SERVICE WAIT STATUS 
          STM    RJSG 
 RJS2.1   LDC    CPSN        READ CP AREA 
          RJM    RRF         READ ROLLOUT FILE
          NJN    RJS3        IF NO ERROR
          LDC    CBUF+2+MS2W*5  RETURN ERROR MESSAGE IN *MS2W*
          STM    RJSC 
          LDN    IN0W-MS2W+1  SET *MS2W* MESSAGE LENGTH 
          STD    PW 
          LDD    MA 
          CWM    RJSF,PW
          SBD    PW 
          CRM    CBUF+2+MS2W*5,PW  *WAITING - DEVICE INACCESSIBLE.* 
          LDN    ZERL        CLEAR *SRUW* WORD
          CRM    CBUF+2+SRUW*5,ON 
          LDN    VCPC-1      *SRUW* OFFSET
          SBD    PW 
          STD    T7 
          LJM    RJS9        PUT MESSAGE IN *MS2W* AND RETURN 
  
 RJS3     LDC    *
 RJSG     EQU    *-1
          NJN    RJS3.1      IF NOT SERVICE WAIT STATUS 
          LDN    IN0W-MS2W+1 SET *MS2W* MESSAGE LENGTH
          STD    PW 
          LDD    MA 
          CWM    RJSH,PW
          SBD    PW 
          CRM    CBUF+2+MS2W*5,PW  *WAITING - SERVICE LIMIT.* 
          UJN    RJS3.2      CONTINUE 
  
 RJS3.1   LDM    CBUF+2+MS2W*5
          ZJN    RJS4        IF NO *MS2W* MESSAGE 
 RJS3.2   LDC    CBUF+2+MS2W*5  USE *MS2W* MESSAGE
          STM    RJSC 
          SBN    1
          STM    RJSA 
          LDC    CBUF+2+IN0W*5-1
          STM    RJSB 
          ADN    1
          STM    RJSE 
          LDN    IN0W-MS2W+1
          UJN    RJS5        SET *MS2W* MESSAGE LENGTH
  
 RJS4     LDK    MS2W-MS1W+1  SET *MS1W* MESSAGE LENGTH 
 RJS5     STD    PW 
          LDN    VCPC-1 
          SBD    PW 
          STD    T7 
          LDK    ZERL        ASSURE EOL IN AREA TO WRITE TO POT 
          CRM    CBUF+2+MS2W*5,ON 
 RJSE     EQU    *-1
*         CRM    CBUF+2+IN0W*5,ON 
          LDC    CBUF+2+MS1W*5-1  SET MESSAGE POINTER 
 RJSA     EQU    *-1
*         LDC    CBUF+2+MS2W*5-1
          STD    CM 
 RJS6     AOD    CM 
 RJS7     LDC    CBUF+2+MS2W*5-1
 RJSB     EQU    *-1
*         LDC    CBUF+2+IN0W*5-1
          SBD    CM 
          ZJN    RJS8        IF END OF MESSAGE
          LDI    CM 
          NJN    RJS6        IF NOT TERMINATOR
          AOD    CM 
          LDN    0
          STI    CM          CLEAR MESSAGE BUFFER 
          UJN    RJS7        LOOP 
  
 RJS8     STM    CBUF+2+SRUW*5  CLEAR NON-ACCUMULATOR BITS
          LDM    CBUF+2+SRUW*5+1
          LPN    77 
          STM    CBUF+2+SRUW*5+1
 RJS9     RJM    SPA         SET POT ADDRESS
          CWM    CBUF+2+MS1W*5,PW  WRITE MESSAGE TO POT 
 RJSC     EQU    *-1
*         CWM    CBUF+2+MS2W*5,PW 
          ADD    T7          WRITE SRU-S TO POT 
          CWM    CBUF+2+SRUW*5,ON 
          AOD    MF          SET MESSAGE FLAG 
          LDN    ZERL 
          CRD    CM 
          LDC    *           CLEAR EJT INTERLOCK
 RJSD     EQU    *-2         (EJT ENTRY ADDRESS)
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    60 
          STD    CM+1 
          MONITOR  UTEM 
          LDD    CM+1 
          ZJN    RJS10       IF INTERLOCK CLEARED 
          LDN    0           SET NO ERROR FLAG
          RJM    CHG         CONDITIONALLY HANG PP
 RJS10    LDC    VSJS 
          STD    CM 
          LDD    MF          SET MESSAGE FLAG 
          STD    CM+2 
          LDD    PP          SET POT POINTER
          STD    CM+3 
          LDD    TN          SET TERMINAL NUMBER
          STD    CM+4 
          LDD    MA 
          CWD    CM 
 RJS11    LDK    ZERL 
          CRD    CM 
          MONITOR  TSEM 
          LDD    CM+1 
          ZJN    RJS13       IF *IAF* INACCESSIBLE OR ERROR 
          LMC    7777 
          NJN    RJS13       IF REQUEST COMPLETE
          PAUSE  ST 
          LDC    3600        *TSEM* QUEUE FULL - DELAY AND RETRY
          STD    T1 
 RJS12    DELAY 
          SOD    T1 
          ZJN    RJS11       IF TIME TO REISSUE REQUEST 
          UJN    RJS12       CONTINUE TO DELAY
  
 RJS13    LJM    ITAX        EXIT 
  
 RJSF     DATA   C*WAITING - INACCESSIBLE DEVICE.*
          CON    0,0,0,0     TERMINATING EOL BYTE 
 RJSH     DATA   C*WAITING - SERVICE LIMIT.      *
          CON    0,0,0,0     TERMINATING EOL BYTE 
          SPACE  4
**        TEST FOR OVERFLOW.
  
          OVERFLOW  OVL,EPFW  OVERFLOW INTO DISK ERROR PROCESSOR
          END    1TA         TIMESHARING AUXILIARY PROCESSOR. 
