SLL 
          IDENT  SLL,SLL
          PERIPH
          BASE   MIXED
          SST 
*COMMENT  SLL - SYSTEM LIBRARY LOADER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  SLL - SYSTEM LIBRARY LOADER. 
          SPACE  4
***       SLL - SYSTEM LIBRARY LOADER.
*         G. R. MANSFIELD.  70/12/18. 
*         P. D. HAAS.        81/10/05.
          SPACE  4
***              SLL PERFORMS MANAGEMENT OF THE SYSTEM LIBRARY BY 
*         PROCESSING THE FOLLOWING OPERATIONS - 
* 
*         (1)  WRITING OF THE SYSTEM LIBRARY FILE.
*         (2)  COPYING LIBRARY TABLES FROM THE CALLING PROGRAM. 
*         (3)  CONVERSION OF RANDOM ADDRESSES TO ACTUAL MASS STORAGE
*                ADDRESSES. 
* 
* 
*                THIS PROGRAM MAY BE CALLED ONLY FROM SYSTEM ORIGIN 
*         JOBS, AND IS INTENDED TO BE USED ONLY BY THE CPU PROGRAM
*         *SYSEDIT*.  ANY OTHER USAGE IS AT THE CALLER-S OWN RISK.
*         IT SHOULD ALSO BE NOTED THAT WHILE SYSEDIT AND SLL HAVE BEEN
*         DESIGNED TO MODIFY THE RUNNING SYSTEM IN AN ACTIVE
*         ENVIRONMENT THEIR OPERATION AND THE EFFECTS ON THE SYSTEM 
*         CANNOT BE PREDICTED UNLESS THE SYSTEM IS IDLE.
*         THEREFORE THE USER SHOULD BEWARE............. 
          SPACE  4
***       DAYFILE MESSAGES. 
* 
*         * SYSTEM ACTIVITY PROHIBITS LIBRARY CHANGE.* = IN ORDER TO
*         PERFORM THE SYSEDIT IT IS NECCESARY TO MOVE THE JOB AT
*         CONTROL POINT 1.  THE JOB THERE CANNOT BE MOVED HOWEVER.
* 
*         * SYSTEM LIBRARY CHANGE INCORRECT.* = CALLER DOES NOT HAVE
*         PERMISSION TO MODIFY THE SYSTEM.
* 
*         * CMR OVERFLOW.* = THE CENTRAL MEMORY LIBRARIES AND 
*         DIRECTORIES GENERATED BY *SYSEDIT* WOULD NOT FIT WITHIN THE 
*         FIRST MCMR*100B WORDS OF MEMORY.
* 
* 
*         MANY OF THE FOLLOWING MESSAGES ARE TO PROTECT THE USER IN 
*         CASE OF ABNORMAL CONDITIONS.  THUS, THERE MAY NOT BE ANY
*         DIRECT CORRECTIVE ACTION FOR THEM.  THESE TYPES OF ERRORS 
*         SHOULD NOT NORMALLY OCCUR.
* 
*         * SLL ARGUMENT ERROR.* = PARAMETER ADDRESS OR REQUEST WORD
*         ADDRESS IS OUT OF RANGE.
* 
*         * RANDOM ADDRESS ERROR.* = RANDOM ADDRESS NOT ON FILE.
* 
*         * INCORRECT SLL REQUEST.* = FUNCTION CODE UNDEFINED.
* 
*         * INCORRECT ROLLOUT REQUEST.* = *SLL* AND *SYSEDIT* MAY NOT 
*         BE ROLLED OUT WHILE RUNNING.
* 
*         * SYSTEM TOO BIG FOR MASS STORAGE.* = NOT ENOUGH ROOM ON
*         MASS STORAGE FOR SYSTEM LIBRARY.
* 
*         * LIBRARY TABLE ERROR.* = BLANK ENTRY NOT FOUND IN LIBRARY
*         TABLE OR DIRECTORY WITHIN FL. 
* 
*         * BUFFER CONTROL WORD ERROR.* = INCORRECT WORD COUNT PASSED 
*         FROM CALLING ROUTINE. 
* 
*         * SYSTEM DEVICE ERROR.* = SYSTEM DEVICE IS INACCESSIBLE.
* 
*         * SYSTEM DEVICE DOWN.* = SYSTEM DEVICE IS INACCESSIBLE. 
* 
*         * SYSTEM FILE RESERVED.* = SYSTEM FILE IN USE - POSSIBLY BY 
*         ANOTHER COPY OF SYSEDIT.
* 
*         * SYSTEM FILE DESTROYED.* = SYSTEM SECTOR FOR SYSTEM BAD. 
* 
*         * SLL - LOCAL FILE LIMIT.* = CREATING THE FILES REQUIRED FOR
*         *SYSEDIT* WILL EXCEED THE USER-S LOCAL FILE LIMIT.
          SPACE  4,10 
***       CALL. 
* 
* 
*T        18/ *SLL*, 6/ CP, 12/ DS, 6/ AB, 18/ ST 
*         CP     CONTROL POINT
*         DS     DEADSTART STATUS (1 = DEADSTART) 
*         AB     ABORT FLAG (1 = NO ABORT ON SYSTEM FILE BUSY)
* 
*T STAT   12/  CODE,18/,18/  ADDR,12/  ST 
*         CODE   FUNCTION CODE
*         ADDR   ADDRESS
*         ST     COMPLETION STATUS
          SPACE  4
**        ROUTINES USED.
* 
* 
*         0BF - BEGIN LOCAL FILE. 
          SPACE  4,10 
**        PROGRAMS CALLED.
* 
* 
*         1CK - CHECKPOINT MASS STORAGE DEVICES.
          SPACE  4
*CALL     COMPMAC 
*CALL     COMSCPS 
*CALL     COMSDSL 
*CALL     COMSHIO 
*CALL     COMSMSC 
*CALL     COMSMSP 
*CALL     COMSMTR 
*CALL     COMSPDT 
*CALL     COMSPIM 
*CALL     COMSSRT 
*CALL     COMSSSD 
*CALL     COMSSSJ 
*CALL     COMSWEI 
*CALL     COMSZOL 
          SPACE  4
****      DIRECT LOCATION ASSIGNMENTS.
  
  
 RF       EQU    15          RETURN FLAG FOR *RMT*
 T8       EQU    16 
 T9       EQU    17 
 FS       EQU    20 - 24     FST ENTRY (5 LOCATIONS)
 AB       EQU    FS - FS+4   ROUTINE NAME (5 LOCATIONS) 
 SE       EQU    25          SECTOR COUNT 
 EI       EQU    26          EQUIPMENT INDEX
 CN       EQU    30 - 34     CM WORD BUFFER (5 LOCATIONS) 
 SF       EQU    35          SYSTEM FILE FST INDEX
 PL       EQU    SF+1        PP LIBRARY FILE FST INDEX
 AL       EQU    SF+2        ALTERNATE LIBRARY FILE FST INDEX 
 FN       EQU    40 - 44     FILE NAME (5 LOCATIONS)
 PA       EQU    45 - 46     PARAMETER ADDRESS (2 LOCATIONS)
 SL       EQU    47          SLM
 DS       EQU    IR+2        DEADSTART STATUS 
 FA       EQU    57          FST ADDRESS
 CW       EQU    60 - 66     CLD CONTROL WORD BUFFER
 RI       EQU    65 - 66     RANDOM INDEX (2 LOCATIONS) 
 SN       EQU    65 - 66     SECTOR NUMBER (2 LOCATIONS)
 LE       EQU    67          LAST MASS STORAGE EQUIPMENT
****
          TITLE  MAIN PROGRAM.
 SLL      SPACE  4
**        SLL - MAIN PROGRAM. 
  
  
          ORG    PPFW 
 SLL      RJM    PRS         PRESET PROGRAM 
  
*         WAIT FOR CONTROL WORD REQUEST.
  
 SLL1     RJM    PSE         PAUSE
          LDD    IR+3        READ CONTROL WORD
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
          CRD    CN 
          LDD    CN          CHECK FUNCTION CODE
          ZJN    SLL1        IF NO REQUEST
          SBN    TFCNL
          MJN    SLL2        IF LEGAL REQUEST 
          LJM    ABT
  
*         PROCESS FUNCTION REQUEST. 
  
 SLL2     LDD    CN+2        SET PARAMETER ADDRESS
          LPN    37 
          STD    PA 
          SHN    14 
          LMD    CN+3 
          STD    PA+1 
          SHN    -6 
          SBD    FL 
          MJN    SLL3        IF IN RANGE
          LDC    =C* SLL ARGUMENT ERROR.* 
          LJM    ABT1 
  
 SLL3     LDM    TFCN,CN     SET FUNCTION PROCESSOR 
          STM    SLLA 
          RJM    *           PROCESS FUNCTION 
 SLLA     EQU    *-1
  
*         SET FUNCTION COMPLETE.
  
          LDN    ZERL        SET REQUEST COMPLETE 
          CRD    CM 
          AOD    CM+3 
          STD    CM+4 
          LDD    IR+3 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
          CWD    CM 
          LJM    SLL1        LOOP 
*         LJM    CPS         (RELEASE PP AFTER LOAD COMLETION)
*         LJM    DPP         (DROP PP FOR ERROR CONDITION)
 SLLB     EQU    *-1
  
 CPS      LDM    CPSA+2,DS
          ZJN    DPP         IF NO CHECKPOINT REQUEST 
          LDD    IR+1 
          LPN    37          SET CP NUMBER IN 1CK CALL
          RAM    CPSA+1 
          LDD    IA 
          CWM    CPSA,ON     STORE INPUT REGISTER FOR *1CK* 
          EXECUTE 1CK,= 
 CPS1     LJM    PPR
  
 CPSA     VFD    60/0L1CK 
  
 DPP      BSS    0
 DPPA     MONITOR DPPM       DROP PP
          UJN    CPS1        EXIT TO PP RESIDENT
          TITLE  TABLES.
 NSYS     SPACE  4
**        FNT ENTRIES FOR SYSTEM SECTOR.
  
  
  
 NPPU     VFD    42/0LPPULIB,6/1,6/SYFT,6/0 
 NASF     VFD    42/0LALTSYS,6/1,6/LOFT,6/0 
 TFCN     SPACE  4
**        TFCN - FUNCTION TABLE.
*         ENTRY = 1 WORD. 
* 
*T,       12/  ADDR 
*         ADDR   ADDRESS OF FUNCTION PROGCESSOR 
  
  
 TFCN     EQU    *-1
          LOC    1
  
          CON    ERD         ENTER RESIDENCY DATA 
          CON    CSN         CONVERT SECTOR NUMBERS 
          CON    WSF         WRITE LIBRARY FILE 
          CON    WPL         WRITE PPU LIBRARY
          CON    ELD         ENTER LIBRARY DIRECTORY
          CON    EAD         ENTER ALTERNATE DEVICE TABLE 
          CON    WAD         WRITE ALTERNATE DEVICE 
          CON    RSE         RETURN SYSTEM EST ORDINAL
          CON    DPE         DROP PP FOR ERROR CONDITION
  
 TFCNL    BSS    0
          LOC    *O 
 TSYD     SPACE  4
**        TSYD - TABLE OF SYSTEM DEVICES. 
*         ENTRY = 1 WORD. 
* 
*T,       12/  EQ 
*         EQ     SYSTEM DEVICE EST ORDINAL
* 
*         TABLE TERMINATOR -
*T,       12/  7777 
  
  
 TSYD     BSS    0
          DUP    MXSY,1      MAXIMUM NUMBER OF SYSTEM DEVICES 
          CON    -0 
          CON    -0 
 ASDE     EQU    *-TSYD 
          CON    0
          CON    -0 
 TETC     SPACE  4
**        TETC - TABLE OF EMPTY TRACK CHAINS. 
*         ENTRY = 2 WORDS.
* 
*T,TETC   12/  FT 
*T,TETCA  12/  CT 
*         FT     FIRST TRACK
*         CT     CURRENT TRACK
  
  
 TETC     BSS    0
          BSSZ   MXSY 
  
 TETCA    BSS    0
          BSSZ   MXSY 
          TITLE  FUNCTION PROCESSORS. 
 ERD      SPACE  4
***       FUNCTION 1. 
*         ENTER RESIDENCY DATA IN LIST SPECIFIED BY *ADDR*. 
* 
*         LIST FORMAT - 0 @ I < N.
*T ADDR+I 42/  NAME,6/  RC,12/  TY
*T ADDR+N 60/  0
*         NAME   RECORD NAME
*         RC     RESIDENCE CODE 
*         TY     RECORD TYPE
  
  
 ERD6     LDN    ZERL 
          CRD    CM 
          RJM    SPA
          CWM    TRES,T1
*         CWM    TRESB,T1    (IF NOT INDEPENDENT SHARED RMS)
 ERDC     EQU    *-1
          CWD    CM          TERMINATE LIST 
  
 ERD      SUBR               ENTRY/EXIT 
 ERDA     LDN    TRESL-1     SET INITIAL WORD COUNT 
