1MA 
          IDENT  1MA,MTA
          PERIPH
          BASE   MIXED
          SST 
*COMMENT  1MA - MONITOR AUXILIARY PROCESSOR.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  1MA - MONITOR AUXILIARY PROCESSOR. 
          SPACE  4,10 
*****     1MA - MONITOR AUXILIARY PROCESSOR.
*         G. R. MANSFIELD.  70/08/04. 
*         A. J. KOMOR.  76/03/15. 
          SPACE  4,10 
***       *1MA* IS CALLED BY THE SYSTEM MONITOR TO PERFORM
*         FUNCTIONS WHICH CAN NOT BE PROCESSED IMMEDIATELY BY THE 
*         MONITOR.
          SPACE  4,10 
***       CALL. 
* 
* 
*T IR     18/  *1MA*,1/,5/  CP,12/  CODE,24/  ARG 
*         CP     CONTROL POINT NUMBER 
*         CODE   FUNCTION CODE
*                0 = REQUEST STORAGE
*                1 = DAYFILE MESSAGE
*                2 = SCP FUNCTION ON UCP
*                3 = FILE SWITCHING FUNCTION. 
*                4 = EXIT FROM SCP STATUS 
*                5 = EJT SYSTEM REQUEST 
*                6 = PROCESS CLOCK UPDATE.
*                7 = LOG SOFTWARE ERROR.
*               10 = LOAD CPP RESIDENT
*               11 = LOAD OVERLAY FOR CPP.
*               12 = IDLE CPP 
*         ARG    ARGUMENT(S)
          SPACE  4,10 
***       DAYFILE MESSAGES. 
* 
* 
*         * FL REQUEST BEYOND MFL (CM).* = CM FL REQUEST EXCEEDS MFL. 
* 
*         * FL REQUEST BEYOND MFL (EXTENDED MEMORY).* = EXTENDED MEMORY 
*           FL REQUEST EXCEEDS MFL. 
* 
*         * MFL LESS THAN EXTENDED MEMORY MINIMUM CM FL.* = A REQUEST 
*         FOR EXTENDED MEMORY HAS BEEN MADE WHILE AN MFL OF LESS THAN 
*         *MCMX* IS IN EFFECT.
* 
*         * INCORRECT COMMON MEMORY MANAGER REQUEST.* = A NON CMM TYPE
*         MEMORY REQUEST WAS MADE WHILE THE JOB STEP WAS IN CMM MODE. 
* 
*         * INCORRECT REQUEST.* = PARAMETER ADDRESS OUTSIDE JOB FL. 
* 
*         * USER ACCESS NOT VALID.* = UCP NOT QUALIFIED TO ACCESS SCP.
          SPACE  4,10 
***       ACCOUNT DAYFILE MESSAGES. 
* 
* 
*         *ARUN, USERNAME, FAMILYNAME, TERMINALNAME.* = RECOVERY OF 
*         AN INTERACTIVE JOB WITH A USER NAME OF USERNAME, A FAMILY 
*         OF FAMILYNAME, AND A TERMINAL NAME OF TERMINALNAME. 
* 
*         *ASTD, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER 
*         NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
*         USER DETACH.
* 
*         *ASTH, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER 
*         NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
*         LINE DISCONNECT.
* 
*         *ASTP, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER 
*         NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
*         PROGRAM REQUEST.
* 
*         *ASTR, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER 
*         NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO THE
*         RECOVERY OF THE INTERACTIVE SUBSYSTEM.
* 
*         *ASTT, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER 
*         USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A 
*         SESSION TIMEOUT.
          SPACE  4,10 
***       OPERATOR MESSAGES.
* 
* 
*         *WAITING FOR STORAGE (CM).* = JOB IS WAITING FOR ADDITIONAL 
*         CENTRAL MEMORY TO BE MADE AVAILABLE.
* 
*         *WAITING FOR STORAGE (EM).* = JOB IS WAITING FOR
*         ADDITIONAL EXTENDED CORE STORAGE TO BE MADE AVAILABLE.
* 
*         * CPP NOT RESPONDING* = A CPP HAS NOT BEGUN TO INPUT *PPR*
*         FROM CHANNEL 15 DURING A DEADSTART OPERATION. 
* 
*         * LAST BYTE NOT TAKEN BY CPP* = THE LAST BYTE OF *PPR* HAS
*         BEEN INPUTTED BY THE CPP BEING DEADSTARTED. 
* 
*         * CHANNEL 15 PARITY ERROR* = DURING CPP DEADSTART, A PARITY 
*         ERROR WAS ENCOUNTERED ON CHANNEL 15.
* 
*         * PPR PRESET TIMEOUT* = AFTER BEING LOADED INTO A DEADSTARTED 
*         CPP, *PPR* HUNG IN ITS PRESET CODE. 
          SPACE  4,10 
***       ERROR LOG MESSAGE.
* 
*         * PPN P1234 SYSTEM ERROR.* = A PP WITH THE NAME OF PPN
*         DETECTED A SYSTEM ERROR AT ADDRESS 1234 WITHIN THE PP.
*         THE ADDRESS IS NOT VALID IF IT IS ZERO. 
          SPACE  4,10 
***       HANG CONDITIONS.
* 
* 
*         1.     *1MA* IS CALLED WITH AN INCORRECT FUNCTION CODE. 
*         2.     EJT REQUEST MADE WITH INCORRECT FUNCTION CODE. 
          SPACE  4,10 
**        DIRECT LOCATION ASSIGNMENTS.
  
  
 FN       EQU    20 - 24     FNT ENTRY
 FS       EQU    25 - 31     FST ENTRY
 SP       EQU    32 - 36     SUBSYSTEM PARAMETER WORD 1 
 SQ       EQU    37 - 43     JOB IDENTIFIER 
 SF       EQU    44          SUBFUNCTION CODE FOR FUNCTION 0
 RC       EQU    44          REPLY CODE FOR FUNCTION 3
 OT       EQU    44          ORIGIN TYPE
 EF       EQU    46          ERROR FLAG 
 FA       EQU    57          FNT ORDINAL
 CN       EQU    60 - 64     SCRATCH
 SC       EQU    67          SCP CONNECTION ACTIVITY, SERVICE CLASS 
 W3       EQU    15 - 21     PARAMETER BLOCK
 W4       EQU    22 - 26
 W5       EQU    W4 
 TN       EQU    W5+1        TERMINAL NUMBER
 W0       EQU    27 - 33
 W1       EQU    34 - 40
 W2       EQU    41 - 45
 EJ       EQU    46 - 47     EJT ENTRY ADDRESS
 TT       EQU    EJ          TERMINAL TABLE ADDRESS 
 TA       EQU    57          INTERACTIVE SUBSYSTEM *RA* 
 JS       EQU    57          JOB STATUS 
 EL       EQU    57          ENTRY LENGTH 
          SPACE  4,10 
**        CONSTANTS.
  
  
 DETI     EQU    1           DETACH ALLOWED IF INVOLUNTARY
 EJWD     MAX    JSNE,SCHE,SCLE  HIGHEST WORD NEEDED FROM EJT 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSACC 
*CALL     COMSDFS 
*CALL     COMSEVT 
          QUAL   DFT
*CALL     COMSDFT 
          QUAL   *
*CALL     COMSDST 
  
          QUAL   IOU
*CALL     COMSIOU 
          QUAL   *
  
*         UNQUALIFIED *COMSIOU* SYMBOLS.
  
 MR       EQU    /IOU/MR
 MX       EQU    /IOU/MX
 MXDM     EQU    /IOU/MXDM
 MXPT     EQU    /IOU/MXPT
  
*CALL     COMSEJT 
*CALL     COMSJCE 
*CALL     COMSMSC 
*CALL     COMSMTR 
*CALL     COMSREM 
*CALL     COMSSSJ 
*CALL     COMSMSP 
*CALL     COMSJRO 
*CALL     COMSPIM 
*CALL     COMSSSE 
*CALL     COMSCPS 
*CALL     COMSSCP 
*CALL     COMSSRU 
*CALL     COMSSSD 
*CALL     COMSZOL 
          SPACE  4,10 
          TITLE  MACRO DEFINITIONS. 
 ABORT    SPACE  4,10 
**        ABORT - ERROR PROCESSING MACRO. 
* 
*         ABORT  ADDR 
* 
*         ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
* 
*         CALLS  ERR. 
  
  
          PURGMAC ABORT 
  
 ABORT    MACRO  A
          MACREF ABORT
          LDC    A
          LJM    ERR         PROCESS ERROR
 ABORT    ENDM
          SPACE  4,10 
**        OVERLAY CONTROL.
* 
*         THIS FEATURE IS INCLUDED FOR FUTURE MODULARITY. 
  
 .N       SET    0
 OVLB     MICRO  1,, 2M      BASE OVERLAY NAME
 OVERLAY  SPACE  4,10 
**        OVERLAY - GENERATE OVERLAY CONSTANTS. 
* 
*         OVERLAY  (TEXT),LADDR.
* 
*         ENTRY  *TEXT* = TEXT OF SUBTITLES.
*                *LADDR* = LOAD ADDRESS FOR OVERLAY, DEFAULT E1MA.
  
  
          PURGMAC  OVERLAY
  
 OVERLAY  MACRO  TEXT,E1MA
          MACREF OVERLAY
          QUAL
 .N       SET    .N+1 
 .M       MICRO  .N,1, ABCDFGHIJKLM 
 .O       MICRO  1,3, "OVLB"".M"
          QUAL   ".O" 
          TTL    1MA/".O" - TEXT
          TITLE 
          IDENT  ".O",E1MA   TEXT 
*COMMENT  1MA - TEXT
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          ORG    E1MA 
          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$ 
 .SCLVSP  RMT 
          INDEX  NM,MN_MK    TX 
 .SCLVSP  RMT 
 .A       ENDIF 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
 TABLE    SPACE  4,10 
**        TABLE - GENERATE OVERLAY TABLE. 
* 
*         GENERATES 2-BYTE TABLE ENTRIES IN THE FORMAT
* 
*T        12/ OVL,12/ ADDR
* 
*         OVL  = LAST CHARACTER OF OVERLAY TO BE LOADED.
*         ADDR = ADDRESS OF FUNCTION PROCESSOR IN THE OVERLAY.
  
  
          PURGMAC  TABLE
  
          MACRO  TABLE,NAME,OFFSET,ADDR 
          LOCAL  MC,TAG1,TAG2,TAG3
 TAG1     IFC    NE,$NAME$$  SET *NAME* TO BEGINNING OF TABLE 
 NAME     BSS    0
 .2       SET    NAME 
 TAG1     ELSE
          ORG    .2+OFFSET*2-2
 TAG2     IFC    NE,$ADDR$$  IF ACTUAL TABLE ENTRY
 MC       MICRO  1,1, ADDR
          IFC    NE,$"MC"$/$,1
          ERR    TABLE ADDRESSES MUST BE QUALIFIED. 
 MC       MICRO  1,2, ADDR
 TAG3     IFC    EQ,$"MC"$//$  IF NO OVERLAY TO LOAD
          CON    0,ADDR 
 TAG3     ELSE               STORE LAST CHARACTER OF OVERLAY NAME 
 MC       MICRO  4,1, ADDR
          CON    1R_"MC",ADDR 
 TAG3     ENDIF 
 TAG2     ENDIF 
 TAG1     ENDIF 
          ENDM
          TITLE  MTA - MAIN PROGRAM.
 MTA      SPACE  4,10 
**        MTA - MAIN PROGRAM. 
  
  
          ORG    PPFW 
 MTA      LDD    IR+2        CHECK FUNCTION 
          SBN    TFCNL
          MJN    MTA1        IF LEGAL REQUEST 
          LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          LJM    DPP         DROP PP
  
 MTA1     RJM    IFP
          LDD    IR+3 
          LPN    37 
          SHN    14 
          LMD    IR+4 
          STM    SRAB+1 
          SHN    -6 
          STM    SRAA+1 
          SHN    -6 
          RAM    SRAB 
          LDM    TFCN,IR+2   SET PROCESSOR
          STD    T1 
          LMC    4000 
          ZJN    MTA2        IF OVERLAY LOAD REQUIRED 
          LJM    0,T1        ENTER PROCESSOR
  
 MTA2     LDN    MESL        READ MESSAGE DATA FROM MESSAGE BUFFER
          STD    T1 
          LDD    MP+3        ASSEMBLE BUFFER ADDRESS
          SHN    14 
          LMD    MP+4 
          ADN    1
          CRD    SP 
          ADN    1           READ JOB IDENTIFIER
          CRD    SQ 
          CRM    BUF,T1      READ REST OF MESSAGE BUFFER
          LDN    ZERL        CLEAR BUFFER INTERLOCK 
          CRD    CN 
          LDD    MP+3        ASSEMBLE BUFFER ADDRESS
          SHN    14 
          LMD    MP+4 
          CWD    CN 
          EXECUTE  2MA
          LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          LJM    DPP         DROP PP
 CHG      SPACE  4,10 
**        CHG - CONDITIONALLY HANG PP.
* 
*         ENTRY  (A) = ERROR FLAG TO SET. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 CHG      SUBR               ENTRY/EXIT 
          STD    CM+2        SET ERROR FLAG 
          LDM    CHG         P-ADDRESS
          STD    CM+1 
          MONITOR  CHGM      CONDITIONALLY HANG PP
          UJN    CHGX        RETURN 
 ERR      SPACE  4,10 
**        ERR - ERROR PROCESSOR.
* 
*         ENTRY  (A) = FWA OF ERROR MESSAGE FOR DAYFILE.
* 
*         EXIT   DAYFILE MESSAGE ISSUED.
*                CONTROL POINT ABORTED. 
* 
*         CALLS  DFM. 
* 
*         MACROS MONITOR. 
  
  
 ERR      RJM    DFM
          MONITOR  ABTM      ABORT JOB
 ERR1     LJM    PPR         EXIT TO PP RESIDENT
          TITLE  SUBROUTINES. 
 CAA      SPACE  4,10 
**        CAA - CALCULATE ABSOLUTE ADDRESS. 
* 
*         ENTRY  (IR+3 - IR+4) = RELATIVE ADDRESS.
* 
*         EXIT   (A) = ABSOLUTE ADDRESS.
  
  
 CAA      SUBR               ENTRY/EXIT 
          LDD    IR+3        CALCULATE ABSOLUTE ADDRESS 
          LPN    37 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
          UJN    CAAX        RETURN 
 RCL      SPACE  4,10 
**        RCL - ENTER PP RECALL.
*         ENTRY SET TO RECALL FOR 250 MILLISECONDS. 
* 
*         ENTRY  (IR - IR+4) = RECALL PARAMETERS. 
*                (SF) = SUBFUNCTION.
*                (A) = RECALL STACK REASON CODE.
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         MACROS MONITOR. 
  
  
 RCL      SHN    6           SAVE RECALL STACK REASON CODE
          STD    CM 
          LDN    ZERL 
          CRD    CM+1 
          LDD    CP          CHECK FOR *ORET* 
          ADK    STSW 
          CRD    CN 
          LDD    CN+1 
          LMN    ORET 
          ZJN    DPP         IF SET, DROP PP
          LDD    SF 
          ZJN    RCL1        IF RFL REQUEST 
          LDD    HN          RESTORE SUBFUNCTION
          RAD    IR+3 
 RCL1     LDD    MA          STORE PP CALL IN MESSAGE BUFFER
          CWD    IR 
          ADN    1           WRITE RECALL STACK REASON CODE 
          CWD    CM 
          LDN    PTMF        REQUEST TIMED RECALL 
          STD    CM+1 
          LDC    250D        SET RECALL TIME
          STD    CM+4 
          MONITOR  RECM      ENTER DEFAULT TIMED RECALL 
          UJN    DPP1        EXIT 
 SRA      SPACE  4,10 
**        SRA - SET REQUEST ADDRESS.
* 
*         EXIT   (A) = ABSOLUTE ADDRESS OF REQUEST WORD.
*                (A) = 0 IF ADDRESS OUTSIDE USER-S FL.
  
  
 SRA1     LDN    0           INDICATE INCORRECT ADDRESS 
  
 SRA      SUBR               ENTRY/EXIT 
 SRAA     LDC    *           (REQUEST ADDRESS/100)
          SBD    FL 
          PJN    SRA1        IF ADDRESS OUTSIDE FL
          LDD    RA 
          SHN    6
 SRAB     ADC    *           (REQUEST ADDRESS)
          UJN    SRAX        RETURN 
 DPP      SPACE  4,10 
**        DPP - DROP PP.
* 
*         USES   CM+1 - CM+2. 
* 
*         MACROS MONITOR. 
  
  
 DPP      MONITOR  DPPM      DROP PPU 
 DPP1     LJM    PPR         ENTER PP RESIDENT
  
 DPP2     LDN    2           DECREMENT DAYFILE MESSAGE LIMIT
          STD    CM+1 
          LDN    0
          STD    CM+2 
          LDD    MA 
          CWM    DPPA,CM+1
          MONITOR  UADM      UPDATE ACCOUNTING
          UJN    DPP1        UPDATE ACCOUNTING AND DROP PPU 
  
*         MESSAGE BUFFER STRUCTURE FOR UADM FORMAT. 
  
 DPPA     CON    CDOS 
          CON    ACLW 
          CON    36D*100+12D
          CON    0,0
  
          CON    AISS        SUBFUNCTION
          CON    IOAW        CP AREA WORD TO UPDATE 
          CON    40D*100+20D MS ACCUMULATOR FIELD 
          VFD    6/,18/IMMS  INCREMENT VALUE
 TFCN     SPACE  4,10 
**        TFCN - FUNCTION CODE TABLE. 
* 
*         ENTRY = 1 WORD. 
*         INDEXED BY FUNCTION CODE. 
* 
*T,       12/  ADDR 
*         ADDR   ADDRESS OF FUNCTION PROCESSOR
  
  
 TFCN     BSS    0
          LOC    0
          CON    RFL         0 = REQUEST STORAGE
          CON    DMS         1 = DAYFILE MESSAGE
          CON    4000        2 = SCP FUNCTION ON UCP
          CON    4000        3 = FILE SWITCHING FUNCTION
          CON    4000        4 = EXIT FROM SCP STATUS 
          CON    PER         5 = PROCESS EJT REQUEST
          CON    PCU         6 = PROCESS CLOCK UPDATE 
          CON    LCE         7 = LOG SOFTWARE ERROR 
          CON    CPP         10 = LOAD CPP RESIDENT 
          CON    CPP         11 = LOAD OVERLAY FOR CPP
          CON    CPP         12 = IDLE CPP
 TFCNL    BSS    0           TABLE LENGTH 
          LOC    *O 
          TITLE      FUNCTION PROCESSORS. 
 PER      SPACE  4,50 
**        FUNCTION 5. 
*         PROCESS EJT REQUEST.
* 
*         ENTRY 
*T IR     18/ *1MA*,6/ AR,12/ CP,6/ 0,18/ ADDR
*         AR = AUTO RECALL FLAG.
*         CP = CONTROL POINT NUMBER.
*         ADDR   ADDRESS OF PARAMETER BLOCK.
* 
*ADDR     24/ JSN,12/ FLAGS,6/ PPI,8/ ERR,9/ FCN,1/C
*         42/ NAME,6/ ERF,12/ EJTO
*         3/RES,3/JAL,6/ OT,6/ RC,18/ MSG BUF,24/ RES 
*         60/ REC WD 1
*         60/ REC WD 2
*         12/ INST,12/ TN,36/ CDC RES 
*         42/ TNAME, 18/ RESERVED 
* 
*         JSN = JOB SEQUENCE NUMBER.
*         FLAGS = ENEJ, BIT 0 = SELECT EJT ENTRIES BY ORIGIN TYPE.
*                 RTEJ - BIT 0 = SELECT EJT ENTRIES BY ORIGIN TYPE. 
*                        BIT 1 = DEFAULT TIMEOUT (CLEAR = 0 TIMEOUT). 
*         PPI = PREPROCESSOR INDEX. 
*         ERR = ERROR RETURN (0 ON CALL). 
*         FCN = FUNCTION CODE.
*         C = COMPLETE BIT (0 ON CALL). 
*         NAME = ENEJ - ENTRY POINT NAME. 
*                DTEJ, RCEJ, RSEJ - USER NAME.
*         ERF = ERROR FLAG TO SET.
*         EJTO = EXECUTING JOB TABLE ORDINAL. 
*         RES = RESERVED FOR CDC. 
*         JAL = JOB ACCESS LEVEL LIMIT (RETURNED ON *DTEJ*; 0 ON CALL). 
*         OT = ORIGIN TYPE. 
*         RC = REASON CODE. 
*         MSG BUF = RELATIVE ADDRESS OF BUFFER TO RETURN *MS1W*.
*         REC WD 1 = RECOVERY WORD 1 (NFL WORD RC1N - SEE *PPCOM*). 
*         REC WD 2 = RECOVERY WORD 2 (NFL WORD RC2N - SEE *PPCOM*). 
*         INST = RESERVED FOR INSTALLATIONS.
*         TN = TERMINAL NUMBER. 
*         CDC RES = RESERVED FOR CDC. 
*         TNAME = TERMINAL NAME (RETURNED BY *DTEJ* AND *TJEJ*; 
*                                SPECIFIED ON CALL FOR *RCEJ*). 
* 
*         NOTE - ANY CHANGES TO THIS PARAMETER BLOCK SHOULD ALSO
*                BE DOCUMENTED IN *CPUMTR* AND *IAFEX*. 
* 
*         CALLS  CHG, DPP, EXR, SFI, FUNCTION PROCESSORS. 
* 
*         MACROS EXECUTE. 
  
  
 PER      BSS    0           ENTRY
          LDD    MP+3        ASSEMBLE BUFFER ADDRESS
          SHN    14 
          LMD    MP+4 
          ADN    1
          CRM    W0,TR
          LDN    ZERL        CLEAR BUFFER INTERLOCK 
          CRD    CN 
          LDD    MP+3        ASSEMBLE BUFFER ADDRESS
          SHN    14 
          LMD    MP+4 
          CWD    CN 
          LDK    EJWD+1 
          STD    EL 
          LDD    W0+4 
          LPN    76 
          STD    CN 
          ZJN    PER2        IF NO FUNCTION CODE
          SBN    MXEJ*2 
          PJN    PER2        IF INCORRECT FUNCTION CODE 
          LDM    TEJT-1,CN   SET LOAD ADDRESS 
          STM    PERA 
          ZJN    PER2        IF NO PROCESSOR ADDRESS
          LDM    TEJT-2,CN   SET OVERLAY TO LOAD
          ZJN    PER1        IF NO OVERLAY TO LOAD
          LMC    2L2M 
          RJM    EXR         LOAD OVERLAY 
 PER1     LJM    *           PROCESS EJT SYSTEM REQUEST 
 PERA     EQU    *-1
  
*         PROCESS INCORRECT FUNCTION CODE.
  
 PER2     LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          LDN    SSER        SYSTEM SOFTWARE ERROR
*         UJN    PERX        RETURN 
  
*         EXIT FOR FUNCTION PROCESSORS. 
*         (A) = ERROR CODE TO PUT INTO RETURN BLOCK.
  
 PERX     BSS    0           ENTRY
          SHN    12          POSITION ERROR CODE
          RAD    W0+4 
          SHN    -14
          RAD    W0+3 
          AOD    W0+4        SET COMPLETE BIT 
          RJM    CAA         CALCULATE ABSOLUTE ADDRESS 
          CWM    W0,TR       WRITE PARAMETER BLOCK
          LDN    CEIN 
          STD    T1 
          LDC    0           CHECK EJTO 
 PERB     EQU    *-1         EJT ORDINAL
          ZJN    PER3        IF NO INTERLOCK TO CLEAR 
          SFA    EJT
          RJM    SFI         CLEAR INTERLOCK
 PER3     LJM    DPP         DROP PP
 TEJT     SPACE  4,20 