*         LDN    TRESL       (IF CONCURRENT PPS PRESENT)
          STD    T1 
          LDN    0
          STD    T5 
          LDN    40          CM RESIDENT FLAG 
          STD    T6 
          LDN    NOPE-1      INITIALIZE EST ORDINAL FOR SEARCH
          STD    CM 
          LDN    PPRT        PP TYPE FLAG 
          STD    T7 
          ERRNZ  LA6DI-PPRT  ADJUST CODE IF VALUE CHANGES 
          UJN    ERD2        FORCE *6DI* AND OVERLAYS TO BE CM RESIDENT 
  
 ERD1     AOD    CM          ADVANCE EST
          LMD    LE 
          ZJN    ERD6        IF END OF MASS STORAGE DEVICES 
          SFA    EST,CM      READ EST ENTRY 
          ADK    EQDE 
          CRD    CN          READ EST ENTRY 
          LDD    CN          CHECK EQUIPMENT
          SHN    21-13
          PJN    ERD1        IF NOT MASS STORAGE
          LDD    CN+4        READ DRIVER NAME 
          SHN    3
          ADN    MDGL 
          CRD    CN 
          LDD    CN+3        SET DRIVER INDEX 
          LPN    7
 ERD2     STD    T2 
          LDM    TADN,T2
 ERD3     ZJN    ERD1        IF DRIVER ALREADY ENTERED
          SHN    6
          STD    T4 
          LMN    1R6
          SHN    6
          STD    T3 
          LDN    0           SET DRIVER ENTERED 
          STM    TADN,T2
          LDM    TAOT,T2     SET OVERLAY LIST ADDRESS 
          STD    CM+3 
          STD    CM+4 
 ERD5     RJM    ERT         ENTER RESIDENCY TABLE
          LDI    CM+3 
          STI    CM+4 
          ZJN    ERD3        IF END OF OVERLAY LIST 
          SHN    6
          STD    T4 
          LMN    1R7         SET *7XX*
          SHN    6
          STD    T3 
          AOD    CM+3 
          UJN    ERD5        SELECT ADDITIONAL ERROR PROCESSORS 
 ERD      SPACE  4,4
**        TADN - TABLE OF DRIVER NAMES. 
* 
*         ENTRY = 1 WORD. 
*                WORD = DRIVER NAME.
* 
*         NOTE   TABLES *TADN* AND *TAOT* ARE PARALLEL TABLES.  ANY 
*                CHANGES TO BE MADE SHOULD BE REFLECTED IN BOTH.  ALSO, 
*                THESE TABLES ARE SEQUENCED ACCORDINGLY TO CORRESPOND 
*                WITH THE DRIVER INDICES FOUND IN *COMSMSP*.
  
  
 TADN     INDEX 
          INDEX  LA6DI,2RDI 
          INDEX  LA6DJ,2RDJ 
          INDEX  LA6DP,2RDP 
          INDEX  LA6DE,2RDE 
          INDEX  LA6DX,2RDX 
          INDEX  LA6MX
          SPACE  4,10 
**        TAOT - TABLE OF OVERLAY LIST ADDRESSES. 
* 
*         ENTRY = 1 WORD. 
*                WORD = ADDRESS OF OVERLAY LIST TABLE.
* 
*         NOTE   TABLES *TADN* AND *TAOT* ARE PARALLEL TABLES.  ANY 
*                CHANGES TO BE MADE SHOULD BE REFLECTED IN BOTH.  ALSO, 
*                THESE TABLES ARE SEQUENCED ACCORDINGLY TO CORRESPOND 
*                WITH THE DRIVER INDICES FOUND IN *COMSMSP*.
  
  
          ORG    *-LA6DI
 TAOT     INDEX 
          INDEX  LA6DI,TDI   *6DI* ASSOCIATED OVERLAYS
          INDEX  LA6DJ,TDI   *6DJ* ASSOCIATED OVERLAYS
          INDEX  LA6DP,TDP   *6DP* ASSOCIATED OVERLAYS
          INDEX  LA6DE,TDE   *6DE* ASSOCIATED OVERLAYS
          INDEX  LA6DX,TDX   *6DX* ASSOCIATED OVERLAYS
          INDEX  LA6MX
          SPACE  4,4
**        TDE -  TABLE OF ASSOCIATED *DE* OVERLAYS. 
* 
*         ENTRY = 1 WORD. 
*                WORD = OVERLAY NAME. 
  
  
 TDE      BSS    0
          CON    2RDE 
          CON    0
 ERD      SPACE  4,4
**        TDI -  TABLE OF ASSOCIATED *DI* AND *DJ* OVERLAYS.
* 
*         *6DI* AND ITS OVERLAYS MUST ALWAYS BE FORCED CM RESIDENT
*         BECAUSE THEY ARE NEEDED TO READ PACK SERIAL NUMBERS, FLAW 
*         MAPS, AND FIRMWARE IDENTS FOR ALL DISK TYPES INCLUDING
*         BUFFERED I/O DEVICES.  IN ADDITION, DISK DRIVER *6DJ* USES
*         THE *6DI* OVERLAYS FOR ERROR RECOVERY.
* 
*         ENTRY = 1 WORD. 
*                WORD = OVERLAY NAME. 
  
  
 TDI      BSS    0
          CON    2RDI 
          CON    2RBI 
          CON    2RCI 
          CON    2REI 
          CON    2RFI 
          CON    2RGI 
          CON    2RHI 
          CON    2RII 
          CON    2RJI 
          CON    2RKI 
          CON    2RLI 
          CON    2RSI 
          CON    2RWI 
          CON    0
 ERD      SPACE  4,4
**        TDP -  TABEL OF ASSOCIATED *DP* OVERLAYS. 
* 
*         ENTRY = 1 WORD. 
*                WORD = OVERLAY NAME. 
  
  
 TDP      BSS    0
          CON    2RDP 
          CON    2RMP 
          CON    2RRP 
          CON    2RSP 
          CON    0
 TDX      SPACE  4,10 
**        TDX -  TABLE OF ASSOCIATED *DX* OVERLAYS. 
* 
*         ENTRY = 1 WORD. 
*                WORD = OVERLAY NAME. 
  
  
 TDX      BSS    0
          CON    2RDX 
          CON    0
 CSN      SPACE  4,15 
***       FUNCTION 2. 
*         CONVERT SECTOR NUMBERS FROM RANDOM INDEX TABLE STARTING 
*         AT *ADDR*.
* 
*         I = 1,N,2 
*T ADDR+I 36/,24/  RI 
*         RI     RANDOM INDEX 
* 
*         CONVERSION -
*T ADDR+I 36/,12/  TK,12/  SC 
*         TK     TRACK
*         SC     SECTOR 
  
  
 CSN      SUBR               ENTRY/EXIT 
          LDD    CN+1 
          SBN    3
          PJP    ABT         IF INVALID FST INDEX 
          LDM    SF,CN+1
          STD    FA 
          NFA    FA,R        READ FST 
          CRD    FS 
          CRD    T5 
 CSN1     LDN    0           SET RANDOM INDEX 
          STD    RI+1 
          STD    RI 
          STD    T7          SET FIRST SECTOR 
          LDD    FS+1        SET FIRST TRACK
          STD    T6 
          LDI    SL          SET SECTOR LIMIT 
          STD    T3 
 CSN2     RJM    SPA         READ LIST ENTRY
          CRD    CM 
          ADN    1
          CRD    CN 
          LDD    CM 
          ADD    CM+1 
          ADD    CM+2 
          ADD    CM+3 
          ADD    CM+4 
          NJN    CSN3        IF NOT END OF LIST 
          LJM    CSNX        RETURN 
  
 CSN3     LDD    CN+3        SET SECTOR ADVANCE 
          SBD    RI 
          MJN    CSN1        IF BACKWARD
          STD    CM 
          LDD    CN+4 
          SBD    RI+1 
          STD    CM+1 
          PJN    CSN4        IF FORWARD 
          AOD    CM+1        ADJUST CARRY 
          SOD    CM 
          PJN    CSN4        IF FORWARD 
          LJM    CSN1        RESTART
  
 CSN4     LDD    CM          CHECK ADVANCE
          NJN    CSN5        IF TRACK CHANGE
          LDD    CM+1 
          ADD    T7          SET SECTOR 
          SBD    T3 
          PJN    CSN5        IF SECTOR LIMIT PASSED 
          LDD    CN+3        UPDATE RANDOM INDEX
          STD    RI 
          LDD    CN+4 
          STD    RI+1 
          LDD    T6          SET TRACK
          STD    CN+3 
          LDD    CM+1        UPDATE SECTOR NUMBER 
          RAD    T7 
          STD    CN+4 
          RJM    SPA         STORE LIST ENTRY 
          ADN    1
          CWD    CN 
          LDN    2           ADVANCE LIST 
          RAD    PA+1 
          SHN    -14
          RAD    PA 
          LJM    CSN2        LOOP 
  
*         ADVANCE TRACK.
  
 CSN5     LDD    T3          ADVANCE RANDOM INDEX 
          SBD    T7 
          RAD    RI+1 
          SHN    -14
          RAD    RI 
          LDN    0           SECTOR = 0 
          STD    T7 
          LDD    T6          CHECK NEXT TRACK 
          SHN    6
          MJN    CSN6        IF NOT END OF CHAIN
          LDC    =C* RANDOM ADDRESS ERROR.* 
          LJM    ABT1 
  
 CSN6     RJM    SNT         SET NEXT TRACK 
          STD    T6 
          STD    T3          SET SECTOR LIMIT 
          SHN    6
          PJN    CSN7        IF END OF CHAIN
          LDI    SL          SET SECTOR LIMIT 
          STD    T3 
 CSN7     LJM    CSN2        LOOP 
 WSF      SPACE  4
**        FUNCTION 3. 
*         WRITE SYSTEM FILE.
  
  
 WSF      SUBR               ENTRY/EXIT 
          LDN    0           WRITE SYSTEM LIBRARY 
          RJM    WSL
          UJN    WSFX        RETURN 
 WPL      SPACE  4
***       FUNCTION 4. 
*         WRITE PPU LIBRARY FILE. 
  
  
 WPL      SUBR               ENTRY/EXIT 
          LDN    1           WRITE PPU LIBRARY
          RJM    WSL
          LDD    FS+1        SET FIRST TRACK
          STM    RELB 
          UJN    WPLX        RETURN 
 ELD      SPACE  4
***       FUNCTION 5. 
*         ENTER LIBRARY DIRECTORY.
  
  
 ELD      SUBR               ENTRY/EXIT 
          LDD    CN+2 
          SHN    -6          SET CHECKPOINT REQUEST 
          STM    CPSA+2 
          LDD    PA          SET LIBRARY TABLE ADDRESS
          STD    T1 
          LDD    PA+1 
          STD    T2 
          RJM    SCL         SCAN RPL 
          STM    ELDC+1      SET RCL INDEX
          SHN    -14
          RAM    ELDC 
          RJM    SCL         SCAN RCL 
          ADD    CN+1        NUMBER OF ALTERNATE SYSTEM PLD ENTRIES 
          STM    ELDG+1      SET PLD INDEX
          SHN    -14
          RAM    ELDG 
          LDD    T2 
          STD    T9 
          LDD    T1 
          STD    T8 
          RJM    SCD         SCAN PLD 
          STM    ELDF+1      SET PST INDEX
          SHN    -14
          RAM    ELDF 
          LDD    T2          SET PLD LENGTH FOR PROBE TABLE 
          SBD    T9 
          RAM    ELDA+1 
          SHN    -14
          ADD    T1 
          SBD    T8 
          RAM    ELDA 
          RJM    SCD         SCAN PST 
          STM    ELDE+1      SET EPD INDEX
          SHN    -14
          RAM    ELDE 
          RJM    SCD         SCAN EPD 
          STM    ELDD+1      SET LBD INDEX
          SHN    -14
          RAM    ELDD 
          RJM    SCD         SCAN LBD 
          STD    T7          SET LIBRARY LENGTH 
          SHN    -14
          STD    T6 
          LDN    SSTL        CHECK IF PROBE ENABLED 
          CRD    CM 
          ADK    RPLP-SSTL   FETCH RPL POINTER
          CRD    CN 
          LDD    CM+2 
          SHN    21-6 
          PJN    ELD0        IF PROBE ENABLED 
          LJM    ELD1        PROBE NOT ENABLED
  
 ELD0     AOM    ELDB        FLAG PROBE ENABLED 
          STM    ELDH 
          LDD    CN+1        SET FWA OF PROBE TABLE 
          ADD    T7 
          STD    AB+4 
          SHN    -14
          ADD    CN 
          ADD    T6 
          STD    AB+3 
 ELDA     LDC    TPRDL*2+1   SET PROBE TABLE LENGTH 
          SHN    -1 
          STD    AB+2 
          SHN    -14
          STD    AB+1 
          LDC    4000        CLEAR PROBE TABLE INTERLOCK
          STD    AB 
          LDC    BIOL        READ BUFFERED I/O TABLE POINTER
          CRD    FN 
          LDD    FN+1        READ FWA OF *IOST* 
          SHN    14 
          LMD    FN+2 
          ZJN    ELD0.1      IF NO BUFFER I/O DEVICES 
          ADK    PUTP        BUILD *IOSP* BASED ON *PUTP* 
          CRD    CM 
          LDD    AB+4        SET FWA OF *IOST*
          ADD    AB+2 
          STD    CM+4 
          SHN    -14
          ADD    AB+3 
          ADD    AB+1 
          STD    CM+3 
          LDD    FN+1        WRITE FWA OF *IOST*
          SHN    14 
          LMD    FN+2 
          ADK    IOSP 
          CWD    CM 
          LDD    CM+2        ADJUST TABLE LENGTH TO INCLUDE *IOST*
          RAD    AB+2 
          SHN    -14
          ADD    CM+1 
          RAD    AB+1 
 ELD0.1   LDD    AB+2        ADJUST FOR LIBRARY LENGTH
          RAD    T7 
          SHN    -14
          ADD    AB+1 
          RAD    T6 
 ELD1     LDD    T6          SET NEW CMR LENGTH 
          ADD    CN 
          SHN    14 
          ADD    T7 
          ADD    CN+1 
          ADN    77          ROUND UP 
          SHN    -6 
          STD    CW 
          ADC    -MCMR
          MJN    ELD1.1      IF NEW CMR LENGTH VALID
          LDC    =C* CMR OVERFLOW.* 
          UJN    ELD1.2      DISPLAY MESSAGE AND ABORT JOB
  
 ELD1.1   LDN    CMRL        FETCH CMR LENGTH 
          CRD    CM 
          LDD    CM+4        CHECK FL REQUIRED
          SBD    CW 
          ZJN    ELD2        IF NO CHANGE 
          LDC    CPAS+JCIW   READ JOB CONTROL OF CP 1 
          CRD    CM 
          LDD    CM+2        CHECK SUBSYSTEM ID 
          LMC    IFSI 
          NJN    ELD2        IF JOB MOVABLE 
          LDC    =C* SYSTEM ACTIVITY PROHIBITS LIBRARY CHANGE.* 
 ELD1.2   LJM    ABT1        ABORT *SYSEDIT*
  
 ELD2     LDN    0