**        TEJT - TABLE OF EJT REQUEST PROCESSORS. 
* 
*T        12/ OVL,12/ ADDR
* 
*         OVL  = LAST LETTER OF OVERLAY TO LOAD.
*         ADDR = ADDRESS OF FUNCTION PROCESSOR. 
  
  
 TEJT     TABLE 
          TABLE  DTEJ,/2MC/DTC  DTEJ - DETACH JOB 
          TABLE  ENEJ,//PER2    ENEJ - (PROCESSED BY CPUMTR)
          TABLE  FJEJ,/2MD/FTJ  FJEJ - FREEZE JOB 
          TABLE  RCEJ,/2MC/REC  RCEJ - RECOVER JOB
          TABLE  RSEJ,/2MC/RRJ  RSEJ - RESTART RECOVERED JOB
          TABLE  RTEJ,/2MC/RST  RTEJ - RESET TIMEOUT
          TABLE  SAEJ,/2MD/SUB  SAEJ - SET USER BREAK ERROR FLAG
          TABLE  TJEJ,/2MC/TRM  TJEJ - TERMINATE JOB
          TABLE  MXEJ           MAXIMUM EJT REQUEST +1
          TITLE  FUNCTION PROCESSORS. 
 RFL      SPACE  4,25 
***       FUNCTION 0. 
*         REQUEST STORAGE.
* 
*         ENTRY 
*T ARG    6/SUB,18/FL 
* 
*         SUB = 0  RFL REQUEST (NO STATUS WORD).
*             = 1  IF CM, ABORT IF NOT AVAILABLE. 
*             = 2  IF EXTENDED MEMORY, ABORT IF NOT AVAILABLE.
*             = 3  IF CM, NO ABORT IF NOT AVAILABLE.
*             = 4  IF EXTENDED MEMORY, NO ABORT IF NOT AVAILABLE. 
* 
*         FL = STORAGE REQUESTED IF SUBFUNCTION 0.
*            = ADDRESS OF STATUS WORD IF NOT SUBFUNCTION 0. 
* 
*         IF SUBFUNCTION AND FL ARE BOTH ZERO, A CMM ERROR IS BEING 
*         REQUESTED.
* 
*         USES   SC, CM - CM+4, T3 - T7.
* 
*         CALLS  CKE, CLM, RSI, SRA.
* 
*         MACROS EXECUTE, MONITOR.
  
  
 RFL      LDD    IR+3        SAVE SUBFUNCTION CODE
          SHN    -6 
          STD    SF 
          ZJN    RFL3        IF RFL REQUEST 
          LDC    -100 
          RAD    IR+3 
          RJM    SRA         SET REQUEST WORD ADDRESS 
          ZJN    RFL2        IF INCORRECT ADDRESS 
          CRD    FN 
          LDD    IR+3 
          SHN    21-6 
          MJN    RFL6        IF EXTENDED MEMORY REQUEST 
          LDD    FN+2 
          SCN    77 
          SHN    6
          LMD    FN+1 
          SHN    6
          UJN    RFL4        ROUND MEMORY REQUEST 
  
 RFL1     LDC    =C* INCORRECT COMMON MEMORY MANAGER REQUEST.*
          LJM    ERR         PROCESS ERROR
  
 RFL2     LDC    =C* INCORRECT REQUEST.*
          LJM    ERR         PROCESS ERROR
  
 RFL3     LDD    IR+3 
          SHN    14 
          LMD    IR+4 
          ZJN    RFL1        IF CMM CONFLICT
 RFL4     LPC    377777      MASK OUT NO REDUCE OVERRIDE
          ADN    77          ROUND UP MEMORY REQUEST
          MJN    RFL5        IF TOO MUCH MEMORY REQUESTED 
          SHN    -6 
          STD    T3          SET NEW FL 
          RJM    CKE         CHECK FOR EXTENDED MEMORY ASSIGNED 
          LJM    RFL16       CHECK FL .LE. MFL
  
 RFL5     LJM    RFL17       PROCESS ERROR
  
*         PROCESS EXTENDED MEMORY.
  
 RFL6     LDC    -200+100    CHANGE CMM BIT TO CLEAR
          RAM    RFLB 
          LDK    MEFL        PRESET SHIFT INSTRUCTION 
          CRD    CM 
          LDD    CM+2 
          SHN    -11
          ADC    SHNI+3 
          STM    RFLA 
          LDD    FN 
          ADD    FN+1 
          ZJN    RFL10       IF POSSIBLE EXTENDED MEMORY STATUS 
 RFL7     ADC    -2*7777
          NJN    RFL8        IF NOT EXTENDED MEMORY MFL REQUEST 
          LDD    FN+2 
          SHN    -6 
          LMN    76 
          ZJN    RFL9        IF EXTENDED MEMORY MFL REQUEST 
          LMN    77&76
          NJN    RFL8        IF NOT SET EXTENDED MEMORY FL TO ZERO
          LDN    ZERL 
          CRD    FN-2 
 RFL8     LJM    RFL12       PROCESS EXTENDED MEMORY STORAGE REQUEST
  
 RFL9     LDN    SSTL        CHECK EXTENDED MEMORY CONTROL
          CRD    FS 
          LDN    ZERL 
          CRD    CM          PRESET EXTENDED MEMORY MFL = 0 
          LDD    FS 
          SHN    21-5 
          MJN    RFL13       IF USER EXTENDED MEMORY NOT AVAILABLE
          LDD    CP 
          ADN    ELCW 
          CRD    FS 
          LDD    FS 
          UJN    RFL11       SET MFL(EC) IN REPLY WORD
  
 RFL10    LDD    FN+2 
          SHN    -6 
          NJN    RFL12       IF NOT EXTENDED MEMORY STATUS REQUEST
          LDN    ZERL 
          CRD    CM 
          LDD    CP          RETURN EXTENDED MEMORY FL
          ADN    ECSW 
          CRD    FS 
          LDD    FS+4 
 RFL11    SHN    3
*         SHN    3+UESC      (ADJUST FOR BLOCKING FACTOR) 
 RFLA     EQU    *-1
          STD    CM+1 
          SHN    -14
          STD    CM 
          UJN    RFL13       PROCESS COMPLETION STATUS
  
 RFL12    EXECUTE  2MB       PROCESS EXTENDED MEMORY STORAGE REQUEST
  
*         RETURN COMPLETION STATUS. 
  
 RFL13    LDD    SF 
          ZJN    RFL15       IF NO COMPETION INFORMATION REQUESTED
          LDN    1           SET COMPLETION FLAG
          STD    CM+4 
          RJM    SRA         SET REQUEST ADDRESS
          ZJN    RFL14       IF INCORRECT ADDRESS 
          CWD    CM 
 RFL14    LDD    FN+4 
          LPN    14 
          LMN    14 
          NJN    RFL15       IF NOT CLEAR CMM JOB STEP STATUS 
          LDD    CP          CLEAR CMM JOB STEP STATUS
          ADC    DBAW 
          CRD    CM 
          STD    T1 
          LDD    CM 
          LPC    7677        (CM) 
*         LPC    7577        (EXTENDED MEMORY)
 RFLB     EQU    *-1
          STD    CM 
          LDD    T1 
          CWD    CM 
 RFL15    LJM    DPP         DROP PPU 
  
*         CHECK IF FL .LE. MFL. 
  
 RFL16    LDD    CP 
          ADN    FLCW 
          CRD    T7 
          LDN    ZERL 
          CRD    CM 
          LDD    FL 
          STD    CM+1 
          LDD    T7 
          SBD    T3 
          PJN    RFL18       IF FL .LE. MFL 
          LDD    IR+3 
          SHN    21-7 
          PJN    RFL17       IF NOT *NO ABORT*
          LJM    RFL13       RETURN STATUS ON NO ABORT REQUESTS 
  
 RFL17    LDC    =C* FL REQUEST BEYOND MFL (CM).* 
          LJM    ERR         PROCESS ERROR ABORT
  
*         REQUEST STORAGE.
  
 RFL18    LDD    FL          SAVE CURRENT FL
          STD    T4 
          ZJN    RFL19       IF NO FL CURRENTLY ASSIGNED
          LDD    T3          REQUESTED FL 
          RJM    RSI         REQUEST STORAGE INCREASE 
          NJN    RFL20       IF FL NOT ASSIGNED 
          RJM    CLM         CLEAR ADDITIONAL MEMORY
          LJM    RFL13       COMPLETE PROCESSING
  
 RFL19    LJM    RFL2        * INCORRECT REQUEST.*
  
*         STORAGE NOT AVAILABLE.
  
 RFL20    PJN    RFL21       IF WAITING FOR REPLY FROM *1SJ*
          LDD    CP          CHECK IF JOB ROLLABLE
          ADN    JCIW 
          CRD    CM 
          ADK    TFSW-JCIW
          CRD    FN 
          LDD    CM+3        CHECK FOR *DIS* JOB
          LPC    1000 
          ADD    CM+2        CHECK FOR NON-ROLLABLE JOB 
          NJN    RFL21       IF JOB NOT ROLLABLE
          SFA    EJT,FN      READ *SCLE* EJT WORD 
          ADK    SCLE 
          CRD    FN 
          LDD    FN 
          LPN    20 
          NJN    RFL21       IF FORCED ROLLIN, JOB NOT ROLLABLE 
          STD    CM+1        ROLLOUT CONTROL POINT
          MONITOR  ROCM 
          UJN    RFL22       ENTER PP RECALL
  
*         STORAGE AVAILABLE BUT NOT ASSIGNED. 
  
 RFL21    LDD    CP          SET WAITING FOR STORAGE INCREASE 
          ADN    MS2W 
          CWM    =C*WAITING FOR STORAGE (CM).  *,TR 
 RFL22    LDN    CFIR        SET CM FL INCREASE PENDING REASON CODE 
          LJM    RCL         ENTER PP RECALL STACK
 DMS      SPACE  4,15 
***       FUNCTION 1. 
*         ENTER DAYFILE MESSAGE.
* 
*         ENTRY 
*T ARG    6/  0,18/  MSG
*         MSG    ADDRESS OF MESSAGE.
* 
*         USES   CM - CM+4, T2. 
* 
*         CALLS  DFM, SRA.
* 
*         NOTE   THIS FUNCTION SHOULD BE USED ONLY BY SUBSYSTEMS THAT 
*                CANNOT GIVE UP THE CPU DURING NORMAL *MSG* PROCESSING. 
  
  
 DMS      LDN    5           SET WORD COUNT 
          STD    T2 
          RJM    SRA         SET REQUEST ADDRESS
          ZJN    DMS1        IF INCORRECT ADDRESS 
          CRM    BUF,T2 
          SBN    1
          SHN    -6 
          SBD    RA 
          SBD    FL 
          PJN    DMS1        IF INCORRECT ADDRESS 
          LDN    0           TERMINATE MESSAGE
          STM    BUF+5*5
          LDC    BUF
          RJM    DFM         ISSUE DAYFILE MESSAGE
          LJM    DPP         DROP PPU 
  
 DMS1     LDC    =C* INCORRECT REQUEST.*
          LJM    ERR         PROCESS ERROR
 CPP      SPACE  4,10 
**        FUNCTIONS 10, 11, 12. 
*         CPP PROCESSOR.
  
  
 CPP      LDD    MA          SAVE OVERLAY LOAD PARAMETERS 
          CRD    CN 
          EXECUTE 2MH        PROCESS CPP REQUEST
          LJM    DPP         DROP PP
 PCU      SPACE  4,10 
**        FUNCTION 6. 
*         PROCESS CLOCK UPDATE. 
  
  
 PCU      EXECUTE  2MF       PROCESS CLOCK UPDATE 
          LJM    DPP         DROP PP
 LCE      SPACE  4,10 
**        FUNCTION 7. 
*         LOG SOFTWARE ERROR. 
  
  
 LCE      EXECUTE  2MG       LOG SOFTWARE ERROR 
          LJM    DPP         DROP PP
 CKE      SPACE  4,10 
**        CKE - CHECK FOR EXTENDED MEMORY ASSIGNED. 
* 
*         ENTRY  (T3) = NEW FL/100B REQUESTED.
* 
*         EXIT   (T3) ADJUSTED IF EXTENDED MEMORY IS ASSIGNED AND 
*                (T3) IS .LT. MCMX. 
* 
*         USES   T3, CM - CM+4. 
  
  
 CKE      SUBR               ENTRY/EXIT 
          LDD    CP          CHECK FOR EXTENDED MEMORY ASSIGNED 
          ADN    ECSW 
          CRD    CM 
          LDD    CM+4 
          ZJN    CKEX        IF NO EXTENDED MEMORY ASSIGNED 
          LDD    T3 
          ADC    -MCMX/100
          PJN    CKEX        IF FL .GE. MCMX
          LDC    MCMX/100    SET TO MINIMUM FL
          STD    T3 
          UJN    CKEX        RETURN 
 MRER     SPACE  4,10 
**        MRER - MAINTENANCE REGISTER ERROR HANDLER.
* 
*         ENTRY  FATAL MAINTENANCE REGISTER ERROR.
* 
*         EXIT   TO *ERR* VIA *ABORT* MACRO.
* 
*         MACROS ABORT. 
  
  
 MRER     ABORT  ERMR        * 1MA - FATAL MAINTENANCE REGISTER ERROR.* 
  
  
 CHFL     CON    0           CHANNEL RESERVED FLAG
 ERMR     DATA   C* 1MA - FATAL MAINTENANCE REGISTER ERROR.*
 CLM      SPACE  4,15 
**        CLM - CLEAR MEMORY (CM).
* 
*         ENTRY  (T4) = OLD FL. 
* 
*         EXIT   ADDITIONAL CM CLEARED. 
*                CONSOLE MESSAGE CLEARED. 
*                (CM+1) = CURRENT FL. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 CLM      SUBR               ENTRY/EXIT 
          LDK    SSTL 
          CRD    CM 
          LDD    CM 
          SHN    21-12
          PJN    CLM0        IF MEMORY CLEARING ENABLED 
          LDD    CP          READ SEPW WORD FROM CP AREA
          ADC    SEPW 
          CRD    CM 
          LDD    CM          CHECK ENTRY POINTS 
          LPN    1
          NJN    CLM1        IF SSM= ENTRY POINT PRESENT
 CLM0     LDD    FL          CHECK FL CHANGE
          SBD    T4 
          MJN    CLM1        IF DECREASE
          ZJN    CLM1        IF NO CHANGE 
          SHN    6
          STD    CM+2 
          SHN    -14
          STD    CM+1 
          LDD    HN          SET RELATIVE ADDRESS OPTION
          RAD    CM+1 
          LDD    T4          SET ADDRESS FOR CLEAR
          SHN    6
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          MONITOR  CSTM      CLEAR ADDED FL 
 CLM1     LDN    0
          STD    CM          CLEAR CONSOLE MESSAGE
          STD    CM+1 
          LDD    CP 
          ADN    MS2W 
          CWD    CM 
          LDN    ZERL        RETURN STATUS
          CRD    CM 
          LDD    FL 
          STD    CM+1 
          LJM    CLMX        RETURN 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 EJT$     EQU    1           SELECT EJT PROCESSOR 
 IFP$     EQU    1
 QFT$     EQU    1           SELECT QFT PROCESSOR 
*CALL     COMPGFP 
*CALL     COMPRSI 
 SFI$     EQU    1           SELECT IMMEDIATE RETURN FROM *SFI* 
*CALL     COMPSFI 
          SPACE  4,10 
**        BUFFER. 
  
  
          USE    BUFFER 
 BUF      BSS    0
          SPACE  4,10 
**        OVERLAY ORIGIN. 
  
  
 E1MA     EQU    BUF+MESL*5+5 
          ERRNG  BFMS-* 
 IFP      HERE
          OVERFLOW
          TTL    1MA/2MA - SYSTEM CP FACILITY PROCESSOR.
          TITLE 
          OVERLAY (SYSTEM CP FACILITY FUNCTION.),E1MA 
          SPACE  4,10 
*****     2MA - FUNCTION PROCESSOR FOR SYSTEM CP FACILITY.
* 
*         *2MA* PERFORMS VARIOUS TIME CONSUMING FUNCTIONS USED
*         IN THE SYSTEM CP (SCP) FACILITY.
 SCP      SPACE  4,30 
***       SYSTEM CONTROL POINT FUNCTIONS.  (SEE *CPUMTR*).
* 
*         ENTRY 
*T ARG    6/INDX ,18/ ADDR
*         INDX   SUBSYSTEM INDEX OF CALLER, OR *TERM* TABLE 
*                MESSAGE INDEX/2 IF *CPUMTR* REQUESTING ABORT.
*         ADDR   ADDRESS OF FUNCTION PARAMETERS.
*                ADDR = 0, IF *CPUMTR* REQUESTING ABORT.
* 
*         FOR *1MA* FUNCTION 2 (SCP FUNCTION ON UCP), ADDITIONAL
*         INFORMATION IS TRANSFERRED FROM THE MESSAGE BUFFER. 
*         (SP - SP+4) = 6/ RC,12/ FP, 18/ UCPA, 18/SCPA,6/ FC 
*         (SQ - SQ+4) = 24/ JSEQ,24/,12/ JEJT  (SF.SWPO)
*                     = MESSAGE (SF.REGR) 
*         (BUF - BUF+MESL-1) = MESSAGE (SF.REGR)
*         FC     FUNCTION CODES VALID FOR 1MA ARE - 
*                02          SEND DAYFILE MESSAGE AND/OR ABORT USER.
*                24          SWAP OUT USER JOB. 
*         FP     A PARAMETER MEANINGFUL TO A PARTICULAR FUNCTION. 
*         JEJT   JOB EJT ORDINAL. 
*         JSEQ   JOB SEQUENCE NUMBER. 
*         RC     SYSTEM REPLY CODE - (SEE *COMSSCP*). 
*         SCPA   A DATA ADDRESS WITHIN THE SUBSYSTEM MEMORY.
*         UCPA   A DATA ADDRESS WITHIN A USER JOB MEMORY. 
* 
*         CALLS  CHG, DFM, SDM, SWO, SWP, SWT, SXT. 
* 
*         MACROS MONITOR. 
  
  
 SCP      SUBR               ENTRY
          LDD    IR+3        CHECK ABORT REQUESTED
          LPN    77 
          ADD    IR+4 
          ZJN    SCP4        IF ABORT REQUESTED FROM CPUMTR 
          LDD    IR+2 
          SBN    3
          MJN    SCP2        IF SCP FUNCTION ON UCP 
          ZJN    SCP1        IF FILE SWITCHING FUNCTION 
          RJM    SXT         PROCESS SF.EXIT
          UJN    SCP3        DROP PP
  
 SCP1     LJM    SWT         PROCESS FILE SWITCHING FUNCTION
  
 SCP2     LDD    SP+4        GET SCP FUNCTION ON UCP
          LPN    37 
          LMN    REGR 
          NJN    SCP6        IF NOT ISSUE DAYFILE MESSAGE 
          RJM    SDM         SEND DAYFILE MESSAGE AND/OR ABORT USER 
 SCP3     LJM    DPP         EXIT 
  
 SCP4     LDD    IR+3        GET MESSAGE INDEX/2
          SHN    -6+1 
          SCN    1
          STD    T4 
          SBN    TERML
          PJN    SCP7        IF NOT LEGAL MESSAGE INDEX 
          LDM    TERM,T4     GET DAYFILE MESSAGE ADDRESS
          ZJN    SCP5        IF NO DAYFILE MESSAGE
          RJM    DFM         ISSUE MESSAGE TO DAYFILE 
 SCP5     LDM    TERM+1,T4   GET ERROR FLAG 
          STD    CM+1 
          MONITOR  CEFM      SET ERROR FLAG 
          UJN    SCP3        EXIT 
  
 SCP6     LMN    SWPO&REGR
          NJN    SCP9        IF NOT VALID SUBFUNCTION CODE
          RJM    SWO         SWAP OUT USER JOB
          UJN    SCP3        EXIT 
  
 SCP7     LDK    FSET        SET FORCED ERROR 
 SCP8     RJM    CHG         CONDITIONALLY HANG PP
          UJN    SCP3        DROP PP
  
 SCP9     LDN    0
          UJN    SCP8        CONDITIONALLY HANG 
 TERM     SPACE  4,10 
**        TERM - TABLE OF ERROR FLAGS AND MESSAGES. 
* 
*T        12/ ERMA, 12/ ERFL
*         ERMA   ERROR MESSAGE ADDRESS
*         ERFL   ERROR FLAG 
  
  
 TERM     BSS    0
          LOC    0
          CON    0,ITET      SCP *SSCR* PARAMETERS INCORRECT
          CON    =C* USER ACCESS NOT VALID.*,SYET 
 TERML    EQU    *
          LOC    *O 
          TITLE  SCP FUNCTION PROCESSORS. 
 SDM      SPACE  4,10 
**        SDM - SEND DAYFILE MESSAGE AND/OR ABORT JOB. (SF.REGR)
* 
*         ENTRY  (BUF - BUF+MESL-1) = MESSAGE BUFFER DATA.
* 
*         USES   CM - CM+4, T0 - T6, BUF - BUF+5*5. 
* 
*         CALLS  DFM, SCB.
* 
*         MACROS MONITOR. 
  
  
 SDM      SUBR               ENTRY/EXIT 
  
*         SEND MESSAGE TO SPECIFIED DAYFILE.
  
          LDD    SP+4        CHECK MESSAGE DESIRED
          SCN    77 
          ADD    SP+3 
          ZJN    SDM3        IF NO MESSAGE SPECIFIED
          LDD    SP          CHECK SPECIFIED DAYFILE OPTION 
          LPN    77 
          SHN    14 
          ADD    SP+1 
          SHN    -6 
          SBN    MXDF 
          MJN    SDM2        IF VALID DAYFILE OPTION
          LDN    RC66        * INCORRECT DAYFILE PROCESSING FLAG.*
 SDM1     RJM    SCB         SET COMPLETION BIT, REPLY CODE 
          UJN    SDMX        RETURN 
  
 SDM2     RAM    SDMA        SET DAYFILE OPTION 
          LDN    MESL        EXTRACT MESSAGE TO BE ISSUED 
          STD    T2 
          LDN    0           TERMINATE MESSAGE
          STM    BUF+MESL*5 
          LDC    BUF+MXDF*10000 
 SDMA     EQU    *-2         (DAYFILE OPTION) 
          RJM    DFM
  
*         SET ERROR FLAG ON USER JOB IF DESIRED.
  
 SDM3     LDD    SP+1        CHECK USER ABORT DESIRED 
          LPN    77 
          SHN    14 
          ADD    SP+2 
          ZJN    SDM1        IF NO ABORT SPECIFIED
          SBN    1
          STD    T1 
          SBN    TEFGL
          MJN    SDM5        IF VALID ERROR FLAG SPECIFIED
          LDN    RC65        * ATTEMPT TO SET INCORRECT ERROR FLAG.*
 SDM4     UJN    SDM1        SET COMPLETION BIT, REPLY CODE 
  
 SDM5     LDM    TEFG,T1     SET ERROR FLAG 
          STD    CM+1 
          MONITOR  CEFM 
          LDN    0
          UJN    SDM4        SET COMPLETION BIT 
          SPACE  4,10 
**        TEFG - TABLE OF ERROR FLAGS.
* 
*         INDEXED BY VALUE SPECIFIED IN *FP* FIELD OF SF.REGR REQUEST.
  
  
 TEFG     BSS    0
          LOC    0
  
          CON    PPET        GENERAL SUBSYSTEM ERROR
          CON    SYET        HOSTILE USER ERROR 
  
 TEFGL    BSS    0
          LOC    *O 
 SWO      SPACE  4,10 
**        SWO - SWAP OUT USER CONTROL POINT. (SF.SWPO)
* 
*         USES   CM - CM+4. 
* 
*         CALL   CHG, SCB.
* 
*         MACROS MONITOR. 
  
  
 SWO      SUBR               ENTRY/EXIT 
          LDD    CP          CHECK IF JOB ROLLABLE
          ADN    JCIW 
          CRD    CM 
          LDD    CM+3        CHECK FOR *DIS* JOB
          LPC    1000 
          ADD    CM+2        CHECK FOR NON-ROLLABLE JOB 
          NJN    SWO2        IF JOB NOT ROLLABLE
          STD    CM+1        ROLLOUT CONTROL POINT
          MONITOR  ROCM 
 SWO1     LDN    0           INDICATE NO ERRORS 
          RJM    SCB         SET COMPLETION BIT, NO ERRORS
          UJN    SWOX        RETURN 
  
 SWO2     LDD    MA          CLEAR SCP ROLLOUT REQUESTED FLAG 
          CWM    SWOA,ON
          LDN    1
          STD    CM+1 
          STD    CM+2 
          MONITOR  UADM 
          LDD    CM+1 
          ZJN    SWO1        IF BIT SUCCESSFULLY CLEARED
          LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          UJN    SWO1        SET COMPLETION BIT AND RETURN
  
  
 SWOA     VFD    12/CDOS,12/STSW,6/29D,6/1
 SXT      SPACE  4,10 
**        SXT - PROCESS EXIT FROM SCP STATUS. (SF.EXIT) 
* 
*         USES   EF, SC.
* 
*         CALLS  SCB, *0ST*.
* 
*         MACROS EXECUTE. 
  
  
 SXT      SUBR               ENTRY/EXIT 
          LDN    0           INDICATE NO ERROR FLAG 
          STD    EF 
          LDN    6           INDICATE CONNECTED UCP-S FOR SF.EXIT 
          STD    SC 
          EXECUTE  0ST,OSTL 
          RJM    CAA         GET *SF.EXIT* PARAMETER WORD 
          CRD    CM 
          AOD    CM+4        SET COMPLETE BIT 
          LDD    CM          CLEAR REPLY CODE (NO ERROR)
          LPN    77 
          STD    CM 
          RJM    CAA
          CWD    CM 
          UJN    SXTX        RETURN 
          TITLE  SUBROUTINES. 
 DLY      SPACE  4,10 
**        DLY - DELAY.
* 
*         EXIT   (A) = 0 IF OPERATOR INTERVENTION.
* 
*         MACROS DELAY, PAUSE.
  
  
 DLY      SUBR               ENTRY/EXIT 
          PAUSE 
          DELAY 
          LDD    CM+1        CHECK FOR OPERATOR OVERRIDE
          LMN    ORET 
          UJN    DLYX        RETURN 
 SCB      SPACE  4,15 
**        SCB - SET COMPLETION BIT. 
* 
*         SCB SETS SETS THE COMPLETION BIT FOR A PARTICULAR 
*         SF.XXXX FUNCTION ALONG WITH THE REPLY CODE. 
* 
*         ENTRY  (A) = REPLY CODE.
* 
*         EXIT   (T7) = REPLY CODE. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  DLY. 
* 
*         MACROS MONITOR. 
  
  
 SCB      SUBR               ENTRY/EXIT 
          STD    T7          SAVE ERROR STATUS
          LDD    IR+4        ADDRESS OF FUNCTION PARAMETER WORD 
          STM    SCBA 
          LDD    IR+3 
          LPN    77 
          SHN    14 
          ADD    T7          SET ERROR STATUS IN CALL 
          SHN    6
          STM    SCBB 
          LDD    IR+3        EXTRACT SUBSYSTEM INDEX
          SHN    -6 
          ADC    LSSI 
          STM    SCBC        SUBSYSTEM QUEUE PRIORITY 
 SCB1     LDC    *
 SCBA     EQU    *-1         (ADDRESS OF FUNCTION REQUEST)
          STD    CM+4 
          LDC    *
 SCBB     EQU    *-1
          STD    CM+3        ADDRESS OF PARAMETER AND ERROR STATUS
          LDC    *
 SCBC     EQU    *-1
          STD    CM+2        SUBSYSTEM QUEUE PRIORITY 
          LDN    2           FUNCTION CODE
          STD    CM+1 
          MONITOR  TDAM      SET REPLY CODE, COMPLETION BIT 
          LDD    CM+1 
          ZJN    SCB2        RETURN IF ACCEPTED 
          SBN    4
          ZJN    SCB2        RETURN IF SUBSYSTEM INACTIVE 
          PJN    SCB3        IF INCORRECT COMPLETION ADDRESS
          RJM    DLY         DELAY
          NJN    SCB1        IF NOT OPERATOR OVERRIDE 
 SCB2     LJM    SCBX        RETURN 
  
 SCB3     LDD    MA          SAVE SCP ORDINAL AND JOB SEQUENCE NUMBER 
          CWD    CM 
 SCB4     LDD    MA          GET SCP ORDINAL AND JOB SEQUENCE NUMBER
          CRD    CM 
          LDC    4000+ITET   SCP INCORRECT TRANSFER ADDRESS 
          STD    CM+1 
          MONITOR  CEFM      SET ERROR ON SCP 
          LDD    CM+1 
          LMN    1           CHECK FOR SCP MOVING STATUS
          NJN    SCB2        IF OPERATION COMPLETE OR SCP NOT FOUND 
          RJM    DLY         DELAY
          ZJN    SCB2        IF OPERATOR INTERVENTION 
          LDD    T1          RESET SCP CONTROL POINT NUMBER 
          STD    CM+2 
          UJN    SCB4        REISSUE REQUEST
 SWT      TITLE  FILE SWITCHING FUNCTION PROCESSOR. 
 SWT      SPACE  4,40 
***       FUNCTION 3. 
*         FILE SWITCHING PROCESSOR. 
* 
*         THIS PROCESSOR IS CALLED BY *CPUMTR* TO PROCESS AN *SST*
*         SYSTEM REQUEST AFTER ALL PARAMETERS HAVE BEEN VALIDATED.
* 
*         ENTRY 
* 
*T,ARG    6/0,18/  ADDR 
*         ADDR   RELATIVE ADDRESS OF FUNCTION PARAMETERS. 
* 
*         (SP - SP+4) = 12/ FNTR,12/ FNTS,18/ RSV,6/ FCN,11/ ST,1/ C
*         (SQ - SQ+4) = 24/ JSN,24/0,12/ JEJT 
*         C      COMPLETION BIT.
*         FCN    SUBFUNCTION CODE - 
*                CUSU = 1    CALLER UCP - SCP TO UCP SWITCH.
*                CUUS = 2    CALLER UCP - UCP TO SCP SWITCH.
*                CSUS = 3    CALLER SCP - UCP TO SCP SWITCH.
*                CSSU = 4    CALLER SCP - SCP TO UCP SWITCH.
*         FNTR   FNT ORDINAL IN RECEIVER-S FNT (RETURNED PARAMETER).
*                (SET TO PARTNER-S CPA BY *CPUMTR* FOR *1MA*.)
*         FNTS   FNT ORDINAL IN SOURCE-S FNT. 
*         JEJT   PARTNER JOB EJT ORDINAL  (FCN = 3 OR 4). 
*                (SET BY *CPUMTR* FOR *1MA* FOR FCN = 1 OR 2.)
*         JSN    JOB SEQUENCE NUMBER FOR PARTNER  (FCN = 3 OR 4). 
*         RSV    RESERVED FOR CDC.
*         ST     RETURN STATUS CODE - 
*                00     SWITCH COMPLETED NORMALLY.
*                01     FILE BUSY.
*                02     PARTNER ROLLED OUT. 
*                03     INCORRECT FILE TYPE.
*                04     PARTNER-S IDENTIFICATION NOT KNOWN. 
*                05     NO SPACE IN RECEIVER-S NFL. 
*                06     FILE LIMIT. 
*                07     FILE *FNTS* NOT FOUND.
  
  
 SWT      BSS    0           ENTRY
          LDN    0           INITIALIZE 
          STD    FA 
          STD    RC 
          LDN    SFIN        SET JOB INTERLOCK
          RJM    PJI
          ZJN    SWT1        IF INTERLOCK SET 
          LDN    RC02        * JOB ROLLED OUT.* 
          STD    RC 
          NFA    SP+1,R      SET UP FOR EXIT
          CRD    FN 
          ADN    FSTL 
          CRM    FS,ON
          CRM    FBUF,ON
          LDD    SP+3 
          LPN    1
          ZJP    SFP3.1      IF SF = 2 OR 4 
          LJM    SRC         SET REPLY CODE 
  
 SWT1     LDD    SP+3        GET SUB FUNCTION 
          ZJN    SWT2        IF ZERO
          SBN    5
          PJN    SWT2        IF OUT OF RANGE
          LDD    SP+3 
          LPN    1
          ZJN    SFP         IF SF = 2 OR 4 (SEND FILE TO PARTNER)
          LJM    GFP         SF = 1 OR 3 (GET FILE FROM PARTNER)
  
 SWT2     LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          LDK    RC10        * INCORRECT SUBFUNCTION.*
          STD    RC 
          LJM    SFP3        CLEAR JOB INTERLOCK
 SFP      SPACE  4,15 
**        SFP - SEND FILE TO PARTNER. 
* 
*         ENTRY  (SP+1) = SOURCE FNT ORDINAL. 
* 
*         EXIT   (FA) = NEW ADDRESS OF FNT. 
*                (RC) = REPLY CODE. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  CCP, CLF, PJI, RTC, UIE. 
* 
*         MACROS NFA. 
  
  
 SFP      BSS    0           ENTRY
          NFA    SP+1,R      GET FNT/FST
          CRD    FN 
          CRD    CM 
          ADN    FSTL 
          CRM    FS,ON
          CRM    FBUF,ON
  
*         CHANGE FILE TYPE. 
  
          LDD    CM+4 
          LPN    77 
          ADC    LIFT*100    SET *LIBRARY* FILE TYPE
          STD    CM+4 
          NFA    SP+1,R 
          CWD    CM 
  
*         CHANGE TO RECEIVER-S CP.
  
          LDD    SP          SET PARTNER CP 
          STM    CCPA 
          LDN    0           CHANGE TO PARTNER
          RJM    CCP
          ZJN    SFP1        IF SUCCESSFUL
          STD    T1          SAVE REPLY 
          LDN    RC02        * JOB ROLLED OUT.* 
          STD    RC 
          LDD    T1          GET REPLY
          SBN    1
          NJN    SFP2        IF WRONG JOB 
          UJN    SFP3        CLEAR JOB INTERLOCK
  
*         CREATE LOCAL FNT IN RECEIVER-S NFL. 
  
 SFP1     RJM    CLF         CREATE LOCAL FNT 
          NJN    SFP2        IF FILE NOT CREATED
  
*         WRITE FNT/FST INTO RECEIVER-S NFL.
  
          LDM    CCPB        GET EJT ORDINAL OF CALLER
          RJM    UIE         UPDATE QFT ENTRY 
          LDD    FS+4        SET FST NOT BUSY 
          SCN    1
          ADN    1
          STD    FS+4 
          NFA    FA,R        COMPUTE NFL ADDRESS
          CWD    FN          WRITE FNT
          ADN    FSTL 
          CWM    FS,ON       WRITE FST
          CWM    FBUF,ON     WRITE UTILITY WORD OF FST
  
*         RETURN TO CALLING JOB.
  
 SFP2     RJM    RTC         RETURN TO CALLER 
  
*         CLEAR JOB INTERLOCK.
  
 SFP3     LDN    CFIN        CLEAR JOB INTERLOCK
          RJM    PJI
  
*         TERMINATION PROCESSING - CHECK FOR ERROR. 
  
          LDD    RC 
          ZJN    SFP4        IF NO ERROR
  
*         CLEAR *LIBRARY* FILE TYPE IN FNT (FILE NOT SWITCHED). 
  
 SFP3.1   LDD    FS+4        SET FILE NOT BUSY
          SCN    1
          ADN    1
          STD    FS+4 
          NFA    SP+1,R      UPDATE FNT 
          CWD    FN 
          ADN    FSTL        UPDATE FST 
          CWD    FS 
          UJN    SRC         SET REPLY CODE 
  
 SFP4     LDD    SP+1        FNT ORDINAL OF SOURCE FNT
*         LJM    DLF         DELETE LOCAL FNT 
 DLF      SPACE  4,10 
**        DLF - DELETE LOCAL FNT. 
* 
*         ENTRY  (A) = FNT ORDINAL. 
* 
*         USES   CM - CM+4. 
* 
*         EXIT   TO *SRC*.
* 
*         MACROS MONITOR. 
  
  
 DLF      BSS    0           ENTRY
          STD    CM+4        SET FNT ORDINAL
          LDN    DLFS        DELETE FNT 
          STD    CM+1 
          MONITOR  PLFM 
*         LJM    SRC         SET REPLY CODE 
 SRC      SPACE  4,10 
**        SRC - SET REPLY CODE. 
* 
*         ENTRY  (IR+3 - IR+4) = RELATIVE ADDRESS OF PARAMETER BLOCK. 
*                (FA) = FNT ORDINAL.
*                (RC) = REPLY CODE. 
* 
*         EXIT   TO *DPP*.
*                TO *ERR* IF INCORRECT REQUEST ADDRESS. 
* 
*         CALLS  SRA. 
  
  
 SRC      LDD    FA          GET FNT ORDINAL
          STD    SP 
          LDD    RC          GET REPLY CODE 
          SHN    1
          ADN    1           SET COMPLETION BIT 
          STD    SP+4 
          RJM    SRA         SET REQUEST ADDRESS
          ZJN    SRC1        IF INCORRECT ADDRESS 
          CWD    SP          UPDATE *ADDR*
          LJM    DPP         DROP PP
  
 SRC1     LDC    =C* INCORRECT REQUEST.*
          LJM    ERR         PROCESS ERROR
 GFP      SPACE  4,15 
**        GFP - GET FILE FROM PARTNER.
* 
*         ENTRY  (SP+1) = FNT ORDINAL OF FILE TO BE SWITCHED. 
* 
*         EXIT   (FA) = NEW ADDRESS OF FNT. 
*                (RC) = REPLY CODE. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  CCP, CLF, PJI, RTC, UIE. 
* 
*         MACROS MONITOR, NFA.
  
  
 GFP      BSS    0           ENTRY
  
*         CREATE LOCAL FNT IN CALLER-S NFL. 
  
          RJM    CLF         CREATE LOCAL FNT 
          NJN    GFP1        IF FILE NOT CREATED
  
*         CHANGE TO PARTNER CP. 
  
          LDD    SP          SET CP ADDRESS 
          STM    CCPA 
          LDN    0           CHANGE TO PARTNER
          RJM    CCP
          ZJN    GFP2        IF SUCCESSFUL
          STD    T1          SAVE REPLY CODE
          LDN    RC02        * JOB ROLLED OUT.* 
          STD    RC          SET ERROR CODE 
          LDD    T1          REPLY CODE 
          SBN    1
          NJN    GFP3        IF WRONG JOB 
 GFP1     LJM    GFP6        CLEAR JOB INTERLOCK
  
*         SET FILE BUSY.
  
 GFP2     NFA    SP+1,R      COMPUTE NFL ADDRESS
          CRD    FN          READ FNT 
          LDN    ZERL 
          CRD    CM 
          LDD    SP+1        FNT ORDINAL
          STD    CM+4 
          LDD    MA          FILE NAME
          CWD    FN 
          MONITOR  SFBM 
          LDD    CM+1 
          ZJN    GFP4        IF FILE NOT BUSY 
          LDN    RC01        * FILE BUSY.*
          STD    RC          SET ERROR CODE 
 GFP3     UJN    GFP5        RETURN TO CALLER 
  
*         GET FNT/FST OF FILE TO BE SWITCHED. 
  
 GFP4     NFA    SP+1,R      COMPUTE NFL ADDRESS
          CRD    FN          READ FNT 
          ADN    FSTL 
          CRM    FS,ON
          CRM    FBUF,ON
  
*         DELETE OLD FNT. 
  
          LDD    SP+1        FNT ORDINAL
          STD    CM+4 
          LDN    DLFS        DELETE FNT 
          STD    CM+1 
          MONITOR  PLFM 
  
*         CHANGE BACK TO CALLING CP.
  
 GFP5     RJM    RTC         RETURN TO CALLER 
  
*         CLEAR JOB INTERLOCK.
  
 GFP6     LDN    CFIN        CLEAR JOB INTERLOCK
          RJM    PJI
  
*         TERMINATION PROCESSING - CHECK FOR ERROR CODE.
  
          LDD    RC 
          ZJN    GFP7        IF NO ERROR
          LDD    FA 
          ZJN    GFP8        IF NO NEW FNT CREATED
          STD    T1          SAVE ORDINAL 
          LDN    0           CLEAR FNT ORDINAL
          STD    FA 
          LDD    T1 
          LJM    DLF         DELETE LOCAL FNT 
  
*         WRITE FNT INTO RECEIVER-S NFL.
  
 GFP7     LDD    SQ+4        GET EJT ORDINAL OF PARTNER 
          RJM    UIE         UPDATE QFT ENTRY 
          LDD    FS+4        SET FST NOT BUSY 
          SCN    1
          ADN    1
          STD    FS+4 
          NFA    FA,R        COMPUTE NFL ADDRESS
          CWD    FN          WRITE FNT
          ADN    FSTL 
          CWM    FS,ON       WRITE FST
          CWM    FBUF,ON     WRITE UTILITY WORD OF FST
 GFP8     LJM    SRC         SET REPLY CODE 
 CCP      SPACE  4,20 
**        CCP - CHANGE CONTROL POINT. 
* 
*         *CCP* CHANGES TO THE SPECIFIED CONTROL POINT, TRYING 5 TIMES
*         BEFORE GIVING UP.  IF CHANGE IS MADE, THE EJT ORDINAL IS
*         VERIFIED TO ENSURE THE JOB IS THE CORRECT ONE.
* 
*         ENTRY  (A) = 0  CHANGE TO PARTNER CP. 
*                (A) .NE. 0  CHANGE BACK TO CALLER CP.
*                (CCPA) = NEW CP ADDRESS IF A=0.
* 
*         EXIT   (A) = 0  IF CHANGE MADE SUCCESSFULLY.
*                (A) = 1  IF CHANGE NOT POSSIBLE. 
*                (A) = 2  IF CHANGE MADE, BUT WRONG EJT ORDINAL.
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  DLY. 
* 
*         MACROS MONITOR. 
  
  
 CCP      SUBR               ENTRY/EXIT 
          NJN    CCP1        IF CHANGING BACK TO CALLER 
  
*         PRESET FOR CHANGE TO PARTNER. 
  
          LDD    CP          GET CALLER EJT ORDINAL 
          ADN    TFSW 
          CRD    CM 
          LDD    CM 
          STM    CCPB 
          LDD    SQ+4        SET EJT ORDINAL FOR VERIFY 
          UJN    CCP2        PROCESS CALL 
  
*         PRESET FOR CHANGE BACK TO CALLER. 
  
 CCP1     LDM    CCPC        GET CALLING CP ADDRESS 
          STM    CCPA        NEW CPA
          LDM    CCPB        SET EJT ORDINAL FOR VERIFY 
 CCP2     STD    T1 
          LDD    CP          SAVE OLD CP
          STM    CCPC 
  
*         CHANGE TO NEW CP, TRYING 5 TIMES. 
  
          LDN    5           INITIALIZE RETRY COUNT 
          STM    CCPD 
 CCP3     LDC    ** 
 CCPA     EQU    *-1         NEW CPA
          SHN    -7 
          STD    CM+1 
          MONITOR  CCAM      CHANGE CP
          LDD    CM+1 
          ZJN    CCP6        IF CHANGE MADE 
          SOM    CCPD        DECREMENT RETRY COUNT
          ZJN    CCP4        IF 5 TIMES 
          RJM    DLY         DELAY
          UJN    CCP3        TRY AGAIN
  
*         CHANGE REJECTED, RETURN ERROR.
  
 CCP4     LDM    CCPC        RESET TO OLD CP
          STD    CP 
          LDN    1           CHANGE NOT POSSIBLE
 CCP5     LJM    CCPX        RETURN 
  
*         CHANGE MADE, VERIFY JOB EJT ORDINAL.
  
 CCP6     LDD    CP 
          ADN    TFSW        GET JOB EJT ORDINAL
          CRD    CM 
          LDD    T1          VERIFY JOB EJT ORDINAL 
          LMD    CM 
          ZJN    CCP5        IF EJT ORDINAL MATCHES 
          LDN    2           WRONG JOB
          UJN    CCP5        RETURN 
  
  
 CCPB     BSS    1           CALLER EJT ORDINAL 
 CCPC     BSS    1           CALLER CPA 
 CCPD     CON    5           RETRY COUNT
 CLF      SPACE  4,15 
**        CLF - CREATE LOCAL FNT ENTRY. 
* 
*         *CLF* CREATES A LOCAL FNT ENTRY FOR THE JOB TO WHICH THE
*         PP IS ASSIGNED. 
* 
*         EXIT   (A) = 0  IF FILE CREATED.
*                (A) = (RC) = *RC05*, IF NO NFL AVAILABLE.
*                (A) = (RC) = *RC06*, IF LOCAL FILE LIMIT.
*                (FA) = FNT ORDINAL IF A=0. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  NFL. 
* 
*         MACROS MONITOR. 
  
  
 CLF3     LDD    CP          REQUEST ADDITIONAL 100B WORDS OF NFL 
          ADN    FLSW 
          CRD    CM 
          AOD    CM 
          RJM    NFL
          ZJN    CLF1        IF NFL ASSIGNED
          LDN    RC05        * NOT ENOUGH NFL.* 
 CLF4     STD    RC 
  
 CLF      SUBR               ENTRY/EXIT 
  
*         CREATE FNT IN RECEIVER-S NFL. 
  
 CLF1     LDD    MA          SET FILE NAME IN MB
          CWM    CLFA,ON
          LDN    CRFS        CREATE LOCAL FNT ENTRY 
          STD    CM+1 
          MONITOR  PLFM 
          LDD    CM+1        SAVE FNT ORDINAL 
          STD    FA 
          LDD    CM+4 
          ZJN    CLFX        IF FILE CREATED, RETURN
  
*         FNT NOT CREATED, PROCESS REJECT.
  
          SHN    21-1 
          MJN    CLF2        IF LOCAL FILE LIMIT
          SHN    21-2-21+1+22 
          MJN    CLF3        IF MORE NFL NEEDED 
  
*         DUPLICATE FILE NAME, CHANGE NAME AND TRY AGAIN. 
  
          LDD    HN          CHANGE FILE NAME 
          RAM    CLFA+3 
          SHN    -6 
          SBN    1R+
          MJN    CLF1        IF FILE NAME STILL VALID 
 CLF2     LDN    RC06        * LOCAL FILE LIMIT.* 
          UJN    CLF4        SET ERROR CODE 
  
  
 CLFA     VFD    42/0LZZZZZGA,18/0  SCRATCH FILE NAME 
 PJI      SPACE  4,20 
**        PJI - PROCESS JOB INTERLOCK.
* 
*         *PJI* CLEARS OR SETS THE JOB INTERLOCK ON THE JOB 
*         TO WHICH THE PP IS CURRENTLY ASSIGNED.
* 
*         ENTRY  (A) = CFIN  CLEAR INTERLOCK. 
*                (A) = SFIN  SET INTERLOCK. 
* 
*         EXIT   (A) = 0  INTERLOCK SET/CLEAR.
*                (A) = 1  INTERLOCK ALREADY SET (*SFIN* OPTION).
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  SFI. 
* 
*         MACROS SFA. 
  
  
 PJI      SUBR               ENTRY/EXIT 
          STD    T1          SAVE SET/CLEAR OPTION
          LDD    CP          GET JOB FNT ORDINAL
          ADN    TFSW 
          CRD    CM 
          SFA    EJT,CM      CALCULATE ABSOLUTE ADDRESS OF EJT ENTRY
          RJM    SFI         SET/CLEAR JOB INTERLOCK
          UJN    PJIX        RETURN 
 RTC      SPACE  4,15 
**        RTC - RETURN TO CALLER. 
* 
*         *RTC* CHANGES CONTROL POINTS BACK TO THE CALLER JOB.
* 
*         ENTRY  JOB AT PARTNER CP. 
*                *CCP* ALREADY CALLED WITH A=0. 
* 
*         EXIT   JOB AT CALLER CP.
* 
*         CALLS  CCP, CHG.
  
  
 RTC      SUBR               ENTRY/EXIT 
 RTC1     LDN    1           CHANGE BACK TO CALLER CONTROL POINT
          RJM    CCP
          ZJN    RTCX        IF CHANGE SUCCESSFUL 
          LDN    0
          RJM    CHG         CONDITIONALLY HANG PP
          LDD    CP          CHECK ERROR FLAG 
          ADK    STSW 
          CRD    CM 
          LDD    CM+1 
          SBK    ORET 
          PJN    RTC2        IF *ORET* OR HIGHER ERROR
          UJN    RTC1        RETRY REQUEST
  
 RTC2     LJM    DPP         DROP PP
 UIE      SPACE  4,15 