*         LDN    1           (PROBE ENABLED)
 ELDB     EQU    ELD2 
          ZJN    ELD4        IF PROBE NOT ENABLED 
  
*         PROBE TABLE IS LEFT INTERLOCKED BY *SET* DURING 
*         DEADSTART LOAD. 
  
          LDD    DS 
          NJN    ELD4        IF DEADSTART 
 ELD3     RJM    PSE
          LDN    1           INTERLOCK PROBE TABLES 
          STD    CM+1 
          STD    CM+2 
          LDD    MA 
          CWM    ELDN,ON
          MONITOR  UADM 
          LDD    CM+1 
          NJN    ELD3        IF PROBE TABLE NOT INTERLOCKED 
 ELD4     LDN    0           CLEAR *CPUMTR* TABLES
          RJM    ICT
          LDC    RPLP        LOCK RPL 
          CRD    CM+3 
          LDN    ZERL 
          CRD    CM 
          ADN    RPLP-ZERL   STORE ZERO RPL POINTER 
          CWD    CM+3 
          ADN    PLDP-RPLP   LOCK PLD 
          CRD    CM+3 
          LDN    ZERL 
          CRD    CM 
  
*         A ZERO *PLD* POINTER IS SET TO INHIBIT PROGRAM LOADS WHILE
*         THE *RPL* AND *PLD* ARE BEING WRITTEN BY *SLL*. 
  
          ADN    PLDP-ZERL   STORE ZERO PLD POINTER 
          CWD    CM+3 
          LDN    DFPP        READ FWA OF DAYFILE DUMP BUFFER
          CRD    CM 
          LDD    CM+2        INHIBIT DAYFILE DUMP 
          SHN    14 
          LMD    CM+3 
          CWM    ELDK,ON
          LCN    0
          SBN    1
          NJN    *-1
 ELD6     LDD    CW          SET NEW CMR SIZE 
          STD    CM+1 
          LDC    1000        SET CMR REQUEST
          STD    CM+2 
          MONITOR RSTM
          LDD    CM+1        CHECK FIELD LENGTH 
          NJN    ELD6        IF MEMORY NOT ASSIGNED 
          RJM    CLT         COPY LIBRARY TABLE 
          LDC    RCLP        FETCH RCL POINTER
          CRD    CM 
          LDD    CN          SET RCL ADDRESS
          SHN    14 
          ADD    CN+1 
 ELDC     ADC    *
          STD    CM+1 
          SHN    -14
          STD    CM 
          LDC    RCLP        STORE RCL POINTER
          CWD    CM 
          ADN    LBDP-RCLP   FETCH LBD POINTER
          CRD    CM 
          LDD    CN          SET LBD ADDRESS
          SHN    14 
          ADD    CN+1 
 ELDD     ADC    *
          STD    CM+3 
          SHN    -14
          STD    CM+2 
          LDC    LBDP        STORE LBD POINTER
          CWD    CM 
          ADN    EPDP-LBDP   FETCH EPD POINTER
          CRD    CM 
          LDD    CN          SET FWA OF EPD 
          SHN    14 
          ADD    CN+1 
 ELDE     ADC    *
          STD    CM+1 
          SHN    -14
          STD    CM 
  
          ERRNZ  PSTP-EPDP   POINTERS NOT IN SAME WORD
  
          LDD    CN          SET FWA OF PST 
          SHN    14 
          ADD    CN+1 
 ELDF     ADC    *
          STD    CM+3 
          SHN    -14
          STD    CM+2 
          LDC    PSTP        STORE EPD/PST POINTERS 
          CWD    CM 
          SBN    PSTP-PLDP   UNLOCK LIBRARY 
          CRD    CM 
          LDD    CN 
          SHN    14 
          ADD    CN+1 
 ELDG     ADC    *
          STD    CM+1 
          SHN    -14
          STD    CM 
          LDC    PLDP        STORE PLD POINTER
          CWD    CM 
          SBN    PLDP-RPLP   STORE RPL POINTER
          CWD    CN 
          LDN    1           INITIALIZE *CPUMTR* TABLES 
          RJM    ICT
 ELDH     LDN    0
*         LDN    1           (PROBE ENABLED)
          ZJN    ELD7        IF PROBE NOT ENABLED 
          LDD    MA          CLEAR PROBE TABLE
          CWD    AB 
          CRD    CM 
          LDD    CM+1        CLEAR FUNCTION CODE
          LPN    77 
          STD    CM+1 
          MONITOR  CSTM 
          LDN    PDTL        SET PACKED DATA IN PROBE TABLE 
          CRD    CM 
          LDD    AB+3 
          SHN    14 
          ADD    AB+4 
          CWD    CM 
          LDC    PRBP        CLEAR PROBE TABLE INTERLOCK
          CWD    AB 
 ELD7     RJM    LDB         LOAD *1DD* BOOTSTRAP 
          LDD    PL          CLEAR *PPULIB* FNT ENTRY 
          RJM    CFE
          STD    PL 
          SOM    RELA        CLEAR ERROR CONDITION FLAG 
          LDC    CPS         SET MAIN LOOP EXIT ADDRESS 
          RJM    REL         RELEASE PP 
          LJM    ELDX        RETURN 
  
 ELDK     ADN    77          DISABLE DAYFILE DUMP BOOTSTRAP 
          PJN    *-1
          LJM    FTN-1       RE-RETURN FROM *DFMM*
  
  
 ELDN     CON    LDOS        DECREMENT LOW CORE FIELD BY ONE
          CON    PRBP        WORD ADDRESS 
          CON    59D*100B+1  BIT ADDRESS/FIELD WIDTH
          CON    0,0
          SPACE  4
***       FUNCTION 6. 
*         ASSEMBLE TABLE OF ALTERNATE SYSTEM DEVICES. 
  
  
 EAD      SUBR               ENTRY/EXIT 
          LDD    CN+2 
          SHN    -6 
          STD    CN+2 
          LDN    NOPE        INITIALIZE EST ORDINAL FOR SEARCH
          STD    T7 
          LDN    ZERL 
          CRD    CM 
 EAD1     SFA    EST,T7 
          ADK    EQDE 
          CRD    T1          READ EST ENTRY 
          LDD    T1 
          SHN    21-13
          PJN    EAD3        IF NOT MASS STORAGE
          SHN    13-12
          MJN    EAD3        IF SYSTEM DEVICE 
          SHN    12-1 
          MJN    EAD3        IF DEVICE OFF OR DOWN
          LDD    T1+4 
          SHN    3
          ADN    STLL 
          CRD    FS          READ MST 
          LDD    FS 
          SHN    21-0 
          PJN    EAD3        IF NOT ALTERNATE SYSTEM DEVICE 
          LDD    T1+3 
 EAD2     STD    T7+1        SET DEVICE TYPE
          RJM    SPA         WRITE TABLE ENTRY
          ADD    CM+4 
          CWD    T7 
          AOD    CM+4        ADVANCE COUNT
 EAD3     AOD    T7 
          LMD    LE 
 EADA     NJN    EAD1        IF NOT AT LAST MASS STORAGE EQ 
          STD    T7 
          STM    EADA 
          STD    CN 
          ZJN    EAD2        TERMINATE TABLE
          LDD    RA 
          ADD    CN+1 
          SHN    6
          LMD    CN+2 
          CWD    CM          WRITE TABLE LENGTH 
          LJM    EADX 
          SPACE  4
***       FUNCTION 7. 
*         WRITE FILE ON ALTERNATE SYSTEM DEVICE.
  
  
 WAD8     LDN    2           SET *ALTSYS* FST INDEX 
          STD    CN+1 
 WADA     LDC    0
          STD    PA+1        SET LIST ADDRESS 
          SHN    -14
          STD    PA 
          RJM    CSN         CONVERT SECTOR NUMBERS 
          LDD    T5          SET EQUIPMENT
          STD    CM+1 
          LDD    FS+1        SET FIRST TRACK OF ASR FILE
          STD    CM+2 
          STD    T6 
          LDN    USTS        UPDATE SYSTEM TABLE TRACK
          STD    CM+3 
          MONITOR  SMDM 
          AOD    FA          WRITE SYSTEM SECTOR
          SETMS  IO,(NS,RW),WDSB
          RJM    WSS
          ENDMS 
          LDD    AL          CLEAR *ALTSYS* FNT ENTRY 
          RJM    CFE
          STD    AL          CLEAR FST POINTER
          LDM    TSYD        SET TRT ADDRESS
          RJM    STA
  
 WAD      SUBR               ENTRY/EXIT 
          LDD    CN+2 
          SHN    -6 
          STD    CN+2 
          LDC    NASF        CREATE LOCAL FILE *ALTSYS* 
          RJM    CLF
          STD    AL 
          LDD    CN+1 
          SHN    6
          LMD    CN+2 
          STM    WADA+1      SAVE LIST ADDRESS
          SHN    -14
          LMC    LDCI 
          STM    WADA 
          LPN    77 
          SHN    6
          ADD    RA          READ FIRST ENTRY IN LIST 
          SHN    6
          ADM    WADA+1 
          CRD    CM 
          LDC    TSYD+ASDE
          STM    RMTA 
          LDD    CM+4        SET EST ORDINAL FROM LIST
          SHN    -6 
          STM    TSYD+ASDE
          STD    FS 
          SFA    EST         READ EST ENTRY 
          ADK    EQDE 
          CRD    CN 
          LDD    CN+4        GET DEVICE USAGE WORD FROM MST 
          SHN    3
          ADN    DULL 
          CRD    CM 
          LDD    CM+3 
          STD    FS+1 
          STD    FS+2 
          ZJN    WAD5        IF NO PREVIOUS LIBRARY ON THIS DEVICE
          LDN    FSMS 
 WAD5     STD    FS+3 
          LDD    FS          SET TRT ADDRESS
          RJM    STA
          NFA    AL,R 
          CWD    FS 
 WADB     LDN    0
          ZJN    WAD7        IF NO PREVIOUS ALTERNATE LIBRARY 
          SOM    WADB 
 WAD6     LDC    RTCL 
          CRD    CM          READ CLOCK 
          LDD    CM 
          SBD    CW 
          SHN    14          DETERMINE ELAPSED TIME 
          ADD    CM+1 
          SBD    CW+1 
          SBN    6
          MJN    WAD6        IF NOT SIX SECOND DELAY
 WAD7     LDN    2           WRITE ALTERNATE LIBRARY
          RJM    WSL
          LJM    WAD8        COMPLETE PROCESSING
 RSE      SPACE  4,10 
***       FUNCTION 8. 
*         RETURN SYSTEM EST ORDINAL.
  
  
 RSE      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    CM 
          LDM    TSYD        SET SYSTEM DEVICE
          STD    CM+1 
          RJM    SPA         RETURN SYSTEM DEVICE TO *SYSEDIT*
          CWD    CM 
          UJN    RSEX        RETURN 
 DPE      SPACE  4,10 
***       FUNCTION 9. 
*         DROP PP FOR ERROR CONDITION.
  
  
 DPE      SUBR               ENTRY/EXIT 
          LDC    DPP         SET MAIN LOOP EXIT TO DROP PP
          RJM    REL         RELEASE SYSTEM FILES 
          UJN    DPEX        RETURN 
          TITLE  MASS STORAGE I/O ROUTINES. 
 WMS      SPACE  4,10 
**        WMS - WRITE MASS STORAGE. 
* 
*         ENTRY  (A) = BUFFER ADDRESS.
* 
*         EXIT   (A) .GE. 0.
* 
*         ERROR  TO *ABT1* IF WRITE ERROR.
* 
*         CALLS  WDS. 
  
  
 WMS      SUBR               ENTRY/EXIT 
          RJM    WDS
 WMSA     PJN    WMSX        IF NO WRITE ERROR
          LDC    UJNI-PJNI
          RAM    WMSA        DISABLE MASS STORAGE ERROR PROCESSING
 WMS1     LDC    =C* SYSTEM DEVICE ERROR.*
          UJN    ABT1        ABORT THE JOB
          TITLE  SUBROUTINES. 
 ABT      SPACE  4