*         UIE - UPDATE QFT ENTRY. 
* 
*         *UIE* CHANGES THE JOB EJT ORDINAL ASSIGNMENT IN THE 
*         QFT ENTRY IF THE LOCAL FILE TYPE IS *QFFT*. 
* 
*         ENTRY  (A) = EJT ORDINAL OF JOB WITH QFT ENTRY ASSIGNED.
*                (FN - FN+4) = LOCAL FNT ENTRY. 
*                (FS - FS+4) = LOCAL FST ENTRY. 
* 
*         USES   T1, T2, T3, CM - CM+4, CN - CN+4.
* 
*         CALLS  SFI. 
* 
*         MACROS MONITOR, SFA.
  
  
 UIE      SUBR               ENTRY/EXIT 
          STM    UIEB        SAVE OLD JOB EJT ORDINAL 
          LDD    FN+4        CHECK LOCAL FILE TYPE
          SHN    -6 
          LMN    QFFT 
          NJN    UIEX        IF NOT QUEUED INPUT/OUTPUT FILE
          LDD    CP          GET NEW JOB EJT ORDINAL
          ADN    TFSW 
          CRD    CM 
          LDD    CM 
          STM    UIEC 
          LDN    0           INITIALIZE QFT ORDINAL 
          STD    T3 
          LDK    QFTP        GET MAXIMUM ENTRIES IN QFT 
          CRD    CM 
          LDD    CM+2 
          STD    T2 
 UIE1     AOD    T3          INCREMENT TO NEXT QFT ENTRY
          SBD    T2 
          PJN    UIE2        IF END OF QFT
          SFA    QFT,T3      GET QFT ENTRY
          CRD    CM 
          ADN    ENTQ-JSNQ
          CRD    CN 
          LDD    CN          CHECK FOR SAME EQUIPMENT 
          LMD    FS 
          LPC    777
          NJN    UIE1        IF NOT CORRECT ENTRY 
          LDD    CN+1        CHECK FOR SAME FIRST TRACK 
          LMD    FS+1 
          NJN    UIE1        IF NOT CORRECT ENTRY 
          LDN    3           SET NUMBER OF REQUESTS FOR *UADM*
          STD    T1 
          LDD    MA          WRITE *UADM* REQUESTS TO MESSAGE BUFFER
          CWM    UIEA,T1
          SFA    QFT,T3      CALCULATE ABSOLUTE ADDRESS OF QFT ENTRY
          RJM    SFI         ISSUE *UTEM* TO CHANGE JOB EJT ORDINAL 
          NJN    UIE2        IF EJT ORDINAL VERIFY FAILED 
          LJM    UIEX        RETURN 
  
 UIE2     MONITOR  HNGM      HANG PP
          UJN    UIE2        UNCONDITIONALLY HANG 
  
  
 UIEA     VFD    1/1,5/JSNQ,6/1,6/1,42/1  CHECK FILE ASSIGNED 
          VFD    1/1,5/ENTQ,6/12D,6/0,42/0  VERIFY OLD EJT ORDINAL
 UIEB     EQU    *-1
          VFD    1/0,5/ENTQ,6/12D,6/0,42/0  SET NEW EJT ORDINAL 
 UIEC     EQU    *-1
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPNFL 
          SPACE  4,10 
**        BUFFER FOR UTILITY FNT WORD.
  
  
 FBUF     BSS    LENF*5-2*5  REMAINDER OF FNT 
          ERRNZ  LENF-3      CHANGE BUFFER SIZE AND ALL *FBUF* ACCESS 
          SPACE  4,10 
          USE    OVERLAY
  
 OSTL     EQU    *+5         *0ST* LOAD ADDRESS 
  
          ERRNG  BFMS-OSTL-ZSTL  CHECK *0ST* LENGTH 
          OVERFLOW E1MA 
          TTL    1MA/2MB - EXTENDED MEMORY STORAGE REQUEST PROCESSING.
          TITLE 
          OVERLAY (EXTENDED MEMORY STORAGE REQUEST.),E1MA 
          SPACE  4,10 
*****     2MB - EXTENDED MEMORY STORAGE REQUEST PROCESSING. 
* 
*         *2MB* PERFORMS ALL ECS RELATED STORAGE REQUESTS FOR 
*         THE SYSTEM MONITOR.  *2MB* WILL INSURE THAT AT LEAST
*         *MCMX* WORDS OF CM IS ASSIGNED TO THE CONTROL POINT 
*         BEFORE REQUESTING EXTENDED MEMORY FOR THE CONTROL POINT.
*         IF THE CONTROL POINT HAS AN *MFL* OF LESS THAN *MCMX* AT THE
*         TIME EXTENDED MEMORY IS REQUESTED, THE JOB WILL BE ABORTED. 
 RFE      SPACE  4,25 
***       FUNCTION 0 (SUBFUNCTIONS 2 AND 4).
*         REQUEST EXTENDED CORE STORAGE.
* 
*         ENTRY 
*T ARG    6/SUB,18/FL 
* 
*         SUB = 2  EXTENDED MEMORY REQUEST, ABORT IF NOT AVAILABLE. 
*             = 4  EXTENDED MEMORY REQUEST, NO ABORT IF NOT AVAILABLE.
* 
*T FL     30/VAL,24/,1/R,1/C,1/,3/0 
* 
*         VAL    POSITIVE NON-ZERO VALUE INDICATING THE AMOUNT OF 
*                EXTENDED MEMORY BEING REQUESTED. 
*         R      CLEAR *CMM* STATUS.
*         C      THIS IS A *CMM* TYPE REQUEST.
* 
*         EXIT   TO *ERR* IF ERRORS ENCOUNTERED.
*                TO *RCL* TO ENTER PP RECALL. 
* 
*         USES   T3 - T5, T7, CM - CM+4, FS - FS+4, SP - SP+4.
* 
*         CALLS  CLM, REI, RSI. 
* 
*         MACROS MONITOR. 
  
  
 RFE      SUBR               ENTRY/EXIT 
          LDK    MEFL        GET USER EM SHIFT COUNT (UESC) 
          CRD    CM 
          LDD    CM+2 
          SHN    -11
          STD    CM+2 
          SBN    4
          LPN    77 
          ADD    TH 
          ERRNZ  SHNI-1000
          STM    RFEA 
          LDC    SHNI+77
          SBD    CM+2 
          STM    RFEB 
          LDC    SHNI+3 
          ADD    CM+2 
          STM    RFEC 
          STM    RFEE 
          LDD    IR+3        RESTORE DIRECT CELL HIT DURING LOADING 
          SHN    -6 
          ADN    1
          STD    T5 
          LDD    FN+2        FETCH REQUEST
          ADC    7700        ROUND UP 
          SHN    -14
          ADD    FN+1 
          ADN    7
          SCN    7
          SHN    6
          ADD    FN 
          SHN    11 
          STD    T3          SET NEW FLE
          SHN    -14
          STD    T0 
          LDN    17          ROUND VALUE TO BLOCKING SIZE 
 RFEA     SHN    -4 
*         SHN    UESC-4 
          RAD    T3 
          SHN    -14
          ADD    T0 
          SHN    14 
          LMD    T3 
 RFEB     SHN    0
*         SHN    -UESC
          STD    T3 
          SHN    -14
          ZJN    RFE1        IF REQUEST .LE. 7777B *UEBS* BLOCKS
          LDN    PSNI 
          STM    RFED 
  
*         RE-ENTER AT *RFE1* FOLLOWING CLEAR OF CM WHEN 
*         CM INCREASE REQUIRED PRIOR TO EXTENDED MEMORY REQUEST.
  
 RFE1     LDD    CP          FETCH STATUS AND CONTROL WORDS 
          ADN    ECSW 
          CRD    FS 
          ADN    ELCW-ECSW
          CRD    T7 
          LDN    ZERL 
          CRD    CM 
          LDD    FS+4 
 RFEC     SHN    3
*         SHN    3+UESC 
          STD    CM+1 
          SHN    -14
          STD    CM 
          LDD    T7 
          SBD    T3 
 RFED     PJN    RFE3        IF FLE .LE. MFL (EXTENDED MEMORY)
*         PSN                (IF FLE .GT. 12 BITS)
          LDD    IR+3 
          SHN    21-7 
          PJN    RFE2        IF NOT *NO ABORT*
          LJM    RFEX        COMPLETE PROCESSING
  
 RFE2     LDC    =C* FL REQUEST BEYOND MFL (EXTENDED MEMORY).*
          LJM    ERR         PROCESS ERROR ABORT
  
*         CHECK FOR AT LEAST MINIMUM CM FL AVAILABLE. 
  
 RFE3     LDD    FL          CHECK CM FL
          ADC    -MCMX/100
          PJN    RFE4        IF FL .GE. MINIMUM FL WITH EXTENDED MEMORY 
          LJM    RFE12       GET ENOUGH CM BEFORE REQUESTING ECS
  
*         REQUEST EXTENDED MEMORY.
  
 RFE4     LDD    CP          CHECK IF JOB ROLLABLE
          ADN    JCIW 
          CRD    CM 
          LDD    CM+3        CHECK FOR *DIS* JOB
          LPC    1000 
          ADD    CM+2        CHECK FOR NON-ROLLABLE JOB 
          NJN    RFE5        IF JOB NOT ROLLABLE
          LDN    SSTL        CHECK EXTENDED MEMORY CONTROL
          CRD    CM 
          LDD    CM 
          SHN    21-5 
          MJN    RFE6        IF USER EXTENDED MEMORY DISABLED 
 RFE5     LDD    FS+4        SAVE CURRENT FLE 
          STD    T4 
          LDD    T3 
          RJM    REI         REQUEST EXTENDED MEMORY INCREASE 
          ZJN    RFE7        IF ASSIGNED
 RFE6     LJM    RFE9        IF REQUEST PENDING 
  
*         EXTENDED MEMORY ASSIGNED. 
  
 RFE7     LDD    CP          READ ECSW AND SEPW WORDS 
          ADN    ECSW 
          CRD    FS 
          ADN    SEPW-ECSW
          CRD    CM 
          LDD    CM          CHECK ENTRY POINTS 
          LPN    1
          NJN    RFE8        IF SSM= ENTRY POINT PRESENT
          STD    CM+1 
          STD    CM+3 
          LDD    FS+4 
          SBD    T4 
          MJN    RFE8        IF DECREASE
          ZJN    RFE8        IF NO CHANGE 
          STD    CM+2 
          LDC    300         SET ECS RELATIVE ADDRESS OPTION
          RAD    CM+1 
          LDD    T4          SET ADDRESS FOR CLEAR
          STD    CM+4 
          MONITOR  CSTM      CLEAR ADDED STORAGE
 RFE8     LDN    0
          STD    CM 
          LDD    CP 
          ADN    MS2W 
          CWD    CM          CLEAR CONSOLE MESSAGE
          LDN    ZERL        RETURN STATUS
          CRD    CM 
          LDD    FS+4 
 RFEE     SHN    3
*         SHN    3+UESC 
          STD    CM+1 
          SHN    -14
          STD    CM 
          LJM    RFEX        RETURN 
  
*         EXTENDED MEMORY NOT AVAILABLE.
  
 RFE9     PJN    RFE10       IF STORAGE UNASSIGNED WAITING FOR *1SJ*
          LDD    CP          CHECK IF JOB ROLLABLE
          ADN    JCIW 
          CRD    SP 
          LDD    SP+3        CHECK FOR *DIS* JOB
          LPC    1000 
          ADD    SP+2        CHECK FOR NON-ROLLABLE JOB 
          NJN    RFE10       IF JOB NOT ROLLABLE
          STD    CM+1        ROLLOUT CONTROL POINT
          MONITOR  ROCM 
          UJN    RFE11       ENTER RECALL 
  
*         EXTENDED MEMORY AVAILABLE BUT NOT ASSIGNED. 
  
 RFE10    LDD    CP          SET WAITING MESSAGE
          ADN    MS2W 
          CWM    =C*WAITING FOR STORAGE (EM). *,TR
 RFE11    LDN    EFIR        SET ECS FL INCREASE PENDING REASON CODE
          LJM    RCL         ENTER PP RECALL
  
*         INSURE JOB CAN BE INCREASED TO AT LEAST MINIMUM CM. 
  
 RFE12    LDD    CP          GET CM CONTROL WORD
          ADN    FLCW 
          CRD    CM 
          LDD    CM 
          ADC    -MCMX/100
          MJN    RFE14       IF MFL .LT. MINIMUM FL WITH ECS
  
*         REQUEST MINIMUM CM FOR JOB. 
  
          LDD    FL          SAVE CURRENT CM FL 
          STD    T4 
          LDC    MCMX/100    REQUEST MINIMUM CM FL
          RJM    RSI
          ZJN    RFE13       IF ASSIGNED
          LJM    RFL20       WAIT FOR CM STORAGE
  
*         CLEAR CM FL INCREASE WHEN ASSIGNED. 
  
 RFE13    RJM    CLM         CLEAR ADDITION MEMORY
          LJM    RFE1        PROCESS EXTENDED MEMORY REQUEST
  
 RFE14    LDC    =C* MFL LESS THAN EXTENDED MEMORY MINIMUM CM FL.*
          LJM    ERR         PROCESS ERROR
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPREI 
          OVERFLOW E1MA 
          TTL   1MA/2MZ - EJT SYSTEM REQUEST FUNCTION PROCESSORS. 
          OVERLAY  (EJT SYSTEM REQUEST PROCESSORS.),E1MA
 2MC      SPACE  4,10 
*****     *2MC* - EJT SYSTEM REQUEST PROCESSORS.
  
  
 PRS      SUBR               ENTRY/EXIT 
          UJN    PRSX        EXIT 
 DTC      SPACE  4,10 
**        DTC - DETACH JOB FROM CALLER. 
* 
*         CALLS  CAA, GTN, PES, RRF, SAM, SEA, STO, TAS, VSC, VUD, WCE, 
*                WDS. 
* 
*         MACROS ENDMS, SETMS.
  
  
 DTC      BSS    0           ENTRY
          LDD    W1+4        SET TO CLEAR INTERLOCK 
          STM    PERB 
          RJM    CAA         READ OTHER PARAMETER BLOCK WORDS 
          ADN    3
          CRD    W3 
          ADN    1
          CRD    W4 
          RJM    SEA         SET ENTRY ADDRESS
          CRM    EJEN,EL     READ EJT ENTRY WORDS 
  
*         CHECK JOB STATUS, CONNECTION STATUS AND SERVICE CLASS.
*         JOB STATUS MUST BE EITHER *DOJS* OR *IOJS* BECAUSE A
*         *FJEJ* MONITOR FUNCTION IS ALWAYS ISSUED BEFORE *DTEJ*. 
  
          LDM    EJEN+JSNE*5+4
          SHN    -7 
          LPN    17 
          SBK    NICS 
          NJN    DTC0        IF SOME SORT OF CONNECTED STATUS 
          ERRNZ  MXCS-3      ERROR IN CONNECTION STATUS CHECK 
          LDN    JOER        JOB NOT ONLINE 
          LJM    PERX        ERROR EXIT 
  
 DTC0     LDM    EJEN+JSNE*5+4  CHECK CURRENT JOB STATUS
          LPN    76 
          SBN    IOJS*2 
          ZJN    DTC1        IF *IOJS* STATUS 
          SBN    DOJS*2-IOJS*2
          ZJN    DTC1        IF *DOJS* STATUS 
          SBN    SUJS*2-DOJS*2
          NJN    DTC2        IF NOT *SUJS* STATUS 
 DTC1     STD    SC          PRESET NO SERVICE CLASS CHANGE 
  
*         CHECK DETACH REASON CODE. 
  
          LDD    W2+1 
          SHN    -6 
          ZJN    DTC2        IF NO REASON CODE
          STD    T1 
          SBN    TAMRL+1
          MJN    DTC3        IF VALID REASON CODE 
 DTC2     LDN    JDER        JOB CANNOT BE DETACHED 
          LJM    PERX        ERROR EXIT 
  
 DTC3     LDM    TAMR-1,T1   MOVE REASON CODE 
          STM    SAMB+1 
  
*         READ DISK AND VALIDATE USER DETACH. 
  
          LDN    0
          RJM    RRF         READ ROLLOUT FILE
          RJM    VSC         VALIDATE SERVICE CLASS 
          RJM    VUD         VALIDATE USER DETACH 
  
*         MAKE JOB STATUS AND CONNECTION STATUS CHANGES.
*         JOB STATUS MUST BE OBTAINED FROM THE SYSTEM SECTOR COPY 
*         OF THE EJT BECAUSE THE *FJEJ* FUNCTION REQUEST SETS 
*         *DOJS* JOB STATUS IN THE EJT TO KEEP THE JOB ROLLED 
*         OUT UNTIL IAF CAN ISSUE THE *DTEJ* FUNCTION.  THE 
*         SYSTEM SECTOR COPY CONTAINS THE JOB STATUS PRESENT
*         AT LAST ROLLOUT.
  
          LDM    EJEN+SCLE*5 SAVE CURRENT SERVICE CLASS FOR RECOVERY
          SHN    -6 
          STD    W3+2 
          LDM    EJSS+JSNE*5+4  GET JOB STATUS FROM SYSTEM SECTOR 
          LPN    76 
          SBN    IOJS*2 
          ZJN    DTC3.2      IF TERMINAL I/O JOB STATE
          SBN    DOJS*2-IOJS*2
          ZJN    DTC3.2      IF DISABLED JOB STATE
          SBN    SUJS*2-DOJS*2
          ZJN    DTC4        IF SUSPENDED (IAF MISSING) 
 DTC3.1   SOM    STOD        DISABLE EJT TIMEOUT UPDATE 
          LJM    DTC6        MAKE CHANGE
  
 DTC3.2   LDM    CBUF+EOJW*5 CHECK JOB TERMINATION OPTION 
          SHN    0-11 
          LMN    TJJT 
          ZJN    DTC3.1      IF TERMINATE JOB OPTION
 DTC4     LDD    EJ          SAVE JOB STATUS AND SCHEDULE FIELD 
          SHN    14 
          LMD    EJ+1 
          ADK    JSNE 
          CRM    EJSS,ON
          ADK    SCHE-JSNE-1
          CRM    EJSS+SCHE*5,ON 
          ADK    SCLE-SCHE-1
          CRD    CN 
          LDD    W3+2 
          SBD    SC 
          NJN    DTC4.1      IF CHANGE IN SERVICE CLASS 
          STD    SC          INDICATE NO SERVICE CLASS CHANGE 
 DTC4.1   LDD    SC 
          ZJN    DTC5        IF NO SERVICE CLASS CHANGE 
          STM    DTCC+4 
          SHN    6
          STD    CN 
          AOM    DTCA        INCREMENT REQUEST COUNT
 DTC5     LDK    SUJS        SUSPEND DIRECTLY 
          STM    DTCB+11B 
          LDN    1
          RAM    STOB        SET TO LEAVE INTERLOCKED 
          LDN    1
          RAM    STOA        SET TO EXTEND TIMEOUT
 DTC6     LDD    SC          CHANGE SERVICE CLASS 
          STM    CSSS        ADD CHANGE TO SYSTEM SECTOR
  
*         SET UP RECOVERY TABLE.
  
          LDD    CP          READ SUBSYSTEM IDENTIFICATION
          ADN    JCIW 
          CRD    CM 
          LDD    CM+2        SET SSID FIELD 
          STD    W3 
  
*         PUT RECOVERY TABLE INTO SYSTEM SECTOR.
  
          LDD    MA          TRANSFER RECOVERY WORDS
          CWD    W3 
          CRM    R1SS,ON
          CWD    W4 
          CRM    R2SS,ON
          CWM    CBUF+SRUW*5,ON  TRANSFER SRU-S 
          SBN    1
          CRD    W3 
          LDM    EJEN+SCHE*5 RESET DISK ADDRESS 
          STD    T5 
          LDM    EJEN+SCHE*5+1
          STD    T6 
          LDN    0
          STD    T7 
          STD    FA 
          SETMS  IO,RW
          LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WDS         WRITE SYSTEM SECTOR
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
          RJM    GTN         SET TERMINAL NAME IN PARAMETER BLOCK 
          LDN    W3 
          RJM    TAS         TRANSFER ACCUMULATED SRU-S 
          RJM    STO         SET TIMEOUT
          LDN    2
*         LDN    3           (IF SERVICE CLASS CHANGE)
 DTCA     EQU    *-1         REQUEST COUNT
          STD    CM+1 
          LDD    MA          PLACE REQUEST(S) IN MESSAGE BUFFER 
          CWM    DTCB,CM+1   PLACE REQUEST
          RJM    WCE         WRITE CHANGE TO EJT
  
*         SEND ACCOUNTING MESSAGES. 
  
          LDC    2RAS        SET UP MESSAGE 
          STM    SAMB 
          AOM    SAMJ 
          RJM    SAM         SEND DETACH MESSAGE
  
*         RETURN JOB ACCESS LEVEL LIMIT OF DETACHED JOB.
  
          LDM    EJEN+PRFE*5+2  GET JOB ACCESS LEVEL LIMIT
          LPN    7
          SHN    6
          RAD    W2+0 
          LDN    0
          LJM    PERX        EXIT 
  
  
 DTCB     VFD    6/JSNE,6/4,6/7,42/DTCS 
          VFD    6/JSNE,6/5,6/1,42/ROJS 
 DTCC     VFD    6/SCLE,6/6,6/54D,42/0   SERVICE CLASS CHANGE 
 TAMR     SPACE  4,10 
**        TAMR - TABLE OF ACCOUNTING MESSAGE REASONS. 
  
  
 TAMR     BSS    0
          DATA   2LTH        HANG UP PHONE
          DATA   2LTT        TIMEOUT
          DATA   2LTR        SUBSYSTEM ABORT
          DATA   2LTD        USER DETACH
          DATA   2LTP        PROGRAM INITIATED DETACH 
          DATA   2LTU        PROGRAM INITIATED DETACH AND LOGOUT
  
 TAMRL    EQU    *-TAMR 
 GTN      SPACE  4,15 
**        GTN - GET TERMINAL NAME.
* 
*         EXIT   TERMINAL NAME WRITTEN TO PARAMETER BLOCK.
* 
*         ERROR  TO *PERX* IF ERROR ON READ.
* 
*         USES   T5, T6, CM - CM+4. 
* 
*         CALLS  CAA, PES, RSS. 
* 
*         MACROS ENDMS, SETMS.
  
  
 GTN      SUBR
          LDM    IFSS        INPUT FILE FST WORD
          STD    T5 
          LDM    IFSS+1 
          STD    T6 
          SETMS  IO 
          LDN    0
          RJM    RSS         READ SYSTEM SECTOR 
          RJM    PES         PROCESS ERROR STATUS 
          NJN    GTN1        IF ERROR ENCOUNTERED 
          ENDMS 
          LDD    MA          PICK UP TERMINAL NAME
          CWM    TNSS,ON
          SBN    1
          CRD    CM 
          LDN    0
          STD    CM+4 
          LDD    CM+3 
          SCN    77 
          STD    CM+3 
          RJM    CAA         GET PARAMETER NAME BLOCK ADDRESS 
          ADN    6
          CWD    CM          ADD TERMINAL TO PARAMETER BLOCK
          UJP    GTNX        RETURN 
  
 GTN1     LDN    ERER        ERROR ON READ ERROR CODE 
          LJM    PERX        ERROR EXIT 
 PTN      SPACE  4,15 
**        PTN - PUT TERMINAL NAME.
* 
*         EXIT   TERMINAL NAME UPDATED IN SYSTEM SECTOR.
*                (SAMD) = TERMINAL NAME.
* 
*         ERROR  TO *PERX* IF I/O ERROR ENCOUNTERED.
* 
*         USES   T5, T6, T7, CM - CM+4. 
* 
*         CALLS  CAA, PES, RDS, WDS.
* 
*         MACROS ENDMS, SETMS.
  
  
 PTN      SUBR
          RJM    CAA         GET PARAMETER NAME BLOCK ADDRESS 
          ADN    6
          CRM    SAMD,ON     GET TERMINAL FROM PARAMETER BLOCK
          LDM    IFSS        INPUT FILE FST WORD
          STD    T5 
          LDM    IFSS+1 
          STD    T6 
          LDN    0
          STD    T7 
          SETMS  IO 
          LDC    SBUF 
          RJM    RDS         READ INPUT FILE SYSTEM SECTOR
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
  