**        ABT - ABORT JOB.
  
  
 ABT      LDC    =C* INCORRECT SLL REQUEST.*
 ABT1     STM    ABTA 
          RJM    DFM
 ABT2     LDC    LDNI+ABTM   CHANGE DROP TO ABORT FUNCTION
          STM    DPPA 
          ERRPL  ABTM-100    CODE DEPENDS ON VALUE
          LDD    DS 
          NJN    ABT4        IF DEAD START LOAD 
          AOM    RELA 
 ABT3     RJM    REL         RELEASE SYSTEM FILES 
          LJM    DPP
  
 ABT4     LDN    MS2W-MS1W
          STD    T1 
          LDC    DSCP*CPAS+MS1W 
          CWM    *,T1 
 ABTA     EQU    *-1
          UJN    ABT4        HANG PP
 CFE      SPACE  4,10 
**        CFE - CLEAR LOCAL FNT ENTRY.
* 
*         ENTRY  (A) = RELATIVE ADDRESS OF FST IN NFL.
* 
*         EXIT   (A) = 0. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 CFE      SUBR               ENTRY/EXIT 
          ZJN    CFEX        IF NO FNT ENTRY
          ADN    FSTL        SET RELATIVE FNT ADDRESS 
          STD    CM+4 
          LDN    0
          STD    CM+2 
          STD    CM+3 
          LDN    DLFS        DELETE LOCAL FNT ENTRY 
          STD    CM+1 
          MONITOR  PLFM 
*         LDN    0
          UJN    CFEX        RETURN 
 CLF      SPACE  4,15 
**        CLF - CREATE LOCAL FILE.
* 
*         ENTRY  (A) = ADDRESS OF FILE NAME.
* 
*         EXIT   (A) = NFL OFFSET OF FST ENTRY. 
*                (FA) = NFL OFFSET OF FNT ENTRY.
*                (FS) = EST ORDINAL OF FIRST SYSTEM DEVICE. 
* 
*         USES   FN - FN+4. 
* 
*         CALLS  PSE, *0BF*.
* 
*         MACROS EXECUTE. 
  
  
 CLF2     NJN    CLF1        IF WAITING FOR NFL INCREASE
          LDM    TSYD        SET EST ORDINAL
          STD    FS 
          LDD    FA          NFL OFFSET TO FST INFORMATION
          SBN    FSTL 
  
 CLF      SUBR               ENTRY/EXIT 
          STM    CLFA 
 CLF1     RJM    PSE         PAUSE FOR STORAGE MOVE 
          LDD    MA 
          CWM    *,ON 
 CLFA     EQU    *-1
          SBN    1           MOVE FILE NAME TO DIRECT CELLS 
          CRD    FN 
          LDN    NEEQ        SELECT NO MASS STORAGE ASSIGNMENT
          STD    FS 
          EXECUTE  0BF,OVL
          UJN    CLF2        FILE NOT PREVIOUSLY DEFINED
  
 CLTX     EQU    *           HANG IF FILE PRESENT 
 CLT      SPACE  4
**        CLT - COPY LIBRARY TABLES.
* 
*         ENTRY  (IR+3 - IR+4) = FWA LIBRARY TABLES.
*                (CN - CN+1) = FWA RPL. 
*                (T6 - T7) = LENGTH.
* 
*         USES   T1 - T3. 
* 
*         CALLS  SPA. 
  
  
 CLT      SUBR               ENTRY/EXIT 
          RJM    SPA         SET READ ADDRESS 
          STM    CLTA+1 
          SHN    -14
          LMC    ADCI 
          STM    CLTA 
          LDD    CN+1        SET STORE ADDRESS
          STM    CLTB+1 
          LDD    CN 
          LMC    ADCI 
          STM    CLTB 
          LDD    HN          SET FULL BLOCK WORD COUNT
          STD    T1 
          LDN    0           CLEAR BLOCK COUNTER
          STD    T2 
          LDD    T6          SET BLOCK COUNT
          SHN    14 
          LMD    T7 
          SHN    -6 
          STD    T3 
          ZJN    CLT2        IF NO FULL BLOCKS
 CLT1     LDD    T2          READ BLOCK 
          SHN    6
 CLTA     ADC    *           READ BLOCK 
          CRM    BFMS,T1
          LDD    T2          STORE BLOCK
          SHN    6
 CLTB     ADC    *
          CWM    BFMS,T1
          AOD    T2          ADVANCE BLOCK
          SBD    T3 
          MJN    CLT1        LOOP FOR ALL BLOCKS
          NJN    CLT3        IF SHORT BLOCK PROCESSED 
 CLT2     LDD    T7          SET SHORT COUNT
          LPN    77 
          STD    T1 
          NJN    CLT1        IF NOT EMPTY 
  
*         CLEAR REMAINDER OF 100B BLOCK OF CM.
  
 CLT3     LDD    CN          FWA OF RPL 
          ADD    T6          ADD LENGTH 
          SHN    14 
          LMD    CN+1 
          ADD    T7 
          SBN    1
          STM    CLTC+1      SET LWA+1 OF LIBRARY 
          SHN    -14
          LMC    ADCI 
          STM    CLTC 
          LDM    CLTC+1 
          ADN    1
          LPN    77 
          ZJN    CLT5        IF NO REMAINDER TO CLEAR 
          LDK    ZERL        READ ZERO WORD 
          CRM    BFMS,ON
          LDN    0           INITIALIZE COUNTER 
          STD    T1 
 CLT4     AOD    T1 
 CLTC     ADC    **          LWA+1 OF LIBRARY 
          CWM    BFMS,ON
          LPN    77 
          NJN    CLT4        IF 100B BOUNDARY NOT REACHED 
 CLT5     LJM    CLTX        RETURN 
 ERT      SPACE  4,10 
**        ERT - ENTER RESIDENCY TABLE.
* 
*         ENTRY  (T3 - T7) - TABLE ENTRY. 
*                (T1) = CURRENT NUMBER OF TABLE ENTRIES.
* 
*         EXIT   (T1) INCREMENTED BY ONE. 
  
  
 ERT      SUBR               ENTRY/EXIT 
          LDD    T1          COMPUTE TABLE ADDRESS
          SHN    2
          ADD    T1 
          ADM    ERDC 
          STM    ERTA 
          LDD    MA          WRITE ENTRY
          CWD    T3 
          CRM    *,ON 
 ERTA     EQU    *-1
          AOD    T1 
          UJN    ERTX        EXIT 
 PSE      SPACE  4
**        PSE - PAUSE.
* 
*         USES   CM - CM+4. 
  
  
 PSE      SUBR               ENTRY/EXIT 
          PAUSE 
          LDD    CM+1 
          ZJN    PSE1        IF NO ERROR FLAG 
          LDD    DS 
          NJN    *           IF DEADSTART LOAD
          LJM    ABT3 
  
 PSE1     LDD    CM+2 
          LPN    1
          ZJN    PSEX        IF NO ROLLOUT
          LDC    =C* INCORRECT ROLLOUT REQUEST.*
          LJM    ABT1 
 REL      SPACE  4
**        REL - RELEASE PP. 
* 
*         ENTRY  (A) = EXIT ADDRESS FOR *SLL* MAIN LOOP.
  
  
 REL7     LDN    FNTP        FETCH SYSTEM FNT POINTER 
          CRD    T6 
  
*         RELEASE SYSTEM FILE FROM JOB. 
  
          LDD    T6          READ SYSTEM FILE FNT 
          SHN    14 
          LMD    T7 
          ERRNZ  SYFO        SYSTEM FILE ORDINAL .NE. 0 
          CRD    FN 
          ADN    FSTG 
          CRD    CN 
          LDD    FS+1        REWIND FILE
          STD    FS+2 
          STD    CN+1 
          LDN    ZERL 
          CRD    CM 
          SOD    FN+4        CLEAR SYSTEM FILE INTERLOCK
          LDD    FS 
          STD    CN 
          LDD    T6          STORE SYSTEM FILE FNT
          SHN    14 
          LMD    T7 
          ERRNZ  SYFO        SYSTEM FILE ORDINAL .NE. 0 
          CWD    FN 
          ADN    FSTG 
          CWD    CN 
          LDN    FSMS 
          STD    FS+3 
          LDN    5           SET OPERATION COMPLETE 
          STD    FS+4 
          NFA    SF,R        STORE LOCAL FILE STATUS
          CWD    FS 
          LDD    AL          CLEAR *ALTSYS* FNT ENTRY 
          RJM    CFE
          LDD    PL          CLEAR *PPULIB* FNT ENTRY 
          RJM    CFE
  
 REL      SUBR               ENTRY/EXIT 
          STM    SLLB 
          LDD    SF 
          ZJN    RELX        IF SYSTEM FILE NOT RESERVED
          LCN    0
          STD    EI 
          NFA    SF,R        READ FST INFORMATION 
          CRD    FS 
          UJN    REL2        CHECK FIRST SYSTEM DEVICE
  
*         RELEASE UNUSED MASS STORAGE SPACE.
  
 REL1     LDM    TETC,EI
          ZJN    REL2        IF NO EMPTY CHAIN
          STD    CM+2 
          MONITOR DTKM
*         LDN    0           SET EMPTY CHAIN RELEASED 
          STM    TETC,EI
 REL2     AOD    EI          ADVANCE INDEX
          LDM    TSYD,EI     SET NEXT EQUIPMENT 
          STD    CM+1 
          SHN    6
          PJN    REL1        IF MORE SYSTEM DEVICES 
          LDC    501
          STD    T1 
 REL3     LDN    0           CLEAR SYSTEM SECTOR BUFFER 
          STM    BFMS,T1
          SOD    T1 
          NJN    REL3        LOOP TO START OF BUFFER
          STD    EI 
 REL4     LDM    TSYD,EI     SET SYSTEM EQUIPMENT 
          STD    T5 
          SETMS  IO,(NS,RW) 
 RELA     LDN    1
*         LDN    0           (NO ERROR CONDITION) 
          ZJN    REL5        IF NO ERROR CONDITION
          RJM    RSF         RESTORE SYSTEM FILE
  
*         WRITE SYSTEM SECTORS. 
  
 REL5     LDD    FS+1        SET FIRST TRACK
          STD    T6 
          LDD    SF 
          ADN    FSTL 
          STD    FA 
          LDC    *           SET PPU LIBRARY TRACK
 RELB     EQU    *-1
          STM    PLSS 
          RJM    WSS         WRITE SYSTEM SECTOR
          LDM    PLSS        SET PPU LIBRARY FILE TRACK 
          STD    T6 
          LDD    MA          SET FILE NAME
          CWM    NPPU,ON
          SBN    1
          CRM    FNSS,ON
          LDN    0           CLEAR FST ADDRESS
          STD    FA 
          STM    FASS 
          RJM    WSS         WRITE SYSTEM SECTOR
          ENDMS 
          AOD    EI          ADVANCE EQUIPMENT INDEX
          LDM    TSYD,EI
          SHN    6
          MJN    REL6        IF END OF SYSTEM EQUIPMENTS
          LJM    REL4        LOOP 
  
 REL6     LJM    REL7        RELEASE SYSTEM FILE FROM JOB 
 RMT      SPACE  4
**        RMT - RESERVE MATCHING TRACK. 
* 
*         ENTRY  (A) = 0, TO ABORT IF TRACK UNAVAILABLE.
*                    = 1, TO RETURN IF TRACK UNAVAILABLE. 
*                (T6) = CURRENT TRACK.
* 
*         EXIT   (A) = TRACK ASSIGNED.
*                    .LT. 0, IF RETURN ON TRACK UNAVAILABLE.
* 
*         USES   T1, T2, T9, CM - CM+4. 
  
  
 RMT12    LDM    RMTB        RETURN WITH TRACK
  
 RMT      SUBR               ENTRY/EXIT 
          STD    RF 
          LCN    0           INITIALIZE EQUIPMENT INDEX 
          STD    T1 
 RMT1     AOD    T1          ADVANCE INDEX
 RMT2     LDM    TSYD,T1     SET EST ORDINAL
 RMTA     EQU    *-1
*         LDM    TSYD+ASDE   ALTERNATE DEVICE PROCESSING
          STD    CM+1 
          SHN    6
          MJN    RMT12       IF END OF TABLE
          LDN    0           REQUEST ONE TRACK
          STD    CM+3 
          STD    CM+4 
          LDD    T6          RESERVE TRACK
          STD    CM+2 
          MONITOR RTCM
          LDD    CM+4        SET TRACK ASSIGNED 
          STM    RMTB,T1
          NJN    RMT4        IF TRACK ASSIGNED
          LDD    RF 
          ZJN    RMT3        IF RETURN NOT SELECTED 
          LCN    0           FORCE TRACK MISMATCH 
          STD    CM+4 
          AOD    RF          SET TO EXIT ON TRACK LIMIT 
          LDD    T1 
          NJN    RMT5        IF NOT FIRST EQUIPMENT 
          LCN    1           EXIT WITH TRACK LIMIT
          LJM    RMTX        RETURN 
  
 RMT3     ENDMS 
          LDC    =C* SYSTEM TOO BIG FOR MASS STORAGE.*
          LJM    ABT1 
  
 RMT4     LDD    T1 
 RMT5     ZJP    RMT1        IF FIRST EQUIPMENT 
          STD    T2 
          LDM    RMTB-1,T1   COMPARE WITH PREVIOUS TRACK
          SBD    CM+4 
          ZJN    RMT5        IF SAME TRACK
          PJN    RMT6        IF NEW TRACK LOWER 
          LDN    0           START WITH FIRST EQUIPMENT 
          STD    T2 
 RMT6     LDM    TSYD,T2     DROP TRACKS FOLLOWING LAST MATCH 
          STD    CM+1 
          STD    T9 
          LDM    RMTB,T2     SET FIRST TRACK IN CHAIN 
          STD    CM+2 
          LDD    T6 
          ZJN    RMT7        IF NO INITIAL TRACK
          LPC    3777 
          STD    CM+2 
          LDN    0           SET LAST SECTOR WRITTEN
 RMT7     STD    CM+3 
          MONITOR DTKM
          STD    CM+4 
          LDD    T9          SET EST ORDINAL
          STD    CM+1 
          LDM    TETCA,T2    RESERVE SAME TRACK LINKED TO EMPTY CHAIN 
          STD    CM+2 
          MONITOR RTCM
          LDD    CM+4        SET LAST TRACK IN EMPTY CHAIN
          STM    TETCA,T2 
          LDM    TETC,T2
          NJN    RMT8        IF EMPTY CHAIN STARTED 
          LDD    CM+4        START EMPTY CHAIN
          STM    TETC,T2
 RMT8     LDD    T2 
          LMD    T1 
          ZJN    RMT11       IF LOWER TRACK PROCESSING
          AOD    T2          ADVANCE TABLE
          LMD    T1 
          ZJN    RMT9        IF ALL LOWER EQUIPMENT PROCESSED 
          LJM    RMT6 
  
 RMT9     LDM    TSYD,T2     DROP TRACK FOLLOWING LAST MATCH
          STD    CM+1 
          LDM    RMTB,T2
          STD    CM+2 
          LDD    T6 
          ZJN    RMT10       IF NO INITIAL TRACK
          LPC    3777 
          STD    CM+2 
          LDN    0           SET LAST SECTOR WRITTEN
 RMT10    STD    CM+3 
          MONITOR DTKM
          STD    T1          CLEAR EQUIPMENT INDEX
          LDD    RF 
          SHN    21-1 
          PJN    RMT11       IF NOT TRACK LIMIT PROCESSING
          LJM    RMTX        EXIT WITH TRACK LIMIT ERROR
  
 RMT11    LJM    RMT2        RESTART ASSIGNMENT 
  
  
 RMTB     BSS    MXSY        SYSTEM DEVICE TRACKS ASSIGNED
 RSF      SPACE  4
**        RSF - RESTORE SYSTEM FILE.
* 
*         ENTRY  (T5) = EQUIPMENT.
*                (RSFA) = SYSTEM / PPULIB EOI TRACK.
*                (RSFB) = SYSTEM / PPULIB EOI SECTOR. 
* 
*         CALLS  WEI. 
* 
*         MACROS ENDMS, MONITOR.
  
  
 RSF2     LDC    0           RESTORE PPU LIBRARY TRACK
 RSFC     EQU    *-1
          STM    RELB 
  
 RSF      SUBR               ENTRY/EXIT 
          LCN    0           CLEAR FILE INDEX 
          STD    CN 
 RSF1     AOD    CN          ADVANCE FILE INDEX 
          LMN    2
          ZJN    RSF2        IF BOTH FILES PROCESSED
          LDM    RSFA,CN     SET *EOI* TRACK
          ZJN    RSF1        IF NO TRACK ASSIGNED 
          STD    T6 
          LDM    RSFB,CN     SET EOI SECTOR 
          STD    T7 
          LDM    SF,CN       SET FNT ADDRESS
          ADN    FSTL 
          STD    FA 
          RJM    WEI         WRITE EOI
          ENDMS 
          LDD    T5          SET EQUIPMENT
          STD    CM+1 
          LDD    T6          SET TRACK
          LPC    3777 
          STD    CM+2 
          LDD    T7          SET SECTOR 
          STD    CM+3 
          MONITOR DTKM       DROP TRACKS
          LJM    RSF1        LOOP 
  
 RSFA     CON    0,0
 RSFB     CON    0,0
 SBP      SPACE  4
**        SBP - SET BUFFER PARAMETERS.
* 
*         ENTRY  (IR+3 - IR+4) = FET ADDRESS. 
* 
*         EXIT   BUFFER PARAMETERS SET IN *WTB*.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  SPA. 
  
  
 SBP      SUBR               ENTRY/EXIT 
          RJM    SPA         READ FIRST 
          ADN    1
          CRD    CM 
          LDD    RA          SET (RA) REFERENCES
          STM    AB1
          SHN    6
          STM    AB2+1
          STM    AB3+1
          STM    AB5+1
          SHN    -14
          LMC    ADCI 
          STM    AB2
          STM    AB3
          STM    AB5
          LDD    CM+3        FIRST + RA 
          LPN    37 
          STD    CM+3 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    CM+4 
          STM    AB4+1
          SHN    -14
          LMC    LDCI 
          STM    AB4
          LDD    CM+4        FIRST
          STM    BF2+1
          LDD    CM+3 
          LMC    ADCI 
          STM    BF2
          RJM    SPA         READ LIMIT 
          ADN    4
          CRD    CM 
          LDD    CM+3        -LIMIT 
          LPN    37 
          LMC    ADCI+77
          STM    BF1
          LCN    0
          LMD    CM+4 
          STM    BF1+1
          LJM    SBPX        RETURN 
 SCD      SPACE  4
**        SCD - SCAN DIRECTORY. 
* 
*         ENTRY  (T1 - T2) = FWA. 
* 
*         EXIT   (T1 - T2) ADVANCED.
*                (A) = INDEX OF (T1 - T2).
* 
*         USES   CM - CM+4. 
  
  
 SCD2     LDD    T1          RETURN INDEX 
          SBD    PA 
          SHN    14 
          ADD    T1+1 
          SBD    PA+1 
  
 SCD      SUBR               ENTRY/EXIT 
 SCD1     LDD    T1          READ ENTRY 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    T2 
          CRD    CM 
          AOD    T2          ADVANCE ADDRESS
          SHN    -14
          RAD    T1 
          LDD    CM          CHECK ENTRY
          ADD    CM+1 
          ADD    CM+2 
          ADD    CM+3 
          ADD    CM+4 
          NJN    SCD1        LOOP TO BLANK ENTRY
          LDD    T1          CHECK ADDRESS
          SHN    14 
          LMD    T2 
          SBN    1
          SHN    -6 
          SBD    FL 
          MJN    SCD2        IF WITHIN FL 
          LDC    =C* LIBRARY TABLE ERROR.*
          LJM    ABT1 
 SCL      SPACE  4
**        SCL - SCAN LIBRARY. 
* 
*         ENTRY  (T1 - T2) = FWA. 
* 
*         EXIT   (T1 - T2) ADVANCED.
*                (A) = INDEX OF (T1 - T2).
* 
*         USES   CM - CM+4. 
  
  
 SCL      SUBR               ENTRY/EXIT 
 SCL1     LDD    T1          READ ENTRY 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    T2 
          CRD    CM 
          LDD    CM+4        ADVANCE ADDRESS
          RAD    T2 
          SHN    -14
          ADD    CM+3 
          LPN    37 
          RAD    T1 
          LDD    CM          CHECK ENTRY
          ADD    CM+1 
          ADD    CM+2 
          ADD    CM+3 
          ADD    CM+4 
          NJN    SCL1        LOOP TO BLANK ENTRY
          AOD    T2          INCLUDE BLANK ENTRY
          SHN    -14
          RAD    T1 
          SHN    14          CHECK ADDRESS
          LMD    T2 
          SHN    -6 
          SBD    FL 
          PJN    SCL2        IF OUT OF FL 
          LDD    T1          RETURN INDEX 
          SBD    PA 
          SHN    14 
          ADD    T2 
          SBD    PA+1 
          LJM    SCLX 
  
 SCL2     LDC    =C* LIBRARY TABLE ERROR.*
          LJM    ABT1 
 SPA      SPACE  4,10 
**        SPA - SET PARAMETER ADDRESS.
* 
*         ENTRY  (PA - PA+1) = RELATIVE ADDRESS OF PARAMETER WORD.
* 
*         EXIT   (A) = ABSOLUTE PARAMETER ADDRESS.
  
  
 SPA      SUBR               ENTRY/EXIT 
          LDD    PA 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    PA+1 
          UJN    SPAX        RETURN 
 STA      SPACE  4,15 
**        STA - SET TRT ADDRESS.
* 
*         ENTRY  (A) = EST ORDINAL. 
* 
*         EXIT   (T5) = EST ORDINAL.
*                (SNTA) = *ADC TRTS*. 
*                DRIVER LOADED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS SETMS. 
  
  
 STA      SUBR               ENTRY/EXIT 
          STD    T5 
          SETMS  IO,(NS),WDSB 
          LDD    CM+4 
          SHN    3           GET TRT POINTER
          ADN    TRLL 
          CRD    CM 
          LDD    CM+3 
          LPN    77 
          SHN    14 
          LMD    CM+4 
          SBD    TH          4S-2 
          STM    SNTA+1 
          SHN    -14
          LMC    ADCI 
          STM    SNTA 
          UJN    STAX        RETURN 
 SNT      SPACE  4
**        SNT - SET NEXT TRACK. 
* 
*         ENTRY  (T6) = CURRENT TRACK.
* 
*         EXIT   (A) = NEXT TRACK.
  
  
 SNT      SUBR               ENTRY/EXIT 
          LDD    T6          READ TRT WORD
          SHN    -2 
 SNTA     ADC    TRTS 
          CRD    CM 
          LDD    T6          SET BYTE INDEX 
          LPN    3
          STD    T1 
          LDM    CM,T1       RETURN WITH TRACK
          UJN    SNTX 
 WEF      SPACE  4
**        WEF - WRITE END OF FILE.
* 
*         ENTRY  (T6) = TRACK.
*                (T7) = SECTOR. 
* 
*         EXIT   (T6) AND (T7) UPDATED. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  RMT, SNT, WEI, WMS.
* 
*         MACROS ENDMS, MONITOR.
  
  
 WEF      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR FIRST CONTROL BYTE 
          STM    BFMS 
          LDD    T7          SET NEXT SECTOR
          ADN    1
          STM    BFMS+1 
          LMI    SL 
          NJN    WEF1        IF NOT END OF TRACK
          RJM    SNT         SET NEXT TRACK 
          STM    BFMS+1 
          SHN    6
          MJN    WEF1        IF TRACK AVAILABLE 
          ENDMS 
*         LDN    0
          RJM    RMT         RESERVE TRACK
          STM    BFMS+1 
 WEF1     LDC    BFMS+WCSF   WRITE CONSECUTIVE SECTORS
          RJM    WMS
          AOD    T7          INCREMENT SECTOR 
          LMI    SL 
          NJN    WEF2        IF NOT NEW TRACK 
          STD    T7          RESET TRACK AND SECTOR 
          LDM    BFMS+1 
          STD    T6 
 WEF2     RJM    WEI         WRITE EOI SECTOR 
          ENDMS 
          LDD    T5          SET EQUIPMENT
          STD    CM+1 
          LDD    T6          SET TRACK
          LPC    3777 
          STD    CM+2 
          LDD    T7          SET SECTOR 
          STD    CM+3 
          MONITOR DTKM       DROP TRACKS
          LJM    WEFX        RETURN 
 WTB      SPACE  4
**        WTB - WRITE BUFFER. 
* 
*         ENTRY  (CN - CN+4) = OUT POINTER WORD.
*                (T6) = TRACK.
*                (T7) = SECTOR. 
* 
*         EXIT   (CN - CN+4) UPDATED. 
*                (T6) AND (T7) UPDATED. 
* 
*         ERROR  TO *ABT1* IF INVALID SECTOR WORD COUNT.
* 
*         USES   SE, T1, T2, T8, CM - CM+4. 
* 
*         CALLS  RMT, SBP, SNT, WMS.
* 
*         MACROS ENDMS. 
  
  
 WTB      SUBR               ENTRY/EXIT 
          LDD    T6 
          NJN    WTB1        IF TRACK ASSIGNED
          LDD    FS+1        SET FIRST TRACK
          STD    T6 
          AOD    SE 
          LJM    WTB10       WRITE DUMMY SYSTEM SECTOR
  
 WTB1     LDD    RA          CHECK RA 
          LMC    *           (RA) 
 AB1      EQU    *-1
          ZJN    WTB2        IF NO CHANGE 
          RJM    SBP         SET BUFFER PARAMETERS
 WTB2     LDD    CN+3        READ CONTROL WORD
          SHN    14 
          ADD    CN+4 
 AB2      ADC    *           (RA) 
          CRD    CM 
          AOD    CM+4        SET WORD COUNT 
          LDC    101         CHECK WORD COUNT 
          SBD    CM+4 
          PJN    WTB3        IF LEGAL WORD COUNT
          LDD    RA 
          SHN    6
          ADN    2
          CWD    CM 
          ADN    1
          CWD    CN 
          ENDMS 
          LDC    =C* BUFFER CONTROL WORD ERROR.*
          LJM    ABT1 
  
 WTB3     LDD    CN+3        CHECK OUT + WORD COUNT 
          SHN    14 
          ADD    CN+4 
          ADD    CM+4 
 BF1      ADC    -*          (-LIMIT) 
          MJN    WTB6        IF LIMIT NOT REACHED 
  