*         UPDATE TERMINAL NAME IN SYSTEM SECTOR.
  
          LDD    MA          PICK UP TERMINAL NAME
          CWM    SBUF+TNSS-BFMS,ON
          SBN    1
          CRD    CM 
          LDD    CM+3 
          LMM    SAMD+3 
          SCN    77 
          LMD    CM+3 
          STM    SAMD+3 
          LDD    CM+4 
          STM    SAMD+4 
          LDD    MA          PUT TERMINAL NAME IN SYSTEM SECTOR 
          CWM    SAMD,ON
          SBN    1
          CRM    SBUF+TNSS-BFMS,ON
          LDN    0
          STD    T7 
          SETMS  IO,RW
          LDC    SBUF 
          RJM    WDS         WRITE SYSTEM SECTOR
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
          LJM    PTNX        RETURN 
 REC      SPACE  4,10 
**        REC - RECOVER DETACHED JOB. 
* 
*         CALLS  CAA, GRE, PES, RRF, SES, SFI, TAS, WCE, WDS. 
* 
*         MACROS ENDMS, MONITOR, SETMS. 
  
  
 REC      BSS    0           ENTRY
          LDN    0
          STD    W1+4        INITIALIZE EJT ORDINAL 
          LDD    W2+1        VALIDATE MESSAGE BUFFER ADDRESS
          LPN    77 
          SHN    14 
          ADD    W2+2 
          ZJN    REC1        IF INCORRECT ADDRESS 
          ADN    EJPB 
          SHN    -6 
          SBD    FL 
          MJN    REC2        IF IN RANGE
 REC1     LDN    MAER        ADDRESS ERROR
          UJN    REC4        ERROR EXIT 
  
 REC2     LDD    W0          TRANSFER JSN TO REQUEST
          ZJN    REC3        IF NO JSN
          STM    GREC+3 
          LDD    W0+1 
          ZJN    REC3        IF NO JSN
          STM    GREC+4 
          RJM    SES         SET UP EJT SEARCH
          RJM    GRE         GET REQUIRED EJT ENTRY 
          ZJN    REC5        IF DETACHED
          LDN    NTER&JFER   JOB NOT DETACHED ERROR CODE
 REC3     LMN    JFER        JOB NOT FOUND ERROR CODE 
 REC4     LJM    PERX        ERROR EXIT 
  
 REC5     LDD    EJ          READ EJT ENTRY 
          SHN    14 
          ADD    EJ+1 
          CRM    EJEN,EL
          LDM    EJEN+JSNE*5+4
          LPN    76 
          STD    JS 
          SHN    -1 
          LMK    EXJS 
          ZJN    REC5.1      IF JOB IN CM 
          LMK    PCJS&EXJS
          NJN    REC6        IF JOB NOT IN CM 
          LCN    2
          RAM    RECF 
  
*         ROLL OUT AND SUSPEND JOB. 
  
 REC5.1   LDK    CEIN        CLEAR INTERLOCK
          STD    T1 
          LDD    EJ 
          SHN    14 
          LMD    EJ+1 
          RJM    SFI         CLEAR INTERLOCK
          LDM    EJEN+SCHE*5+3  SET CONTROL POINT NUMBER
*         LDM    EJEN+SCHE*5+1  (JOB ASSIGNED TO PCP) 
 RECF     EQU    *-1
          STD    CM+2 
          LDC    ROSU+4000
          STD    CM+1 
          MONITOR  ROCM 
          LDN    RTER        SET RETRY
          UJP    REC4        EXIT 
  
*         SUSPEND JOB IF NOT ALEADY SUSPENDED.
  
 REC6     LDD    W1+4 
          STM    PERB        SET TO CLEAR WHEN COMPLETE 
          LDN    1
          STD    CM+1 
          LDD    JS 
          SBN    SUJS*2 
          ZJN    REC7        IF SUSPENDED 
          LDC    RTCL 
          CRM    RECC+3,ON
          LDC    600D        SET TIMEOUT FOR TEN MINUTES
          RAM    RECC+4 
          SHN    -14
          RAM    RECC+3 
  
*         GATHER INFORMATION FOR RETURN PARAMETER BLOCK.
  
 REC7     RJM    CAA         READ TERMINAL NUMBER 
          ADN    5
          CRD    W5 
          LDN    0           SET TO READ SYSTEM SECTOR
          RJM    RRF         READ ROLLOUT FILE
          LDM    CSSS 
          ZJN    REC7.0      IF PREVIOUS SERVICE CLASS CHANGE COMPLETE
          LDN    0
          STD    SC          CLEAR SERVICE CLASS
          LDM    R1SS+2      GET PRE-DETACH SERVICE CLASS 
          LPN    77 
          STM    DTCC+4      SET SERVICE CLASS IN REQUEST 
          AOM    RECE 
          UJN    REC7.1      CONTINUE WITH RECOVERY PROCESSING
  
 REC7.0   LDM    R1SS+2      GET PRE-DETACH SERVICE CLASS 
          LPN    77 
          STD    SC 
          LDM    EJEN+SCLE*5 GET CURRENT SERVICE CLASS
          SHN    -6 
          SBD    SC 
          NJN    REC7.1      IF SERVICE CLASS TO BE CHANGED 
          STD    SC          INDICATE NO SERVICE CLASS CHANGE 
 REC7.1   LDD    SC 
          STM    CSSS 
          LDD    TN 
          STM    CBUF+TTNW*5+1
          LDN    0
          STD    T7 
          SETMS  IO,RW
          LDC    BFMS 
          RJM    WDS         WRITE SYSTEM SECTOR
          RJM    PES         PROCESS ERROR STATUS 
          LDN    CPAI 
          STD    T7 
          LDC    SBUF 
          RJM    WDS         REWRITE CPA SECTOR 
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
  
*         PROCESS RECOVERY. 
  
          LDN    3
          STD    CM+1 
          LDD    MA 
          CWM    RECA,CM+1
          RJM    WCE         WRITE CHANGES TO EJT 
 RECE     LDN    0
          ZJN    REC8.2      IF NO EJT SERVICE CLASS UPDATE REQUIRED
          STD    CM+1        NUMBER OF EJT CHANGES TO MAKE (FOR *WCE*)
          LDD    MA 
          CWM    DTCC,CM+1   PLACE REQUEST
          RJM    WCE         WRITE CHANGE TO EJT
 REC8.2   LDM    CBUF+TFSW*5+1
          NJN    REC9        IF PRIMARY FILE EXISTS 
          LDK    ZERL 
          UJN    REC10       ZERO PRIMARY FILE NAME 
  
 REC9     LDD    MA          TRANSFER PRIMARY FILE FNT
          CWM    PFSS,ON
          SBN    1
 REC10    CRD    W0 
          LDN    RCEJ*2      RESTORE FCN FIELD
          STD    W0+4 
          LDD    W0+3        SAVE MODES FIELD 
          LPN    77 
          SHN    6
          STD    W2+4 
          SHN    -6 
          LMD    W0+3 
          STD    W0+3 
          RJM    CAA         WRITE RECOVERY WORDS TO RETURN BLOCK 
          ADN    3
          CWM    R1SS,ON    TRANSFER RECOVERY TABLE 
          CWM    R2SS,ON
          LDM    EJSS+4 
          LPN    76 
          SHN    -1 
          SBN    IOJS 
          ZJN    REC11       IF INPUT OR OUTPUT 
          SBN    DOJS-IOJS
          ZJN    REC11       IF NOT ACTIVE JOB
          LDN    1S5         SET ACTIVE JOB FLAG
          RAD    W2+4 
 REC11    LDC    CBUF+MS1W*5-1
          STD    T1 
 REC12    AOD    T1 
          STM    RECD 
          LDI    T1 
          NJN    REC12       IF NOT END OF LINE 
          LDN    ZERL        ADD ZERO WORD FOR CM EOL 
          CRM    *,ON 
 RECD     EQU    *-1
          LDN    5
          STD    T1 
          LDD    W2+1 
          LPN    77 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    W2+2 
          CWM    CBUF+MS1W*5,T1 
          LDC    CBUF+SRUW*5
          RJM    TAS         TRANSFER ACCUMULATED SRU-S 
          LDM    CBUF+ACTW*5
          SHN    -7 
          STD    JS 
          LPN    10          TIME LIMIT 
          RAD    W2+4 
          LDD    JS          SRU LIMIT
          LPN    2
          SHN    3
          RAD    W2+4 
          LDM    CBUF+TXSW*5
          SHN    -6          TIME SHARING SUBSYSTEM 
          LPN    7
          RAD    W2+4 
          LDN    0
          LJM    PERX        NORMAL EXIT
  
  
 RECA     VFD    6/JSNE,6/4,6/7,42/OLCS 
 RECB     VFD    6/JSNE,6/5,6/1,42/SUJS 
 RECC     VFD    6/SCHE,6/24D,6/0,42/0
          VFD    36/0        SCRATCH FOR RTCL 
 RRJ      SPACE  4,10 
**        RRJ - RESTART RECOVERED JOB.
* 
*         EXIT   (A) = ERROR CODE, IF ANY.
*                TO *PERX*. 
* 
*         CALLS  CET, PTN, RJC, RRF, SAM, SEA, WCE. 
* 
*         MACROS ENDMS, SETMS.
  
  
 RRJ      BSS    0           ENTRY
          LDD    W1+4        SET TO CLEAR INTERLOCK WHEN COMPLETE 
          STM    PERB 
          RJM    SEA         SET ENTRY ADDRESS
          CRD    CM 
          ADN    SCHE 
          CRD    T5 
          LDD    EJ          READ EJT ENTRY 
          SHN    14 
          LMD    EJ+1 
          CRM    EJEN,EL     READ EJT ENTRY WORDS 
          LDD    CM+4 
          LPC    3676 
          LMC    OLCS*200+SUJS*2
          ZJN    RRJ2        IF ONLINE AND SUSPENDED
          LDN    NRER        NOT RECOVERABLE ERROR CODE 
 RRJ1.1   LJM    PERX        EXIT 
  
*         RESTORE JOB STATUS AND SCHEDULE FIELD.
  
 RRJ2     LDN    0
          RJM    RRF         READ ROLLOUT FILE
          ENDMS 
          RJM    PTN         PUT TERMINAL NAME IN SYSTEM SECTOR 
          RJM    SAM         ISSUE RECOVERY ACCOUNTING MESSAGE
          LDM    EJSS+JSNE*5+4
          LPN    76          JOB STATUS FIELD 
          ADN    1           LEAVE INTERLOCK SET
          STM    EJSS+JSNE*5+4
          SBN    IOJS*2+1 
          ZJN    RRJ3        IF *IOJS*
          SBN    DOJS*2+1-IOJS*2-1
          ZJN    RRJ3        IF DISABLED
          LDN    ROJS*2+1 
          STM    EJSS+JSNE*5+4
          LDM    R1SS+2      GET INITIAL PRIORITY FOR SERVICE CLASS 
          LPN    77 
          STD    T2 
          RJM    RJC
          ADN    EXQT 
          CRD    CM 
          LDD    CM+4        SET INITIAL PRIORITY 
          STD    T1 
          LDD    T2 
          SHN    14 
          LMN    EXQT 
          RJM    CET
          LDD    T1          SET ENTRY TIME 
          STM    EJSS+SCHE*5+3
          LDD    T2 
          STM    EJSS+SCHE*5+4
 RRJ3     LDM    RRJA        SET UP REQUEST 
          STM    EJSS+JSNE*5
          LDM    RRJA+1 
          STM    EJSS+JSNE*5+1
          LDM    RRJB 
          STM    EJSS+SCHE*5
          LDM    RRJB+1 
          STM    EJSS+SCHE*5+1
          LDM    R1SS+2      SET SERVICE CLASS
          LPN    77 
          STM    RRJC+4 
          LDN    2
          STD    CM+1 
          ERRNZ  SCHE-JSNE-1 CODE DEPENDS ON CONSECUTIVE WORDS
          LDD    MA 
          CWM    EJSS+JSNE*5,CM+1 
          CWM    RRJC,ON
          AOD    CM+1 
          RJM    WCE         WRITE CHANGES TO EJT 
          LJM    PERX        EXIT 
  
  
 RRJA     VFD    6/JSNE,6/6,6/0,6/0 
 RRJB     VFD    6/SCHE,6/30D,6/0,6/0 
 RRJC     VFD    6/SCLE,6/6,6/54D,6/0,36/0
 RST      SPACE  4,10 
**        RST - RESET TIMEOUT.
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         CALLS  GRE, SEA, SES, STO.
  
  
 RST      BSS    0           ENTRY
          LDD    W0+2        CHECK TIMEOUT DELAY FLAG 
          LPN    2
          RAM    STOA 
          LDD    W0+2        CHECK FLAGS FIELD
          SHN    21-0 
          MJN    RST2        IF SELECT BY ORIGIN TYPE 
          LDD    W1+4 
          ZJN    RST1        IF NO EJTO 
          STM    PERB        SET TO CLEAR INTERLOCK WHEN COMPLETE 
          LJM    RST8        RESET ONE TIMEOUT
  
 RST1     LDN    IEER        INCORRECT EJT ORDINAL
          UJN    RST6        ERROR EXIT 
  
 RST2     LDD    W2          VALIDATE ORIGIN TYPE 
          LPN    77 
          STM    GRED+4 
          SBN    MXOT 
          MJN    RST3        IF VALID ORIGIN TYPE 
          LDN    IOER        INCORRECT ORIGIN TYPE
          UJN    RST6        EXIT 
  
 RST3     RJM    SES         SET UP EJT SEARCH
          LDC    GRED        SET REQUEST ADDRESS
          STM    GREB 
          LDN    PSNI 
          STM    GREA 
          STM    GREA+1 
 RST4     RJM    GRE         GET EJT ENTRY BY ORIGIN TYPE 
          ZJN    RST7        IF ENTRY FOUND 
 RST5     LDN    0           SET COMPLETE 
          STM    PERB        SET INTERLOCK ALREADY CLEAR
 RST6     LJM    PERX        EXIT 
  
 RST7     RJM    STO         SET TIMEOUT
          UJN    RST4        LOOP FOR NEXT ENTRY
  
*         PROCESS SINGLE ENTRY RESET. 
  
 RST8     RJM    SEA         SET ENTRY ADDRESS
          CRD    CM          READ EJT ENTRY 
          ADN    SCLE 
          CRD    CN 
          LDD    CM+4 
          LPN    77 
          SBN    SUJS*2+1 
          ZJN    RST9        IF SUSPENDED AND INTERLOCKED 
          LDN    NSER        NOT SUSPENDED ERROR CODE 
          UJN    RST6        ERROR EXIT 
  
 RST9     RJM    STO         SET TIMEOUT
          UJN    RST5        SET NORMAL EXIT
 TRM      SPACE  4,10 
**        TRM - TERMINATE JOB.
* 
*         EXIT TO *PERX*. 
* 
*         USES   CM - CM+4, CN - CN+4, T0 - T7. 
* 
*         CALLS  CAA, GTN, PES, RRF, SEA, TAS, WCE, WDS.
* 
*         MACROS ENDMS, SETMS.
  
  
 TRM      BSS    0           ENTRY
          LDD    W1+4        SET EJTO TO CLEAR INTERLOCK
          STM    PERB 
          RJM    SEA         SET ENTRY ADDRESS
          CRM    EJEN,EL     READ EJT ENTRY WORDS 
          SBD    EL 
          ADK    JSNE 
          CRD    T0 
          ADN    SCHE-JSNE
          CRD    T5 
          ADN    SCLE-SCHE
          CRD    CN 
          LDD    T0+4 
          LPN    76 
          LMN    IOJS*2 
          ZJN    TRM1        IF *IOJS* JOB STATUS 
          LMN    DOJS*2&IOJS*2
          ZJN    TRM1        IF *DOJS* JOB STATUS 
          LDN    NDER        SET JOB NOT DISABLED ERROR 
          LJM    PERX        EXIT 
  
 TRM1     LDD    CN          SET SCHEDULING PRIORITY
          SHN    -6 
          STD    T2 
          RJM    RJC
          ADN    EXQT 
          CRD    CM 
          LDD    CM+2        SET UPPER PRIORITY 
          STD    T1 
          LDD    T2 
          SHN    14 
          LMN    EXQT 
          RJM    CET
          LDD    T1          SET ENTRY TIME 
          STM    TRMB+3 
          LDD    T2 
          STM    TRMB+4 
          LDN    0           SET TO READ CPA AND SYSTEM SECTOR
          RJM    RRF         READ ROLLOUT FILE
          ENDMS 
          RJM    CAA         READ RECOVERY WORDS
          ADN    3
          CRM    R1SS,ON
          CRM    R2SS,ON
          LDD    CP          SET SUBSYSTEM IDENTIFIER 
          ADN    JCIW 
          CRD    CM 
          LDD    CM+2 
          STM    R1SS 
          LDN    0
          STD    T7 
          SETMS  IO,RW
          LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WDS         WRITE SYSTEM SECTOR
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
          RJM    GTN         SET TERMINAL NAME IN PARAMETER BLOCK 
          LDC    CBUF+SRUW*5 TRANSFER SRU-S TO PARAMETER BLOCK
          RJM    TAS         TRANSFER ACCUMULATED SRU-S 
          LDN    3           SET WORD COUNT 
          STD    CM+1 
          LDD    MA          SET EJT STATUS CHANGES 
          CWM    TRMA,CM+1
          RJM    WCE         WRITE CHANGES TO EJT ENTRY 
*         LDN    0           SET NO ERROR 
          LJM    PERX        EXIT 
  
 TRMA     VFD    6/JSNE,6/4,6/7,42/NICS 
          VFD    6/JSNE,6/5,6/1,42/ROJS 
 TRMB     VFD    6/SCHE,6/24,6/0,42/0 
          TITLE  EJT SYSTEM REQUEST SUBROUTINES.
 GRE      SPACE  4,20 
**        GRE - GET REQUIRED EJT ENTRY. 
* 
*         ENTRY  (T4) = NUMBER OF ENTRIES LEFT TO SCAN. 
*                (EJ - EJ+1) = ADDRESS OF LAST ENTRY FOUND. 
* 
*         EXIT   (A) = 0 IF ENTRY FOUND.
*                (EJ - EJ+1) = ADVANCED TO CURRENT EJT ENTRY ADDRESS. 
*                *OLCS* CHANGED TO *NICS* IN EJT ENTRY IF RESET 
*                TIMEOUT REQUEST. 
*                EJT ENTRY INTERLOCKED IF FOUND.
*                TO *PERX* IF RETRY NECESSARY.
* 
*         USES   T1, T4, CM - CM+4, CN - CN+4, EJ - EJ+1, W3 - W3+4.
* 
*         CALLS  WCE. 
* 
*         MACROS MONITOR. 
  
  
 GRE      SUBR               ENTRY/EXIT 
          LDN    2
          STD    T1 
 GRE1     AOD    W1+4        INCREMENT EJT ORDINAL
          SOD    T4          DECREMENT ENTRIES TO SCAN
          MJN    GREX        IF AT END OF TABLE 
          LDN    EJTE        GET NEXT ENTRY ADDRESS 
          RAD    EJ+1 
          SHN    -14
          RAD    EJ 
 GRE1.1   SHN    14 
          LMD    EJ+1 
          ADK    JSNE 
          CRD    W3          READ EJT ENTRY 
          ADK    SCLE-JSNE
          CRD    CN 
          LDD    W3 
          ZJN    GRE1        IF NO EJT ENTRY
          LJM    GRE3        PROCESS *RCEJ* REQUEST 
*         PSN                (PROCESS *RTEJ* REQUEST) 
*         PSN 
 GREA     EQU    *-2
  
*         PSN                (PROCESS *RTEJ* REQUEST) 
  
*         PROCESS RESET TIMEOUT REQUEST.
  
          LDD    W3+4        COMPARE CONNECTION STATUS
          SHN    0-7
          LPN    17 
          LMN    OLCS 
          NJP    GRE1.4      IF NOT ON-LINE CONNECTION STATUS 
          LDD    W3+4        GET JOB STATUS 
          SHN    -1 
          LPN    37 
          STM    GREF+4 
          LMK    PRJS 
          ZJN    GRE1.2      IF PRE-INITIAL JOB STEP
          LMK    EXJS&PRJS
          ZJN    GRE1.2      IF EXECUTING JOB 
          LMK    ERJS&EXJS
          ZJN    GRE1.2      IF ERROR IN ROLLOUT FILE 
          LMK    PCJS&ERJS
          ZJN    GRE1.2      IF PCP JOB 
          LDN    1
 GRE1.2   ADN    3
          STD    CM+1        NUMBER OF CHANGES TO MAKE
          LDD    MA 
          CWM    GREE,CM+1
          RJM    WCE         CHANGE EJT CONNECTION STATUS 
          LDD    CM+1 
          ZJN    GRE1.3      IF REQUEST COMPLETED SUCCESSFULLY
          LDD    EJ 
          UJP    GRE1.1      RETRY THE REQUEST
  
 GRE1.3   LDC    4000+SYET   ALTERNATE EJT FLAG AND ERROR 
          STD    CM+1 
          LDD    W1+4        EJT ORDINAL
          STD    CM+2 
          LDD    W3          SET JSN
          STD    CM+3 
          LDD    W3+1 
          STD    CM+4 
          MONITOR  CEFM 
 GRE1.4   LDD    CN          COMPARE ORIGIN TYPE
          LPN    17 
          LMM    GRED+4 
          NJN    GRE2        IF NOT FOUND 
          LDD    W3+4        COMPARE JOB STATUS 
          LPN    77 
          LMN    SUJS*2 
          ZJN    GRE4        IF ENTRY FOUND 
 GRE2     LJM    GRE1        CHECK NEXT ENTRY 
  