*         PROCESS WRAP AROUND SECTOR. 
  
          STD    T2          SET SECOND PART WORD COUNT 
          LDD    CM+4        SET FIRST PART WORD COUNT
          SBD    T2 
          STD    T1 
          ZJN    WTB4        IF NO FIRST PART 
          LDD    CN+3        READ FIRST PART
          SHN    14 
          ADD    CN+4 
 AB3      ADC    *           (RA) 
          CRM    BFMS-3,T1
 WTB4     LDD    T2          CHECK SECOND PART LENGTH 
          ZJN    WTB5        IF NO SECOND PART
          LDD    T1          SET PP BUFFER ADDRESS
          SHN    2
          ADD    T1 
          RAM    WTBA 
 AB4      LDC    *           READ SECOND PART (FIRST+RA)
          CRM    BFMS-3,T2
 WTBA     EQU    *-1         (RESET)
 WTB5     LDD    T2          SET OUT AFTER SECOND PART
 BF2      ADC    *           (FIRST)
          STD    CN+4 
          SHN    -14
          STD    CN+3 
          UJN    WTB7 
  
*         PROCESS NORMAL SECTOR.
  
 WTB6     LDD    CN+3        READ BUFFER
          SHN    14 
          ADD    CN+4 
 AB5      ADC    *           (RA) 
          CRM    BFMS-3,CM+4
  
*         ADVANCE OUT POINTER.
  
          LDD    CM+4 
          RAD    CN+4 
          SHN    -14
          RAD    CN+3 
  
*         WRITE SECTOR. 
  
 WTB7     LDC    BFMS-3      RESET READ ADDRESS 
          STM    WTBA 
          LDD    T7          SET NEXT SECTOR
          ADN    1
          STM    BFMS 
          LMI    SL 
          NJN    WTB10       IF NOT END OF TRACK
          RJM    SNT         SET NEXT TRACK 
          STM    BFMS 
          SHN    6
          MJN    WTB10       IF TRACK ASSIGNED
          LDD    T6 
          STM    WTBC 
          ENDMS 
*         LDN    0
          RJM    RMT         RESERVE TRACK
          STM    BFMS 
          STD    T6          GET ADDITIONAL TRACKS
          LDN    7
          STD    T8 
 WTB8     LDN    1           RESERVE TRACK CHAIN
          RJM    RMT
          MJN    WTB9        IF TRACK LIMIT 
          STD    T6 
          SOD    T8 
          NJN    WTB8 
 WTB9     LDC    *           RESTORE CURRENT TRACK
 WTBC     EQU    *-1
          STD    T6 
 WTB10    LDC    WCSF+BFMS   WRITE SECTOR 
          RJM    WMS
          AOD    T7 
          LMI    SL 
          NJN    WTB11       IF NOT NEW TRACK 
          STD    T7          RESET TRACK AND SECTOR 
          LDM    BFMS 
          STD    T6 
 WTB11    SOD    SE 
          ZJN    WTB12       IF ALL SECTORS WRITTEN 
          LJM    WTB1        LOOP 
  
 WTB12    LJM    WTBX        RETURN 
 WSL      SPACE  4
**        WSL - WRITE SYSTEM LIBRARY. 
* 
*         ENTRY  (A) = 0 IF WRITING SYSTEM FILE.
*                    = 1 IF WRITING PP LIBRARY FILE.
*                    = 2 IF WRITING ALTERNATE LIBRARY FILE. 
*                (AL) = 0 IF NOT WRITING ALTERNATE LIBARY FILE. 
* 
*         EXIT   (T6) = LAST TRACK. 
*                (T7) = LAST SECTOR.
*                (FS - FS+4) = FST ENTRY. 
* 
*         USES   EI, FA, SE, T5, SN - SN+1, CM - CM+4, CN - CN+4. 
* 
*         CALLS  PSE, RMT, SBP, SEI, SPA, WEF, WTB. 
* 
*         MACROS ENDMS, SETMS.
  
  
 WSL11    LDN    5           SET OPERATION COMPLETE 
          STD    FS+4 
          NFA    FA,R        STORE FST INFORMATION
          ADN    FSTL 
          CWD    FS 
  
 WSL      SUBR               ENTRY/EXIT 
          STD    EI          SET FILE INDEX 
          LDM    SF,EI       READ FST ENTRY 
          ADN    FSTL 
          STD    FA 
          NFA    FA,R 
          ADN    FSTL 
          CRD    FS 
  
*         INITIALIZE FILE STATUS. 
  
          LDD    FS+1        CHECK TRACK
          STD    T6 
          NJN    WSL1        IF TRACK ASSIGNED
          RJM    RMT
          STD    FS+1 
          UJN    WSL2 
  
 WSL1     LDD    AL 
          NJN    WSL2        IF WRITING ALTERNATE LIBRARY 
          LDD    FS 
          STD    T5 
          RJM    SEI         SEARCH FOR END OF INFORMATION
          LDD    T6          SET NEXT TRACK 
          STD    FS+2 
          STM    RSFA,EI     SET EOI
          LDD    T7          SET NEXT SECTOR
          STD    FS+3 
          STM    RSFB,EI
  
*         INITIALIZE FILE WRITE.
  
 WSL2     RJM    SBP         SET BUFFER PARAMETERS
          LDC    WSL4        CLEAR EOF FLAG 
          STM    WSLA 
          LDN    0           CLEAR SECTOR COUNT 
          STD    SN 
          STD    SN+1 
  
*         CHECK BUFFER STATUS.
  
 WSL3     LJM    WSL4        (EOF FLAG) 
 WSLA     EQU    *-1
  
 WSL4     LDD    AL 
          ZJN    WSL5        IF NOT WRITING ALTERNATE LIBRARY 
          LDN    ASDE 
 WSL5     STD    EI          INITIALIZE EQUIPMENT INDEX 
          RJM    PSE
          RJM    SPA         READ SECTOR COUNT
          ADN    6
          CRD    CM 
          LDD    CM+3        CHECK SECTOR COUNT 
          SBD    SN 
          SHN    14 
          LMD    CM+4 
          SBD    SN+1 
          STM    WSLB 
          SBD    HN 
          PJN    WSL6        IF ENOUGH DATA IN BUFFER 
          LDD    CM 
          ZJN    WSL4        IF EOR NOT SET 
          LDC    WSL11       SET EOF
          STM    WSLA 
 WSL6     LDD    CM+3        SET NEW SECTOR COUNT 
          STD    SN 
          LDD    CM+4 
          STD    SN+1 
  
*         WRITE BUFFER. 
  
 WSL7     RJM    SPA         READ OUT 
          ADN    3
          CRD    CN 
          LDM    TSYD,EI     SET EQUIPMENT
          STD    T5 
          LDD    FS+2        SET CURRENT TRACK
          STD    T6 
          LDD    FS+3        SET CURRENT SECTOR 
          STD    T7 
          SETMS  POSITION 
          LDC    *           SET SECTOR COUNT 
 WSLB     EQU    *-1
          STD    SE 
          ZJN    WSL8        IF NO SECTORS IN BUFFER
          RJM    WTB         WRITE BUFFFER
 WSL8     LDM    WSLA        CHECK EOF STATUS 
          LMC    WSL4 
          ZJN    WSL9        IF NOT SET 
          RJM    WEF         WRITE END OF FILE
 WSL9     ENDMS 
          AOD    EI          ADVANCE EQUIPMENT INDEX
          LDM    TSYD,EI     SET NEXT EQUIPMENT 
          STD    T5 
          SHN    6
          MJN    WSL10       IF END OF EQUIPMENT
          LJM    WSL7        LOOP 
  
 WSL10    LDD    T6          UPDATE CURRENT TRACK 
          STD    FS+2 
          LDD    T7          UPDATE CURRENT SECTOR
          STD    FS+3 
          RJM    SPA         STORE OUT
          ADN    3
          CWD    CN 
          LJM    WSL3        LOOP 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMPICT 
*CALL     COMPLDB 
*CALL     COMPRSS 
          QUAL   WMS
 QUAL$    EQU    1
 WDS      EQU    WMS
*CALL     COMPWEI 
*CALL     COMPWSS 
          QUAL   *
 WEI      EQU    /WMS/WEI 
 WSS      EQU    /WMS/WSS 
*CALL     COMPSEI 
          SPACE  4,10 
          USE    LITERALS    DUMP LITERALS BLOCK
  
  
 WDSB     BSS    0           WRITE ERROR PROCESSING BUFFER
          ERRNG  BFMS-WDSB-502  BUFFER OVERLAP
          TITLE  INITIALIZATION ROUTINES. 
 TRES     SPACE  4
**        TRES - TABLE OF RECORD RESIDENCES.
*         ENTRY = 5 WORDS.
* 
*T        42/  NAME,6/  RC,12/  TY
*         NAME   RECORD NAME
*         RC     RESIDENCE CODE 
*                = 40 = RESIDENT IN CM. 
*                = 77 = RESIDENT IN *SYSTEM* FILE ONLY (NOT IN *PLD*).
*         TY     RECORD TYPE
  
  
 TRES     BSS    0
          VFD    42/0L1BP,6/40,12/PPRT
          VFD    42/0L1RU,6/40,12/PPRT
          VFD    42/0L3RU,6/40,12/PPRT
          VFD    42/0L3RV,6/40,12/PPRT
          VFD    42/0L3RW,6/40,12/PPRT
          VFD    42/0L3RX,6/40,12/PPRT
          VFD    42/0L1FA,6/40,12/PPRT
 TRESB    EQU    *
 TRESBL   EQU    *-TRES 
          VFD    42/0L"PBK0",6/40,12/PPRT 
          VFD    42/0L"PBK7",6/40,12/PPRT 
          VFD    42/0L1DD,6/40,12/PPRT
          VFD    42/0L5ME,6/40,12/PPRT
          VFD    42/0L7SE,6/40,12/PPRT
          VFD    42/0L7EK,6/40,12/PPRT
          VFD    42/0L7EL,6/40,12/PPRT
          VFD    42/0L7EM,6/40,12/PPRT
          VFD    42/0L7EN,6/40,12/PPRT
          VFD    42/0L7EO,6/40,12/PPRT
          VFD    42/0L7EP,6/40,12/PPRT
          VFD    42/0L7EQ,6/40,12/PPRT
          VFD    42/0L7ER,6/40,12/PPRT
          VFD    42/0L7ES,6/40,12/PPRT
          VFD    42/0LLSL,6/77,12/PPRT
          VFD    42/0LBCL,6/77,12/PPRT
          VFD    42/0L0AV,6/40,12/PPRT
          VFD    42/0L0CT,6/40,12/PPRT
          VFD    42/0L0DF,6/40,12/PPRT
          VFD    42/0L0QM,6/40,12/PPRT
          VFD    42/0L0SD,6/40,12/PPRT
          VFD    42/0L1CP,6/40,12/PPRT
          VFD    42/0L1RO,6/40,12/PPRT
          VFD    42/0LSFP,6/40,12/PPRT
          VFD    42/0L1MA,6/40,12/PPRT
 TRESJ    VFD    42/0L1MB,6/77,12/PPRT
 TRESA    VFD    42/0L1MC,6/77,12/PPRT
          VFD    42/0L1MD,6/40,12/PPRT
          VFD    42/0L1MP,6/40,12/PPRT
 TRESC    VFD    42/0L1HP,6/77,12/PPRT
 TRESD    VFD    42/0L1XM,6/77,12/PPRT
          VFD    42/0L2XM,6/77,12/PPRT
          VFD    42/0L2XN,6/77,12/PPRT
          VFD    42/0L1XY,6/77,12/PPRT
 TRESK    VFD    42/0LMA464,6/77,12/PURT
 TRESP    VFD    42/0LMB468,6/77,12/PURT
 TRESF    VFD    42/0L6DC,6/77,12/PPRT
          VFD    42/0L6DD,6/77,12/PPRT
 TRESG    VFD    42/0L2EA,6/77,12/PPRT
          VFD    42/0L2EB,6/77,12/PPRT
          VFD    42/0L7EA,6/77,12/PPRT
 TRESH    VFD    42/0L1HY,6/77,12/PLRT
 TRESI    VFD    42/0L1XD,6/77,12/PLRT
 TRESM    VFD    42/0L1DA,6/77,12/PLRT
          VFD    42/0L3DZ,6/77,12/PLRT
 TRESN    VFD    42/0LWLD,6/77,12/PLRT
          VFD    42/0L5DA,6/77,12/PLRT
          VFD    42/0L5SI,6/77,12/PLRT
  
*         THE FOLLOWING ENTRY MUST BE THE LAST ENTRY IN THE TABLE 
*         SO THAT THE TABLE CAN BE EXTENDED BY PRESET IF *2SG* IS 
*         TO BE INITIALIZED AS CM RESIDENT. 
  
          VFD    42/0L2SG,6/40,12/PPRT
 TRESE    CON    0
 .1       SET    TRESE-TRES 
 TRESL    EQU    .1/5 
 CSF      SPACE  4,15 
**        CSF - CLEAR SYSTEM FILE.
* 
*         ENTRY  (T5) = SYSTEM EQUIPMENT (LEVEL 2 ONLY).
*                (T6) = FIRST TRACK OF SYSTEM FILE (LEVEL 2 ONLY).
*                (FS - FS+4) = SYSTEM FILE FST ENTRY. 
* 
*         USES   SE, T1, T6, T7, CM - CM+4. 
* 
*         CALLS  RSS. 
* 
*         MACROS ENDMS, MONITOR, NFA. 
  
  
 CSF      SUBR               ENTRY/EXIT 
          LDD    T6 
          ZJN    CSFX        IF LEVEL 0 DEADSTART 
          LDC    NSYS        READ SYSTEM SECTOR 
          RJM    RSS
          NJN    CSF1        IF ERROR 
          LDM    PLSS        SET PP LIBRARY FILE TRACK
          STM    CSFA 
 CSF1     ENDMS 
*         LDN    0           CLEAR EQUIPMENT INDEX
          STD    T1 
 CSF2     LDM    TSYD,T1     SET EQUIPMENT
          STD    CM+1 
          LDD    FS+1        SET TRACK
          STD    CM+2 
          MONITOR DTKM       DROP TRACKS
          LDC    0
 CSFA     EQU    *-1
          ZJN    CSF3        IF PP LIBRARY FILE TRACK NOT FOUND 
          STD    CM+2 
          LDM    TSYD,T1     DROP TRACKS
          STD    CM+1 
          MONITOR DTKM
 CSF3     AOD    T1          ADVANCE EQUIPMENT INDEX
          LDM    TSYD,T1
          SHN    6
          PJN    CSF2        LOOP FOR ALL EQUIPMENT 
          LDN    FNTP 
          CRD    T6 
          LDN    ZERL        CLEAR SYSTEM FST ENTRY 
          CRD    FS+1 
          ERRNZ  FS+5-SE     READ DESTROYS LOCATION IN USE
          LDD    T6 
          SHN    14 
          LMD    T7 
          ERRNZ  SYFO        SYSTEM FILE ORDINAL .NE. 0 
          ADN    FSTG 
          CWD    FS 
          NFA    SF,R 
          CWD    FS 
          LJM    CSFX        RETURN 
 DAP      SPACE  4,10 
**        DAP - DISABLE ALTERNATE RESIDENT PP PROGRAMS. 
* 
*         USES   T1, T2, T3, T4, T5, CM - CM+4, CN - CN+4.
  
  
 DAP      SUBR               ENTRY/EXIT 
          LDC    PLDP        FETCH PLD POINTER
          CRD    T1 
          LCN    0           INITIALIZE PLD INDEX 
          STD    T3 
 DAP1     AOD    T3          ADVANCE PLD ENTRY
          LDD    T1 
          SHN    14 
          LMD    T2 
          ADD    T3 
          CRD    CM          READ PLD ENTRY 
          LDD    CM+1 
          ZJN    DAPX        IF END OF PLD
          LPN    77 
          STD    T5          SAVE EQUIPMENT 
          LPN    40 
          NJN    DAP1        IF CM RESIDENT 
          SFA    EST,T5      CHECK EST FOR SYSTEM DEVICE
          ADK    EQDE 
          CRD    CN 
          LDD    CN 
          SHN    21-12
          MJN    DAP1        IF SYSTEM DEVICE 
          LDN    0           INITIALIZE REPLACEMENT ENTRY INDEX 
          STD    T4 
 DAP2     AOD    T4          ADVANCE REPLACEMENT INDEX
          LDD    T1 
          SHN    14 
          LMD    T2 
          SBD    T4 
          CRD    CN          READ REPLACEMENT ENTRY 
          LDD    CN+1 
          LMD    CM+1 
          SCN    37 
          NJN    DAP2        IF NOT CORRECT REPLACEMENT ENTRY 
          LDD    CN 
          LMD    CM 
          NJN    DAP2        IF NOT CORRECT REPLACEMENT ENTRY 
          LDD    T1          REPLACE PLD ENTRY
          SHN    14 
          LMD    T2 
          ADD    T3 
          CWD    CN 
          LJM    DAP1        CONTINUE CHECKING PLD
          SPACE  4,10 
 LIBN     VFD    42/0LLIBD00,18/0 
 NSYS     VFD    42/0LSYSTEM,6/1,6/LIFT,6/0 
 PRS      SPACE  4,10 
**        PRS - PRESET PROGRAM. 
  
  
 PRS9     LDD    DS 
          ZJN    PRS10       IF NOT DEADSTART 
          RJM    CSF         CLEAR SYSTEM FILE
          LJM    PRS15
  
*         READ SYSTEM SECTOR TO LOCATE PP LIBRARY FILE. 
  
 PRS10    LDC    NSYS        READ SYSTEM SECTOR 
          RJM    RSS
          ZJN    PRS11       IF NO ERROR
          LDC    =C* SYSTEM FILE DESTROYED.*
          LJM    ABT1 
  
 PRS11    ENDMS 
          LDM    PLSS        SET PP LIBRARY FILE TRACK
          STD    FS+1 
          STD    FS+2 
          STM    RSFC 
          LDN    FSMS 
          STD    FS+3 
          NFA    PL,R        STORE PP LIBRARY FST 
          CWD    FS 
          LDC    EPDP        GET ENTRY POINT DIRECTORY ADDRESS
          CRD    CM 
          LDN    0           CLEAR PROGRAM COUNT
          STD    T2 
          UJN    PRS14       ENTER LOOP 
  
*         DISABLE ALTERNATE CP LIBRARY. 
  
 PRS12    LDD    CM+2        READ PST ENTRY 
          RAD    CN+3 
          LPN    77 
          SHN    14 
          LMD    CN+4 
          ADD    CM+3 
          CRD    AB 
          SBN    1           GET SYSTEM TRACK AND SECTOR
          CRD    CW 
          LDD    AB+1        CHECK IF *ASR* RESIDENT PROGRAM
          LPC    4000 
          ZJN    PRS13       IF NOT *ASR* RESIDENT
          LMD    AB+1        CLEAR *ASR* FLAG 
          STD    CW+1 
          LDD    AB          SET FL CONTROL 
          STD    CW 
          LDD    CN+3        UPDATE PST CONTROL WORD
          LPN    77 
          SHN    14 
          LMD    CN+4 
          ADD    CM+3 
          CWD    CW 
          AOD    T2          ADVANCE PROGRAM COUNT
 PRS13    AOD    CM+1        ADVANCE EPD ADDRESS
          SHN    -14
 PRS14    RAD    CM 
          SHN    14 
          LMD    CM+1 
          CRD    CN          READ ENTRY NAME
          LDD    CN 
          NJN    PRS12       IF NOT END OF EPD
          LDD    T2 
          ZJN    PRS15       IF NO PREVIOUS ALTERNATE LIBRARY 
          RJM    DAP         DISABLE ALTERNATE RESIDENT PP PROGRAMS 
          AOM    WADB 
          LDC    RTCL        READ CLOCK 
          CRD    CW 
  
*         SET LIBDECK RECORD NAME.
  
 PRS15    LDN    DSSL 
          CRD    CM          READ LIBDECK NUMBER
          LDD    CM+4 
          SHN    -6 
          STD    T0 
          SHN    3
          LMD    T0 
          SCN    70 
          RAM    LIBN+2 
  
*         TERMINATE INITIALIZATION PROCESS. 
  
 PRS16    LDN    ZERL        SET RPL ADDRESS FOR SYSEDIT
          CRD    CM-3 
          CRD    CN 
          ADN    RPLP-ZERL
          CRD    CM 
          AOD    CN+4 
          STD    CN+3 
          LDD    IR+3        RETURN PARAMETERS TO SYSEDIT 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
          CWD    CN 
          ADN    1
          CWM    LIBN,ON
          CWD    CM-3 
  
 PRS      SUBR               ENTRY/EXIT 
  
          ERRPL  *-BFMS      SYSTEM SECTOR BUFFER OVERLAYS CODE 
  
*         CLEAR SYSTEM AND PP LIBRARY FST ADDRESSES.  NOTE THAT THE 
*         FOLLOWING CODE ALSO CLEARS FN - FN+1. 
  
          LDN    ZERL        CLEAR FST ADDRESSES
          CRD    SF 
          ERRNZ  PL-SF-1     (ADJUST IF LOCATIONS CHANGE) 
          ERRNZ  AL-SF-2     (ADJUST IF LOCATIONS CHANGE) 
*         LDN    0
*         STD    SF 
*         STD    PL 
*         STD    AL 
          ADK    SLM-ZERL    SET SECTOR LIMIT ADDRESS 
          STD    SL 
          ADK    MMFL-SLM 
          CRD    CM 
          LDD    CM+1 
          SHN    21-13
          MJN    PRS1        IF SHARED RMS PRESENT
          LCN    TRESBL/5 
          RAM    ERDA 
          LDC    TRESB
          STM    ERDC 
 PRS1     LDD    DS 
          NJN    PRS2        IF DEADSTART 
          RJM    VSC         VALIDATE *SLL* CALL
          ZJN    PRS3        IF VALID CALL
          LJM    ABT1        ISSUE MESSAGE AND ABORT
  
 PRS2     RJM    IDS         INITIALIZE DEADSTART 
 PRS3     RJM    SSD         SET SYSTEM DEVICES 
          NFA    LFCN 
          CRD    CM          GET LOCAL FILE COUNT 
          LDC    MXLF-2-SRFE-3
          SBD    CM+4        CHECK LOCAL FILE LIMIT 
          PJN    PRS4        IF SYSTEM FILES WILL NOT CAUSE FILE LIMIT
          LDC    PRSB        * SLL - LOCAL FILE LIMIT.* 
          LJM    ABT1        ABORT *SYSEDIT* JOB
  
*         ENTER FNT ENTRIES FOR SYSTEM FILES. 
  
PRS4      LDC    NPPU        CREATE PP LIBRARY FILE 
          RJM    CLF
          STD    PL 
          LCN    LOFT-SYFT   CHANGE FILE TYPE TO *SYFT* 
          SHN    6
          RAD    FN+4 
          NFA    FA,R        STORE FNT ENTRY
          CWD    FN 
          ADN    FSTL 
          CWD    FS 
          LDN    SSTL 
          CRD    CM 
          ADK    CPPL-SSTL
          CRD    CN          GET NUMBER OF CONCURRENT PPS 
          LDD    CN+3 
          LPN    77 
          ZJN    PRS5        IF NO CONCURRENT PPS 
          LDN    40 
          STM    TRESF+3     FORCE *6DC* CM RESIDENT
          STM    TRESF+3+5   FORCE *6DD* CM RESIDENT
          STM    TRESN+3+5*0 FORCE *WLD* AND OVERLAYS CM RESIDENT 
          STM    TRESN+3+5*1
          STM    TRESN+3+5*2
          AOM    ERDA        FORCE *2SG* CM RESIDENT
 PRS5     LDC    MMFL        FETCH MMF STATUS WORD
          CRD    CM 
          LDD    CM+1 
          SHN    21-12
          PJN    PRS6        IF NOT LOW SPEED PORT MMF
          LDN    40          FORCE *MTE* OVERLAYS CM RESIDENT 
          STM    TRESG+3+5*0
          STM    TRESG+3+5*1
          STM    TRESG+3+5*2
 PRS6     LDC    MABL        CHECK FOR CY180
          CRD    CM 
          LDD    CM+1 
          SHN    21-13
          MJN    PRS7        IF NOT CME MACHINE 
          SHN    21-6-21+13 
          PJN    PRS7        IF 865/875 
          LDN    40          FORCE *1MB* CM RESIDENT
          STM    TRESJ+3
  
*         ATTACH SYSTEM FILE TO JOB.
  
 PRS7     LDC    NSYS        CREATE LOCAL COPY OF SYSTEM FILE 
          RJM    CLF
          STD    SF 
          LDN    FNTP        READ FNT POINTER 
          CRD    CM+3 
          LDD    CM+3        READ SYSTEM FILE FST 
          SHN    14 
          LMD    CM+4 
          ERRNZ  SYFO        SYSTEM FILE ORDINAL .NE. 0 
          ADN    FSTG 
          CRD    T5 
          LDD    DS 
          NJN    PRS8        IF DEADSTART 
          STD    CM+1 
          MONITOR  UTEM      INTERLOCK SYSTEM FILE
          LDD    CM+1 
          NJP    REC         IF FILE NOT INTERLOCKED
 PRS8     LDD    T6          REWIND FILE FOR LOCAL FST
          STD    FS+1 
          STD    FS+2 
          LDN    5           SET OPERATION COMPLETE 
          STD    FS+4 
  
*         COMPLETE FILE INITIALIZATION. 
  
          LCN    LOFT-LIFT   CHANGE FILE TYPE TO *LIFT* 
          SHN    6
          RAD    FN+4 
          NFA    SF,R        STORE LOCAL FST INFORMATION
          CWD    FS 
          SBN    FSTL        STORE FNT ENTRY
          CWD    FN 
          LDM    TSYD        LOAD SYSTEM DEVICE DRIVER
          RJM    STA
          LJM    PRS9        CHECK DEADSTART
  
  
 PRSB     DATA   C* SLL - LOCAL FILE LIMIT.*
 REC      SPACE  4,10 
**        REC - RECALL PP.
* 
*         EXIT   TO *PPR* IF NO ERROR FLAG IS SET IN THE CPA. 
*                TO *ABT1* IF ERROR FLAG SET IN CPA.
* 
*         USES   SF, CM - CM+4. 
* 
*         CALLS  CFE. 
* 
*         MACROS DELAY, MONITOR, PAUSE. 
  
  
 REC      LDC    **          CHECK IF *NO ABORT* OPTION SET 
 RECA     EQU    *-1
          SCN    77 
          NJN    REC2        IF NO ABORT SET
 REC1     LDN    0           CLEAR SYSTEM FILE ASSIGNMENT 
          STD    SF 
          LDC    RECB 
          LJM    ABT1        ABORT JOB
  