*         PROCESS RECOVER JOB REQUEST.
  
 GRE3     LDD    W0          COMPARE JSN
          LMD    W3 
          NJN    GRE2        IF NOT FOUND 
          LDD    W0+1 
          LMD    W3+1 
          NJN    GRE2        IF NOT FOUND 
          LDD    W3+4        COMPARE CONNECTION STATUS
          SHN    -7 
          LPN    17 
          LMN    DTCS 
          NJN    GRE2        IF NOT DETACHED
 GRE4     LDN    42B         SET INTERLOCK AFTER TWO VERIFICATIONS
          STD    CM+1 
          LDD    EJ          SET ADDRESS OF EJT ENTRY 
          STD    CM+3 
          LDD    EJ+1 
          STD    CM+4 
          LDD    MA 
          CWM    GREC,T1
 GREB     EQU    *-1         ADDRESS OF REQUESTS
          MONITOR  UTEM 
          LDD    CM+1 
          SBN    1
          ZJN    GRE5        IF INTERLOCK SET 
          SBN    3-1
          ZJN    GRE5        IF INTERLOCK SET 
          LDD    CM+1 
          LJM    GREX        RETURN 
  
 GRE5     LDN    RTER        RETRY ERROR CODE 
          LJM    PERX        EXIT 
  
  
 GREC     VFD    1/1,5/JSNE,6/24D,6/36D,42/0  JSN (RCEJ)
          VFD    1/1,5/JSNE,6/4,6/7,42/DTCS  CONNECTION STATUS (RCEJ) 
 GRED     VFD    1/1,5/SCLE,6/4,6/48D,42/0  ORIGIN TYPE (RTEJ)
          VFD    1/1,5/JSNE,6/5,6/1,42/SUJS  JOB STATUS (RTEJ)
 GREE     VFD    1/1,5/JSNE,6/4,6/7,42/OLCS  CONNECTION STATUS (RTEJ) 
 GREF     VFD    1/1,5/JSNE,6/5,6/1,42/**  CONNECTION STATUS (RTEJ) 
          VFD    6/JSNE,6/4,6/7,42/NICS  CONNECTION STATUS (RTEJ) 
          VFD    6/JSNE,6/5,6/1,42/ROJS  JOB STATUS (RTEJ)
 PES      SPACE  4,10 
**        PES - PROCESS I/O ERROR STATUS. 
* 
*         ENTRY  (RDCT) = DRIVER STATUS.
* 
*         EXIT   TO *PERX* WITH (A) = *REER* IF RECOVERABLE DRIVER
*                    ERROR. 
*                TO *PERX* WITH (A) = *ERER* IF UNRECOVERABLE DRIVER
*                    ERROR. 
  
  
 PES      SUBR               ENTRY/EXIT 
          PJN    PESX        IF NO DRIVER ERROR 
          LDM    RDCT        CHECK DRIVER STATUS
          SHN    21-12
          PJN    PES1        IF RECOVERABLE ERROR 
          LDN    ERER        UNRECOVERABLE I/O ERROR ON DEVICE
          UJN    PES2        SET ERROR CODE 
  
 PES1     LDN    REER        RECOVERABLE DISK ERROR 
 PES2     LJM    PERX        EXIT 
 RRF      SPACE  4,15 
**        RRF - READ ROLLOUT FILE.
* 
*         ENTRY  (A) = 0, IF SYSTEM SECTOR READ NEEDED. 
*                      (EJEN) = EJT ENTRY.
*                    = 1, IF ONLY CPA SECTOR NEEDED.
*                      (T5 - T6) = ROLLOUT INFORMATION, SETMS DONE. 
* 
*         ERROR  TO *PERX* IF ERROR ON READ.
* 
*         USES   T5, T6, T7.
* 
*         CALLS  PES, RDS, RSS. 
* 
*         MACROS SETMS, ENDMS.
  
  
 RRF      SUBR               ENTRY/EXIT 
          NJN    RRF1        IF CPA SECTOR REQUEST
          LDM    EJEN+SCHE*5
          STD    T5 
          LDM    EJEN+SCHE*5+1
          STD    T6 
          SETMS  IO 
          LDN    0
          RJM    RSS         READ SYSTEM SECTOR 
          RJM    PES         PROCESS ERROR STATUS 
          NJN    RRF2        IF ERROR ENCOUNTERED 
          LDM    FNSS+4 
          SHN    -6 
          LMN    ROFT 
          ZJN    RRF1        IF ROLLOUT FILE TYPE 
          ENDMS 
          UJN    RRF2        PROCESS ROLLOUT FILE ERROR 
  
 RRF1     LDN    CPAI        READ CONTROL POINT AREA
          STD    T7 
          LDC    SBUF 
          RJM    RDS         READ CPA 
          RJM    PES         PROCESS ERROR STATUS 
          ENDMS 
          LDM    SBUF        CHECK LINKAGE
          ZJN    RRF2        IF NO LINK 
          LDM    SBUF+1 
          LMD    HN 
          ZJP    RRFX        IF FULL SECTOR READ
 RRF2     LDN    ERER        ERROR ENCOUNTERED ON DEVICE
          LJM    PERX        ERROR EXIT 
 SAM      SPACE  4,10 
**        SAM - SEND ACCOUNTING MESSAGE.
* 
*         ENTRY  (EJEN) = EJT ENTRY.
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  ACS, CAA, DFM. 
  
  
 SAM      SUBR               ENTRY/EXIT 
          LDM    EJEN+SCLE*5 SET SERVICE CLASS IN MESSAGE 
          SHN    -6 
          STM    SAMA+4 
          RJM    CAA         READ USER NAME 
          ADN    1
          CRD    CN 
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          LDC    FOTP        MOVE FAMILY NAME 
          CRD    CM 
          LDM    EJEN+JSNE*5+2
          SHN    -6 
          STD    T1 
          LDD    CM 
          SHN    14 
          ADD    CM+1 
          ADD    T1 
          CRD    CM          READ FOT ENTRY 
          LDD    W0 
          STM    SAMA        MOVE JSN 
          LDD    W0+1 
          STM    SAMA+1 
  
*         BUILD ACCOUNTING MESSAGE BUFFER.
  
          LDC    SAMC        SET BUFFER LOCATION
          STD    T1 
          LDN    CN          ADD USER NAME
          RJM    ACS
          LDC    SAME        ADD COMMA
          RJM    ACS
          LDN    CM          ADD FAMILY NAME
          RJM    ACS
          LDC    0
 SAMJ     EQU    *-1         DTEJ=1, RSEJ=0 (SET BY *DTC*)
          NJN    SAM1        IF DETACH OF JOB 
          LDC    SAME        ADD COMMA
          RJM    ACS
          LDM    SAMD+3      ENSURE VALID TERMINAL NAME 
          SCN    77 
          STM    SAMD+3 
          LDC    SAMD        ADD TERMINAL NAME
          RJM    ACS
 SAM1     LDC    SAMF        ADD PERIOD 
          RJM    ACS
          LDC    SAMA+AJNN
          RJM    DFM         SEND DAYFILE MESSAGE 
          LJM    SAMX        RETURN 
  
 SAMA     DATA   10LJSNA    SC
 SAMB     DATA   6LARUN,
 SAMC     BSSZ   17D         MESSAGE BUFFER 
 SAMD     DATA   9LTERMNAM
 SAME     DATA   2L,         COMMA AND SPACE
          CON    0           TERMINATOR 
 SAMF     DATA   1L.         PERIOD 
          CON    0           TERMINATOR 
 SEA      SPACE  4,10 
**        SEA - SET ENTRY ADDRESS.
* 
*         ENTRY  (W1+4) = EJT ORDINAL.
* 
*         EXIT   (A) = ADDRESS OF EJT ENTRY.
*                (EJ - EJ+1) = ADDRESS OF EJT ENTRY.
* 
*         MACROS  SFA.
  
  
 SEA      SUBR               ENTRY/EXIT 
          SFA    EJT,W1+4    READ EJT ENTRY 
          STD    EJ+1        SAVE ADDRESS 
          SHN    -14
          STD    EJ 
          SHN    14 
          LMD    EJ+1 
          UJN    SEAX        RETURN 
 SES      SPACE  4,10 
**        SES - SET UP EJT SEARCH.
* 
*         EXIT   (T4) = NUMBER OF POSSIBLE EJT ENTRIES. 
*                (EJ - EJ+1) = ADDRESS OF EJT ENTRY 0.
* 
*         USES   T2 - T6, EJ - EJ+1.
* 
*         MACROS SFA. 
  
  
 SES      SUBR               ENTRY/EXIT 
          LDN    EJTP 
          CRD    T2          SET T4 
          SOD    T4 
          LDD    T3          SET ADDRESS OF EJT 0 
          STD    EJ+1 
          LDD    T2 
          STD    EJ 
          UJN    SESX        RETURN 
 STO      SPACE  4,15 
**        STO - SET TIMEOUT.
* 
*         ENTRY  (EJ - EJ+1) = CM ADDRESS OF EJT ENTRY TO UPDATE. 
*                (CN - CN+4) = WORD *SCLE* OF EJT ENTRY.
*                (STOA) = TIMEOUT FLAG, 0 = ZERO TIMEOUT. 
*                (STOB) = INTERLOCK CLEAR FLAG, 0 = CLEAR.
*                (STOD) = DISABLE TIMEOUT UPDATE FLAG, 0 = DO NOT 
*                         UPDATE TIMEOUT IN EJT ENTRY.
* 
*         EXIT   SCHEDULE FIELD UPDATED IN EJT ENTRY, IF SO DESIRED.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  RJC, SFI, WCE. 
  
  
 STO      SUBR               ENTRY/EXIT 
 STOD     LDN    1
          ZJN    STOX        IF NOT UPDATING TIMEOUT IN EJT 
          LDC    RTCL        GET CLOCK TIME 
          CRM    STOC+3,ON
 STOA     LDN    0           TIMEOUT DELAY FLAG 
          ZJN    STO1        IF NO DELAY DESIRED
          LDD    CN 
          SHN    -6 
          RJM    RJC         GET JOB CONTROL AREA ADDRESS 
          ADN    SVJT 
          CRD    CM 
          LDD    CM+4        TIME DELAY 
          SHN    3           *10B 
          RAM    STOC+4 
          SHN    -14
          RAM    STOC+3 
 STO1     LDN    1           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    MA 
          CWM    STOC,CM+1   SET REQUEST
          RJM    WCE         WRITE CHANGE TO EJT
 STOB     LDN    0
          NJN    STOX        IF INTERLOCK CLEAR NOT REQUESTED 
          LDN    CEIN        CLEAR INTERLOCK
          STD    T1 
          LDD    EJ 
          SHN    14 
          ADD    EJ+1 
          RJM    SFI         CLEAR INTERLOCK
          LJM    STOX        RETURN 
  
  
 STOC     VFD    6/SCHE,6/24D,6/0,42/0
          VFD    36/0        SCRATCH FOR RTCL 
 TAS      SPACE  4,10 
**        TAS - TRANSFER ACCUMULATED SRU-S. 
* 
*         ENTRY  (A) = ADDRESS OF SRU ACCUMULATOR.
* 
*         EXIT   (W1 - W1+3) = ACCUMULATED SRU-S. 
* 
*         USES   T7.
  
  
 TAS      SUBR               ENTRY/EXIT 
          STM    TASA 
          LDD    W1-1 
          STD    T7 
          LDD    MA          SET SRU ACCUMULATOR
          CWM    *,ON 
 TASA     EQU    *-1
          SBN    1
          CRD    W1-1 
          LDD    W1 
          LPN    77 
          STD    W1 
          LDD    T7          SET OVERWRITTEN CELL 
          STD    W1-1 
          UJN    TASX        RETURN 
 VSC      SPACE  4,10 
**        VSC - VALIDATE SERVICE CLASS. 
* 
*         ENTRY  (EJEN+SCLE*5) = CURRENT SERVICE CLASS OF JOB.
*                (SC) = 0.
* 
*         EXIT   (SC) = SERVICE CLASS TO ASSIGN TO JOB. 
*                (SC) = 0, IF NO SERVICE CLASS CHANGE.
* 
*         ERROR  (A) = ERROR CODE.  EXIT TO *PERX*. 
* 
*         USES   OT, SC, T1, T2, T3, CM - CM+4, CN - CN+4.
* 
*         CALLS  RJC, VSP.
  
  
 VSC      SUBR               ENTRY/EXIT 
          LDM    EJEN+SCLE*5
          SHN    -6 
          STD    T1 
          RJM    RJC
          ZJN    VSCX        IF NO JCB DEFINED FOR SERVICE CLASS
          ADN    PFCT        GET SERVICE CLASS TO ASSIGN ON DETACH
          CRD    CM 
  
*         CHECK FOR IMMEDIATE TIMEOUT.  ON AN INVOLUNTARY DETACH WHEN 
*         THE SERVICE CLASS TIMEOUT DELAY IS ZERO, THE JOB WILL BE
*         ABORTED IMMEDIATELY.
  
          SBN    PFCT-SVJT   CHECK SUSPENSION TIMEOUT DELAY 
          CRD    CN 
          LDD    W2+1 
          SHN    -6 
          SBN    UDRC 
          ZJN    VSC2        IF USER DETACH 
          LDD    CN+4 
          ZJN    VSC1        IF INVOLUNTARY DETACH W/O TIMEOUT DELAY
          LDD    CM+4 
          STD    SC          CHANGE SERVICE CLASS UNCONDITIONALLY 
          UJN    VSCX        RETURN 
  
 VSC1     LDC    4000+STET   ABORT JOB WITH *STET* ERROR
          STD    CM+1 
          LDD    W1+4        EJT ORDINAL
          STD    CM+2 
          LDD    W0          SET JSN
          STD    CM+3 
          LDD    W0+1 
          STD    CM+4 
          MONITOR  CEFM 
          LDN    0
          UJN    VSC4        RETURN ERROR STATUS
  
 VSC2     LDD    T1 
          SBD    CM+4 
          ZJP    VSCX        IF NO CHANGE NECESSARY 
  
*         VALIDATE SERVICE CLASS. 
  
          LDN    IAOT        SET ORIGIN TYPE
          STD    OT 
          LDN    0           INDICATE NON-SUBSYSTEM AND NON-SSJ= JOB
          STD    T3 
          LDD    MA          GET SERVICE CLASS VALIDATION MASK
          CWM    VMSS-2,ON
          SBN    1
          CRD    CN 
          LDD    CM+4        SET SERVICE CLASS
          RJM    VSP         VALIDATE SERVICE CLASS 
          NJN    VSC3        IF ERROR 
          LDD    T2          SET SERVICE CLASS CHANGE 
          STD    SC 
          UJP    VSCX        RETURN 
  
 VSC3     SBN    2
          ZJN    VSC4        IF SERVICE CLASS NOT VALID FOR USER
          LDN    ISER&SFER
 VSC4     LMN    ISER        SET ERROR STATUS 
          LJM    PERX        PROCESS ERROR
 VUD      SPACE  4,15 
**        VUD - VALIDATE USER DETACH. 
* 
*         ENTRY  (CBUF) = CPA FROM ROLLOUT FILE.
*                (EJ - EJ+1) = ADDRESS OF EJT ENTRY.
*                (EJEN) = EJT ENTRY.
* 
*         ERROR  (A) = ERROR CODE - EXIT TO *PERX*. 
* 
*         USES   T0 - T7, CM - CM+4, CN.
* 
*         CALLS  DTI. 
  
  
 VUD      SUBR               ENTRY/EXIT 
          LDD    W2+1 
          SHN    -6 
          SBN    UDRC 
          MJN    VUDX        IF NOT USER DETACH, DO NOT VALIDATE
          LDM    CBUF+ACLW*5+3
          RJM    DTI         GET DETACH LIMIT 
          MJN    VUDX        IF UNLIMITED 
          ZJN    VUD2        IF DETACH NOT ALLOWED
          STD    CN          STORE DETACH COUNT 
  
*         SET UP FAMILY ORDINAL AND USER INDEX. 
  
          LDD    EJ 
          SHN    14 
          LMD    EJ+1 
          CRD    T0          (T2-T3) = FAMILY ORDINAL AND USER INDEX
          LDN    EJTP 
          CRD    T4          (T4-T5) = EJT ADDRESS, (T6) = ENTRY COUNT
  
*         COUNT DETACHED JOBS FOR THIS FO/UI. 
  
 VUD1     LDN    EJTE 
          RAD    T5 
          SHN    -14
          RAD    T4 
          SHN    14 
          LMD    T5 
          CRD    CM          READ *JSNE* OF NEXT ENTRY
          LDD    CM+2 
          LMD    T2 
          NJN    VUD3        IF NO MATCH
          LDD    CM+3 
          LMD    T3 
          NJN    VUD3        IF NO MATCH
          LDD    CM+4        CHECK CONNECTION STATUS
          SHN    -7 
          LPN    17 
          LMN    DTCS 
          NJN    VUD3        IF NOT DETACHED
          SOD    CN 
 VUD2     ZJN    VUD4        IF LIMIT EXCEEDED
 VUD3     SOD    T6          DECREMENT EJT ENTRY COUNT
          NJN    VUD1        IF SCAN NOT COMPLETE 
          LJM    VUDX        RETURN IF VALIDATED
  
 VUD4     LDN    DLER        DETACH LIMIT EXCEEDED ERROR CODE 
          LJM    PERX        ERROR EXIT 
 WCE      SPACE  4,10 
**        WCE - WRITE CHANGES TO EJT. 
* 
*         ENTRY  (CM+1) = NUMBER OF CHANGES TO MAKE.
*                (EJ - EJ+1) = ADDRESS OF EJT ENTRY TO CHANGE.
* 
*         EXIT   (A) = 0. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 WCE      SUBR               ENTRY/EXIT 
          LDN    0
          STD    CM+2 
          LDD    EJ 
          STD    CM+3 
          LDD    EJ+1 
          STD    CM+4 
          MONITOR  UTEM      UPDATE SCHEDULE FIELD AND JOB STATUS 
*         LDN    0
          UJN    WCEX        EXIT 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 AST$     SET    1           ASSEMBLE SSCT/SSAT UPDATE FUNCTIONS
*CALL     COMPACS 
*CALL     COMPAST 
 QUAL$    SET    0
 DTI$     SET    1
 CET$     EQU    1           DEFINE *CET* ASSEMBLY
*CALL     COMPCPE 
*CALL     COMPCVI 
*CALL     COMPRJC 
*CALL     COMPRSS 
 CJL$     EQU    1           CHECK SERVICE CLASS AT JOB LIMIT 
 CUV$     EQU    1           CHECK SERVICE CLASS VALID FOR USER 
*CALL     COMPVSP 
          SPACE  4,10 
 EJEN     EQU    *
 SBUF     EQU    BFMS-506B   SECTOR BUFFER
 CBUF     EQU    SBUF+2      CPA BUFFER 
          ERRNG  SBUF-EJEN-5*EJTE  EJT ENTRY OVERFLOWS SECTOR BUFFER
          OVERFLOW E1MA 
          OVERLAY  (HIGH USAGE EJT SYSTEM REQUEST PROCESSORS.),E1MA 
 2MD      SPACE  4,10 
****      *2MD* - HIGH USAGE EJT SYSTEM REQUEST PROCESSORS. 
  
  
 PRS      SUBR               ENTRY/EXIT 
          UJN    PRSX        EXIT 
 FTJ      SPACE  4,10 
**        FTJ - FREEZE TERMINAL JOB.
* 
*         *FTJ* FREEZES THE JOB BY ROLLING IT OUT AND SETTING *DOJS*
*         IN THE EJT ENTRY TO KEEP IT ROLLED OUT.  *FTJ* THEN ISSUES
*         A NULL *TSEM* REQUEST TO INFORM IAF THAT THE SYSTEM NO
*         LONGER HAS CONTROL OF THE JOB.  THE JOB STATUS
*         CONTAINED IN THE EJT IN THE SYSTEM SECTOR IS THE STATUS 
*         AT THE TIME THE JOB LAST ROLLED OUT.
* 
*         ENTRY  (W1+4) = EJT ORDINAL.
* 
*         USES   T1, W5, CM - CM+4, CN - CN+4.
* 
*         CALLS  CAA, IUT.
* 
*         MACROS DELAY, MONITOR, PAUSE. 
  
  
 FTJ      BSS    0           ENTRY
          LDK    10000+FTJB 
          RJM    IUT         SET FORCED ROLLOUT AND CLEAR FORCED ROLLIN 
          SFA    EJT,W1+4    CHECK FOR *EXJS* JOB STATUS
          ADK    JSNE 
          CRD    CM 
          ADK    SCHE-JSNE
          CRD    CN 
          LDD    CM+4        CHECK CONNECTION STATUS
          SHN    -7 
          LPN    17 
          SBN    OLCS 
          NJP    FTJ3        IF NOT ONLINE
          LDD    CM+4 
          LPN    76 
          SHN    -1 
          LMN    EXJS 
          ZJN    FTJ0        IF JOB IN CM 
          LMN    PCJS&EXJS
          NJN    FTJ1        IF JOB NOT AT PCP
          LCN    2
          RAM    FTJD 
  
*         CLEAR INTERLOCK IN ORDER TO ISSUE THE *ROCM*. 
*         REQUEST ROLLOUT AND THEN RETURN THE RETRY ERROR CODE TO 
*         GIVE THE JOB TIME TO ROLL.
  
 FTJ0     LDC    400000      CLEAR INTERLOCK
          RJM    IUT
          LDN    ZERL 
          CRD    CM 
          LDC    4000+ROSR   SELECT SCHEDULER ROLLOUT OPTION
          STD    CM+1 
          LDD    CN+3        SET CONTROL POINT
*         LDD    CN+1        (PCP JOB)
 FTJD     EQU    *-1
          STD    CM+2 
          MONITOR  ROCM 
          LDK    RTER        RETURN RETRY ERROR CODE
          LJM    PERX        CLEAR INTERLOCK AND DROP 
  
*         IF ROLLED JOB IS NOT IN *IOJS* NOR *DOJS* STATUS, 
*         THEN SEND A NULL *TSEM* REQUEST TO SET *VROT* COMPLETE
*         AND SET *DOJS* JOB STATUS IN THE EJT. 
  
 FTJ1     LMK    DOJS&PCJS
          ZJN    FTJ2        IF *DOJS* JOB STATUS 
          LMK    IOJS&DOJS
          ZJN    FTJ2        IF *IOJS* JOB STATUS 
          AOM    FTJA        SET *DOJS* JOB STATUS
          LDD    CM+4 
          LPN    76 
          SBN    SUJS*2 
 FTJ2     ZJP    FTJ3        IF SUSPENDED 
          RJM    CAA         LOAD WORD 5 FROM PARAMETER BLOCK 
          ADN    5           GET THE TERMINAL NUMBER
          CRD    W5 
          LDK    ZERL        ISSUE *VASO* *TSEM* REQUEST
          CRD    CM 
          LDD    TN 
          STD    CM+4 
          LDK    VASO 
          STD    CM 
          LDD    MA 
          CWD    CM 
 FTJ2.1   LDK    ZERL 
          CRD    CM 
          MONITOR  TSEM 
          LDD    CM+1 
          ZJN    FTJ3        IF *IAF* INACCESSIBLE OR ERROR 
          LMC    7777 
          NJN    FTJ3        IF REQUEST COMPLETE
          PAUSE  ST 
          LDC    3600        *TSEM* QUEUE FULL - DELAY AND RETRY
          STD    T1 
 FTJ2.2   DELAY 
          SOD    T1 
          ZJN    FTJ2.1      IF TIME TO REISSUE REQUEST 
          UJN    FTJ2.2      CONTINUE TO DELAY
  
*         CLEAR FORCED ROLLOUT AND EXIT.
  
 FTJ3     LDC    1*10000+FTJC  CLEAR FORCED ROLLOUT 
*         LDC    2*10000+FTJC  SET *DOJS* STATUS ALSO 
 FTJA     EQU    *-2
          RJM    IUT
          LDD    W1+4        MUST CLEAR INTERLOCK BEFORE DROPPING 
          STM    PERB 
          LDN    0           INDICATE NO ERRORS 
          LJM    PERX        CLEAR INTERLOCK AND DROP 
  
 FTJB     VFD    1/0,5/SCLE,6/2,6/52D,42/2  SET ROLLOUT, CLEAR ROLLIN 
 FTJC     VFD    1/0,5/SCLE,6/1,6/53D,42/0  CLEAR FORCED ROLLOUT
          VFD    1/0,5/JSNE,6/5,6/1,42/DOJS SET *DOJS* JOB STATUS 
 SUB      SPACE  4,10 
**        SUB - SET USER BREAK IN EJT ENTRY.
* 
*         ENTRY  (W1+3) = USER BREAK ERROR FLAG.
*                (W1+4) = EJT ORDINAL.
* 
*         CALLS  IUT. 
  
  
 SUB      BSS    0           ENTRY
  
*         WHEN SETTING A USER BREAK ERROR FLAG ON A JOB RECENTLY
*         RECOVERED, THE JOB STATUS COULD BE *SUJS*.  IF SO, CHANGE 
*         THE STATUS TO *DOJS* SO THAT THE JOB CAN BE ENABLED TO
*         PROCESS THE ERROR FLAG. 
  
          SFA    EJT,W1+4    CHECK FOR *SUJS* STATUS
          ADK    JSNE 
          CRD    CM 
          LDD    CM+4 
          LPN    76 
          SBN    SUJS*2 
          NJN    SUB1        IF NOT *SUJS* STATUS 
          AOM    SUBA        SET *DOJS* STATUS
 SUB1     LDD    W1+3 
          STM    SUBB+4 
          LDC    1*10000+SUBB  SET USER BREAK ERROR FLAG
*         LDC    2*10000+SUBB  SET *DOJS* STATUS ALSO 
 SUBA     EQU    *-2
          RJM    IUT         ISSUE *UTEM* 
          LJM    PERX        DROP 
  
 SUBB     VFD    1/0,5/PRFE,6/12D,6/36D,42/0  SET USER BREAK ERROR FLAG 
          VFD    1/0,5/JSNE,6/5,6/1,42/DOJS   SET *DOJS* JOB STATUS 
          TITLE  EJT SYSTEM REQUEST SUBROUTINES.
          TITLE  USER BREAK SUBROUTINES.
 IUT      SPACE  4,15 
**        IUT - ISSUE *UTEM* MONITOR FUNCTION.
* 
*         ENTRY  (A) = 1/I, 2/, 3/C, 12/P 
*                      I = 0 IF INTERLOCK SHOULD BE SET.
*                        = 1 IF INTERLOCK SHOULD BE CLEARED.
*                      C = NUMBER OF *UTEM* PARAMETER WORDS.
*                        = 0 IF INTERLOCK REQUEST.
*                      P = PARAMETER LIST ADDRESS.
*                (W1+4) = EJT ORDINAL.
* 
*         EXIT   (A) = 0 IF *UTEM* FUNCTION WAS SUCCESSFUL. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 IUT      SUBR               ENTRY/EXIT 
          STM    IUTA        PARAMETER LIST ADDRESS 
          SHN    -14
          STD    CM+1 
          LPN    7           NUMBER OF PARAMETER WORDS
          ZJN    IUT1        IF NO PARAMETER WORDS
          STD    CM+2 
          LDD    MA          WRITE PARAMETERS TO MESSAGE BUFFER 
          CWM    **,CM+2
 IUTA     EQU    *-1
          LDN    0
 IUT1     STD    CM+2 
          SFA    EJT,W1+4    SET UP EJT ADDRESS 
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          MONITOR  UTEM 
          LDD    CM+1 
          UJN    IUTX        RETURN 
          SPACE  4,10 
          OVERFLOW E1MA 
          OVERLAY  (PROCESS CLOCK UPDATE.),E1MA 
 PCU      SPACE  4,10 
***       *PCU* - PROCESS CLOCK UPDATE. 
* 
*         *PCU* WILL DELAY INTERNALLY UNTIL *PDTL* INDICATES THAT A 
*         MINUTE ROLLOVER OCCURS (DUE TO THE HARDWARE CHARACTERISTICS 
*         OF THE WALL CLOCK CHIP HARDWARE IN SOME CYBER 180 MODELS) 
*         AND THEN WRITE A REQUEST INTO THE *DFT/OS BUFFER* SO THAT 
*         *1MB* WILL BE CALLED BY *MTR* TO UPDATE THE WALL CLOCK CHIP 
*         (IF PRESENT) AND/OR CTI-MAINTAINED CLOCK VIA *DFT*. 
  
  
 PCU      SUBR               ENTRY/EXIT 
          RJM    PRS         PRESET PROGRAM 
          RJM    WDC         WAIT FOR DEADSTART COMPLETE
          RJM    WIB         WAIT FOR INACTIVE NOS REQUEST AREA 
          RJM    WMR         WAIT FOR MINUTE ROLLOVER 
          RJM    FDR         FORMAT *DFT* REQUEST ENTRY 
          RJM    CRF         CLEAR CTI CLOCK UPDATE ACTIVE FLAG 
          UJN    PCUX        RETURN 
          TITLE  SUBROUTINES. 
 CRF      SPACE  4,10 
**        CRF - CLEAR CTI CLOCK UPDATE ACTIVE FLAG. 
* 
*         EXIT   CTI CLOCK UPDATE ACTIVE FLAG CLEARED IN CMR. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 CRF      SUBR               ENTRY/EXIT 
          LDN    ZERL        SET UP *UADM* CALL 
          CRD    CM 
          AOD    CM+1        SET OPTION COUNT 
          STD    CM+2        SET *NODROP* FLAG
          LDD    MA          WRITE *UADM* PARAMETERS
          CWM    CRFA,ON
          MONITOR  UADM      CLEAR CTI CLOCK UPDATE ACTIVE FLAG 
          UJN    CRFX        RETURN 
  
  
*         *UADM* PARAMETERS TO CLEAR CTI CLOCK UPDATE ACTIVE FLAG.
  
 CRFA     VFD    12/LDOS,12/INWL,12/3*100+1,24/0
 FDR      SPACE  4,10 
**        FDR - FORMAT *DFT* REQUEST. 
* 
*         EXIT   FORMATTED REQUEST WRITTEN TO NOS REQUEST AREA. 
* 
*         USES   T1, CM - CM+4, CN - CN+4.
* 
*         CALLS  PDT, SDA.
* 
*         MACROS DELAY, MONITOR.
  
  
 FDR      SUBR               ENTRY/EXIT 
  
*         OBTAIN INTERLOCK ON NOS REQUEST AREA. 
  
 FDR1     RJM    SDA         SET ADDRESS OF NOS REQUEST HEADER
          STD    CM+4        SAVE ADDRESS FOR *UTEM*
          SHN    -14
          STD    CM+3 
          LDN    2           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    MA          WRITE REQUESTS TO MESSAGE BUFFER 
          CWM    FDRB,CM+1
          MONITOR  UTEM      ATTEMPT TO GET INTERLOCK 
          LDD    CM+1        CHECK STATUS 
          ZJN    FDR2        IF INTERLOCK OBTAINED
          DELAY 
          UJN    FDR1        RETRY INTERLOCK ATTEMPT
  
*         FORMAT REQUEST. 
  
 FDR2     LDN    /DFT/RQDT   SET TASKID FOR CLOCK UPDATE
          STD    T1 
          RJM    PDT         PACK DATE AND TIME 
          LDN    ACPL        CHECK CPU-0 *OFF* STATUS 
          CRD    CM 
          LDD    CM 
          SHN    21-13
          PJN    FDR3        IF CPU-0 *ON*
          AOM    FDRA        CHANGE TO READ *FRC* FOR CPU-1 
 FDR3     LDC    CMTP 
          CRD    CM 
          LDD    CM+3        SET FWA OF *CPUMTR*
          SHN    14 
          LMD    CM+4 
 FDRA     ADN    CPBT        READ *FRC* FOR CPU-0 
*         ADN    CPBT+1      (CPU-0 *OFF*)
          CRD    CM 
  
*         THE FOLLOWING CODE ASSUMES THERE IS ONLY ONE REQUEST BUFFER 
*         WHICH IMMEDIATELY FOLLOWS THE REQUEST HEADER. 
  
          RJM    SDA         SET ADDRESS OF NOS REQUEST HEADER
          ADN    1
          CWD    T1          WRITE REQUEST TO BUFFER
          ADN    1
          CWD    CM 
          SBN    2           READ NOS REQUEST HEADER
          CRD    CN 
          LDN    /DFT/STRY   SET STATUS = *READY* 
          STD    CN+4 
          RJM    SDA         SET ADDRESS OF NOS REQUEST HEADER
          CWD    CN 
          LJM    FDRX        RETURN 
  
  
*         *UTEM* REQUEST PARAMETERS.
  
 FDRB     VFD    1/1,5/0,6/12D,6/0,42//DFT/STIN  VERIFY INACTIVE
          VFD    1/0,5/0,6/12D,6/0,42//DFT/STIK  SET INTERLOCK
 PDT      SPACE  4,10 
**        PDT - PACK DATE AND TIME. 
* 
*         EXIT   (T1+1 - T1+4) = PACKED DATE AND TIME IN *DFT* FORMAT.
* 
*         USES   CM - CM+4. 
  
  
 PDT      SUBR               ENTRY/EXIT 
          LDN    DTEL        READ DISPLAY DATE
          CRD    CM 
          LDD    CM          PROCESS YEAR FIELD 
          LPN    77 
          SBN    1R0
          SHN    10 
          STD    T1+1 
          LDD    CM+1 
          SHN    -6 
          SBN    1R0
          SHN    4
          RAD    T1+1 
          LDD    CM+2        PROCESS MONTH FIELD
          SHN    -6 
          SBN    1R0
          RAD    T1+1 
          LDD    CM+2 
          LPN    77 
          SBN    1R0
          SHN    10 
          STD    T1+2 
          LDD    CM+3        PROCESS DAY FIELD
          LPN    77 
          SBN    1R0
          SHN    4
          RAD    T1+2 
          LDD    CM+4 
          SHN    -6 
          SBN    1R0
          RAD    T1+2 
          LDN    TIML        READ DISPLAY TIME
          CRD    CM 
          LDD    CM          PROCESS HOUR FIELD 
          LPN    77 
          SBN    1R0
          SHN    10 
          STD    T1+3 
          LDD    CM+1 
          SHN    -6 
          SBN    1R0
          SHN    4
          RAD    T1+3 
          LDD    CM+2        PROCESS MINUTES FIELD
          SHN    -6 
          SBN    1R0
          RAD    T1+3 
          LDD    CM+2 
          LPN    77 
          SBN    1R0
          SHN    10 
          STD    T1+4 
*         LDN    0           PROCESS SECONDS FIELD
*         RAD    T1+4 
          LJM    PDTX        RETURN 
 SDA      SPACE  4,10 
**        SDA - SET NOS REQUEST HEADER ADDRESS. 
* 
*         EXIT   (A) = ADDRESS OF NOS REQUEST HEADER. 
  
  
 SDA      SUBR               ENTRY/EXIT 
 SDAA     LDC    **          (ADDRESS OF NOS REQUEST HEADER)
          UJN    SDAX        RETURN 
 WDC      SPACE  4,10 
**        WDC - WAIT FOR DEADSTART COMPLETE.
* 
*         EXIT   DEADSTART COMPLETED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS DELAY. 
  
  
 WDC      SUBR               ENTRY/EXIT 
 WDC1     LDK    INWL        READ INTERLOCK WORD
          CRD    CM 
          LDD    CM+3 
          SHN    21-3 
          PJN    WDCX        IF DEADSTART SEQUENCING COMPLETE 
          DELAY  1*10        DELAY FOR ONE MILLISECOND
          UJN    WDC1        RECHECK DEADSTART IN PROGRESS
 WIB      SPACE  4,10 
**        WIB - WAIT FOR INACTIVE NOS REQUEST AREA. 
* 
*         THIS ROUTINE IS NEEDED TO AVOID A LARGE TIME ERROR WHEN 
*         *1MA* IS CALLED DURING DEADSTART, SINCE THE REQUEST BUFFER
*         WILL INITIALLY CONTAIN THE *SET*-SUPPLIED ERROR THRESHOLDS. 
* 
*         CALLS  SDA. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS DELAY. 
  
  
 WIB      SUBR               ENTRY/EXIT 
 WIB1     RJM    SDA         READ NOS REQUEST HEADER
          CRD    CM 
          LDD    CM+4 
          ZJN    WIBX        IF NO REQUEST PRESENT
          DELAY 
          UJN    WIB1        LOOP TILL REQUEST CLEARS 
 WMR      SPACE  4,10 
**        WMR - WAIT FOR MINUTE ROLLOVER. 
* 
*         EXIT   MINUTE ROLLOVER HAS JUST OCCURRED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS DELAY. 
  
  
 WMR      SUBR               ENTRY/EXIT 
 WMR1     LDN    PDTL        READ PACKED DATE AND TIME
          CRD    CM 
          LDD    CM+4        GET SECONDS
          LPN    77 
          ZJN    WMRX        IF MINUTE JUST ROLLED OVER 
          DELAY  1*10        DELAY FOR ONE MILLISECOND
          UJN    WMR1        RECHECK TIME 
          TITLE  PRESET PROGRAM.
 PRS      SPACE  4,10 
**        PRS - PRESET PROGRAM. 
* 
*         EXIT   (SDAA) = ADDRESS OF NOS REQUEST HEADER.
  
  
 PRS      SUBR               ENTRY/EXIT 
          LDN    EIBP        LOCATE DFT/OS BUFFER 
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          ADN    DSCM+3 
          CRD    CM 
          LDD    CM+2        READ *DFT* CONTROL WORD
          SHN    14 
          LMD    CM+3 
          SHN    -4 
          SHN    6
          LMD    CM 
          ADN    /DFT/DFRQ   READ NOS REQUEST AREA POINTER
          CRD    CM 
          LDD    CM+2        SET ADDRESS OF NOS REQUEST HEADER
          SHN    14 
          LMD    CM+3 
          SHN    -4 
          SHN    6
          LMD    CM 
          STM    SDAA+1      SAVE ADDRESS 
          SHN    -14
          RAM    SDAA 
          UJN    PRSX        RETURN 
  
          OVERFLOW E1MA 
          OVERLAY  (LOG SOFTWARE ERROR.),E1MA 
          SPACE  4,10 
****      *2MG* - LOG SOFTWARE ERROR. 
* 
*         *2MG* LOGS A SOFTWARE ERROR.  AN ERROR LOG MESSAGE IS 
*         ISSUED INDICATING THE NAME OF THE PP PROGRAM AND
*         THE ADDRESS WITHIN THE PP PROGRAM WHERE THE ERROR 
*         WAS DETECTED.  AN OPERATOR ERROR LOG EVENT IS ISSUED
*         TO ALERT THE OPERATOR THAT THE ERROR LOG MESSAGE WAS ISSUED.
*         A BML MESSAGE IS ALSO ISSUED. 
 LCE      SPACE  4,10 
***       LCE - LOG SOFTWARE ERROR. 
* 
*         ENTRY 
*T IR     18/  *1MA*, 1/, 5/CP, 12/7, 24/ADDR 
*         CP     CONTROL POINT NUMBER.
*         ADDR   ABSOLUTE ADDRESS OF ARGUMENTS. 
* 
*T ADDR   60/IL 
*T,ADDR+1 6/, 6/AF, 12/PA, 24/JSN, 12/SC
*T,ADDR+2 60/IR 
*T,ADDR+3 60/OR 
*T,ADDR+4 60/MB 
*         IL     INTERLOCK, SET BY *CPUMTR*, CLEARED BY *1MA*.
*         AF     ABORT FLAG.
*                0 - NO USER JOB IMPACT.
*                1 - JOB STEP ABORTED.
*                2 - JOB ABORTED. 
*                3 - PP HUNG. 
*         PA     ADDRESS IN PP PROGRAM WHERE ERROR DETECTED.
*         JSN    JSN OF JOB PP ASSIGNED TO OR ZERO. 
*         SC     JOB SERVICE CLASS.(ONE DISPLAY CHARACTER SERVICE CODE) 
*         IR     INPUT REGISTER OF PP THAT DETECTED ERROR.
*         OR     OUTPUT REGISTER OF PP THAT DETECTED ERROR. 
*         MB     FIRST WORD OF MESSAGE BUFFER OF PP THAT
*                DETECTED ERROR.
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         CALLS  C2D, DFM.
* 
*         MACROS MONITOR. 
  
  
 LCE      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    CM 
          LDD    IR+3        GET ADDRESS OF ARGUMENTS 
          SHN    14 
          LMD    IR+4 
          ADN    1
          CRD    CN          GET ARGUMENTS
          CRM    LCEB+5,ON
          CRM    LCEB+2*5,TR
          SBN    5
          CWD    CM          CLEAR BUFFER INTERLOCK 
  
*         FORM *ERRLOG* MESSAGE.
  
          LDM    LCEB+2*5+1  STORE PP PROGRAM NAME
          SCN    77 
          SHN    6
          ADM    LCEB+2*5 
          SHN    6
          STM    LCEA+1*5+1 
          SHN    -14
          LMC    5500 
          STM    LCEA+5 
          LDD    CN+1        STORE P ADDRESS
          SHN    -6 
          RJM    C2D         CONVERT TO DISPLAY CODE
          STM    LCEA+1*5+3 
          LDD    CN+1 
          RJM    C2D         CONVERT TO DISPLAY CODE
          STM    LCEA+1*5+4 
          LDD    CN+2 
          ZJN    LCE1        IF NO JSN SUPPLIED 
          STM    LCEA        STORE JSN IN ERROR LOG MESSAGE 
          LDD    CN+3 
          STM    LCEA+1 
          LDD    CN+4        STORE SERVICE CLASS
          STM    LCEA+4 
 LCE1     LDC    LCEA+EJNN
          RJM    DFM         ISSUE DAYFILE MESSAGE TO ERROR LOG 
*         LDN    0           ISSUE ERROR LOG EVENT
          STD    CM+1 
          STD    CM+3 
          LDN    ELAE 
          STD    CM+4 
          MONITOR  EATM 
          LDN    LCEBL       SET LENGTH OF BML MESSAGE
          STD    CM+1 
          LDC    LCEB+BMLN
          RJM    DFM         ISSUE MESSAGE TO BML 
          LJM    LCEX        RETURN 
  
 LCEA     VFD    24/4L"SJSN",24/-0,12/SYSC
          DATA     C* PPN P0000 SYSTEM ERROR.*
  
 LCEB     CON    /COMSDFS/SM0411  BML MESSAGE BUFFER
          CON    /COMSDFS/SS0100
          CON    0,0,0
          BSS    5           ARGUMENTS
          BSS    5           *IR* OF PP THAT DETECTED ERROR 
          BSS    5           *OR* OF PP THAT DETECTED ERROR 
          BSS    5           FIRST WORD OF MESSAGE BUFFER 
 LCEBL    EQU    *-LCEB      LENGTH OF BML MESSAGE
          SPACE  4,10 
**        COMMON DECKS. 
  
  
  
*CALL     COMPC2D 
  
          SPACE 4,15
          OVERLAY (CPP REQUEST PROCESSORS.),E1MA
          SPACE  4,10 
****      *2MH* - CPP REQUEST PROCESSORS. 
* 
*         *2MH* PROCESSES THE *1MA* FUNCTIONS FOR CONCURRENT PP-S.
* 
*         ENTRY 
*T IR     18/  *1MA*,1/,5/ CP,12/ FUNC,12/,12/ IA 
*         CP     SYSTEM CONTROL POINT NUMBER. 
*         FUNC   FUNCTION CODE. 
*                10 = LOAD CPP RESIDENT.
*                11 = LOAD OVERLAY FOR CPP. 
*                12 = IDLE CPP. 
*         IA     CPP INPUT REGISTER ADDRESS.
 DIRECT   SPACE  4,10 
**        DIRECT CELLS. 
  
  
 CC       EQU    FN          CPP-S CONTROL POINT ADDRESS
 DA       EQU    FN+1        TEMPORARY USED BY *LPR*
 DB       EQU    FN+2        TEMPORARY USED BY *LPR*
 EC       EQU    FN+3        C180 IOU CONNECT CODE
 NC       EQU    FN+4        NUMBER OF CPP-S
 NP       EQU    FS          NUMBER OF NPP-S
 PC       EQU    FS+1        FWA OF PP COMMUNICATION AREA FOR CPP 0 
 PN       EQU    FS+2        THE NUMBER OF THE CPP
 PP       EQU    FS+3        FWA OF PP COMMUNICATION AREA 
 RN       EQU    FS+4        C180 REGISTER NUMBER 
 COMMON   SPACE  4,10 
*         COMMON DECKS. 
  
  
 QUAL$    EQU    1           DO NOT QUALIFY COMMON DECKS
  
*CALL     COMPIOU 
*CALL     COMPMRM 
*CALL     COMSDFS 
*CALL     COMSIOU 
 CPP      SPACE 4,30
**        CPP - CONCURRENT PP PROCESSOR.
* 
*         *CPP* VERIFIES THE REQUEST, INITIALIZES MEMORY CELLS, AND 
*         CALLS THE APPROPRIATE PROCESSOR.
* 
*         ENTRY  (IR - IR+4) = REQUEST. 
*                (CN - CN+4) = OVERLAY LOAD PARAMETERS. 
* 
*         EXIT - TO CORRECT CPP SUBPROCESSOR. 
*                (CC) = CONTROL POINT AREA ADDRESS OF CALLER. 
*                (EC) = IOU CONNECT CODE. 
*                (NC) = NUMBER OF CIO PP-S. 
*                (NP) = NUMBER OF NIO PP-S. 
*                (PC) = PP COMMUNICATION AREA ADDRESS FOR FIRST CIO PP. 
*                (PN) = CIO PP NUMBER.
*                (PP) = PP COMMUNICATION AREA ADDRESS FOR FIRST NIO PP. 
*                (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
*                (CPPB) = STATUS REGISTER NUMBER. 
*                (CPPC) = BIASED CIO PP NUMBER. 
*                (CPPD) = IOU MODEL NUMBER. 
* 
*         ERROR  TO *CHG* TO HANG THE PP IF INCORRECT CPP FIELD.
* 
*         USES   CC, EC, NC, NP, PC, PN, PP, CM - CM+4, CN - CN+4.
* 
*         CALLS  AIC, CHG, DPL, SPB.
  
  
 CPP      SUBR               ENTRY/EXIT 
          LDD    MA          SAVE LOAD PARAMETERS 
          CWD    CN 
          LDN    PPCP        GET PP COMMUNICATION AREA ADDRESS
          CRD    CM 
          ADK    EABL+IOEI-PPCP  GET IOU CONNECT CODE 
          CRD    CN 
          LDD    CM+4 
          STD    PP          SET PP COMMUNICATION AREA ADDRESS
          LDD    CN+3 
          STD    EC          SET IOU CONNECT CODE 
          LDN    PPUL        GET NUMBER OF PP-S AND CPP-S 
          CRD    CM 
          LDD    CM+3        VALIDATE THAT CPP-S ARE PRESENT
          LPN    77 
          ZJN    CPP1        IF NO CPP-S
          STD    NC          SET NUMBER OF CPPS 
          LDD    CM+2 
          STD    NP 
          SHN    3
          ADD    PP 
          STD    PC          SET ADDRESS OF FIRST CPP 
          LDD    IR+4 
          CRD    CM          READ CPP-S INPUT REGISTER
          SBD    PC 
          MJN    CPP1        IF NOT A CPP INPUT REGISTER ADDRESS
          SHN    -3 
          STD    PN          SET THE CPP NUMBER 
          SBD    NC 
          MJN    CPP1.1      IF A VALID CPP 
 CPP1     LJM    CPP3        CONDITIONALLY HANG PP
  
 CPP1.1   LDD    CM+1        SET CONTROL POINT ADDRESS
          LPN    37 
          SHN    7
          STD    CC 
          LDK    ECCR        SET ENVIRONMENTAL CONTROL REGISTER NUMBER
          STM    CPPA 
          ADK    SRCR-ECCR   SET STATUS REGISTER NUMBER 
          STM    CPPB 
          LDD    PN          SET CIO PP NUMBER
          STM    CPPC 
          LDD    CN+1 
          SCN    77 
          SHN    6
          LMD    CN 
          SHN    6
          CRD    CN          GET IOU MODEL NUMBER 
          LDD    CN+2 
          SHN    -4 
          STM    CPPD 
          LMC    0#42 
          NJN    CPP1.2      IF NOT MODEL 42 IOU
          LDK    DEMR        SET ENVIRONMENTAL CONTROL REGISTER NUMBER
          STM    CPPA 
          ADK    ISTR-DEMR   SET STATUS REGISTER NUMBER 
          STM    CPPB 
          LDN    30          BIAS CIO PP NUMBER 
          RAM    CPPC 
  
*         CALCULATE CPP SUBFUNCTION AND PROCESS IT. 
  
 CPP1.2   LDD    IR+2 
          SBN    11B
          PJN    CPP2        IF NOT DEADSTART A CPP AND LOAD *PPR*
          LDD    PN          PP NUMBER
          LMC    10000
          RJM    SPB         SET LOWER PP BIT 
          RJM    DPL         DEADSTART PP AND LOAD *PPR*
          UJN    CPP4        RETURN 
  
 CPP2     NJN    CPP5        IF NOT LOAD CPP OVERLAY REQUEST
          RJM    LOV         LOAD CPP OVERLAY 
          UJN    CPP4        RETURN 
  
 CPP3     RJM    CHG         CONDITIONALLY HANG THE PP
 CPP4     LJM    CPPX        RETURN 
  
 CPP5     RJM    AIC         ATTEMPT TO IDLE THE CPP
          NJN    CPP3        IF PP NOT IDLED
          LDN    ZERL        CLEAR INPUT AND OUTPUT REGISTERS 
          CRD    CN 
          LDD    IR+4 
          CWM    CN,ON
          CWD    CN 
          UJN    CPP4        RETURN 
  
  
 CPPA     CON    0           ENVIRONMENTAL CONTROL REGISTER NUMBER
 CPPB     CON    0           STATUS REGISTER NUMBER 
 CPPC     CON    0           BIASED CIO PP NUMBER 
 CPPD     CON    0           IOU MODEL NUMBER 
 DPL      SPACE  4,20 
**        DPL - DEADSTART PP AND LOAD *PPR*.
* 
*         ENTRY  (IR+4) = ADDRESS OF CPP COMMUNICATION AREA.
*                (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
*                (CPPC) = BIASED PP NUMBER. 
*                (EC) = ELEMENT CONNECT CODE. 
*                (PP) = PP COMMUNICATION AREA ADDRESS.
*                *PPR* AT PBUF. 
* 
*         EXIT   IF UNABLE TO COMPLETE DEADSTART/LOAD, THE CPP IS IDLED 
*                AND ITS INPUT REGISTER SET TO ***.  ALSO A BML MESSAGE 
*                ISSUED WITH THE CPP NUMBER AND THE REASON FOR THE
*                FAILURE. 
* 
*         USES   DA, RN, T6, CM - CM+4, CN - CN+4.
* 
*         CALLS  AIC, AMA, IEM, NEC, RMA, SCU.
* 
*         MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
  
  
 DPL6     RJM    RMA         RELEASE MULTIPLEXER ACCESS 
          LDN    0           CLEAR CHANNEL ASSIGNED FLAG
          STM    CHFL 
  
 DPL      SUBR               ENTRY/EXIT 
          LDN    0
          STD    DA          INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
          LDD    IR+4 
          STM    PBUF+IA     SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
          ADN    1
          STM    PBUF+OA
          ADN    1
          STM    PBUF+MA
          LDD    CC          SET CONTROL POINT ADDRESS
          STM    PBUF+CP
 DPL1     RJM    AMA         ACCESS MULTIPLEXER CHANNEL 
  
*         DEADSTART PP. 
  
          LOCKMR SET         SET LONG TERM INTERLOCK
          LDM    CPPA        SET EC REGISTER NUMBER 
          STD    RN 
          READMR RBUF        READ EC REGISTER 
          LDM    RBUF+4      SET PP NUMBER
          SCN    37 
          LMM    CPPC 
          STM    RBUF+4 
          LDM    RBUF+5      SET CHANNEL NUMBER 
          SCN    37 
          LMN    MX 
          STM    RBUF+5 
          LDM    RBUF+6      SET LOAD MODE BIT
          SCN    37 
          LMN    20 
          STM    RBUF+6 
          LDM    RBUF+7      SET ENABLE BIT 
          SCN    40 
          LMN    40 
          STM    RBUF+7 
          WRITMR RBUF        WRITE EC REGISTER
          LOCKMR CLEAR
          RJM    NEC         NORMALIZE EC REGISTER
  
*         LOAD *PPR*. 
  
          LDC    MSFW+1      OUTPUT START ADDRESS 
          OAN    MX+40
          DELAY 
          LDN    1           *CPP NOT RESPONDING* 
          FJM    DPL4,MX     IF WORD NOT ACCEPTED ON CHANNEL
  
          LDK    .BLI-1      OUTPUT UP TO *.BLI* ENTRY POINT
          OAM    PBUF+1,MX
  
          LDM    PBUF+.BLI   MAKE (*.BLI*) A LONG INSTRUCTION 
          LMC    1S15 
          OAN    MX+40
  
          LDK    PBUFL-.BLI-1  OUTPUT THE REST OF *PPR* 
          OAM    PBUF+.BLI+1,MX 
          DELAY 
          LDN    2           *CPP HUNG ON INPUT*
          FJM    DPL4,MX     IF CHANNEL STILL FULL
          LDN    3           *CHANNEL 15 PARITY ERROR*
          SFM    DPL4,MX     IF PARITY ERRORS 
          DCN    MX+40       DISCONNECT CHANNEL TO START PP 
  
*         WAIT FOR PP TO INITIALIZE.
* 
*         NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR* 
*         PRESET TO COMPLETE. 
  
          LDD    TH          SET DELAY LOOP COUNT 
          STD    T6 
 DPL2     PAUSE  NE 
          DELAY 
          SOD    T6 
          ZJN    DPL3        IF TIME OUT
          LDD    IR+4        CHECK PP OUTPUT REGISTER 
          ADN    1
          CRD    CN 
          SOD    CN 
          ZJN    DPL2        IF *PLL* HAS NOT RUN 
          LJM    DPL6        RETURN 
  
*         PROCESS DEADSTART ERROR CONDITIONS. 
  
 DPL3     LDN    4           *PPR PRESET TIMEOUT* 
 DPL4     STM    DPLA+2,DA   SAVE THE ERROR CODE
          RJM    AIC         ATTEMPT TO IDLE THE CPP
          RAD    DA          INHIBIT RETRY IF IDLE FAILED 
          RJM    RMA         RELEASE MULTIPLEXER ACCESS 
          AOD    DA          INCREMENT RETRY COUNT
          SBN    10 
          MJP    DPL1        IF DEADSTART IS TO BE RETRIED
          NJN    DPL5        IF IDLE FAILED 
          RJM    SCU         SET CPP UNAVAILABLE
 DPL5     RJM    IEM         ISSUE ERROR MESSAGE
          LJM    DPLX        RETURN 
 DPLA     SPACE  4,15 
**        DPLA - FAILURE CODE BUFFER. 
* 
*         EACH TIME THAT A DEADSTART ATTEMPT FAILS, THE FAILURE CODE IS 
*         SAVED IN *DPLA*.  IF THE RETRY COUNT IS EXCEEDED AND A BML
*         MESSAGE IS WRITTEN, THE FAILURE CODES WILL BE INCLUDED IN THE 
*         MESSAGE.  THE CODES HAVE THE FOLLOWING MEANINGS.
* 
*         1      CPP NOT RESPONDING.  IT IS NOT READING PP RESIDENT.
*         2      CPP HUNG ON INPUT.  IT HAS NOT FINISHED READING. 
*         3      CHANNEL 15 PARITY ERROR. 
*         4      PPR PRESET TIMEOUT.  PP RESIDENT IS HUNG IN PRESET.
  
  
 DPLA     BSSZ   2+10B       FAILURE CODE BUFFER
 AIC      SPACE  4,10 
**        AIC - ATTEMPT TO IDLE THE CPP.
* 
*         ENTRY  (CPPC) = BIASED PP NUMBER. 
* 
*         EXIT   (A) = 0 IF PP IDLED. 
*                (A) .LT. 0 IF UNABLE TO IDLE PP. 
* 
*         CALLS  IPP. 
  
  
 AIC      SUBR               ENTRY/EXIT 
          LDN    6           IDLE AND K REGISTER BITS 
          RJM    IPP         IDLE PP
          LDN    16          DUMP, IDLE AND K REGISTER BITS 
          RJM    IPP         IDLE PP WITH DUMP BIT SET
          UJN    AICX        RETURN 
 IEM      SPACE  4,10 
**        IEM - ISSUE ERROR MESSAGE TO BML AND SYSTEM CONTROL POINT.
* 
*         ENTRY  (PN) = CPP NUMBER. 
* 
*         EXIT   BML MESSAGE ISSUED WITH PP NUMBER. 
* 
*         USES   T1, CN - CN+4. 
* 
*         CALLS  C2D, IBM.
  
  
 IEM      SUBR               ENTRY/EXIT 
          LDN    2           ENTER FAILURE CODES IN BML MESSAGE 
          STD    T1 
          LDD    MA 
          CWM    DPLA,T1
          SBN    2
          CRM    IBMA,T1
          LDC    /COMSDFS/HS0125  SET SYMPTOM CODE
          STD    T1 
          LDN    ZERL        CLEAR DATA WORD
          CRD    CN 
          LDD    PN          SET CPP NUMBER 
          STD    CN+4 
          LDC    /COMSDFS/HM0240  SET MESSAGE ID
          RJM    IBM         ISSUE BML MESSAGE
          LDD    PN          CONVERT CPP NUMBER TO DISPLAY CODE 
          RJM    C2D
          STM    IEMA+11     STORE CPP NUMBER 
          LDN    NCPL        ISSUE MESSAGE TO SYSTEM CONTROL POINT
          CRD    CN 
          AOD    CN+1 
          SHN    7
          ADK    MS2W 
          CWM    IEMA,TR
          UJP    IEMX        RETURN 
  
  
 IEMA     DATA   C* DEADSTART OF CPP XX FAILED* 
 IPP      SPACE  4,20 
**        IPP - IDLE PP.
* 
*         ENTRY  (A) = BIT SETTING FOR CORRECT IDLE PROCESSING. 
*                (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
*                (CPPB) = STATUS REGISTER NUMBER. 
*                (CPPC) = BIASED CPP NUMBER.
* 
*         EXIT   (A) = 0 IF CPP IDLED.
*                (A) .LT. 0 IF UNABLE TO IDLE CPP.
*                BML MESSAGE ISSUED IF UNABLE TO IDLE.
* 
*         USES   RN, T1, T4, CN - CN+4. 
* 
*         CALLS  IBM, NEC, SCU. 
* 
*         MACROS DELAY, LOCKMR, MONITOR, PAUSE, READMR, WRITMR. 
  
  
 IPP      SUBR               ENTRY/EXIT 
          STD    CN          SAVE IDLE BIT SETTING
          STD    CN+1 
          LDN    10          INITIALIZE TIME OUT COUNT
          STD    T4 
 IPP1     LOCKMR SET         GET LONG TERM INTERLOCK
          LDM    CPPA        SET EC REGISTER NUMBER 
          STD    RN 
          READMR RBUF        READ EC REGISTER 
          LDM    RBUF+4      SET PP NUMBER
          SCN    37 
          LMM    CPPC 
          STM    RBUF+4 
          LDM    RBUF+5      SET CHANNEL FOR DUMP 
          SCN    37 
          ADN    16          NON-EXISTANT CHANNEL NUMBER
          STM    RBUF+5 
          LDM    RBUF+6      SET DUMP AND IDLE MODE BITS, K REGISTER
          SCN    37 
          ADD    CN          IDLE BIT SETTING 
          STM    RBUF+6 
          LDM    RBUF+7      SET ENABLE BIT 
          SCN    40 
          ADN    40 
          STM    RBUF+7 
          WRITMR RBUF        WRITE EC REGISTER
          LDM    CPPB        SET STATUS REGISTER NUMBER 
          STD    RN 
          READMR IBUF        READ INPUT STATUS REGISTER 
          LOCKMR CLEAR       CLEAR LONG TERM INTERLOCK
          LDM    IBUF+4      CHECK IF PP IN IDLE MODE 
          LPN    3
          SHN    10 
          ADM    IBUF+5 
          SHN    10 
          ADM    IBUF+6 
          LMC    107700 
          ZJN    IPP2        IF PP IDLING 
          SOD    T4 
          ZJN    IPP3        IF TIME OUT
          PAUSE  NE 
          LDN    2           SET READ K REGISTER ONLY 
          STD    CN 
          LJM    IPP1        LOOP 
  
*         COMPLETE NORMALIZATION OF *EC* REGISTER.
  
 IPP2     RJM    NEC         NORMALIZE EC REGISTER
          LDN    0
          UJN    IPP4        RETURN 
  
*         PROCESS IDLING ERROR. 
  
 IPP3     RJM    NEC         NORMALIZE EC REGISTER
          LDD    CN+1 
          LPN    10 
          ZJN    IPP4        IF NOT DUMP MODE 
          LDC    /COMSDFS/HS0122  SET SYMPTOM CODE
          STD    T1 
          LDN    ZERL        CLEAR DATA WORD
          CRD    CN 
          LDD    PN          SET PP NUMBER
          STD    CN+4 
          LDC    /COMSDFS/HM0240  SET MESSAGE ID
          RJM    IBM         ISSUE BML MESSAGE
          RJM    SCU         SET CPP UNAVAILABLE
          LCN    1           SET ERROR FLAG 
 IPP4     LJM    IPPX        RETURN 
 LOV      SPACE  4,30 
**        LOV - LOAD CPP OVERLAY. 
* 
*         OVERLAY IS PASSED TO THE CPP VIA THE CPP-S MESSAGE BUFFER.
*         THE LOAD PARAMETERS INDICATE WHERE TO FIND THE OVERLAY. 
* 
*T MB     12/ , 12/ EQ, 12/ TK, 12/ SC, 12/ MBA 
* 
*              EQ = EQUIPMENT TO LOAD FROM. 
*              TK = TRACK.
*              SC = SECTOR. 
*              MBA = CPP MB+1 ADDRESS.
* 
*         BYTE 0 OF MBA IS THE CONTROL BYTE.
*              0 = 6DD READY FOR DATA.
*              N = WORDS IN MB+2 - MB+5 TO COPY.
*              2000 = EOR.
*              4000 = ERROR ON OVERLAY READ.
* 
*         ENTRY  (MB) = LOAD PARAMETERS.
* 
*         USES   DA, PP, T1, CM - CM+4, T4 - T7.
* 
*         CALLS  DFM, RNS.
* 
*         MACROS DELAY, ENDMS, SETMS. 
  
  
 LOV      SUBR               ENTRY/EXIT 
          LDD    MA          READ LOAD PARAMETERS 
          CRD    T4 
          LDD    CM          SAVE CPP MESSAGE BUFFER ADDRESS
          STD    PP 
 LOV1     SETMS  READSYS
          LDC    BFMS+2      SET DATA ADDRESS 
          STM    LOVA 
          SBN    2
          RJM    RNS         READ NEXT SECTOR 
          MJP    LOV5        IF READ ERROR
          STD    DA          SAVE THE WORD COUNT
          ENDMS 
 LOV2     LDC    2000 
          STD    T1 
          LDD    DA 
          NJN    LOV2.1      IF NOT END OF SECTOR 
          LDM    BFMS+1 
          SBD    HN 
          ZJN    LOV1        IF FULL SECTOR OF DATA 
          LJM    LOV6        SEND EOR RESPONSE TO THE CPP 
  
 LOV2.1   LDN    4
          STD    CM 
          LCN    4
          RAD    DA 
          PJN    LOV3        IF FULL BLOCK TO COPY
          RAD    CM 
 LOV3     LDD    PP          COPY BLOCK TO CPP
          ADN    1
          CWM    **,CM
 LOVA     EQU    *-1
          LDD    PP 
          CWD    CM 
          LDN    4*5         ADVANCE THE WRITE ADDRESS
          RAM    LOVA 
          LDD    CM 
          SBN    4
          MJN    LOV6        IF NOT A FULL BLOCK
 LOV4     DELAY              WAIT FOR CPP READY 
          PAUSE  NE 
          LDD    PP 
          CRD    CM 
          LDD    CM 
          NJN    LOV4        IF CPP NOT READY FOR NEXT BLOCK
          LJM    LOV2        COPY NEXT BLOCK
  
 LOV5     LDC    4000        FLAG READ ERROR
          STD    T1 
 LOV6     DELAY              WAIT FOR CPP READY 
          PAUSE  NE 
          LDD    PP 
          CRD    CM 
          LDD    CM 
          NJN    LOV6        IF CPP NOT READY FOR NEXT BLOCK
          LDD    T1          SET RESPONSE 
          STD    CM 
          LDD    PP 
          CWD    CM 
          LDD    T1          CHECK FOR ERROR
          SHN    21-13
          PJN    LOV7        IF NO ERRORS 
          LDD    CP          DISPLAY ERROR MESSAGE
          ADK    MS2W 
          CWM    LOVB,TR
          LDC    LOVB 
          RJM    DFM
 LOV7     LJM    LOVX        RETURN 
  
  
 LOVB     DATA   C* CPP OVERLAY LOAD FAILED.* 
 SPB      SPACE  4,15 
**        SPB - SET PP BOUNDS BIT.
* 
*         ENTRY  (A) = 6/BIT VALUE, 12/PP NUMBER. 
*                      BIT VALUE = 1 TO SET LOWER PP. 
*                                = 0 TO SET UPPER PP. 
*                (EC) = IOU CONNECT CODE. 
* 
*         EXIT   PP OS BOUNDS REGISTER SET FOR GIVEN PP.
* 
*         USES   RN, T2, T7.
* 
*         MACROS LOCKMR, READMR, WRITMR.
  
  
 SPB      SUBR               ENTRY/EXIT 
          STD    T7          SAVE LOGICAL PP NUMBER 
          SHN    -14
          STM    SPBC        SAVE BOUNDS BIT VALUE
          LDN    4           DETERMINE BARREL 
          SBD    T7 
          SHN    -21
          STD    T2 
          ZJN    SPB1        IF IN LOWER 5 PP-S 
          LCN    5
          RAD    T7          SET PHYSICAL PP WITHIN THE BARREL
 SPB1     LDC    SHNI        SET BIT SHIFT INSTRUCTION
          ADD    T7 
          STM    SPBA 
          STM    SPBD 
          LOCKMR SET
          LDK    OBCR        SET OS BOUNDS REGISTER NUMBER
          STD    RN 
          LDM    CPPD 
          LMK    0#42 
          NJN    SPB2        IF NOT MODEL 42 IOU
          LDK    IOSB        SET OS BOUNDS REGISTER NUMBER
          STD    RN 
          LDN    3           SET BYTE OFFSET
          STD    T2 
 SPB2     READMR RBUF        READ CURRENT OS BOUNDS DATA
          LDM    RBUF,T2
          STM    SPBB 
          LCN    1
 SPBA     SHN    ** 
          LPC    ** 
 SPBB     EQU    *-1
          STM    RBUF,T2
          LDC    ** 
 SPBC     EQU    *-1
 SPBD     SHN    ** 
          LMM    RBUF,T2     ADD NEW BIT TO REGISTER DATA 
          STM    RBUF,T2
          WRITMR RBUF        SET NEW OS BOUNDS REGISTER 
          LOCKMR CLEAR
          LJM    SPBX        RETURN 
 AMA      SPACE  4,10 
**        AMA - ACQUIRE MULTIPLEXER ACCESS. 
* 
*         EXIT   MULTIPLEXER ACCESS OBTAINED. 
* 
*         XREF   COMSIOU. 
  
  
 AMA      SUBR               ENTRY/EXIT 
 AMA1     LOCKMR SET         GET ACCESS TO MAINTENANCE CHANNEL
          SCF    AMA3,MX     GET ACCESS TO TWO-PORT MULTIPLEXER 
          LOCKMR CLEAR
          ACN    MX+40
          UJN    AMAX        RETURN 
  
 AMA3     LOCKMR CLEAR       CLEAR MAINTENANCE CHANNEL INTERLOCK
          LDN    7           BRIEF DELAY
          SBN    1
          PJN    *-1         IF DELAY NOT COMPLETE
          UJN    AMA1        TRY TO RESERVE PORT AGAIN
 RMA      SPACE  4,10 
**        RMA - RELEASE MULTIPLEXER ACCESS. 
* 
  
  
 RMA      SUBR               ENTRY/EXIT 
          DCN    MX+40
          CCF    *,MX        RELEASE CHANNEL INTERLOCK
          UJN    RMAX        RETURN 
 IBM      SPACE  4,10 
**        IBM - ISSUE BINARY MAINTENANCE LOG MESSAGE. 
* 
*         ENTRY  (A) = MESSAGE ID.
*                (T1) = SYMPTOM CODE. 
*                (CN - CN+4) = DATA WORD. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  DFM. 
  
  
 IBM      SUBR               ENTRY/EXIT 
          STM    IBMA        SET MESSAGE ID 
          LDD    T1          SET SYMPTOM CODE 
          STM    IBMA+1 
          LDD    MA          MOVE DATA WORD TO BUFFER 
          CWD    CN 
          CRM    IBMB,ON
          LDN    ZERL 
          CRD    CM 
          LDN    IBML        SET MESSAGE LENGTH 
          STD    CM+1 
          LDC    IBMA+BMLN   ISSUE DAYFILE MESSAGE
          RJM    DFM
          UJN    IBMX        RETURN 
  
  
*         MESSAGE BUFFER. 
  
 IBMA     VFD    12/0,12/0,36/0  MESSAGE ID, SYMPTOM CODE 
          VFD    60/0        RESERVED 
 IBMB     VFD    60/0        MESSAGE
 IBML     EQU    *-IBMA 
 NEC      SPACE  4,15 
**        NEC - NORMALIZE EC REGISTER.
* 
*         ENTRY  (CPPA) = EC REGISTER NUMBER. 
* 
*         EXIT   (RBUF - RBUF+7) = NORMALIZED EC REGISTER.
*                NORMALIZED EC REGISTER REWRITTEN.
*                BITS 35-39, 43-47, 51-55, 58 = 0.
*                ALL OTHER BITS ARE UNCHANGED.
* 
*         USES   RN.
* 
*         MACROS LOCKMR, READMR, WRITMR.
  
  
 NEC      SUBR               ENTRY/EXIT 
          LOCKMR SET         SET LONG TERM INTERLOCK
          LDM    CPPA        SET EC REGISTER NUMBER 
          STD    RN 
          READMR RBUF        READ EC REGISTER 
          LDM    RBUF+4      CLEAR 35-39 (PP NUMBER)
          SCN    37 
          STM    RBUF+4 
          LDM    RBUF+5      CLEAR 43-47 (CHANNEL NUMBER) 
          SCN    37 
          STM    RBUF+5 
          LDM    RBUF+6      CLEAR BITS 51-55 
          SCN    37 
          STM    RBUF+6 
          LDM    RBUF+7      CLEAR BIT 58 
          SCN    40 
          STM    RBUF+7 
          WRITMR RBUF        UPDATE EC REGISTER 
          LOCKMR CLEAR       CLEAR LONG TERM INTERLOCK
          LJM    NECX        RETURN 
 SCU      SPACE  4,10 
**        SCU - SET CPP UNAVAILABLE.
* 
*         *SCU* SETS 3 ASTERISKS IN THE CPP-S INPUT REGISTER AND
*         DECREMENTS THE NUMBER OF AVAILABLE CPPS IN *PPAL*.
* 
*         ENTRY  (IR+4) = CPP-S INPUT REGISTER ADDRESS. 
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         MACROS MONITOR. 
  
  
 SCU      SUBR               ENTRY/EXIT 
          LDD    IR+4        READ CPP-S INPUT REGISTER
          CRD    CM 
          LDD    CM+1 
          SCN    77 
          SHN    6
          LMD    CM 
          LMC    3R***
          ZJN    SCUX        IF ALREADY UNAVAILABLE 
          LDD    IR+4        SET *** IN INPUT REGISTER
          CWM    SCUA,ON
          LDD    IR+2 
          SBN    12 
          NJN    SCU1        IF IDLE CPP
          LDN    1
          STD    CM+1        DECREMENT CPP-S AVAILABLE COUNT
          STD    CM+2        DO NOT DROP THE PP 
          LDD    MA 
          CWM    SCUB,CM+1
          MONITOR UADM
          LDD    CM+1 
          ZJN    SCU1        IF NO UNDERFLOW
          RJM    CHG         CONDITIONALLY HANG 
  
*         DECREMENT THE NUMBER OF PP-S ASSIGNED TO THE CONTROL POINT. 
  
 SCU1     LDD    IR+2 
          SBN    10 
          NJP    SCUX        IF NOT AN ASSIGN AND LOAD REQUEST
 SCU2     LDD    CC          GET CPP-S CONTROL POINT ADDRESS
          ZJN    SCU3        IF NOT ASSIGNED
          ADK    STSW 
          STD    CM+4 
          CRD    CN          GET THE NUMBER OF PP-S ASSIGNED
          LDD    CN 
          LPN    37 
          ZJN    SCU3        IF NO PP-S ASSIGNED
          STM    SCUC+4      SET UP *UTEM* REQUEST
          SBN    1
          STM    SCUC+1*5+4 
          LDN    2
          STD    CM+1 
          LDD    MA 
          CWM    SCUC,CM+1
          MONITOR  UTEM 
          LDD    CM+1 
          NJN    SCU2        IF REQUEST WAS REJECTED
 SCU3     UJP    SCUX        RETURN 
  
  
 SCUA     VFD    18/3R***,42/0  INPUT REGISTER OF UNUSABLE PP 
  
*         MESSAGE BUFFER STRUCTURE FOR *UADM* FORMAT. 
  
 SCUB     CON    LDOS        SUBFUNCTION
          CON    PPAL        LOW CORE WORD TO UPDATE
          CON    12D*100+6   FIELD LOCATION AND SIZE
          VFD    6/,18/1     DECREMENT VALUE
  
*         MESSAGE BUFFER STRUCTURE FOR *UTEM*.
  
 SCUC     VFD    1/1,5/0,6/5,6/48D,42/**  VERIFY NUMBER OF PP-S 
          VFD    1/0,5/0,6/5,6/48D,42/**  REDUCE NUMBER OF PP-S 
 COMMON   SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPC2D 
*CALL     COMPMRA 
*CALL     COMPRNS 
          SPACE  4,10 
**        BUFFER DEFINITIONS. 
* 
*         *PBUF* CONTAINS A COPY OF PP RESIDENT FOR A CPP.
* 
*         *RBUF* AND *IBUF* ARE USED TO READ AND CHECK THE ENVIRONMENT
*         CONTROL REGISTER. 
  
  
 PBUF     BSS    0           CPP RESIDENT BUFFER
 CPP$     EQU    1           GENERATE CPP RESIDENT
          LIST   X,F
*CALL     COMPPPR 
          LIST   *
 PBUFL    EQU    *-PBUF 
  
 RBUF     EQU    *           *EC* REGISTER BUFFER 
 IBUF     EQU    RBUF+12B    INPUT STATUS REGISTER BUFFER 
  
          ERRNG  EPFW-IBUF-12B  OVERFLOW INTO EPFW
  
  
          OVERFLOW  E1MA,EPFW 
          TTL    1MA - MONITOR AUXILIARY PROCESSOR. 
          END 