*         PROCESS *SLL* RECALL. 
  
 REC2     RAD    IR+3 
          DELAY 
          PAUSE 
          LDD    CM+1        CHECK ERROR FLAGS
          NJN    REC1        IF ERROR FLAGS ARE SET 
          LDD    PL          RELEASE PP LIBRARY FNT ENTRY 
          RJM    CFE
          LDD    SF          RELEASE SYSTEM FILE FNT ENTRY
          RJM    CFE
          LDN    ZERL        DEFAULT TO TIMED RECALL
          CRD    CM 
          LDD    MA 
          CWD    IR 
          MONITOR  RECM      RECALL PP
          LJM    PPR         ENTER PP RESIDENT
  
  
 RECB     DATA   C* SYSTEM FILE RESERVED.*
          SPACE  4,10 
  
          CON    2           NO RETURN W/O FILE CREATION AND RETURN ON
                             NFL INCREASE (*0BF* CALL)
 OVL      BSS    0           ZERO LEVEL OVERLAY LOAD ADDRESS
          ERRNG  7777-OVL-ZBFL  CHECK LENGTH OF *0BF* 
 CRD      SPACE  4,15 
**        CRD - CHECK FOR RESIDENT DRIVER OR CONTROLWARE. 
* 
*         ENTRY  (CM - CM+4) = EST ENTRY. 
* 
*         EXIT   *1DA* AND *3DZ* CM RESIDENT IF *DAS* DRIVE.
*                *1HP* CM RESIDENT IF 885-42 DRIVE. 
*                *1HY* CM RESIDENT IF 887 DRIVE.
*                *1XD* CM RESIDENT IF XMD DRIVE.
*                *1XM* AND *MA464* CM RESIDENT IF 895 DRIVE.
*                *1XY* AND *MA464* CM RESIDENT IF CCH 895 DRIVE.
*                *MB468* CM RESIDENT IF *CT* OR *AT* DRIVE. 
* 
*         USES   T0, T1.
  
  
 CRD3     LDC    CRDAL       SET LENGTH OF TABLE
          STD    T1 
 CRD4     LCN    2           CHECK NEXT TABLE ENTRY 
          RAD    T1 
          MJN    CRDX        IF END OF TABLE
          LDM    CRDA,T1     COMPARE DEVICE TYPES 
          LMD    CM+3 
          NJN    CRD4        IF DEVICE TYPES DO NOT MATCH 
          LDM    CRDA+1,T1
          STD    T0          SET LIST ADDRESS 
          LDN    40 
          STI    T0          FORCE OVERLAY CM RESIDENT
          LDD    T0 
          LMC    TRESM+3
          NJN    CRDX        IF NOT *DAS* DEVICE
          LDN    40 
          STM    TRESM+5+3   ALSO FORCE *3DZ* CM RESIDENT 
  
 CRD      SUBR               ENTRY/EXIT 
          LDD    CM+3        CHECK DEVICE TYPE
          LMC    2RDC 
          NJN    CRD3        IF NOT 895 
          LDN    40 
          STM    TRESK+3     FORCE *MA464* CONTROLWARE CM RESIDENT
          LDN    CM 
          STD    T0 
 CRD1     AOD    T0          ADVANCE TO NEXT CHANNEL BYTE 
          LMN    CM+3 
          ZJN    CRDX        IF BOTH CHANNEL BYTES CHECKED
          LDI    T0 
          ZJN    CRD1        IF NO CHANNEL PRESENT
          LPN    40 
          ZJN    CRD2        IF NON-CONCURRENT CHANNEL
          STM    TRESD+3*5+3 FORCE *1XY* CM RESIDENT
          UJN    CRD1        CHECK NEXT CHANNEL 
  
 CRD2     LDN    40          FORCE *1XM* AND OVERLAYS CM RESIDENT 
          STM    TRESD+3
          STM    TRESD+5+3
          STM    TRESD+2*5+3
          UJN    CRD1        CHECK NEXT CHANNEL 
  
  
 CRDA     BSS    0           DEVICES WITH RESIDENT DRIVERS/CONTROLWARE
          CON    2RAT,TRESP+3  ACS CARTRIDGE TAPE 
          CON    2RCT,TRESP+3  CARTRIDGE TAPE 
          CON    2RDB,TRESC+3  885-42 DISK
          CON    2RDF,TRESH+3  887 (4KB SECTOR) DISK
          CON    2RDH,TRESH+3  887 (16KB SECTOR) DISK 
          CON    2RDN,TRESI+3  9853 DISK
          CON    2REA,TRESM+3  5832 (1X SSD) DISK 
          CON    2REB,TRESM+3  5832 (2X SSD) DISK 
          CON    2REC,TRESM+3  5833 (1X SABRE) DISK 
          CON    2RED,TRESM+3  5833 (1XP SABRE) DISK
          CON    2REE,TRESM+3  5833 (2X SABRE) DISK 
          CON    2REF,TRESM+3  5833 (2XP SABRE) DISK
          CON    2REG,TRESM+3  5838 (1X ELITE) DISK 
          CON    2REH,TRESM+3  5838 (1XP ELITE) DISK
          CON    2REI,TRESM+3  5838 (2X ELITE) DISK 
          CON    2REJ,TRESM+3  5838 (2XP ELITE) DISK
          CON    2REK,TRESM+3  5838 (3XP ELITE) DISK
          CON    2REL,TRESM+3  5838 (4X ELITE) DISK 
          CON    2REM,TRESM+3  5833 (3XP SABRE) DISK
          CON    2REN,TRESM+3  5833 (4X SABRE) DISK 
          CON    2REO,TRESM+3 47444 (1X 3.5IN) DISK 
          CON    2REP,TRESM+3 47444 (1XP 3.5IN) DISK
          CON    2RES,TRESM+3 47444 (2X 3.5IN) DISK 
          CON    2REU,TRESM+3 47444 (2XP 3.5IN) DISK
          CON    2REV,TRESM+3 47444 (3XP 3.5IN) DISK
          CON    2REW,TRESM+3 47444 (4X 3.5IN) DISK 
 CRDAL    EQU    *-CRDA      LENGTH OF TABLE
 ECS      SPACE  4,10 
**        ECS - CHECK EXTENDED MEMORY PRESENT.
* 
*         ENTRY  (CM - CM+4) = EST ENTRY. 
* 
*         EXIT   (A) = BYTE 0 OF EST. 
*                *1MC* CM RESIDENT IF EXTENDED MEMORY PRESENT.
  
  
 ECS2     LDD    CM          POSITION FOR SYSTEM DEVICE CHECK 
          SHN    21-12
  
 ECS      SUBR               ENTRY/EXIT 
          LDD    CM+3 
          LPC    3777 
          LMC    2RDP        CHECK FOR TYPE *DP*
 ECSA     ZJN    ECS1        IF EXTENDED MEMORY PRESENT 
*         UJN    ECS2        (IF A CYBER 176) 
          LMN    2RDE&2RDP   CHECK FOR TYPE *DE*
          NJN    ECS2        IF NOT AN EXTENDED MEMORY TYPE OF DEVICE 
 ECS1     LDN    40          SET *1MC* CM RESIDENT
          STM    TRESA+3
          UJN    ECS2        RETURN 
 IDS      SPACE  4,10 
**        IDS - INITIALIZE DEAD START.
  
  
 IDS      SUBR               ENTRY/EXIT 
          LDN    DSSL 
          CRD    CM 
          LDD    CM+4        CHECK DEADSTART FLAG 
          LPN    4
          SHN    -2 
          STD    DS 
          NJN    IDS1        IF DEADSTART INTERLOCK SET 
          LJM    ABT         ISSUE MESSAGE AND ABORT
  
 IDS1     PAUSE  NE 
          LDD    IR+3        READ *REC* INPUT REGISTER
          CRD    CM 
          LDD    CM+3        CHECK RECOVERY COMPLETE FLAG 
          LMC    7776 
          NJN    IDS1        IF NOT SET 
  
 IDS2     PAUSE 
          LDD    CM          CHECK CPU STATUS 
          SHN    -11
          ZJN    IDS2        IF CPU NOT ACTIVE
          LDD    RA          READ (RA+3)
          SHN    6
          ADN    3
          CRD    CM 
          LDD    CM+3        SET CONTROL WORD ADDRESS 
          LPN    37 
          STD    IR+3 
          SHN    14 
          LMD    CM+4 
          STD    IR+4 
          ZJN    IDS2        IF NOT SET 
          LJM    IDSX        RETURN 
 SSD      SPACE  4,10 
**        SSD - SET SYSTEM DEVICES. 
* 
*         EXIT   (TSYD) PREPARED. 
*                (LE) = LAST MASS STORAGE EST ORDINAL + 1.
* 
*         ERROR  TO *ABT* IF SYSTEM DEVICE DOWN.
* 
*         USES   EI, LE, T5, CM - CM+4, CN - CN+4.
* 
*         CALLS  CBD, ECS.
* 
*         MACROS SFA. 
  
  
 SSD      SUBR               ENTRY/EXIT 
          LDN    ESTP        READ EST POINTER 
          CRD    CN 
          ADK    MABL-ESTP   READ MAINFRAME TYPE
          CRD    CM 
          LDD    CN+2        SET END OF EST 
          STM    SSDB+1 
          LDD    CN+3        SET END OF MASS STORAGE EQUIPMENTS 
          STD    LE 
          LDN    NOPE-1      INITIALIZE EST ORDINAL FOR SEARCH
          STD    T5 
          LDN    0
          STD    EI          CLEAR TABLE INDEX
          LDD    CM+1        CHECK MAINFRAME TYPE 
          SHN    -11
          LMN    7
          NJN    SSD1        IF NOT CYBER 176 
          LDC    *
          ORG    *-1
          LOC    ECSA 
          UJN    ECS2        DISABLE CM RESIDENCY OF *1MC* ON C176
          LOC    *O 
          STM    ECSA 
 SSD1     AOD    T5          READ NEXT EST ENTRY
 SSDB     LMC    *           (LAST EST ORDINAL+1) 
          ZJN    SSDX        IF END OF EST
          SFA    EST,T5      READ EST ENTRY 
          ADK    EQDE 
          CRD    CM 
          RJM    CRD         CHECK FOR RESIDENT DRIVER OR CONTROLWARE 
          LDD    CM          CHECK EQUIPMENT
          SHN    21-13
          PJN    SSD1        IF NOT MASS STORAGE
          RJM    ECS         CHECK FOR EXTENDED MEMORY
          PJN    SSD1        IF NOT SYSTEM DEVICE 
          LDD    CM 
          LPN    3           CHECK DEVICE STATE 
          LMN    3
          NJN    SSD2        IF NOT DOWN
          LDC    SSDA 
          LJM    ABT1        ABORT JOB
  
 SSD2     LDD    EI          CHECK IF SYSTEM DEVICE TABLE FULL
          LMN    MXSY 
          ZJN    SSD3        IF MAXIMUM SYSTEM DEVICES ALREADY DEFINED
          LDD    T5          ENTER EST ORDINAL IN TABLE 
          STM    TSYD,EI
          AOD    EI          ADVANCE TABLE INDEX
 SSD3     LJM    SSD1        CHECK NEXT EST ENTRY 
  
  
 SSDA     DATA   C* SYSTEM DEVICE DOWN.*
 VSC      SPACE  4,15 
**        VSC - VALIDATE *SLL* CALL.
* 
*         ENTRY  (IR+3 - IR+4) = REQUEST WORD ADDRESS.
* 
*         EXIT   (A) = 0 IF VALID *SLL* CALL. 
*                    = ADDRESS OF ERROR MESSAGE.
* 
*         ERROR  TO *ABT* IF NOT *SSJ=* CALLER. 
* 
*         USES   IR+3, CM - CM+4, CN - CN+4.
* 
*         CALLS  CUA. 
  
  
 VSC      SUBR               ENTRY/EXIT 
          LDD    CP          READ SPECIAL ENTRY POINTS
          ADK    SEPW 
          CRD    CM 
          ADK    JSCW-SEPW   READ JOB SECURITY WORD 
          CRD    CN 
          LDD    CM 
          SHN    21-2 
          MJN    VSC1        IF CALLED BY *SSJ=* JOB
          LJM    ABT         * INCORRECT SLL REQUEST.*
  
 VSC1     RJM    CUA         CHECK USER ACCESS
          NJN    VSC2        IF ACCESS NOT ALLOWED
          LDK    SSML        CHECK SECURITY MODE
          CRD    CM 
          LDD    CM 
          LPN    7
          ZJN    VSC4        IF UNSECURED SYSTEM
          LDD    CN 
          SHN    21-13
          MJN    VSC4        IF SECURITY ADMINISTRATOR
 VSC2     LDC    VSCA 
 VSC3     UJN    VSCX        RETURN 
  
 VSC4     LDD    IR+3        CHECK REQUEST WORD ADDRESS 
          STM    RECA 
          LPN    37 
          STD    IR+3 
          SHN    14 
          LMD    IR+4 
          SHN    -6 
          SBD    FL 
          MJN    VSC5        IF ADDRESS WITHIN FL 
          LDC    =C* SLL ARGUMENT ERROR.* 
          UJN    VSC3        RETURN 
  
 VSC5     LDN    0           VALID *SLL* CALL 
          UJN    VSC3        RETURN 
  
  
 VSCA     DATA   C* SYSTEM LIBRARY CHANGE INCORRECT.* 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 SSJ$     EQU    1           DEFINE SSJ CHECKING IN *COMPCUA* 
*CALL     COMPCUA 
          SPACE  4
          END 
