SET 
          IDENT  SET,0
          PERIPH J
          BASE   MIXED
          SST    LA,MA,.EST,DLYA
*COMMENT  SET - INITIALIZE SYSTEM.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  SET - INITIALIZE SYSTEM. 
          SPACE  4
***       SET - INITIALIZE SYSTEM.
* 
*         G. R. MANSFIELD.   70/12/13.
*         D. A. HIVELEY.     72/07/01.
*         J. L. WARDELL.     73/01/15.
*         P. D. HAAS.        74/07/24.
          SPACE  4
***              *SET* PERFORMS SYSTEM INITIALIZATION BY PROCESSING 
*         TEXT DECKS ON THE DEAD START TAPE.  THE TEXT RECORDS
*         MAY CONSIST OF ANY NUMBER OF LOGICAL GROUPINGS WITH A 
*         PROCESSING OVERLAY.  THE ASSEMBLY PROCESS REQUIRES 2 TEXT 
*         RECORDS, THE FIRST CONTAINS INSTRUCTIONS FOR THE OPERATOR,
*         AND THE SECOND CONTAINS THE ACTUAL TEXT.  NEITHER OF THESE
*         RECORDS SHOULD BE LONGER THAN ONE TAPE PRU.  THE PROCESS OF 
*         ASSEMBLY CONTINUES UNTIL THE RECORD *PP/PPR* IS READ AS 
*         AN OVERLAY. 
* 
*         EXAMPLE - THE FOLLOWING RECORDS ARE PRESENT.
*         CMR                CENTRAL MEMORY INITIALIZER 
*         CMRINST            INSTRUCTIONS FOR USE 
*         CMRDECK            TEXT FOR ASSEMBLY
          SPACE  4,10 
*CALL     COMPMAC 
*CALL     COMDMAC 
          QUAL   BIO
*CALL     COMSBIO 
          QUAL   *
*CALL     COMSDFT 
          LIST   X
*CALL     COMSDSL 
          LIST   *
*CALL     COMSDST 
*CALL     COMSESS 
*CALL     COMSHIO 
          QUAL   IOU
*CALL     COMSIOU 
          QUAL   *
*CALL     COMSLSD 
*CALL     COMSMSC 
*CALL     COMS176 
*CALL     COMPCHM 
*CALL     COMSCPS 
*CALL     COMSEJT 
*CALL     COMSMLS 
*CALL     COMSMMF 
*CALL     COMSMSP 
*CALL     COMSMST 
          QUAL   PFM
*CALL     COMSPFM 
          QUAL   *
*CALL     COMSPIM 
*CALL     COMSREM 
          QUAL   SCR
*CALL     COMSSCR 
          QUAL   *
*CALL     COMSSRU 
*CALL     COMSSSD 
*CALL     COMSSSJ 
*CALL     COMS1DS 
          SPACE  4
          TITLE  DIRECT LOCATION ASSIGNMENTS. 
****      DIRECT LOCATION ASSIGNMENTS.
  
  
          ORG    0
 T0       CON    PRS-1       TRANSFER ADDRESS 
 T1       CON    0
 T2       CON    0           *SCD* PP NUMBER ON ENTRY 
 T3       CON    0
 T4       CON    0           DEADSTART CHANNEL ON ENTRY 
 T5       CON    0           INTERCOMMUNICATIONS CHANNEL ON ENTRY 
 T6       CON    0
 T7       CON    77 
  
 CM       VFD    60/0        CM WORD BUFFER 
 TA       CON    0           TABLE ADDRESS
 NC       EQU    TA          NUMBER OF CONTROL POINTS + 1 
 ID       CON    2RAA        DEFAULT MACHINE ID 
 LD       CON    0           1/ISD FLAG, 11/MMF LINK DEVICE 
  
 CN       VFD    60/0        CM WORD BUFFER 
 CA       CON    0,1         CENTRAL ADDRESS
 ES       CON    /EQP/EBUT   EQUIPMENT STATUS ADDRESS 
  
 EB       CON    0           *EBUF* POINTER 
 ET       CON    0           *TDDB* POINTER 
 MS       CON    0           *TMSD* POINTER SET BY */EQ1/SMD* 
*                            *TETY* POINTER SET BY */EQ2/EQM*.
 EQ       CON    0           EST ORDINAL
 LA       CON    OVL         OVERLAY LOAD ADDRESS 
 RS       CON    0           RECOVERY STATUS
 KB       CON    0           KEYBOARD BUFFER ADDRESS
 ST       CON    0           SYNTAX TABLE ADDRESS 
  
 DP       CON    0           DISPLAY CONTROL (IPRDECK)
 MZ       CON    0,0         TOTAL CENTRAL MEMORY SIZE/100B 
 RM       CON    0           RECOVERY MODE
 DI       CON    -0          TEXT DECK INDEX
 DF       CON    0           DEADSTART FUNCTION 
 DH       CON    DC          DEADSTART CHANNEL
  
*         *HO* BIT DEFINITIONS (SAME AS MABL) - 
* 
*         0001 - CPU0 NOT PRESENT 
*         0002 - CPU1 NOT PRESENT 
*         0004 - IF 865/875, 0=865, 1=875 
*         0010 - CMU NOT PRESET 
*         0020 - CPU0 DOES NOT HAVE A STACK 
*         0040 - RESERVED 
*         0100 - NOT A CYBER 170 (NO SCR PRESENT) 
*         0200 - NOT A CYBER 70 (NO I/L REGISTER PRESENT) 
*         0400 - NOT A CYBER 170-700
*         3000 - 0 IF NOT 7000-TYPE CPU 
*              - 1 IF CYBER 76 MODEL A
*              - 2 IF CYBER 76 MODEL B
*              - 3 IF CYBER 176 
*         4000 - NOT A CYBER 170-800
  
 HO       CON    0           HARDWARE OPTIONS 
  
 AB       VFD    60/0        ASSEMBLY BUFFER
 PD       CON    0           POSSIBLE LINK DEVICE (=5 IF EST 5 IS ESM)
 FL       CON    0,1770      DEFAULT EXECUTION MEMORY SIZE
  
 DS       CON    0           DISPLAY STATUS 
 KI       CON    0           KEYBOARD INDEX 
 KM       CON    0           KEYBOARD MESSAGE 
 KA       CON    0           CHARACTER ADDRESS
 NS       CON    0           NUMBER OF SHARED MS DEVICES
 XC       CON    CH01        X-COORDINATE 
 YC       CON    0           Y-COORDINATE 
 AM       CON    0           ASSEMBLY MODE
  
 ON       CON    1           CONSTANT 1 
 HN       CON    100         CONSTANT 100 
 TH       CON    1000        CONSTANT 1000
 TR       CON    3           CONSTANT 3 
 EN       CON    0           EXTENDED MEMORY CPU ACCESS EST ORDINAL 
 DV       CON    TDDCL       MASS STORAGE DESCRIPTOR TABLE LENGTH 
 LE       CON    NOPE        LAST EST ORDINAL 
 ZR       VFD    60/0        ZERO WORD
****
          TITLE  ASSEMBLY CONSTANTS.
          SPACE  4,10 
*         ASSEMBLY CONSTANTS. 
  
  
 BC       EQU    1           BUFFER PP CHANNEL
 XPC      EQU    100         C176 EXCHANGE PACKAGE SIZE 
 MEBF     EQU    DSDL+12     MICROCODE/EI BUFFER
          ERRNZ  CPAS-3-MEBF
 BBFL     EQU    CPML+PRSL   BASIC BUFFER LENGTH
 EBFL     EQU    BBFL+5000/100  EXTENDED BUFFER LENGTH
 EDBL     EQU    44          EXTENDED MEMORY DISPLAY BUFFER LENGTH
 LDEQ     EQU    5           DEFAULT LINK DEVICE EQUIPMENT NUMBER 
 DBPS     EQU    2*400-3*3-2*1  PP SAVE AREA CONSTANT 
 PSAL     EQU    PPFW/5      *SCI* PP RESIDENT SAVE AREA LENGTH 
 QUAL$    EQU    1
  
 YCPH     EQU    LN02        Y-COORDINATE - PRIMARY HEADER LINE 
 YCSH     EQU    LN04        Y-COORDINATE - SECONDARY HEADER LINE 
          SPACE  4,10 
*         BUFFER PP FUNCTIONS.
  
  
 TBPF     BSS    0
          LOC    0
 RSBF     BSS    1           RESET BUFFER PP
 IFBF     BSS    1           INPUT FIRST BUFFER 
 ISBF     BSS    1           INPUT SECOND BUFFER
 DDDF     BSS    1           DISPLAY BUFFER 
 UECF     BSS    1           UPDATE EQUIPMENT COUNT 
 ONLF     BSS    1           OUTPUT NEXT LINE 
 RCLF     BSS    2           REPLACE CURRENT LINE 
 ANLF     EQU    RCLF+1      ADD NEXT LINE
 ADBF     BSS    1           ADVANCE BUFFER 
 ADDF     BSS    1           ADVANCE DISPLAY
 RPSF     BSS    1           RESET SECOND BUFFER
          SPACE  4,10 
*         MASS STORAGE DESCRIPTOR TABLE TAGS. 
  
  
          BSS    0
          LOC    0
 DVFA     BSS    1           FILE ALLOCATION FLAGS
 DVNT     BSS    1           NUMBER OF TRACKS 
 DVPR     BSS    1           3/ CN, 3/ C2, 1/ F2, 3/ 0,1/ CD, 1/ PF 
*                            CN = CONTROLLER NUMBER 
*                            C2 = CONTROLLER NUMBER, SECOND CHANNEL 
*                            F2 = SECOND CONTROLLER NUMBER FLAG 
*                            CD = SYSTEM CHECKPOINT DEVICE
*                            PF = ISD PRESET FLAG 
 DVPF     BSS    2           8/ NC,8/ SM,8/ DM
*                            NC = NUMBER OF CATALOG TRACKS
*                            SM = SECONDARY MASK
*                            DM = DEVICE MASK 
  
 DVNM     BSS    3           FAMILY OR PACK NAME
 DVDN     BSS    1           DEVICE NUMBER
 DVAP     BSS    1           APRDECK NUMBER 
  
 DVED     BSS    1           EQUIPMENT DESCRIPTION
 DVES     BSS    0           1000B WORD BLOCKS OF EM (2 LOCATIONS)
 DVUN     BSS    4           UNIT LIST
 DVUNL    EQU    *-DVUN      LENGTH OF UNIT LIST
  
 DVTH     BSS    0           DEVICE THRESHOLD WORD
 DVVF     BSS    1           VALIDATION FAILURE THRESHOLD 
 DVRA     BSS    1           RESTRICT ACTIVITY TRACK THRESHOLD
 DVLS     BSS    1           LOW SPACE TRACK THRESHOLD
 DVRE     BSS    1           RECOVERED ERROR THRESHOLD
 DVUE     BSS    1           UNRECOVERED ERROR THRESHOLD
  
 DVCT     BSS    1           1/  SHARED DEVICE FLAG,
*                            11/ DEFAULT NUMBER OF CATALOG TRACKS 
 DVAI     BSS    1           6/  CONTROLWARE LOAD, 6/ ALGORITHM INDEX 
 DVDI     BSS    1           6/  DRIVER INDEX, 6/ UNUSED
 DVSL     BSS    1           1/  FULL TRACK FLAG, 
*                            11/ SECTOR LIMIT + MAX PARTITION NO. 
 DVCO     BSS    1           12/ CYLINDER OFFSET FOR THIS PARTITION 
  
 TDDEL    BSS    0           LENGTH OF MS DESCRIPTOR TABLE ENTRY
          ERRNZ  TDDEL/5*5-TDDEL  TABLE LENGTH MUST BE MULTIPLE OF 5
 TDDCL    EQU    TDDEL/5     CM WORD LENGTH OF TABLE
          ERRNZ  TDDCL-5     DV VALUE DEPENDS ON LENGTH OF TABLE
 .TDDB    EQU    TDDCL*ESMX+77  CM BUFFER SIZE PLUS ROUNDING FACTOR 
 TDDBL    EQU    .TDDB/100   CM BUFFER LENGTH/100B FOR TABLE
          SPACE  4,10 
*         DEFAULT MASS STORAGE ERROR THRESHOLDS.
  
  
          ORG    AB 
 AB       INDEX 
          INDEX  DVVF-DVTH,1
          INDEX  DVRA-DVTH,0 TRACK COUNT / 8
          INDEX  DVRE-DVTH,50 
          INDEX  DVLS-DVTH,0 TRACK COUNT / 16 
          INDEX  DVUE-DVTH,1
          ORG    TBPF 
          SPACE  4,10 
**        MACRO SUBROUTINES FOR ASSEMBLING DIRECTIVE VALUES AND NAMES.
  
  
 AODSUB   MACRO 
          LIST G
 AOD      SPACE  4
**        AOD - ASSEMBLE OCTAL DIGITS.
* 
*         ENTRY  (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (A) = LOWER ASSEMBLY.
*                (AB - AB+4) = ASSEMBLED VALUE. 
*                ERROR IF SEPARATOR NOT *,* OR *.*. 
* 
*         CALLS  CDR. 
  
  
 AOD1     LDD    AB+4        RETURN WITH LOWER ASSEMBLY 
  
 AOD      SUBR               ENTRY/EXIT 
          RJM    CDR
          LMN    1R,         CHECK SEPARATOR
          ZJN    AOD1        IF *,* 
          LMN    1R.&1R,
          ZJN    AOD1        IF *.* 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
          LIST   *
 AODSUB   ENDM
 ASDSUB   MACRO 
          LIST   G
 ASD      SPACE  4,10 
**        ASD - ASSEMBLE DIGITS.
* 
*         ENTRY  (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (AB - AB+4) = ASSEMBLED DIGITS.
*                ERROR EXIT IF NO *.*.
* 
*         CALLS  CDR. 
  
  
 ASD1     LDD    AB+4        RETURN WITH LOWER ASSEMBLY 
  
 ASD      SUBR               ENTRY/EXIT 
          RJM    CDR
          LMN    1R.
          ZJN    ASD1        IF *.* 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
          LIST   *
 ASDSUB   ENDM
 ASNSUB   MACRO 
          LIST   G
 ASN      SPACE  4,10 
**        ASN - ASSEMBLE NAME.
* 
*         ENTRY  (A) = NUMBER OF CHARACTERS TO ASSEMBLE.
*                (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (CM - CM+4) = ASSEMBLED NAME.
*                (A) = 0 IF ASSEMBLY TERMINATED ON *,* OR *.*.
*                (T0) = NUMBER OF CHARACTERS ASSEMBLED. 
* 
*         USES   T1, T2.
  
  
 ASN2     AOD    T0          ADVANCE CHARACTER COUNT
          SBN    1
          SHN    21-0        FORM BUFFER ADDRESS
          ADN    CM 
          STD    T1 
          LMD    T1          CLEAR ADDRESS
          LMI    KA          INSERT CHARACTER 
          MJN    ASN3        IF CHARACTER PACKED LOW
          SHN    6           POSITION CHARACTER HIGH
 ASN3     RAI    T1          ASSEMBLE BYTE
          AOD    KA          ADVANCE CHARACTER BUFFER 
          SOD    T2          DECREMENT CHARACTER COUNT
          NJN    ASN1        IF NOT END OF ASSEMBLY 
          LDD    T0 
  
 ASN      SUBR               ENTRY/EXIT 
          STD    T2          SET CHARACTER COUNT
          LDN    0           CLEAR ASSEMBLY BUFFER
          STD    T0 
          CRD    CM 
          AOD    KA          SKIP SEPARATOR 
 ASN1     LDI    KA          CHECK NEXT CHARACTER 
          SBN    1R9+1
          MJN    ASN2        IF ALPHANUMERIC
          SBN    1R,-1R9-1
          ZJN    ASNX        IF *,* 
          SBN    1R.-1R,
          ZJN    ASNX        IF *.* 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
          LIST   *
 ASNSUB   ENDM
 CDRSUB   MACRO 
          LIST   G
 CDR      SPACE  4,10 
**        CDR - CONVERT DIGITS RIGHT ADJUSTED.
* 
*         ENTRY  (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (A) = SEPARATOR CHARACTER. 
*                (AB - AB+4) = ASSEMBLY.
* 
*         USES   T1, T2.
  
  
 CDR4     SBN    1R -1R8
          ZJN    CDR3        IF SPACE 
 CDR5     LDI    KA          RETURN WITH CHARACTER
  
 CDR      SUBR               ENTRY/EXIT 
          LDN    ZERL        CLEAR ASSEMBLY BUFFER
          CRD    AB 
 CDR1     LDI    KA          CHECK CHARACTER
          SBN    1R0
          MJN    CDR5        IF ALPHA 
          SBN    1R8-1R0
          PJN    CDR4        IF NOT OCTAL DIGIT 
          ADN    10          STORE DIGIT
          STD    T1 
          LDN    AB+4        SET BYTE ADDRESS 
          STD    T2 
 CDR2     LDI    T2          LOAD BYTE
          SHN    3
          LMD    T1          ADD NEW DIGIT
          STI    T2          STORE
          SHN    -14         SAVE OVERFLOW
          STD    T1 
          SOD    T2          ADVANCE BYTE ADDRESS 
          LMN    AB-1 
          NJN    CDR2        IF NOT FINISHED
 CDR3     AOD    KA          ADVANCE CHARACTER
          UJN    CDR1        PROCESS NEXT CHARACTER 
  
          LIST   *
 CDRSUB   ENDM
          SPACE  4,10 
**        CHKAPE - CHECK ALTERNATE PP ERROR.
* 
*         CALLS *DSE* IF THE *A* REGISTER .NE. 0. 
  
  
 CHKAPE   MACRO 
          LOCAL  CHK1 
          ZJN    CHK1        IF NO ERROR RETURNED 
          JMP    DSE         DISPLAY ERROR AND HANG 
 CHK1     BSS    0
          ENDM
          SPACE  4
**        JMP - THREADED JUMP.
* 
* 
*         JMP    ADDR 
*         ENTRY  *ADDR* = JUMP ADDRESS. 
  
  
 JMP      MACRO  ADDR 
          IF     -DEF,.ADDR,2 
          NOREF  .ADDR
 .ADDR    MAX    ADDR,*-40
          IFGT   .ADDR,*-40 
          UJN    .ADDR
 .ADDR    SET    *-1
          ELSE   2
 .ADDR    SET    *
          LJM    ADDR 
          ENDM
 SCLASS   SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC  SCLASS 
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .A       IFC    NE,$NM$SSSC$ 
 .SCL     RMT 
          INDEX  /SCD/NM,/SCD/MN_MK    TX 
 .SCL     RMT 
 .A       ENDIF 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
          QUAL   SCD
*CALL     COMSSCD 
          QUAL   *
  
*         DEFINE UNQUALIFIED *COMSSCD* SYMBOLS. 
  
 MXJC     EQU    /SCD/MXJC
 MXSC     EQU    /SCD/MXSC
 SUBSYST  SPACE  4,10 
**        SUBSYST - GENERATE SUBSYSTEM TABLE. 
* 
*         SUBSYST  NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT 
* 
*         ENTRY  *NAME* = 3 CHARACTER SUBSYSTEM NAME. 
*                *ID* = SUBSYSTEM ID. 
*                *DCP* = DEFAULT CONTROL POINT. 
*                *CP* = *YES* IF A CONTROL POINT IS ALLOWED.
*                *DEF* = *ENABLE* IF SUBSYSTEM ENABLED BY DEFAULT.
  
  
          PURGMAC  SUBSYST
  
 SUBSYST  MACRO  NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
 .A       IFC    NE,$NM$CMS$
 .SUB1    RMT                ENABLE/DISABLE CODE
 .B       IFC    EQ,$CP$YES$
 NM       DATA   C*NM*
 .B       ELSE
 NM       DATA   C*NM_.*
 .B       ENDIF 
 .1       SET    MXSI-ID
 .2       SET    .1/12D 
 .3       SET    4-.2        *SSSL* BYTE
 .4       DECMIC .1-12D*.2
 .5       SET    1S".4"      *SSSL* MASK
          LDK    .3*10000B+.5 
          JMP    CSB
 .SUB1    RMT 
  
*         SET UP DEFAULT *SSSL*.
  
 .C       IFC    EQ,$DF$ENABLE$ 
 .1       SET    MXSI-ID
 .2       SET    .1/12D 
 .3       SET    4-.2 
 .4       DECMIC .1-12D*.2
 .5       SET    1S".4" 
 .6       DECMIC .3 
 SSSL.".6"  SET  SSSL.".6"-.5 
 .C       ENDIF 
  
 .SUB     RMT                ENABLE/DISABLE SYNTAX
          INDEX  MXSI-ID,NM 
 .SUB     RMT 
 .A       ENDIF 
  
 .D       IFC    NE,$DC$$    DEFAULT SSCT TABLE 
 .SUB2    RMT 
          INDEX  MXSI-ID,DC 
 .SUB2    RMT 
 .D       ENDIF 
 SUBSYST  ENDM
          TITLE  CMR TABLE ORGANIZATION.
          SPACE  4,10 
**        LIST OF *SET* GENERATED TABLES. 
* 
*         SYMBOLS IN THIS LIST DEFINE THE ORDER IN WHICH TABLES 
*         IN CMR ARE ALLOCATED BY *SET*.  TABLES MUST BE
*         CREATED AND RECOVERED IN THE SAME SEQUENCE. 
  
  
          BSS    0
          LOC    0
 ESTO     BSS    1           EQUIPMENT STATUS TABLE 
 EXPO     BSS    1           C176 (AND 819) EXCHANGE PACKAGES 
 MCTO     BSS    1           MEMORY CONTROL TABLE 
 SCDO     BSS    1           *SCD* PARAMETER TABLE
 RPTO     BSS    1           RING PORT TABLE
 CHTO     BSS    1           CHANNEL TABLES 
 ECBO     BSS    1           *EICB* TABLES
 EMBO     BSS    1           ERROR MESSAGE BUFFER 
 EVTO     BSS    1           EVENT TABLE
 SCTO     BSS    1           SUBSYSTEM CONTROL TABLES 
 SITO     BSS    1           *SECDED* ID TABLE
 SABO     BSS    1           SYSTEM ATTRIBUTE BLOCK 
 JCAO     BSS    1           JOB CONTROL BLOCK TABLE
 MSAO     BSS    1           MASS STORAGE ALLOCATION AREA 
 ODBO     BSS    1           OPERATOR DISPLAY BUFFER
 LDBO     BSS    1           *L* DISPLAY BUFFER 
 PDBO     BSS    1           PREVIEW DISPLAY BUFFER 
 DFBO     BSS    1           DAYFILE BUFFERS
 PSVO     BSS    1           PP SAVE AREAS
 MSTO     BSS    1           MASS STORAGE TABLES
 TRTO     BSS    1           TRACK RESERVATION TABLES 
 EXMO     BSS    1           EXTENDED MEMORY BUFFERS
 INBO     BSS    1           INSTALLATION BLOCK 
 SDAO     BSS    1           STATISTICAL DATA AREA
 FOTO     BSS    1           FAMILY ORDINAL TABLE 
 FNTO     BSS    1           FILE NAME TABLE
 EJTO     BSS    1           EXECUTING JOB TABLE
 QFTO     BSS    1           QUEUE FILE TABLE 
 CLTO     BSS    1           COMMON LIBRARIES TABLE 
 LIDO     BSS    1           *LID* TABLE
 OSTO     BSS    1           OPTICAL DISK STATUS TABLE
 ORTO     BSS    1           OPTICAL DISK REQUEST TABLE 
 BSTO     BSS    1           BUFFER STATUS TABLES 
 BDTO     BSS    1           BUFFERED DEVICE CONTROL TABLES 
  
 TSGTE    BSS    0           END OF TABLES GENERATED BY *SET* 
          ERRNZ  BDTO+1-TSGTE  BUFFERED DEVICE TABLES MUST BE LAST
          TITLE  MAIN PROGRAM.
 SET      SPACE  4
**        SET - MAIN PROGRAM. 
  
  
          ORG    TBPF 
 SET      LDN    0           LOAD TEXT DECK 
          RJM    RTD
          RJM    ATD         ASSEMBLE TEXT DECK 
          RJM    3,LA        PROCESS ASSEMBLY VALUES
 SET1     RJM    ROV         LOAD TEXT PROCESSOR
          AOD    DI          ADVANCE TEXT DECK INDEX
          LMN    TTXCL
          NJN    SET         IF NOT END OF TEXT DECKS TO ASSEMBLE 
          RJM    ROV         SKIP *RCT* 
          LDN    RSBF        TERMINATE BUFFER PP PROGRAM
          RJM    IBF
 SET2     RJM    ROV         LOAD *SCP* 
          RJM    SCP         SETUP CONTROL POINTS 
          RJM    ROV         LOAD *PPR* 
  
*         PP RESIDENT (PPR) NOW LOADED. 
  
          LDC    PPFW-1      SET START ADDRESS
          STM    OVL
          LDD    DH          SET DEADSTART CHANNEL
          STM    OVL+T1 
          LDD    RS          SET RECOVERY STATUS
          STM    OVL+T2 
          LDD    DF          SET DEADSTART EQUIPMENT
          STM    OVL+DRSW 
          LDC    0           SET DEADSTART OPTIONS
 DSTO     EQU    *-1
          STM    OVL+CM 
          LDC    0           SET FIRST TRACK OF RMS DEADSTART FILE
 SETE     EQU    *-1
          STM    OVL+DRSW+1 
          LDC    PPFW        OUTPUT *PPR* TO PP 2 
 CC1      OAM.   OVL,2
          RJM    ROV
          LDD    T3          OUTPUT *STL* TO PP2
 CC2      OAM.   OVL,2
 CC3      DCN.   2
 CC4      ACN.   0           INPUT *MTR*
          LCN    0
 CC5      IAM.   0,0
 DSTO     SPACE  4,10 
**        DSTO - DEADSTART OPTIONS. 
* 
*         DSTO = 8/0,2/RA,1/A,1/G 
*                A = 0 IF AUTOLOADING ENABLED.
*                  = 1 IF AUTOLOADING DISABLED. 
*                G = 0 IF NO GRENADE AFTER CONTROLLER AUTOLOAD. 
*                    1 IF GRENADE AFTER CONTROLLER AUTOLOAD.
*                RA = 0, ALLOW RECOVERY.
*                RA = 1, CHECKPOINT ALL DEVICES, ABORT LEVEL 3. 
*                RA = 2 OR 3, CHECKPOINT NON-BUFFERED DEVICES,
*                        ABORT LEVEL 3 RECOVERY.
  
  
 DSTO     EQU    DSTO        DEADSTART OPTIONS
 TTXC     SPACE  4,10 
**        TTXC - TABLE OF TEXT DECK COUNTS. 
*         ENTRY = 1 WORD. 
* 
*T,       12/  N
*         N      TEXT DECK NUMBER 
  
  
 TTXC     BSS    0
          LOC    0
 CMRD     CON    0           CMRDECK NUMBER 
 EQPD     CON    0           EQPDECK NUMBER 
 APRD     CON    0           APRDECK NUMBER 
 IPRD     CON    0           IPRDECK NUMBER 
  
 TTXCL    BSS    0           END OF PROCESSED TEXT DECKS
 LIBD     CON    0           LIBDECK NUMBER 
          LOC    *O 
 DATA     SPACE  4
**        CONFIGURATION DATA. 
  
  
 .CCHN    CON    0           CONCURRENT CHANNEL/PP COUNT
 .CPPL    CON    0           LOGICAL CONCURRENT PP STATUS 
 .CPU     CON    0,0         CPU STATUS (PHYSICAL, LOGICAL) 
 .CHN     CON    20          CHANNEL COUNT
 .PPN     CON    0           PP COUNT 
 .PPS     CON    0,0         PPU STATUS 
 .PPL     CON    0,0         LOGICAL PP STATUS
 .PPU     CON    10D         PP CONFIGURATION 
 .CEL     CON    0           CRITICAL ERROR LOG STATUS
 .DSD     CON    0           DEADSTART DEVICE DATA
 .DCS     CON    0           DISPLAY CONSOLE STATUS 
 .APP     CON    0           NEW ALTERNATE PP NUMBER
 .MDD     CON    0           *MDD* PP NUMBER
 .NCP     CON    11D         NUMBER OF CONTROL POINTS + 1 
 .NPCP    CON    0           NUMBER OF PSEUDO CONTROL POINTS
  
 BSPT     CON    0           BUILD *SCI* PARAMETER TABLE FLAG 
 CMCC     CON    /IOU/MRRD   MAINTENANCE CHANNEL READ FUCTION 
 CMDL     CON    0           MODEL NUMBER 
 C8XX     CON    1           0 = CYBER 800 TYPE MAINFRAME 
 C9LM     CON    0           1 = CYBER 990 LARGE MEMORY 
 DCPC     CON    0           NONZERO IF DUAL 170-STATE CPUS WITH CACHE
 DCPN     CON    0           NONZERO IF *DUALCPU=N* SPECIFIED 
 DCPS     CON    0           NONZERO IF DUAL-NOS-CPU SELECTED IN *CIP*
 DLYA     CON    SBNI+4      DELAY CONSTANT FOR *COMPAPP* 
 DSFL     CON    0,0         FL ADJUSTMENT FOR DSCB 
 EMAF     CON    0           EXTENDED ADDRESS MODE FLAG 
  
 EMTY     BSSZ   5           EXTENDED MEMORY TYPE 
 EMFL     EQU    EMTY+1      EXTENDED MEMORY FIELD LENGTH / *EMBS*
 EMSC     EQU    EMTY+2      EXTENDED MEMORY SHIFT COUNT
 UEMZ     EQU    EMTY+3      UEM SIZE/100B (2 LOCATIONS)
  
 ISPF     CON    -1          SET POSITIVE IF CYBER 810/815/825/830
 LDSH     CON    0           XM SHIFT COUNT FOR LINK DEVICE 
 MDDP     CON    0           TWO PORT MUX PORT FOR *MDD*
 MSBD     CON    0           MAXIMUM SHARED BUFFERED DEVICE COUNT 
 MSDC     CON    0           MAXIMUM SHARED DEVICE COUNT
 NSBD     CON    0           NUMBER OF SHARED BUFFERED DEVICES
 PRSF     CON    0           MMF *PRESET* FLAG
 P2CC     CON    0           CPU-1 CONNECT CODE 
 SCIP     CON    0           TWO PORT MUX PORT FOR CDC 721 CONSOLE
 SPPC     CON    2           SYSTEM CONTROL POINT PP COUNT
 UESC     CON    0           USER EXTENDED MEMORY SHIFT COUNT 
 VEFL     CON    0           4000B IF *VE=* SPECIFIED 
 VEMZ     CON    0,0         NVE CM BLOCK SIZE/100B 
          SPACE  4,10 
**        *DFT* ALLOCATION DATA.
* 
*T,       6/ N, 6/ M, 1/ D, 1/ T, 10/ SIZE
*         N = NUMBER OF MAINTENANCE REGISTER BUFFERS. 
*         M = SIZE OF EACH M/R BUFFER.
*         D = 1, IF *DFT* WILL BE DEDICATED.
*         T = 1, IF MODEL 990.
*         SIZE = TOTAL SIZE OF M/R BUFFERS (N*M). 
  
  
 DFTA     VFD    6/NUMR+1,6/0 
          VFD    1/0,1/0,10/0 
  
 DFSZ     CON    0           SIZE OF *DFT/OS* BUFFER
  
*         *DFT* DESCRIPTOR OBTAINED FROM *CTI*. 
  
 DFTV     CON    0           DEFAULT = *DFT* LEVEL 3, OS INITIALIZATION 
*         CON    N           *DFT* VERSION (0 = VERSION 3)
*                                          (1 = VERSION 4)
*                                          (2 = VERSION 5)
          TITLE  SUBROUTINES. 
 IBF      SPACE  4,10 
**        IBF - INITIATE BUFFER PP FUNCTION.
* 
*         ENTRY  (A) = FUNCTION CODE. 
*                (T5) = PARAMETER FOR FUNCTION. 
* 
*         EXIT   (A) = RESPONSE FROM BUFFER PP WHERE APPLICABLE.
  
  
 IBF      SUBR               ENTRY/EXIT 
          LMN    DDDF 
          STM    AKLA        SET REFRESH STATUS 
          LMN    DDDF 
 IBFA     ACN    BC 
*         UJN    IBFX        (RETURN ON LEVEL 3 RECOVERY) 
          OAN    BC          OUTPUT REQUEST 
          FJM    *,BC        WAIT FUNCTION ACCEPT 
          LDD    T5          OUTPUT PARAMETER 
          OAN    BC 
          FJM    *,BC        WAIT PARAMETER ACCEPT
 IBFB     IAN    BC          INPUT RESPONSE 
          UJN    IBFX        RETURN 
 IDF      SPACE  4,10 
**        IDF - ISSUE *DIO* REQUEST.
* 
*         ENTRY  (A) = FUNCTION CODE. 
  
  
 IDF      SUBR               ENTRY/EXIT 
          ACN    TC 
          OAN    TC          OUTPUT REQUEST 
          FJM    *,TC        WAIT FUNCTION ACCEPT 
          UJN    IDFX        RETURN 
 RTB      SPACE  4,10 
**        RTB - READ TAPE BLOCK.
  
  
 RTB      SUBR               ENTRY/EXIT 
          LDN    RTBF        INITIATE TAPE BLOCK READ 
          ACN    TC 
          OAN    TC 
          AJM    *,TC        WAIT FUNCTION ACCEPT 
          UJN    RTBX        RETURN 
 RTD      SPACE  4,10 
**        RTD - READ TEXT DECKS.
* 
*         ENTRY  (A) = 0 TO LOAD INSTRUCTION DECK AND TEXT DECK.
*                     .NE. 0 TO LOAD TEXT DECK ONLY.
* 
*         EXIT   TO *DSE* IF CORRECT TEXT DECK NOT FOUND. 
* 
*         CALLS  IBF, IDF, RTB. 
  
  
 RTD      SUBR               ENTRY/EXIT 
          NJN    RTD1        IF LOADING TEXT DECK ONLY
          RJM    RTB
          LDD    DI          TRANSMIT DECK TYPE TO BUFFER PP
          STD    T5 
          LDN    IFBF        LOAD INSTRUCTION DECK
          RJM    IBF
 RTD1     LDN    LTDF        INITIATE SEARCH FOR TEXT DECK
          RJM    IDF
          LDM    TTXC,DI     TRANSMIT DECK NUMBER 
          OAN    TC 
          AJM    *,TC        WAIT SEARCH COMPLETE 
          LDN    ISBF        LOAD TEXT DECK 
          RJM    IBF
          NJN    RTDX        IF TEXT DECK FOUND 
  
 RTD2     LDD    DI          SET TEXT DECK NAME 
          SHN    1
          STD    DI 
          LDM    RTDB,DI
          STM    RTDC 
          LDM    RTDB+1,DI
          STM    RTDC+1 
          LDC    RTDC 
          LJM    DSE
  
 RTDB     BSS    0
          DATA   4RCMRD 
          DATA   4REQPD 
          DATA   4RAPRD 
          DATA   4RIPRD 
  
 RTDC     DATA   C*CMRDECK NOT ON TAPE.*
 ROV      SPACE  4,10 
**        ROV - READ OVERLAY. 
* 
*         EXIT   (T3) = BYTE COUNT FOR DATA.
*                (LA) = LOAD ADDRESS. 
* 
*         USES   T4, T6, CM - CM+4. 
* 
*         CALLS  IDF, RTB.
  
  
 ROV      SUBR               ENTRY/EXIT 
          ORG    ROV
          CON    RCM         EXIT TO *RCM* ON CM RECOVERY 
  
 ROV1     LDN    LNOF        INITIATE OVERLAY LOAD
          RJM    IDF
          ACN    TC 
          IAN    TC          INPUT WORD COUNT 
          SBN    20 
          STD    T3          SET BYTE COUNT 
          SHN    2
          RAD    T3 
          LMC    MXRL        SET EOR STATUS 
          STD    T4 
          LDN    20 
          STD    T6 
 ROV2     LDN    5           SKIP *PRFX* TABLE
          IAM    CM,TC
          SOD    T6 
          NJN    ROV2        IF NOT *6PPM* TABLE
          LDN    5
          ADD    CM+2        SET LOAD ADDRESS 
          STD    LA 
          LDD    LA 
 ROVB     NJN    ROV3        IF NOT PP RESIDENT 
          LDN    PSNI 
          STM    ROVB 
          LDC    OVL
 ROV3     STM    ROVC        SET LOAD ADDRESS 
          ADC    MXRL 
          STM    ROVD 
          LDD    T3 
          IAM    OVL,TC      INPUT DATA BLOCK 
 ROVC     EQU    *-1
          LDD    T4 
          NJN    ROV4        IF EOR 
          RJM    RTB         READ REMAINDER OF RECORD 
          ACN    TC 
          IAN    TC          INPUT WORD COUNT 
          STD    T4 
          ZJN    ROV4        IF EMPTY BLOCK 
          SHN    2
          RAD    T4 
          RAD    T3          ADD TO TOTAL BYTE COUNT
          LDD    T4          INPUT REMAINDER OF RECORD
          IAM    OVL+MXRL,TC
 ROVD     EQU    *-1
 ROV4     LJM    ROVX        RETURN 
 CLS      SPACE  4,10 
**        CLS - CLEAR STORAGE.
* 
*         ENTRY  (A) = WORD COUNT.
*                (CA - CA+1) = CM ADDRESS.
* 
*         EXIT   (A) .NE. 0.
*                (CA - CA+1) ADVANCED.
* 
*         USES   T1, T2.
  
  
 CLS      SUBR               ENTRY/EXIT 
          SBN    1
          MJN    CLSX        IF NULL WORD COUNT 
          STD    T2 
          SHN    -14         SET WORD COUNT 
          STD    T1 
 CLS1     LDD    CA          CLEAR WORD 
          SHN    14 
          ADD    CA+1 
          CWD    ZR 
          AOD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          RAD    CA 
          SOD    T2          DECREMENT
          PJN    CLS1        IF NO BORROW FROM NEXT BYTE
          AOD    T2 
          SOD    T1 
          PJN    CLS1        IF NOT END OF CLEAR
          UJN    CLSX        RETURN 
 DSE      SPACE  4,10 
**        DSE - DISPLAY ERROR.
* 
*         ENTRY  (A) BITS 13 - 00 = MESSAGE ADDRESS.
*                    BITS 15 - 14 = CC545 CHARACTER SIZE FLAGS. 
* 
*         EXIT   NO EXIT. 
* 
*         USES   T1, T2.
* 
*         MACROS CFNC, DFIM.
  
  
 DSE      SBN    1           SET MESSAGE ADDRESS
          STD    T1 
          SHN    -14
          LMC    SLMF        SELECT LEFT SCREEN 
          CFNC
 DSE1     LDD    T1          SET MESSAGE ADDRESS
          STD    T2 
          LDN    2           OUTPUT COORDINATES 
          OAM    DSEA,CH
 DSE2     AOD    T2          DISPLAY MESSAGE
          LDI    T2 
          OAN    CH 
          NJN    DSE2 
          CFNC   THVF        TRANSFER HIDDEN TO VISIBLE 
          LDC    SBNI+1      DELAY
          NJN    *-1
          DFIM   (UJN *)
          UJN    DSE1        LOOP 
  
  
          DFIM   (CON LN15) 
 DSEA     CON    LN25,CH01
          SPACE  4,10 
**        DISPLAY SUBROUTINES.
  
  
 FNC      DSUB
 SME      SPACE  4,10 
**        SME - SEARCH EST FOR MASS STORAGE EQUIPMENT.
* 
*         ENTRY  (EQ) = PREVIOUS EST ORDINAL. 
*                (LE) = NUMBER OF EST ENTRIES.
* 
*         EXIT   (A) = BYTE 0 OF ENTRY WITH BIT 13 IN SIGN POSITION.
*                    = 0 IF END OF EST. 
*                (EQ) = CURRENT EST ORDINAL.
*                (AB - AB+4) = EST ENTRY. 
* 
*         MACROS SFA. 
  
  
 SME      SUBR               ENTRY/EXIT 
 SME1     AOD    EQ 
          LMD    LE 
          ZJN    SMEX        IF END OF EST
          SFA    EST,EQ 
          CRD    AB          READ EST ENTRY 
          LDD    AB 
          SHN    21-13
          PJN    SME1        IF NOT MASS STORAGE
          UJN    SMEX        RETURN 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
          QUAL   GFP
  
 EST$     EQU    0           DEFINE *COMPGFP* ACCESS TO EST 
*CALL     COMPGFP 
  
          QUAL   *
  
.EST      EQU    /GFP/.EST
          SPACE  4,10 
****      SYSTEM STATUS AND CONTROL WORDS.
          SPACE  4,10 
 .SSML    BSS    0           MULTI-LEVEL SECURITY WORD
          VFD    3/0         RESERVED 
          VFD    3/0         OUTPUT QUEUE SPECIAL HANDLING LEVEL
          VFD    3/0         RESERVED 
          VFD    3/0         OPERATING SYSTEM SECURITY MODE 
          VFD    16/0        RESERVED 
          VFD    32/-0       SYSTEM ACCESS CATEGORIES 
          SPACE  4,10 
 .INWL    BSS    0           INTERLOCK WORD 
          VFD    12/0        RESERVED FOR CDC 
  
          VFD    12/0        RESERVED FOR CDC 
  
          VFD    12/0        RESERVED FOR CDC 
  
          VFD    6/0         ACTIVE *MREC* COUNT
          VFD    2/0         RESERVED FOR CDC 
          VFD    1/1         DEADSTART JOB FLAG (JOB NOT COMPLETE)
          VFD    1/0         JOB SCHEDULER (DISABLED) 
          VFD    1/1         DISABLE JOB SCHEDULING 
          VFD    1/0         RESERVED FOR CDC 
  
          VFD    6/0         RESERVED FOR CDC 
          VFD    1/0         *MCH* ERROR IN PROGRESS FLAG 
          VFD    1/0         CHECKPOINT IN PROGRESS FLAG
          VFD    1/0         WALL CLOCK CHIP RESET
          VFD    1/0         *CPD* DROP FLAG
          VFD    1/0         FATAL MAINFRAME ERROR
          VFD    1/0         SUBSYSTEM ABORT INTERLOCK
          SPACE  4,10 
 .PFNL    BSS    0           PERMANENT FILE CONTROL 
          VFD    18//PFM/DFPT  DEFAULT REMOVABLE PACK TYPE
          VFD    18/0        RESERVED 
          VFD    12/0        DEFAULT FAMILY EST ORDINAL 
          VFD    12//PFM/CPTT  CPU TRANSFER THRESHOLD FOR INDIRECT FILE 
****
          TITLE  ASSEMBLE TEXT DECK.
 ATD      SPACE  4
**        ATD - ASSEMBLE TEXT DECK. 
* 
*         ENTRY  AT *ATD3* TO FORCE DISPLAY OF TEXT DECK FOLLOWING
*                A POST PROCESSING ERROR. 
  
  
 ATD6     LDD    DS 
          ZJN    ATD3        IF DISPLAY REQUESTED 
  
 ATD      SUBR               ENTRY/EXIT 
 ATD1     LDN    0           CLEAR KEYBOARD ASSEMBLY
          STD    AM 
 ATD2     RJM    ROL         READ 1 LINE
          LDD    KI 
          ZJN    ATD6        IF END OF DATA 
          RJM    AKL         ASSEMBLE KEYBOARD LINE 
          LDD    KM          CHECK ERROR MESSAGE
          ZJN    ATD2        LOOP IF NO ERROR 
          LDN    1           SET KEYBOARD ASSEMBLY
          STD    AM 
          LDN    0           FORCE TEXT DECK DISPLAY
          STD    DS 
          STD    DP 
          RJM    AKL         ASSEMBLE KEYBOARD LINE 
          LDN    RCLF 
          UJN    ATD5        ADD CORRECTED LINE TO PP BUFFER
  
*         ENTER HERE TO FORCE DISPLAY OF TEXT DECK FOLLOWING A
*         POST PROCESSING ERROR.
  
 ATD3     LDN    2           SET KEYBOARD ASSEMBLY
          STD    AM 
          LDM    1,LA        ADD *GO.*
          STD    T1 
          LDC    GGO
          STI    T1 
 ATD4     RJM    AKL         ASSEMBLE KEYBOARD LINE 
          LDD    KI 
          ZJN    ATD4        IF NO ENTRY LINE 
          LDN    ANLF        ADD NEW LINE 
 ATD5     RJM    IBF
          LDN    KBUFL+1     TRANSMIT KEYBOARD BUFFER 
          OAM    KBUF,BC
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDD    AM 
          LMN    2
          ZJN    ATD4        ASSEMBLE NEXT KEYBOARD LINE
          LJM    ATD1        PROCESS REST OF TEXT DECK
 ILL      SPACE  4
**        ILL - INCORRECT ENTRY RETURN. 
  
  
 ILL      LDC    AKLD        MESSAGE = *INCORRECT ENTRY.* 
 ILL1     STD    KM 
*         UJN    ERR
 ERR      SPACE  4,10 
**        ERR - ERROR RETURN. 
* 
*         ENTRY  (KM) = ADDRESS OF ERROR MESSAGE. 
  
  
 ERR      LDD    AM 
          NJN    AKL1        IF ERROR NOT IN TEXT DECK
*         UJN    AKLX 
 KBR      SPACE  4
**        KBR - NORMAL KEYBOARD RETURN. 
  
  
 KBR      BSS    0           NORMAL RETURN FROM OVERLAY 
*         UJN    AKLX 
 AKL      SPACE  4
**        AKL - ASSEMBLE KEYBOARD LINE. 
  
  
 AKL      SUBR               ENTRY/EXIT 
          LDD    AM          CHECK ASSEMBLY MODE
          ZJN    AKL5        IF NOT KEYBOARD
          DFIM   (CON LDCI) 
 AKL1     UJN    AKL2        DISPLAY BUFFER 
 AKLA     CON    1
          ZJN    AKL3        IF NOT TIME TO REFRESH 
 AKL2     LDN    DDDF        DISPLAY BUFFER 
          STD    KB 
          RJM    IBF
*         RJM    /RCM/DRB    (DISPLAY LEVEL 3 RECOVERY OPTIONS) 
 AKLB     EQU    *-1
 AKL3     RJM    DKB         DISPLAY KEYBOARD BUFFER
          RJM    KBI         CHECK KEYBOARD INPUT 
          UJN    AKL4        NORMAL RETURN - *CR* NOT ENTERED 
          UJN    AKL5        PROCESS *CR* 
  
 AKL4     LDD    KI 
          NJN    AKL1        IF LINE NOT EMPTY
 AKL5     LDD    KI 
          ZJN    AKLX        RETURN IF NO ENTRY 
          LDI    LA          SET SYNTAX TABLE ADDRESS 
          STD    ST 
          LDC    KBUF        SET KEYBOARD BUFFER ADDRESS
          STD    KB 
          STD    T3 
          STD    KA 
          LDI    KB 
          LMN    1R*
          ZJN    AKLX        IF COMMENT LINE
 AKLC     UJN    *+2         SEARCH FOR MATCH 
*         RJM    /EQP/LOV    LOAD CORRECT *EQP* OVERLAY 
          CON    /EQP/LOV 
 AKL6     LDD    KB          RESET CHARACTER ADDRESS
          STD    KA 
 AKL7     AOD    ST          ADVANCE TABLE ADDRESS
          LDI    ST 
          NJN    AKL8        IF NOT END OF TABLE
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 AKL8     STD    T2          SET TABLE ENTRY
 AKL9     LDI    T2          COMPARE UPPER
          SHN    -6 
          ZJN    AKL10       IF COMPARE COMPLETE
          LMI    KA 
          NJN    AKL6        IF NO MATCH
          AOD    KA 
          LDI    T2          COMPARE LOWER
          LPN    77 
          ZJN    AKL10       IF COMPARE COMPLETE
          LMI    KA 
          NJN    AKL6        IF NO MATCH
          AOD    KA 
          AOD    T2 
          UJN    AKL9        CONTINUE COMPARE 
  
 AKL10    CRD    AB          CLEAR ASSEMBLY BUFFER
          STD    KM          CLEAR KEYBOARD MESSAGE 
          LDD    KA          (A) = CHARACTER ADDRESS
          LJM    1,T2        EXIT TO PROCESSOR
  
 AKLD     DATA   C*INCORRECT ENTRY.*
 CKB      SPACE  4,10 
**        CKB - CLEAR KEYBOARD BUFFER.
* 
*         ENTRY  (KM) = KEYBOARD MESSAGE ADDRESS. 
* 
*         EXIT   (KI) = 0.
* 
*         USES   T1.
  
  
 CKB      SUBR               ENTRY/EXIT 
          LDD    KM 
          NJN    CKBX        RETURN IF MESSAGE SET
          STD    KI          CLEAR KEYBOARD INDEX 
          STD    T1 
 CKB1     LDN    0           CLEAR BUFFER 
          STM    KBUF,T1
          AOD    T1 
          LMN    KBUFL
          NJN    CKB1 
          UJN    CKBX        RETURN 
 DKB      SPACE  4,10 
**        DKB - DISPLAY KEYBOARD BUFFER.
* 
*         ENTRY  (KM) = KEYBOARD MESSAGE ADDRESS. 
*                (KB) = KEYBOARD BUFFER REFRESH STATUS. 
* 
*         USES   T1, T2, YC.
* 
*         MACROS CFNC, DFIM.
  
  
 DKBX     DCN.   CH 
  
          LJM    *           ENTRY/EXIT 
 DKB      EQU    *-1
          LDD    KB 
          ZJN    DKBX        IF NO KEYBOARD BUFFER REFRESH
          DFIM   (CON LN50),*+1 
          LDC    LN48 
          STD    YC 
          CFNC   SLPF        SELECT LEFT SCREEN - PRIORITY OUTPUT 
          LDN    2
          OAM.   XC,CH       OUTPUT COORDINATES 
          LDD    KM 
          ZJN    DKB2        IF NO MESSAGE
          SBN    1           SET MESSAGE ADDRESS
          STD    T1 
 DKB1     AOD    T1          DISPLAY MESSAGE
          LDI    T1 
          OAN    CH 
          NJN    DKB1 
 DKB2     LCN    YINC        ADJUST Y-COORDINATE
          RAD    YC 
          DFIM   (CFNC EELF) ERASE TO END OF LINE 
          DFIM   (UJN DKB3) 
          LDN    1
          STD    T2 
          LDD    KI          CHECK KEYBOARD INDEX 
          ZJN    DKBX        IF EMPTY LINE
          SBN    40 
          PJN    DKB3        IF > 32 CHARACTERS 
          DCN.   CH 
          CFNC   SLMF        SELECT LEFT SCREEN - MEDIUM CHARACTERS 
          LCN    4           DECREMENT Y
          RAD    YC 
          LDN    2           ADVANCE COUNT
          RAD    T2 
 DKB3     LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
          LCN    1           SET INDEX
          STD    T1 
 DKB4     LDN    2           ADVANCE INDEX
          RAD    T1 
          LDM    KBUF,T1     DISPLAY 2 CHARACTERS 
          ZJN    DKB5        IF END OF KEYBOARD LINE
          SHN    6
          ADM    KBUF+1,T1
          OAN    CH 
          LPN    77 
          NJN    DKB4        LOOP 
 DKB5     CFNC   EELF        ERASE TO END OF LINE 
          LDD    KM 
          ZJN    DKB7        IF NO KEYBOARD MESSAGE 
          LDD    KA          SET CHARACTER COUNT
          ADC    -KBUF
          SHN    3
          STD    T1 
          LDD    KI 
          DFIM   (CFNC BIVF) BEGIN INVERSE VIDEO
          SBN    40 
          PJN    DKB6        IF > 32 CHARACTERS 
          LDD    T1 
          RAD    T1 
 DKB6     LDC    LN51 
          OAN.   CH 
          LDC    CH01 
          RAD    T1 
          OAN    CH 
          DFIM   (LDI KA) 
          LDN    1RA         DISPLAY CURSOR 
          SHN    6
          OAN    CH 
          LDD    T1 
          DFIM   (CFNC EIVF) END INVERSE VIDEO
          DFIM   (UJN DKB8) 
          OAN    CH 
          LDN    1RI
          SHN    6
          OAN    CH 
 DKB7     SOD    T2 
          MJN    DKB8        IF DISPLAY CYCLE COMPLETE
          LJM    DKB3        LOOP 
  
 DKB8     LJM    DKBX        RETURN 
 KBI      SPACE  4,20 
***       KBI - KEYBOARD INPUT. 
*         ALL ENTRIES ARE DISPLAYED AT THE BOTTOM OF THE LEFT SCREEN. 
*         AS THEY ARE ENTERED.
* 
*         *CR* MUST FOLLOW ALL ENTRIES BEFORE ACTION IS TAKEN.
*         *BKSP* DELETES THE PREVIOUS CHARACTER TYPED.
*         *LEFT BLANK* DELETES THE CURRENT LINE BEING ENTERED.
*         *RIGHT BLANK* TOGGLES THE DISPLAY.
* 
*         ABOVE THE ENTRY DISPLAY, THE FOLLOWING MESSAGE MAY
*         APPEAR -
*         *INCORRECT ENTRY.* = ENTRY IS UNRECOGNIZABLE. 
* 
*         EXIT   ADVANCED IF *CR* ENTERED.
*                (A) = (KB) = -1 IF *LEFT BLANK* OR *BKSP* ENTERED. 
*                (KB) = CHARACTER IF DATA ADDED TO KEYBOARD BUFFER. 
* 
*         USES   T1.
* 
*         CALLS  CKB, IBF.
* 
*         MACROS CFNC, DFIM.
  
  
 KBI12    AOM    AKLA        FORCE DISPLAY REFRESH
  
 KBI      SUBR               ENTRY/EXIT 
          LDN    0
          STD    KB 
          CFNC   SKIF        SELECT KEYBOARD INPUT
          IAN    CH 
          DCN    CH 
          DFIM   (UJN KBI1) 
          ZJN    KBI1        IF NO INPUT
          LMC    60          (PRESET CR)
 KBIA     EQU    *-1
          ZJN    KBIX        IF SAME INPUT
          LMM    KBIA        STORE NEW INPUT
 KBI1     STM    KBIA 
          ZJN    KBIX        RETURN IF NO INPUT 
          SBD    HN 
          PJN    KBI12       IF SPECIAL CHARACTER 
          ADD    HN 
          STD    T1 
          LDD    KI 
          NJN    KBI3        IF NOT FIRST CHARACTER 
          LDD    T1 
          LMN    61 
          ZJN    KBIX        RETURN IF *BKSP* 
          LMN    1R+&61 
          NJN    KBI3        IF NOT *+* 
          LDN    ADBF        ADVANCE BUFFER 
 KBI2     RJM    IBF
          JMP    KBIX        RETURN 
  
 KBI3     LDD    T1          CHECK CHARACTER
          LMN    53 
          NJN    KBI5        IF NOT *LEFT BLANK*
          STD    KM          CLEAR KEYBOARD MESSAGE 
          RJM    CKB         CLEAR KEYBOARD BUFFER
 KBI4     SOD    KB 
          JMP    KBIX        RETURN 
  
 KBI5     LMN    55&53
          NJN    KBI6        IF NOT *RIGHT BLANK* 
          LDN    ADDF        ADVANCE DISPLAY
          UJN    KBI2        ISSUE BUFFER PP FUNCTION 
  
 KBI6     LMN    60&55
          NJN    KBI7        IF NOT *CR*
          AOM    KBI         ADVANCE EXIT 
          JMP    KBIX        RETURN 
  
 KBI7     LMN    61&60
          NJN    KBI8        IF NOT *BKSP*
          STD    KM          CLEAR KEYBOARD MESSAGE 
          STM    KBUF-1,KI   CLEAR PREVIOUS ENTRY 
          SOD    KI 
          JMP    KBI4        RETURN 
  
 KBI8     LMN    62&61
          NJN    KBI9        IF NOT *SPACE* 
          LDN    1R          SUBSTITUTE * * 
          STD    T1 
 KBI9     LDD    KI 
          NJN    KBI10       IF NOT FIRST CHARACTER 
          STD    KM 
 KBI10    LMN    KBUFL
          ZJN    KBI11       IF BUFFER FULL 
          LDD    T1          STORE CHARACTER
          STM    KBUF,KI
          STD    KB 
          AOD    KI 
 KBI11    JMP    KBIX        RETURN 
 ROL      SPACE  4,10 
**        ROL - READ ONE LINE.
* 
*         EXIT   (KI) = KEYBOARD INDEX. 
* 
*         CALLS  CKB, IBF.
  
  
 ROL1     SHN    14          UNPACK DATA
          STM    KBUF,KI
          SHN    -14
          STM    KBUF+1,KI
          LDN    2           ADVANCE BUFFER INDEX 
          RAD    KI 
          IAN    BC 
 ROL2     NJN    ROL1        IF NOT END OF LINE OR DATA 
          DCN    BC 
  
 ROL      SUBR               ENTRY/EXIT 
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDN    ONLF        SELECT NEXT LINE INPUT 
          RJM    IBF
          UJN    ROL2        CHECK NEXT LINE PRESENT
 KBUF     SPACE  4
**        KBUF - KEYBOARD BUFFER. 
  
  
 KBUF     BSS    60D
 KBUFL    EQU    *-KBUF 
          CON    0           INSURE END OF LINE 
          TITLE  PROCESSING ROUTINES. 
 GO       SPACE  4
***       GO. 
*         CONTINUE WITH LOAD. 
  
  
 GGO      DATA   C*GO.* 
          AOD    DP          DISABLE *IPRDECK* DISPLAY
 GGO0     LDD    KM 
          NJN    NXT1        IF ERROR MESSAGE 
          LDN    1           SET NO DISPLAY 
          STD    DS 
 GGO1     LJM    ATDX        EXIT FROM ASSEMBLY 
 IPR      SPACE  4,10 
***       IPR.
*         CONTINUE LOAD WITH NO DISPLAY UNTIL *IPRDECK*.
  
  
 IPR      DATA   C*IPR.*
          LDN    0           SET DISPLAY FOR *IPRDECK*
          STD    DP 
          UJN    GGO0        CHECK ERROR MESSAGE
 NEXT     SPACE  4
***       NEXT. 
*         CONTINUE TO NEXT ASSEMBLY.
  
  
 NEXT     DATA   C*NEXT.* 
          LDD    KM 
          ZJN    GGO1        IF NO ERROR MESSAGE
 NXT1     JMP    KBR         RETURN 
          SPACE  4
**        OVL - OVERLAY ORIGIN. 
*         WORD 1 OF OVERLAY = ADDRESS OF SYNTAX TABLE.
*         WORD 2 OF OVERLAY = ADDRESS OF SYNTAX TABLE END.
* 
*         WORD 4 = ENTRY TO PROCESSOR.
  
  
 OVL      BSS    0
          TITLE  PRESET PROGRAM.
 PRS      SPACE  4,10 
**        PRS - PRESET PROGRAM. 
* 
*         ENTRY  (T4) = DEADSTART CHANNEL.
*                (T5) = INTERCOMMUNICATIONS CHANNEL.
  
  
 PRS      BSS    0
          LDN    ZERL        ZERO OUT ZERO WORD 
          CWD    ZR 
          RJM    CDD         CHECK DISPLAY DRIVER 
          LDN    40          EXIT *IBF* ON INACTIVE CHANNEL 
          RAM    IBFB 
          LDD    T5          BUFFER PP COMMUNICTAION CHANNEL
          SHN    14 
          ADC    CTTC        MODIFY CHANNEL INSTRUCTIONS
          RJM    MCI
          LDM    APPC        ALTERNATE PP LOCATION/CHANNEL
          LPN    77 
          SHN    14 
          ADC    CTAC        MODIFY ALTERNATE PP CHANNEL INSTRUCTIONS 
          RJM    MCI
          LDN    DPIS        REQUEST DEADSTART PANEL
          RJM    IAF
          LDM    DBUF+DPW13  WORD 13 OF DEADSTART PANEL 
          STD    T1 
          LPN    77 
          STM    TTXC+CMRD
          STM    TTXC+EQPD   SET DEFAULT EQPDECK NUMBER 
          LMD    T1 
          SHN    6+3         EXTRACT RECOVERY MODE
          SCN    4
          STD    RM 
          SHN    3           SET DISPLAY STATUS 
          LPN    1
          LMN    1
          STD    DS 
          STD    DP 
          LDM    DBUF+DPW6   WORD 6 OF DEADSTART PANEL
          STD    DF 
          LDN    CPTS        REQUEST COMMON POINTER AREA
          RJM    IAF
          LDM    DBUF+CIDP+3 GET CRITICAL ERROR LOG FLAG
          LPN    20 
          STM    .CEL 
          LDD    DF          DEADSTART FUNCTION 
          LPC    700
          SBK    300
          MJN    PRS1        IF DEADSTART FROM TAPE 
          LDD    DF 
          LPN    77          SET DISK DEADSTART 
          STD    DF 
          LDM    DBUF+OSRP   FIRST TRACK OF DEADSTART FILE
          STM    SETE 
 PRS1     LDD    T4          SET DEADSTART CHANNEL
          STD    DH 
          LDM    TRCO,RM     SET RECOVERY STATUS
          STD    RS 
          LPN    SYMK 
          LMN    SYCM 
          ZJN    PRS2        IF CM RECOVERY 
          LDC    CPAS-1 
          RJM    CLS
          LDN    MSCL        PRESERVE DEFAULT ERROR THRESHOLDS
          CWD    AB 
 PRS2     LDN    EMDS        REQUEST EI/MICROCODE DESCRIPTOR
          RJM    IAF
          LDM    MBUF 
          ZJN    PRS3        IF NO DESCRIPTOR RETURNED
          LDM    DBUF+EINM
          STM    DBUF+EIDT+3 MOVE EI SPECIFICATION
          SOM    C8XX 
          STM    DBUF+EIDT+4
          LDM    DBUF+MNLF   CLEAR MICROCODE LOADED FLAG
          SCN    1
          STM    DBUF+MNLF
          LDC    MEBF        SAVE MICROCODE/EI INFORMATION
          CWM    DBUF+MCNM,TR 
 PRS3     LDN    0           SELECT FIRST PROCESSOR 
          STM    MBUF 
          LDN    CPDS        REQUEST CPU DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+CPOA
          LPN    1           SET CYBER 990 LARGE MEMORY OPTION
          STM    C9LM 
          LDN    CMDS        REQUEST CM DESCRIPTOR
          RJM    IAF
          LDM    DBUF+LCMS   SET CM SIZE
          STD    MZ 
          STD    CM+2 
          LDM    DBUF+LCMS+1
          STD    MZ+1 
          STD    CM+3 
          LDM    DBUF+MCTC   SAVE MEMORY CONNECT CODE 
          RAM    CMCC 
          RJM    SHO         SET HARDWARE OPTIONS 
          ZJP    PRS5        IF CM RECOVERY OR CYBER 180
          LDM    DBUF+OPTN   SET MAINFRAME OPTIONS
          LPC    5700 
          LMD    TH          INVERT CYBER 176 FLAG
          STD    HO 
          LPC    1000        DUPLICATE CYBER 176 FLAG 
          SHN    1
          RAD    HO 
          LDN    0           SELECT FIRST PROCESSOR 
          STM    MBUF 
          LDN    CPDS        REQUEST CPU DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+CPOP
          LPN    37          EXTRACT PROCESSOR OPTIONS
          RAD    HO 
          LPN    7           SET PROCESSOR AVAILABLE STATUS 
          STM    .CPU 
          LPN    4
          ZJN    PRS4        IF CEJ / MEJ ENABLED 
          LDC    =C*CEJ/MEJ DISABLED.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 PRS4     LDD    HO 
          LPC    4100 
          NJN    PRS5        IF NOT CYBER 865 / 875 
          LDK    /SCR/FCRD+/SCR/M875
          OAN    CHSC 
          IAN    CHSC 
          LPN    2           SET 865/875 STATUS 
          SHN    2-1
          ADC    -400 
          RAD    HO 
 PRS5     LDD    HO          CHECK CPU STATUS 
          LPN    3
          LMN    3
          ZJN    PRS5.1      IF NO 170 STATE CPU(S) ON
          LPN    1
          NJN    PRS6        IF CPU0 ON 
          LDM    DCPC 
          ZJN    PRS6        IF NOT DUAL 170-STATE CPUS WITH CACHE
 PRS5.1   LDC    =C*NO CPU AVAILABLE.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 PRS6     LDN    IUDS        REQUEST IOU DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+PPSD   SET PP SPEED 
          STD    CM+4 
          RAM    IBUF+/BPP/CDPA 
          LDN    CSWL        SAVE *MABL* DATA 
          CWD    CM 
  
*         SET PP STATUS.
  
          LDM    DBUF+LPP0   SET LOGICAL PP STATUS
          STM    .PPL 
          LDM    DBUF+LPP1
          STM    .PPL+1 
          LDM    DBUF+LPC1   SET LOGICALLY ON CONCURRENT PP-S 
          STM    .CPPL
          LDC    6000        SET PHYSICAL PP COUNT
          RAM    DBUF+PPP0
          RJM    CSB
          STM    .PPN 
          LDC    6000        CHECK UPPER BANK 
          RAM    DBUF+PPP1
          RJM    CSB
          ZJN    PRS7        IF .LE. 10 PP-S
          LDN    10D
          RAM    .PPN 
          LDN    10D         ADJUST PP CONFIGURATION
          RAM    .PPU 
  
*         SET CHANNEL STATUS. 
  
          LDN    34          SET CHANNEL COUNT
          STM    .CHN 
 PRS7     LDM    C8XX 
          NJN    PRS8        IF NOT CYBER 800 TYPE MAINFRAME
          LDM    DBUF+CHP1
          RJM    CSB
          ADN    20          ADJUST CHANNEL COUNT 
          STM    .CHN 
          LDC    6000        SET PHYSICAL CONCURRENT CHANNEL/PP COUNT 
          RAM    DBUF+PPC1
          RJM    CSB
          STM    .CCHN
          ZJN    PRS8        IF NO CONCURRENT CHANNELS
          ADN    40 
          UJN    PRS8.1      SET MAX CHANNELS FOR FIRMWARE DISPLAY
  
 PRS8     LDM    .CHN        SET COUNT FOR BUFFER PP
 PRS8.1   RAM    IBUF+/BPP/GCLA 
  
*         SET *MDD* STATUS. 
  
          LDN    CIDS        REQUEST CONSOLE DESCRIPTOR 
          RJM    IAF
          LDM    MBUF 
          ZJN    PRS9        IF NO DESCRIPTOR RETURNED
          LDM    DBUF+SMPP
          SHN    -6          SET *MDD* PP NUMBER
          STM    .MDD 
          LDM    DBUF+MDDF   SAVE *MDD* LOADED FLAG AND PORT
          STM    MDDP 
 PRS9     RJM    CLK         PROCESS CTI CLOCK
          RJM    DDV         DETERMINE *DFT* VERSION
          LDD    DH 
          LMN    2
          NJN    PRS10       IF DEADSTART NOT FROM CHANNEL 2
          LDN    12-2        SET CHANNEL 12 FOR *STL* LOAD
          RAM    CC1
          STM    CC2
          LDN    12-2 
          RAM    CC3
 PRS10    LDD    DH 
          NJN    PRS11       IF DEADSTART NOT ON CHANNEL 0
          LDN    12-0        SET *MTR* LOAD FROM CHANNEL 12 
          RAM    CC4
          LDN    12-0 
          RAM    CC5
 PRS11    LDD    DH 
          LMN    BC 
          NJN    PRS12       IF DEADSTART NOT ON BUFFER PP CHANNEL
          LDC    12S12+CTBC 
          RJM    MCI         MODIFY BUFFER PP CHANNEL INSTRUCTIONS
  
*         MOVE ALTERNATE PP.
  
 PRS12    LDN    DIDS        GET DEADSTART DISK INFORMATION 
          RJM    IAF
          LDM    DBUF+DDCH
          LPN    37 
          SHN    14 
          LMM    DBUF+DDEU
          SHN    6
          STM    .DSD 
          RJM    EPP         EXCLUDE D/S DISK CHANNEL PP
          LDD    DH 
          RJM    EPP         EXCLUDE D/S TAPE CHANNEL PP
          LDM    .PPL 
          LMC    6407        REMOVE PP-S 0, 1, 2, 10
 PRSC     EQU    *-1
          RJM    MSB
          PJN    PRS15       IF PP FOUND
          LDM    .PPL+1 
          LMC    6000        CHECK UPPER BANK 
 PRSD     EQU    *-1
          RJM    MSB
          PJN    PRS14       IF PP FOUND
          LDC    =C* NOT ENOUGH PP-S FOR DEADSTART.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 PRS14    ADN    20          SET NEW ALTERNATE PP NUMBER
 PRS15    STM    .APP 
          ADC    MAPS*10000  MOVE PP FUNCTION 
          RJM    APM
          CHKAPE             CHECK ALTERNATE PP ERROR 
  
*         IDLE CPU(S) AWAY FROM LOCATION 0. 
  
 PRS16    LDN    20          EXCHANGE PACKAGE LENGTH
          STD    T1 
          LDD    HN          SAVE EXCHANGE PACKAGE AREA 
          CRM    MBUF,T1
          LDN    CPSL        STORE CPU IDLE PROGRAM 
          CWM    PRSA,ON
          LDD    HO          CHECK CPU TYPE 
          SHN    21-11
          MJN    PRS18       IF CYBER 176 (CPU STOPPED) 
          LDD    HO 
          LPN    2
          NJN    PRS17       IF CPU 1 OFF / NON-EXISTENT
          LDM    DCPC 
          NJN    PRS17       IF DUAL 170-STATE CPUS WITH CACHE
          LDD    HN          STORE EXCHANGE PACKAGE 
          CWM    PRSB,T1
          SBN    20 
          EXN    1           EXCHANGE CPU 1 
          SBN    1           WAIT EXCHANGE COMPLETE 
          NJN    *-1
          LDD    HO 
          LPN    1
          NJN    PRS18       IF CPU 0 OFF 
 PRS17    LDD    HN          STORE EXCHANGE PACKAGE 
          CWM    PRSB,T1
          SBN    20          EXCHANGE CPU 0 
          EXN    0
          SBN    1           WAIT EXCHANGE COMPLETE 
          NJN    *-1
 PRS18    LDD    HN          RESTORE EXCHANGE PACKAGE AREA
          CWM    MBUF,T1
          LDN    0           CLEAR LOCATION 0 
          CWD    ZR 
  
*         START BUFFER PP.
  
          RJM    DCB         DEFINE CM BUFFER SPACE 
          STM    IBUF+/BPP/EA 
 .ESBL    EQU    ESTE*ESMX+77  CM BUFFER SIZE PLUS ROUNDING FACTOR
 ESTBL    EQU    .ESBL/100   CM BUFFER LENGTH/100B FOR EST
          ADK    ESTBL       RA/100 OF *TDDB* TABLE 
          STD    ET 
          STM    IBUF+/BPP/MA 
 .CTBL    EQU    3*CTALL+77  CM BUFFER SIZE PLUS ROUNDING FACTOR
 CTABL    EQU    .CTBL/100   CM BUFFER LENGTH/100 FOR CHANNEL TABLES
          ADK    TDDBL+CTABL
          STM    IBUF+/BPP/FA 
          LDC    IBUFL       TRANSMIT PP BUFFER PROGRAM 
          OAM    IBUF,BC
          FJM    *,BC        WAIT OUTPUT COMPLETE 
          DCN    BC 
          LDD    EB          CLEAR EST ASSEMBLY BUFFER
          SHN    6
          STD    CA+1 
          SHN    -14
          STD    CA 
          LDC    ESTBL*100+TDDBL*100+CTABL*100
          RJM    CLS
          LDD    LE          ENTER EST CONSTANTS
          SHN    1
          STD    T1 
          LDD    EB 
          SHN    6
          CWM    EBTA,T1
          LDN    CFGL        SET EXTENDED MEMORY MODE INTO *CFGL* 
          CRD    AB 
          LDD    HO 
          LPC    4100 
          NJN    PRS19       IF NOT CYBER 865/875 
          LDN    1           FORCE ESM MODE 
          UJN    PRS20       SET MODE IN *CFGL* 
  
 PRS19    IJM    SET1,CHSC   IF SCR CHANNEL INACTIVE
          LDN    /SCR/FCRD+/SCR/ESMM/14  READ SCR EXTENDED MEMORY MODE
          OAN    CHSC 
          IAN    CHSC 
          SHN    -/SCR/ESMM+/SCR/ESMM/14*14 
          LPN    1
 PRS20    SHN    12-0 
          RAD    AB+3        INSERT MODE BIT
          LDN    CFGL 
          CWD    AB 
          LJM    SET1        PROCESS TEXT DECKS 
          SPACE  4,10 
*         SCRATCH BUFFER. 
  
 MBUFL    MAX    MLED,CTALL*5,100*5 
 MBUF     EQU    7777-MBUFL 
 DBUF     EQU    MBUF+APDL
 CDD      SPACE  4,10 
**        CDD - CHECK DISPLAY DRIVER. 
* 
*         ENTRY  (T2) = *SCD* PP NUMBER IF CDC721 CONSOLE.
*                (T7) = 77. 
*                (CM - CM+4) = 0. 
* 
*         MACROS MDIN.
  
  
 CDD      SUBR               ENTRY/EXIT 
          LDD    T2 
          LPN    1           SET PORT NUMBER IN EST ENTRY 
          RAM    EBTA+5*DSEQ*ESTE+5*EQDE+4
          LPN    1
          SHN    4
          STM    SCIP 
          LDD    T2          EXTRACT *SCD* PP NUMBER
          SHN    -6 
          STM    .DCS 
 CDD1     ZJN    CDDX        IF DEADSTART FROM CC545 CONSOLE
          RAM    CDDA 
          LPN    37          MODIFY CHANNEL INSTRUCTIONS
          RAM    CDDB 
          LDN    3           INITIALIZE *SCD* 
 CDDA     OAM.   T7,0 
 CDDB     DCN.   0
          AOM    EBTA+5*DSEQ*ESTE+5*EQAE+2
          MDIN               MODIFY DISPLAY GENERATORS
          UJP    CDD1        RETURN 
 CLK      SPACE  4,10 
**        CLK - PROCESS CTI CLOCK.
* 
*         EXIT   (DTEL) = CTI-SUPPLIED DATE.
*                (TIML) = CTI-SUPPLIED TIME.
*                (PDTL) = CTI-SUPPLIED *FRC* VALUE. 
* 
*         CALLS  IAF. 
  
  
 CLK      SUBR               ENTRY/EXIT 
          LDM    C8XX        CHECK MAINFRAME TYPE 
          NJN    CLKX        IF NOT CYBER 180 
          LDN    CLKS        REQUEST CTI CLOCK INFORMATION
          RJM    IAF
          LDN    PDTL 
          CWM    MBUF+10,ON  WRITE CTI-SUPPLIED *FRC* VALUE 
          ADK    TIML-PDTL-1
          CWM    MBUF+3,ON   WRITE CTI-SUPPLIED TIME
          ADK    DTEL-TIML-1
          CWM    MBUF,ON     WRITE CTI-SUPPLIED DATE
          UJN    CLKX        RETURN 
 CSB      SPACE  4,10 
**        CSB - COUNT SET BITS. 
* 
*         ENTRY  (A) = COMPLEMENT OF BYTE TO COUNT. 
* 
*         EXIT   (A) = NUMBER OF ZERO BITS IN LOWER 12 BITS.
* 
*         USES   T1, T2.
  
  
 CSB2     LDD    T2          NUMBER OF BITS SET 
  
 CSB      SUBR               ENTRY/EXIT 
          LMC    7777        COMPLEMENT ENTRY 
          STD    T1          SAVE ENTRY CONDITION 
          LDN    0
          STD    T2          RESET COUNTER
 CSB1     LDD    T1 
          ZJN    CSB2        IF NO MORE BITS SET
          SHN    21-0        SHIFT OFF LAST BIT 
          STD    T1 
          SHN    0-21        INCREMENT COUNTER
          RAD    T2 
          UJN    CSB1        LOOP FOR NEXT BIT
 DCB      SPACE  4,15 
**        DCB - DEFINE CM BUFFER SPACE. 
* 
*         EXIT   (A) = (EB) = RA/100 FOR EST BUFFER.
* 
*         USES   T1, AB - AB+4. 
* 
*         CALLS  API, IDF.
* 
*         MACROS CFNC, CHKAPE, DFIM.
  
  
 DCB2     LDN    CSWL        FETCH *MABL* DATA
          CRD    AB 
          CWD    ZR 
          ADN    MABL-CSWL   STORE *MABL* WORD
          CWD    AB 
          LDD    AB+2        SET BUFFER LIMIT 
          SHN    14 
          LMD    AB+3 
          MJN    DCB3        IF MEMORY SIZE .GT. 64 MBYTES
          SBK    4001 
          MJN    DCB4        IF MEMORY SIZE .LE. 131K WORDS 
 DCB3     LCN    1
 DCB4     ADC    4001 
          STM    IBUF+/BPP/BL 
          SBK    EBFL        SET RA FOR *EBUT* TABLE
          STD    EB 
  
 DCB      SUBR               ENTRY/EXIT 
          LDD    RS 
          LPN    SYMK 
          LMN    SYCM 
          NJN    DCB2        IF SYSTEM NOT RECOVERED FROM CM
          LDN    LROF 
          RJM    IDF         INITIATE SEARCH FOR *RCM*
          CFNC   SLMF        SELECT LEFT SCREEN - MEDIUM CHARACTERS 
 DCB1     LDN    DCBAL       DISPLAY MESSAGE
          OAM    DCBA,CH
          CFNC   THCF        TRANSFER HIDDEN AND CLEAR
          LDC    SBNI+1      DELAY
          NJN    *-1
          AJM    DCB1,TC     IF *DIO* BUSY
          DCN    CH 
  
*         SUSPEND ALTERNATE PP. 
  
          LDM    .APP        MODIFY *APP* CHANNEL INSTRUCTIONS
          SHN    14 
          LMC    CTAC 
          RJM    MCI
          LDK    ZERL        CLEAR *DSCL* 
          CRD    CM 
          LDK    DSCL 
          CWD    CM 
          LDK    RPCS*10000+DSCL  REMOVE PP FROM CHANNEL
          RJM    APM
          CHKAPE             CHECK ALTERNATE PP ERROR 
          LJM    ROV1        LOAD AND EXECUTE *RCM* 
  
          DFIM   (CON LN12) 
 DCBA     CON    LN19,CH06
          DATA   C*RECOVERY IN PROGRESS.* 
 DCBAL    EQU    *-DCBA 
 DDV      SPACE  4,10 
**        DDV - DETERMINE *DFT* VERSION.
* 
*         EXIT   (DFTV) = 0, IF VERSION 3 *DFT* PRESENT.
*                (DFSZ) = SIZE OF *DFT/OS* BUFFER, IF VERSION 4 OR
*                         ABOVE *DFT* PRESENT.
* 
*                TO *DSE* IF THE SIZE OF THE *DFT/OS* BUFFER FROM THE 
*                DESCRIPTOR IS GREATER THAN 7777B.
* 
*         CALLS  IAF. 
  
  
 DDV      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    DDVX        IF NOT CYBER 180 
          LDN    DFTS        GET *DFT* DESCRIPTOR 
          RJM    IAF         ISSUE ALTERNATE PP FUNCTION
          LDM    MBUF 
          ZJN    DDVX        IF NO DESCRIPTOR RETURNED
          LDM    DBUF+DFVR   SAVE *DFT* VERSION 
          SHN    21-0 
          PJN    DDVX        IF VERSION 3 *DFT* 
          SHN    0-5
          LPN    77 
          NJN    DDV0        IF NOT *DFT* VERSION 4 
          LDN    4
 DDV0     SBN    3           *DFT* VERISON 3 = 0
          STM    DFTV 
          LDM    DBUF+DFSI   SAVE *DFT/OS* BUFFER SIZE
          NJN    DDV1        IF *DFT/OS* BUFFER SIZE TOO LARGE
          LDM    DBUF+DFSI+1
          STM    DFSZ 
          UJN    DDVX        RETURN 
  
 DDV1     LDC    DDVA        *DFT BUFFER TOO LARGE* 
          LJM    DSE         DISPLAY ERROR AND HANG 
  
  
 DDVA     DATA   C*DFT BUFFER TOO LARGE*
 EPP      SPACE  4,10 
**        EPP - EXCLUDE PP FROM THOSE TO WHICH *APP* MAY BE MOVED.
* 
*         ENTRY  (A) = 7/, 5/CHANNEL. 
* 
*         USES   T1.
  
  
 EPP      SUBR               ENTRY/EXIT 
          LPN    37 
          SHN    22-4 
          STD    T1 
          SHN    4-22 
          LMD    TH 
          ERRNZ  SHNI-1000   CODE ASSUMES *SHNI* = 1000 
          STM    EPPA 
          LDN    1           SET PP MASK
 EPPA     SHN    ** 
          STM    EPPB 
          STM    EPPC 
          LDM    .PPL,T1
          LPC    ** 
 EPPB     EQU    *-1
 EPP1     NJN    EPPX        IF PP OFF
          LDM    EPPD,T1
          STD    T1 
          LDI    T1 
          LPC    ** 
 EPPC     EQU    *-1
          NJN    EPP1        IF PP ALREADY DESELECTED 
          LDM    EPPC        DESELECT PP
          RAI    T1 
          UJN    EPP1        RETURN 
  
 EPPD     CON    PRSC,PRSD
 IAF      SPACE  4,10 
**        IAF - ISSUE FUNCTION TO ALTERNATE PP. 
* 
*         ENTRY  (A) = FUNCTION CODE. 
* 
*         EXIT   (A) = 0. 
* 
*         ERROR  TO *DSE* IF ALTERNATE PP ERROR.
* 
*         CALLS  API. 
  
  
 IAF      SUBR               ENTRY/EXIT 
          SHN    14 
          LMC    MBUF        APPEND BUFFER ADDRESS TO REQUEST 
          RJM    API
          ZJN    IAFX        IF NO ERROR
          JMP    DSE         DISPLAY ERROR AND HANG 
 MCI      SPACE  4,10 
**        MCI - MODIFY CHANNEL INSTRUCTIONS.
* 
*         ENTRY  (A) =  6/ CHANNEL NUMBER,
*                      12/ ADDRESS OF INSTRUCTION LIST. 
* 
*         USES   T0, T1, T2.
  
  
 MCI1     STD    T2          SET INSTRUCTION ADDRESS
          LDI    T2          MODIFY INSTRUCTION 
          SCN    37 
          LMD    T0 
          STI    T2 
          AOD    T1          ADVANCE LIST ADDRESS 
 MCI2     LDI    T1 
          NJN    MCI1        IF NOT END OF LIST 
  
 MCI      SUBR               ENTRY/EXIT 
          STD    T1          SET LIST ADDRESS 
          SHN    -14
          STD    T0          SET CHANNEL
          UJN    MCI2        ENTER LOOP 
 MSB      SPACE  4,10 
**        MSB - DETERMINE MOST SIGNIFICANT BIT. 
* 
*         ENTRY  (A) = COMPLEMENT OF BYTE TO CHECK. 
* 
*         EXIT   (A) = NUMBER OF MOST SIGNIFICANT BIT, IF FOUND.
*                (A) .LT. 0  IF ALL BITS ARE ZERO.
* 
*         USES   T1, T2, T3.
  
  
 MSB2     SOD    T2          MOST SIGNIFICANT BIT 
  
 MSB      SUBR               ENTRY/EXIT 
          LMC    7777        COMPLEMENT ENTRY 
          STD    T1          SAVE ENTRY CONDITION 
          LDN    0
          STD    T2          RESET MOST SIGNIFICANT BIT 
          STD    T3          RESET BIT COUNTER
 MSB1     AOD    T3          INCREMENT BIT COUNTER
          LDD    T1 
          ZJN    MSB2        IF NO MORE BITS ARE SET
          SHN    21-0        SHIFT OFF LEAST SIGNIFICANT BIT
          STD    T1 
          PJN    MSB1        IF BIT IS NOT SET
          LDD    T3          UPDATE MOST SIGNIFICANT BIT
          STD    T2 
          UJN    MSB1        LOOP FOR NEXT BIT
 RWR      SPACE  4,10 
**        READ / WRITE ENVIRONMENTAL CONTROL REGISTER.
* 
*         ENTRY  (A) = *RMRF* TO READ REGISTER, 
*                    = *WMRF* TO WRITE REGISTER.
* 
*         EXIT   (RBUF) = REGISTER CONTENTS.
  
  
 RWR      SUBR               ENTRY/EXIT 
          LMM    CMCC 
          FAN.   MR          FUNCTION MAINTENANCE CHANNEL 
          LPN    20 
          ERRNZ  RMRF+20-WMRF CODE DEPENDS ON VALUE 
          SHN    3
          LMC    IAMI+MR     FORM I/O INSTRUCTION 
          STM    RWRA 
          ACN.   MR 
          LDN    0
          OAN.   MR          SEND MEMORY *EC* REGISTER NUMBER 
          LDK    /IOU/ECMR
          OAN.   MR 
          FJM.   *,MR        IF CHANNEL BUSY, WAIT
          DCN.   MR 
          ACN.   MR          READ / WRITE REGISTER
          LDN    10 
 RWRA     IAM.   RBUF,MR
          UJP    RWRX        RETURN 
  
  
 RBUF     EQU    MBUF+500-10
 SHO      SPACE  4,15 
**        SHO - SET HARDWARE OPTIONS. 
* 
*         EXIT   (A) = 0 IF CYBER 180 MAINFRAME OR CM RECOVERY. 
*                (HO) = HARDWARE OPTIONS. 
*                (DFTA) = DEFAULT *DFT* VALUES SET. 
*                (DCPC) .NE. 0, IF DUAL-NOS-CPU CACHE MACHINE.
*                (DCPS) .NE. 0, IF DUAL-NOS-CPU SELECTED IN *CIP*.
*                CYBER 180 CPU(S) STARTED.
* 
*         ERROR  TO *DSE* IF CPU MODEL NOT FOUND. 
* 
*         USES   HO, T2, T4, AB - AB+4. 
* 
*         CALLS  IAF. 
  
  
 SHO7     LDN    PMNTL       SEARCH TABLE OF PROCESSOR MODELS 
          STD    T2 
 SHO8     SOD    T2 
          PJN    SHO9        IF NOT END OF TABLE
          LDC    SHOH        *CPU MODEL NOT FOUND*
          LJM    DSE         DISPLAY ERROR AND HANG 
  
 SHO9     LDM    PMNT,T2     CHECK NEXT TABLE ENTRY 
          LPC    377         EXTRACT MODEL NUMBER 
          STM    CMDL 
          LMC    0           PROCESSOR MODEL NUMBER 
 SHOF     EQU    *-1
          NJN    SHO8        IF NO MATCH
          LDD    T2          SET DEFAULT DEDICATED *DFT* STATUS 
          SBN    PMNTA
          SHN    0-21 
          SHN    13-0 
          RAM    DFTA+1 
          LDM    PMNT,T2     SET 990 FLAG IF 990 PROCESSOR
          SCN    77 
          SHN    12-6 
          RAM    DFTA+1 
          SHN    6-12-10
          STD    T2 
          SHN    2           MULTIPLY BY 5
          RAD    T2 
          RAM    DFTA 
          LPN    77 
          ERRNZ  NUMR-20     CODE ASSUMES *NUMR* = 20 
          SHN    4           MULTIPLY BY *NUMR*+1 
          RAD    T2 
          RAM    DFTA+1      SET DEFAULT TOTAL SIZE OF M/R BUFFERS
 SHOJ     UJN    SHO11       RETURN 
*         PSN                (IF CM RECOVERY) 
          RJM    VCC         VERIFY CPU CONFIGURATION 
          UJN    SHO11       RETURN 
  
 SHO10    STM    SHOJ        SET *PSN*
          LDK    MABL        FETCH MAINFRAME ATTRIBUTE INFORMATION
          CRD    AB 
          LDD    AB+1        RECOVER HARDWARE OPTIONS 
          STM    VCCA 
          STD    HO 
          LDM    C8XX 
          ZJP    SHO1        IF CYBER 180 MAINFRAME 
 SHO11    LDN    0
  
 SHO      SUBR               ENTRY/EXIT 
          LDN    GPDS        REQUEST GLOBAL PROCESSOR DESCRIPTOR
          RJM    IAF
          LDM    DBUF+CPSF   CHECK FOR DUAL-NOS-CPU SELECTED
          LPN    10 
          RAM    SHOB 
          LDN    MFDS        REQUEST MAINFRAME DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+PCPF
          LPN    3
          STM    .CPU 
          STM    .CPU+1      PRESET LOGICAL STATUS = PHYSICAL STATUS
          LDD    RS 
          LPN    SYMK        CHECK DEADSTART LEVEL
          LMN    SYCM 
          ZJP    SHO10       IF CM RECOVERY 
          LDM    C8XX 
          NJN    SHOX        IF NOT CYBER 180 MAINFRAME 
          STM    SHOE 
          LDM    .CPU 
          ADC    720         APPEND CME, NO STACK, CMU STATUS 
          STD    HO 
  
*         START CYBER 180 CPU(S). 
  
 SHO1     LDN    0           STORE IDLE PROGRAM AT LOCATION ZERO
          CWM    SHOC,ON
 SHO2     AOM    SHOA        ADVANCE PROCESSOR MASK 
          LMN    3
          LPN    3
          ZJP    SHO7        IF TWO PROCESSORS CHECKED
          LDD    HO 
          LMN    3           CHECK HARDWARE OPTIONS 
 SHOA     LPN    0
*         LPN    1           (CPU 0)
*         LPN    2           (CPU 1)
          ZJN    SHO2        IF CPU NOT PRESENT 
          STD    T4 
          SHN    -1          SET PROCESSOR NUMBER 
          STM    MBUF 
          LDN    CPDS        REQUEST CPU DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+PSTA   CHECK PROCESSOR STATUS 
          LPC    1001        CHECK FOR OFF AND/OR DOWN
          ZJN    SHO3        IF PROCESSOR ON AND UP 
 SHO2.1   LDD    T4          UPDATE CPU ON/OFF STATUS 
          RAM    .CPU+1 
          LDD    T4          DISABLE PROCESSOR
          RAD    HO 
          UJP    SHO2        CHECK NEXT PROCESSOR 
  
*         SET UP TO START SECOND CPU ON CACHE MACHINE.
  
 SHO3     LDM    DBUF+HDMN   SET PROCESSOR MODEL NUMBER 
          SHN    -4 
          STM    SHOF 
          SHN    -4 
          LMN    0#1
          NJN    SHO3.2      IF NOT P1 PROCESSOR
          STM    ISPF        SET ISMD-CAPABLE PROCESSOR FLAG
 SHO3.1   LJM    SHO4        START CPU
  
 SHO3.2   LDM    SHOA 
          LPN    2
          ZJN    SHO3.1      IF NOT PROCESSING CPU 1
          LDM    SHOF        CHECK PROCESSOR MODEL NUMBER 
          LMC    0#3A 
          ZJN    SHO3.5      IF 960-32
          LMN    0#32&0#3A
          ZJN    SHO3.3      IF 870 
          LMC    0#41&0#32
          ZJN    SHO3.3      IF 990 MODEL B 
          LMN    0#44&0#41
          NJN    SHO3.4      IF NOT 994, DO NOT START CPU 
 SHO3.3   LDN    0
*         LDN    10          (DUAL-NOS-CPU SELECTED IN *CIP*) 
 SHOB     EQU    *-1
          STM    DCPS        SET DUAL-NOS-CPU SELECTED FLAG 
          NJN    SHO3.5      IF DUAL-NOS-CPU SELECTED 
 SHO3.4   LJM    SHO2.1      DO NOT START SECOND CPU
  
 SHO3.5   LDN    CPSL        SET IDLE PROGRAM FOR CPU1 OF CACHE MACHINE 
          CWM    PRSA,ON
          STM    DCPC        SET DUAL 170-STATE CPUS WITH CACHE FLAG
          SCF.   *,MR        GET MAINTENANCE CHANNEL
          LDK    RMRF        READ ENVIRONMENTAL CONTROL REGISTER
          RJM    RWR
          DCN.   MR 
          LDM    RBUF+4      ENABLE PORT TO SECOND CPU
          SCN    40 
          STM    RBUF+4 
          LDK    WMRF        WRITE *EC* REGISTER
          RJM    RWR
          FJM.   *,MR        IF CHANNEL BUSY, WAIT
          DCN.   MR 
          CCF.   *,MR        RELEASE CHANNEL
  
*         START CPU.
  
 SHO4     LDM    DBUF+MCTC   START CPU
          STM    P2CC 
          SCF.   SHO4,MR     REQUEST CHANNEL FLAG 
          LMN    /IOU/MRSP
          FAN.   MR          START CPU
          CCF.   *+2,MR 
          UJN    SHO6        CHECK NEXT PROCESSOR 
*         PSN                (NON - CM RECOVERY)
 SHOE     EQU    *-1
          LDD    HO 
          LPN    10 
          NJN    SHO6        IF CMU SIMULATION OFF
          LDM    DBUF+CPOP
          LPN    10          ADJUST CMU STATUS
          RAD    HO 
 SHO6     LJM    SHO2        CHECK NEXT PROCESSOR 
  
  
 SHOC     VFD    12/0400,18/0,15/61000,15/46000 
 PMNT     SPACE  4,20 
**        PMNT - TABLE OF PROCESSOR MODEL NUMBERS.
* 
*T,       4/ E, 8/ M. 
* 
*         E = ENTRIES PER MAINTENANCE REGISTER BUFFER.
*         M = PROCESSOR MODEL NUMBER. 
* 
*         MODELS WHICH REQUIRE DEDICATED *DFT* STATUS AS THE DEFAULT
*         MUST APPEAR AT THE START OF THE TABLE.  THIS INCLUDES MODELS
*         96X AND 99X.
  
  
 PMNT     BSS    0
          VFD    4/6,8/0#40  CYBER 180-990
          VFD    4/6,8/0#41  CYBER 180-990 MODEL B
          VFD    4/6,8/0#44  CYBER 180-994
          VFD    4/6,8/0#3B  CYBER 180-960-11 
          VFD    4/6,8/0#3A  CYBER 180-960-31/32
 PMNTA    EQU    *-PMNT      END OF DEFAULT DEDICATED *DFT* MODELS
          VFD    4/5,8/0#34  CYBER 180-840
          VFD    4/5,8/0#37  CYBER 180-840S 
          VFD    4/5,8/0#33  CYBER 180-850
          VFD    4/5,8/0#32  CYBER 180-860
          VFD    4/5,8/0#31  CYBER 180-845
          VFD    4/5,8/0#35  CYBER 180-845S 
          VFD    4/5,8/0#30  CYBER 180-855
          VFD    4/5,8/0#36  CYBER 180-855S 
          VFD    4/3,8/0#20  CYBER 180-835
          VFD    4/3,8/0#14  CYBER 180-810
          VFD    4/3,8/0#13  CYBER 180-830
          VFD    4/3,8/0#12  CYBER 180-825
          VFD    4/3,8/0#16  CYBER 180-825S 
          VFD    4/3,8/0#11  CYBER 180-815
          VFD    4/3,8/0#15  CYBER 180-815S 
 PMNTL    EQU    *-PMNT      LENGTH OF TABLE
  
 SHOH     DATA   C*CPU MODEL NOT FOUND* 
 VCC      SPACE  4,10 
**        VCC - VERIFY CPU CONFIGURATION. 
* 
*         ENTRY  (VCCA) = ORIGINAL (HO) FROM PRIOR DEADSTART. 
* 
*         EXIT   (A) = ORIGINAL (HO). 
* 
*         ERROR  TO *DSE* IF CPU STATE CHANGE.
* 
*         USES   CM - CM+4. 
  
  
 VCC2     LDM    VCCA        CHECK CPU STATE CHANGE 
          LMD    HO 
          LPN    3
          ZJN    VCC3        IF CPU STATUS HAS NOT CHANGED
          LMN    3
          NJN    VCC1        IF CPU STATUSES HAVE NOT SWAPPED 
 VCC3     LDC    **          RESTORE (HO) 
 VCCA     EQU    *-1
          STD    HO 
  
 VCC      SUBR               ENTRY/EXIT 
          LDN    SSTL        CHECK NOS/VE STATUS
          CRD    CM 
          LDD    CM+3 
          SHN    0-13 
          NJN    VCC2        IF NOS/VE DISABLED 
          LDM    VCCA        CHECK CPU STATE CHANGE FOR CPU 0 
          LMD    HO 
          LPN    1
          ZJN    VCC3        IF CPU 0 AVAILABLE 
 VCC1     LDC    VCCB        *CPU STATE CHANGE.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
  
 VCCB     DATA   C*CPU STATE CHANGE.* 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
          QUAL
 API$     SET    1           SELECT ALTERNATE PP REQUEST INTERFACE
 APM$     SET    1           SELECT ALTERNATE PP MANAGEMENT ROUTINE 
          QUAL   *
*CALL     COMPAPI 
 TRCO     SPACE  4,10 
**        TRCO - TABLE OF RECOVERY OPTIONS. 
*         ENTRY = 1 WORD. 
*         INDEXED WITH RECOVERY MODE. 
* 
*T,       12/  RO 
*         RO     RECOVERY OPTIONS 
  
  
 TRCO     BSS    0
          LOC    0
  
          CON    0
          CON    FLTB+SYTB
          CON    FLTB 
          CON    JBCM+FLCM+SYCM 
  
          LOC    *O 
  
  
 EBTA     CON    0,0,0,2RRD,0           *RD*
          CON    0,0,0,0,0
          CON    0,CH+4000,0,2RDS,7000  *DS*
          CON    0,0,0,0,0
          CON    2000,0,0,2RNE,0        *NE*
          CON    0,0,0,7,0
          CON    2000,0,0,2RTE,0        *TE*
          CON    0,0,0,7,0
          CON    2000,0,0,2RTT,NIAC     *TT*
          CON    0,0,0,7,0
  
  
 NIAC     EQU    200         DEFAULT NUMBER OF NETWORK CONNECTIONS
          SPACE  4,10 
          ERRZR  BC-12       INCORRECT CHANNEL DEFINITION 
          SPACE  4,10 
**        CPU IDLE PROGRAMS.
  
  
 PRSA     VFD    12/0400,18/CPSL,30/0 
          SPACE  4,10 
**        EXCHANGE PACKAGE. 
  
  
 PRSB     VFD    6/0,18/CPSL,36/0 
          VFD    60/0 
          VFD    6/0,18/200,36/0
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
  
  
          USE    LITERALS 
          TITLE  PP BUFFER IDLER PROGRAM. 
 IBUF     BSS    0
          QUAL   BPP
 MACROS   SPACE  4,10 
**        MACRO DEFINITIONS.
  
  
**        TBLM = GENERATE TABLE OF DEFAULT CONTROLWARE TYPES
*                TO LOAD. 
* 
*         TBLM   EQ 
*                EQ = MASS STORAGE EQUIPMENT MNEMONIC.
  
  
 TBLM     MACRO  EQ 
          VFD    12/2R_EQ 
          VFD    12/C"FW_EQ"
          ENDM
          SPACE  4,10 
**        ASSEMBLY CONSTANTS. 
  
  
 Y545     EQU    //Y545-YINC BOTTOM OF SCREEN - CC545 
 Y721     EQU    //Y721-YINC BOTTOM OF SCREEN - CDC721
          SPACE  4,10 
****      DIRECT LOCATION ASSIGNMENTS.
  
  
          LOC    0
          CON    IDL-1       START ADDRESS - 1
          BSS    2
 CB       BSS    5           DAYFILE AND SYSTEM DEFAULT FAMILY BUFFER 
 WB       BSS    5           CM WORD BUFFER 
 BA       CON    0           BUFFER ADDRESS 
 BL       CON    0           BUFFER LIMIT 
 DB       CON    0           DISPLAY BUFFER INDEX 
 LN       CON    0           LINE NUMBER
 LL       CON    0           LINE LIMIT 
 WC       CON    0           PRU WORD COUNT 
 SX       CON    6           CONSTANT SIX 
 DV       CON    TDDCL       MASS STORAGE DESCRIPTOR TABLE LENGTH 
 ON       CON    1           CONSTANT ONE 
 PA       CON    0           PROCESSOR ADDRESS
 FD       CON    0           FULL DISPLAY STATUS
 FP       CON    0           FUNCTION PARAMETER 
 SN       CON    0           SCREEN NUMBER
 DN       CON    -0          DECK NUMBER
  
 TDBP     BSS    0           TABLE OF DISPLAY BUFFER PARAMETERS 
          CON    GDH         INSTRUCTION DECK DISPLAY 
 FA       CON    0           FIRST BUFFER ADDRESS 
 FW       CON    0           FIRST BUFFER LINE COUNT
 FI       CON    0           DISPLAY INDEX
          CON    RTL         TEXT DECK DISPLAY
 SA       CON    0           SECOND BUFFER ADDRESS
 SW       CON    0           SECOND BUFFER LINE COUNT 
 SI       CON    0           DISPLAY INDEX
          CON    0           EST DISPLAY
 EA       CON    0           EST BUFFER ADDRESS 
 EW       CON    NOPE        EST EQUIPMENT COUNT
 EI       CON    0           DISPLAY INDEX
          CON    GMD         MASS STORAGE DISPLAY 
 MA       CON    0           MST PARAMETER BUFFER ADDRESS 
 MW       CON    NOPE        DISPLAY CONTROL
          CON    0           DISPLAY INDEX
          CON    GID         MASS STORAGE INITIALIZATION DISPLAY
          CON    0           MST PARAMETER BUFFER ADDRESS 
 IW       CON    NOPE        DISPLAY CONTROL
          CON    0           DISPLAY INDEX
          CON    GTD         MASS STORAGE ERROR THRESHOLD DISPLAY 
          CON    0           MST PARAMETER BUFFER ADDRESS 
 TW       CON    NOPE        DISPLAY CONTROL
          CON    0           DISPLAY INDEX
          CON    GCD         CONTROLWARE STATUS DISPLAY 
          CON    0           BUFFER ADDRESS 
 CW       CON    0           DISPLAY CONTROL
          CON    0           DISPLAY INDEX
          CON    0           END OF DISPLAYS
  
 CV       CON    0           CLOCK VALUE
 ET       CON    0           ELAPSED TIME 
          BSS    77-* 
 YY       CON    YCSH        Y-COORDINATE 
 XX       CON    CH01        X-COORDINATE 
 LBUF     EQU    YY+2        LINE BUFFER
          BSS    KBUFL/2
          CON    0
****
 IDL      SPACE  4,10 
**        IDL - IDLER.
  
  
 IDL      IAN    BC          INPUT FUNCTION REQUEST 
          STD    T1 
          LDM    TFCN,T1     PROCESS FUNCTION 
          STM    IDLA 
          IAN    BC          INPUT PARAMETER
          LJM    *
 IDLA     EQU    *-1
 TFCN     SPACE  4
**        TFCN - FUNCTION PROCESSORS. 
  
  
 TFCN     BSS    0
          LOC    0
          DFIM   (CON RSP1) 
          CON    RSP         RESET PP 
          CON    IFB         INPUT FIRST BUFFER 
          CON    ISB         INPUT SECOND BUFFER
          CON    DDD         DISPLAY BUFFER DATA
          CON    UEC         UPDATE EQUIPMENT COUNT 
          CON    ONL         OUTPUT NEXT LINE 
          CON    RCL         REPLACE CURRENT LINE 
          CON    ANL         ADD NEXT LINE
          CON    ADB         ADVANCE BUFFER 
          CON    ADD         ADVANCE DISPLAY
          CON    RPS         RESET POINTERS ON SECOND BUFFER
          LOC    *L+TFCN
 TIDP     SPACE  4,10 
**        TIDP - TABLE OF INITIAL DISPLAY PROCESSORS. 
  
  
 TIDP     BSS    0
          LOC    0
 CMRD     CON    GDH         CMRDECK
 EQPD     CON    EQP         EQPDECK
 APRD     CON    ADP         APRDECK
 IPRD     CON    GDH         IPRDECK
          LOC    *L+TIDP
          SPACE  4,10 
**        DISPLAY SUBROUTINES.
  
  
 FNC      DSUB
 RSP      SPACE  4
**        RSP - RESET PP. 
  
  
 RSP1     CFNC   SLSF        SELECT LEFT SCREEN - SMALL CHARACTERS
          DISPLA CH20,LN15,(INITIALIZING SYSTEM LOAD.)
          CFNC   THCF        TRANSFER HIDDEN AND CLEAR
          DFIM   (CON SDCF),*+1 
 RSP      LDC    DDCF        CLEAR DISPLAY CONTROLLER 
          CFNC
          LDC    1000 
          OAN    BC 
          SBN    1
          NJN    *-1
          DCN    CH 
          IAM    0,BC 
 IFB      SPACE  4
**        IFB - INPUT FIRST BUFFER. 
  
  
 IFB      STD    DN          SET DECK TYPE
          LDN    FA          UNPACK INSTRUCTION DECK
          RJM    UTD
          ADN    7           SET SECOND BUFFER ADDRESS
          SHN    -3 
          ADD    FA 
          STD    SA 
          LDN    0           SET DISPLAY POINTER TO FIRST BUFFER
          STD    DB 
          STD    EA-1        DISABLE EQPDECK DISPLAYS 
          LDM    TIDP,DN     SET INITIAL DISPLAY PROCESSOR
          STD    SA-1 
          JMP    IDL         RETURN 
 ISB      SPACE  4
**        ISB - INPUT SECOND BUFFER.
  
  
 ISB      LDN    SA          UNPACK TEXT DECK 
          RJM    UTD
          JMP    IDL         RETURN 
 DDD      SPACE  4,10 
**        DDD - DISPLAY DEADSTART DATA. 
  
  
 DDD      LDM    TDBP+3,DB   SET BUFFER INDEX 
          STD    T1 
          LDN    1
          STD    SN 
          IAN.   14          SET INITIAL CLOCK VALUE
          STD    CV 
          LDC    SLSF        SELECT LEFT SCREEN - SMALL CHARACTERS
 DDD1     CFNC
          LDM    TDBP,DB     SET PROCESSOR ADDRESS
          STD    PA 
          LDC    BL01        SET Y-COORDINATE 
          STD    YY 
 DDD3     RJM    0,PA        FETCH DISPLAY LINE 
          MJN    DDD9        IF FORMAT EFFECTOR ENCOUNTERED 
          NJN    DDD6        IF NOT END OF DISPLAY
 DDD4     STD    FD 
 DDD5     RJM    CDP         COMPLETE DISPLAY PROCESSING
          DCN    BC 
          JMP    IDL         RETURN 
  
 DDD6     OAM.   YY,CH       OUTPUT DISPLAY LINE
          DFIM   (UJN DDD8) 
          IAN.   14          READ CLOCK 
          STD    T0 
          SBD    CV 
          PJN    DDD7        IF NO OVERFLOW 
          ADC    10000
 DDD7     SHN    -11
          ZJN    DDD8        IF NOT HALF MILLISECOND ELAPSED
          RAD    ET 
          LDD    T0 
          STD    CV          SET NEW CLOCK VALUE
 DDD8     AOD    T1 
          STD    FD          ADVANCE FULL DISPLAY STATUS
          LMM    TDBP+2,DB
          ZJN    DDD4        IF END OF DATA IN BUFFER 
          LCN    YINC 
          RAD    YY          ADVANCE Y-COORDINATE 
          DFIM   (ADC -Y721)
          ADC    -Y545
          PJN    DDD3        IF NOT BOTTOM OF SCREEN
 DDD9     SOD    SN 
          MJN    DDD5        IF RIGHT SCREEN DISPLAYED
          FJM.   *,CH 
          DCN.   CH 
          LDC    SRSF        SELECT RIGHT SCREEN
          LJM    DDD1        DISPLAY RIGHT SCREEN 
 UEC      SPACE  4,10 
**        UEC - UPDATE EQUIPMENT COUNT. 
  
  
 UEC      STD    EW          UPDATE EQUIPMENT LIMIT 
          DCN    BC 
          STD    MW 
          STD    IW 
          STD    TW 
          JMP    IDL         RETURN 
 ONL      SPACE  4
**        ONL - OUTPUT NEXT LINE. 
  
  
 ONL      AOD    LN          ADVANCE LINE NUMBER
          LMD    SW 
          ZJN    ONL1        IF END OF DATA 
          LDD    SA 
          SHN    3
          ADD    LN          READ NEXT LINE 
          SHN    3
 ONL1     CRM    LBUF,SX
          LDN    LBUFL+1     OUTPUT LINE
          OAM    LBUF,BC
          AJM    *,BC        WAIT OUTPUT COMPLETE 
          JMP    IDL         RETURN 
 RCL      SPACE  4,10 
**        RCL - REPLACE CURRENT LINE. 
  
  
 RCL      LDD    LN          REPLACE LINE 
          RJM    ADL
          JMP    IDL         RETURN 
 ANL      SPACE  4
**        ANL - ADD NEXT LINE.
  
  
 ANL      LDD    SW          ADD LINE 
          RJM    ADL
          ZJN    ANL1        IF BUFFER FULL 
          AOD    SW          ADVANCE LINE COUNT 
 ANL1     JMP    IDL         RETURN 
 ADB      SPACE  4,10 
**        ADB - ADVANCE BUFFER. 
  
  
 ADB      LDD    FD 
          ZJN    ADB1        IF NOT FULL DISPLAY
          LMM    TDBP+2,DB
          ZJN    ADB1        IF END OF BUFFER 
          LDD    FD 
 ADB1     STM    TDBP+3,DB   RESET BUFFER INDEX 
 ADB2     DCN    BC 
          JMP    IDL         RETURN 
 ADD      SPACE  4,10 
**        ADD - ADVANCE DISPLAY.
  
  
 ADD      LDN    SA-FA       ADVANCE DISPLAY POINTER
          RAD    DB 
          LDM    TDBP,DB
          NJN    ADD1        IF NOT END OF DISPLAYS 
          STD    DB          RESET FIRST DISPLAY
 ADD1     JMP    ADB2        RETURN 
 RPS      SPACE  4,10 
**        RPS - RESET POINTERS ON SECOND BUFFER.
  
  
 RPS      STD    FP 
          LDN    0           RESET LINE NUMBER
          STD    LN 
          JMP    ADB2        RETURN 
 ADL      SPACE  4,10 
**        ADL - ADD DISPLAY LINE. 
* 
*         ENTRY  (A) = LINE NUMBER. 
* 
*         EXIT   (A) = FIRST BYTE OF NEW LINE.
* 
*         USES   T1, T2.
* 
*         CALLS  CLB. 
  
  
 ADL1     IAN    BC          INPUT CHARACTER
          SHN    6
          STI    T2          ASSEMBLE DISPLAY LINE
 ADL2     IAN    BC 
          ZJN    ADL3        IF END OF DATA 
          RAI    T2 
          AOD    T2          ADVANCE LINE ADDRESS 
          LMC    LBUF+LBUFL 
          NJN    ADL1        IF LINE NOT COMPLETE 
 ADL3     DCN    BC 
          LDD    T1          CHECK LINE LIMIT 
          LMD    LL 
          ZJN    ADLX        IF BUFFER FULL 
          LDD    SA 
          SHN    3
          ADD    T1          STORE NEW LINE 
          SHN    3
          CWM    LBUF,SX
          LDM    LBUF 
  
 ADL      SUBR               ENTRY/EXIT 
          STD    T1          SAVE LINE NUMBER 
          OAN    BC 
          RJM    CLB         CLEAR LINE BUFFER
          UJN    ADL2        ASSEMBLE LINE
 ADP      SPACE  4,10 
**        ADP - INITIAL APRDECK DISPLAY PROCESSOR.
* 
*         ENTRY  (FP) = EST ORDINAL.
* 
*         EXIT   SEE *RTL*. 
*                (PA) = RTL.
*                (YY) = COORDINATE FOR NEXT TEXT DECK LINE. 
* 
*         CALLS  GEL, RTL.
  
  
 ADP      SUBR               ENTRY/EXIT 
          LCN    YINC 
          RAD    YY 
          LDN    EDHAA       OUTPUT DISPLAY HEADER
          OAM    EDHA,CH
          LDD    FP          GENERATE EQUIPMENT DISPLAY LINE
          STD    T1 
          RJM    GEL
          OAM    YY,CH       DISPLAY EQUIPMENT STATUS 
          LCN    2*YINC 
          RAD    YY 
          LDD    SI          RESTORE TEXT DECK LINE NUMBER
          STD    T1 
          LDC    RTL         CHANGE DISPLAY PROCESSOR 
          STD    PA 
          RJM    RTL         READ TEXT LINE 
          UJN    ADPX        RETURN 
 CCD      SPACE  4,10 
**        CCD - CONVERT CHANNEL FOR DISPLAY.
* 
*         ENTRY  (A) = CHANNEL DATA.
*                (WB - WB+4) = EST DATA.
* 
*         EXIT   (A) = (T2) = LINE ADDRESS ADJUSTED.
* 
*         USES   BA.
* 
*         CALLS  C2D. 
  
  
 CCD      SUBR               ENTRY/EXIT 
          STD    BA 
          LPN    40 
          ZJN    CCD1        IF NOT A CONCURRENT CHANNEL
          LDN    1R &1RC
 CCD1     LMC    2R 
          STI    T2 
          AOD    T2 
          LDD    BA          CONVERT CHANNEL NUMBER 
          LPN    37 
          RJM    C2D
          SOD    T2 
          LDD    BA          CHECK TYPE OF CHANNEL
          LPN    40 
          ZJN    CCD2        IF NOT CONCURRENT CHANNEL
          LDD    BA 
          SHN    0-7         EXTRACT PORT NUMBER
          LPN    1
          ADC    2R-A        CONVERT TO A OR B
          STI    T2 
          AOD    T2 
          LDC    2R.         ADJUST SEPARATOR 
          STI    T2 
 CCD2     LDD    BA          CHECK CHANNEL STATE
          SHN    21-12
          PJN    CCD3        IF CHANNEL IS NOT DOWN 
          LDC    2R*         INDICATE CHANNEL DOWN
          STI    T2 
 CCD3     AOD    T2          ADVANCE ADDRESS
          UJP    CCDX        EXIT 
 CDI      SPACE  4,10 
**        CDI - CHECK DISPLAY INDEX.
* 
*         ENTRY  (T1) = DISPLAY INDEX.
*                (EW) = CURRENT EQUIPMENT COUNT.
  
  
 CDI      SUBR               ENTRY/EXIT 
          LDD    T1 
          SBD    EW 
          MJN    CDIX        IF INDEX BELOW LIMIT 
          LDN    0
          STD    T1          SET INDEX TO FIRST PAGE OF DISPLAY 
          STM    TDBP+3,DB
          UJN    CDIX        RETURN 
 CDP      SPACE  4,10 
**        CDP - COMPLETE DISPLAY PROCESSING.
* 
*         ENTRY  (ET) = ELAPSED TIME FOR DISPLAY GENERATION.
* 
*         EXIT   (ET) = 0.
* 
*         MACROS CFNC, DFIM.
  
  
 CDP      SUBR               ENTRY/EXIT 
          CFNC   THCF 
          DCN.   CH 
          DFIM   (UJN CDPX) 
          LDN    21DS1       CALCULATE REFRESH DELAY
          SBD    ET 
          PJN    CDP1        IF REFRESH TIME NOT EXCEEDED 
          LDN    0
 CDP1     SHN    10-1        POSITION DELAY VALUE 
 CDPA     EQU    CDP1 
          ZJN    CDP2        IF REFRESH CYCLE AT LIMIT
          SBN    1
          NJN    *-1         DELAY
 CDP2     STD    ET 
          UJN    CDPX        RETURN 
 CLB      SPACE  4,10 
**        CLB - CLEAR LINE BUFFER.
* 
*         EXIT   (T2) = LBUF. 
  
  
 CLB      SUBR               ENTRY/EXIT 
          LDN    0
          CRM    LBUF,SX
          LDC    LBUF        SET BUFFER ADDRESS 
          STD    T2 
          UJN    CLBX        RETURN 
 C1D      SPACE  4,10 
**        C1D - CONVERT ONE DIGIT.
* 
*         ENTRY  (A) = VALUE TO CONVERT.
*                (T2) = ADDRESS TO STORE CONVERSION.
* 
*         EXIT   (A) = (T2) ADVANCED. 
  
  
 C1D      SUBR               ENTRY/EXIT 
          LPN    7
          ADC    2R 0        CONVERT DIGIT
          STI    T2 
          AOD    T2          ADVANCE ADDRESS
          LDC    2R.
          STI    T2          STORE SEPARATOR
          AOD    T2 
          UJN    C1DX        RETURN 
 C2D      SPACE  4,10 
**        C2D - CONVERT TWO DIGITS. 
* 
*         ENTRY  (A) = VALUE TO CONVERT.
*                (T2) = ADDRESS TO STORE CONVERSION.
* 
*         EXIT   (A) = (T2) ADVANCED. 
  
  
 C2D      SUBR               ENTRY/EXIT 
          LPN    77 
          STD    T0          CONVERT DIGITS 
          SHN    3
          LMD    T0 
          SCN    70 
          ADC    2R00        STORE CONVERSION 
          STI    T2 
          AOD    T2          ADVANCE ADDRESS
          LDC    2R.
          STI    T2          STORE SEPARATOR
          AOD    T2 
          UJN    C2DX        RETURN 
 D4S      SPACE  4,10 
**        D4S - DISPLAY 4 DIGITS WITH LEADING ZERO SUPPRESSION. 
*         ROUTINE ADAPTED FROM *COMDDIS*. 
* 
*         ENTRY  (A) = VALUE TO BE CONVERTED. 
*                (T2) = BUFFER INDEX. 
* 
*         EXIT   (T2) ADVANCED. 
* 
*         USES   T2.
  
  
 D4S      SUBR               ENTRY/EXIT 
          STD    T0 
          SHN    -6 
          ZJN    D4S2        IF FIRST TWO DIGITS ARE ZERO 
          SHN    -3 
          ZJN    D4S1        IF FIRST DIGIT IS ZERO 
          ADN    1R0
          SHN    14 
 D4S1     ADD    T0 
          SHN    -6 
          SCN    70 
          ADN    1R0
 D4S2     STI    T2          STORE UPPER DIGIT(S) 
          AOD    T2 
          LDD    T0 
          ZJN    D4S4        IF ALL FOUR DIGITS ARE ZERO
          SHN    -3 
          ZJN    D4S3        IF FIRST THREE DIGITS ARE ZERO 
          LPN    7
          ADN    1R0
          SHN    6
 D4S3     LMD    T0 
          SCN    7
          LMD    T0 
 D4S4     ADN    1R0         STORE LOWER DIGIT(S) 
          STI    T2 
          AOD    T2 
          LDC    2R.         STORE SEPARATOR
          STI    T2 
          AOD    T2 
          LJM    D4SX        RETURN 
 EQP      SPACE  4,10 
**        EQP - INITIAL EQPDECK DISPLAY PROCESSOR.
* 
*         EXIT   SEE *GDH*. 
*                EST DISPLAY ENABLED. 
* 
*         CALLS  GDH. 
  
  
 EQP      SUBR               ENTRY/EXIT 
          LDC    GED         ENABLE EQPDECK DISPLAYS
          STD    EA-1 
          LDC    GDH         CHANGE PROCESSOR ADDRESS 
          STD    SA-1 
          RJM    GDH
          UJN    EQPX        RETURN 
 GCD      SPACE  4,15 
**        GCD - INITIATE CONTROLWARE STATUS DISPLAY.
* 
*         ENTRY  (T1) = CHANNEL NUMBER. 
*                (EW) = CURRENT EQUIPMENT COUNT.
* 
*         EXIT   SEE *GCL*. 
*                (A) = 0 IF NO MORE CHANNELS
*                (PA) = GCL.
*                (YY) = COORDINATE FOR NEXT DISPLAY.
* 
*         USES   FP, PA, T0, T1, T2.
* 
*         CALLS  GCL, REP, SCT. 
  
  
 GCD6     RJM    GCL         GENERATE CONTROLWARE STATUS LINE 
          ZJN    GCDX        IF NO MORE CHANNELS
          STD    T2 
          LCN    YINC        ADJUST Y-COORDINATE
          RAD    YY 
          LDN    EDHDA       OUTPUT DISPLAY HEADER
          OAM    EDHD,CH
          LDC    GCL         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          LDD    T2 
  
 GCD      SUBR               ENTRY/EXIT 
          LDD    T1 
          NJN    GCD6        IF CONTROLWARE TABLE PROCESSED 
 GCD1     LDN    CTALL
          STD    FP 
          LDD    MA          READ CONTROLWARE STATUSES
          ADN    TDDBL
          SHN    6
          CRM    TCCS,FP
 GCD2     RJM    REP         READ EQUIPMENT PARAMETERS
          ZJN    GCD5        IF NOT MASS STORAGE
          LDD    WB+1 
          LMN    37 
          ZJN    GCD5        IF ISMD CHANNELS NOT YET SPECIFIED 
          LDD    WB+3 
          RJM    SCT         SEARCH CONTROLWARE TABLE 
          ZJN    GCD5        IF NOT FOUND 
          LDD    WB+1        SET CHANNEL
          LPN    77 
 GCD3     STD    FP 
          LDI    T2          DEFAULT CONTROLWARE FOR LOAD 
          SBM    TCCS,FP
          MJN    GCD4        IF OTHER DEFAULT HAS PRIORITY
          RAM    TCCS,FP
 GCD4     LDD    WB+2 
          LPN    77 
          SHN    14 
          STD    WB+2 
          SHN    6
          NJN    GCD3        IF NOT END OF CHANNELS 
 GCD5     AOD    T1 
          LMD    EW 
          NJN    GCD2        IF MORE EQUIPMENT TO CHECK 
          STD    T1          SET CHANNEL NUMBER 
          LJM    GCD6        GENERATE CONTROLWARE STATUS LINE 
 GCL      SPACE  4,15 
**        GCL - GENERATE CONTROLWARE STATUS DISPLAY LINE. 
* 
*         ENTRY  (T1) = CHANNEL NUMBER. 
* 
*         EXIT   (A) = 0 IF NO MORE CHANNELS. 
*                    = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES).
*                (T1) = CHANNEL NUMBER. 
*                (LBUF) = DISPLAY LINE. 
* 
*         USES   FP, T1, T2, YY.
* 
*         CALLS  CLB. 
  
  
 GCL4     AOD    T2          INCREMENT ASSEMBLY ADDRESS 
          LDD    T1 
          LPN    40 
          ZJN    GCL5        IF NOT A CONCURRENT CHANNEL
          LDN    1R &1RC
 GCL5     LMC    2R 
          STI    T2 
          AOD    T2 
          LDD    T1          CONVERT CHANNEL NUMBER 
          LPN    37 
          RJM    C2D
          LDN    4           INCREMENT POSITION 
          RAD    T2 
          LDM    TLCS-1,FP   SET CONTROLWARE RECORD TYPE
          STI    T2 
          AOD    T2          ADJUST POSITION
          LDD    T2          SET LENGTH OF DISPLAY LINE 
          SBN    YY 
  
 GCL      SUBR               ENTRY/EXIT 
          RJM    CLB         CLEAR LINE BUFFER
          LDD    T1 
          UJN    GCL2        CONTINUE 
  
 GCL1     AOD    T1 
 GCLA     LMN    0
 GCL2     EQU    GCLA 
          NJN    GCL3        IF MORE TO DISPLAY 
          STM    GCLB 
          UJN    GCLX        RETURN 
  
 GCL3     LDM    TCCS,T1
          ZJN    GCL1        IF CONTROLWARE NOT SPECIFIED 
          LPN    77 
          STD    FP 
          AOM    GCLB 
          SBN    22 
          NJP    GCL4        IF NOT END OF LEFT SCREEN
          DFIM   (LDC Y721) 
          LDC    Y545        ADJUST Y-COORDINATE FOR BLANK LINE 
          STD    YY 
          SOD    T1 
          LDN    3
          UJN    GCLX        RETURN 
  
  
 GCLB     CON    0
 TDCW     SPACE  4,10 
**        TDCW - TABLE OF DEFAULT CONTROLWARE.
  
  
 TDCW     BSS    0
          LIST   G
  
          TBL    "MSEQ" 
          LIST   *
          PURGMAC  TBLM 
  
          CON    0           END OF TABLE 
 TLCS     SPACE  4,10 
**        TLCS - TABLE OF CONTROLWARE RECORD TYPES TO LOAD. 
  
  
 TLCS     BSS    0
          LOC    CLHT 
 CLHT     CON    2RHT        LOAD HALF TRACK CONTROLWARE
 CNHT     CON    2RNH        NO LOAD HALF TRACK CONTROLWARE 
 CLFT     CON    2RFT        LOAD FULL TRACK CONTROLWARE
 CNFT     CON    2RNF        NO LOAD FULL TRACK CONTROLWARE 
 CLFM     CON    2RFM        LOAD FMD CONTROLWARE 
 CNFM     CON    2RNM        NO LOAD FMD CONTROLWARE
 CLAD     CON    2RAD        LOAD FSC ADAPTOR CONTROLWARE 
 CNAD     CON    2RNA        NO LOAD FSC ADAPTOR CONTROLWARE
 CLPH     CON    2RPH        LOAD DEMA/PFMD CONTROLWARE 
 CNPH     CON    2RNP        NO LOAD DEMA/PFMD CONTROLWARE
 CLID     CON    2RID        LOAD 7255 ADAPTOR CONTROLWARE
 CNID     CON    2RNI        NO LOAD 7255 ADAPTOR CONTROLWARE 
 CLCC     CON    2RCC        LOAD 7165 ADAPTOR CONTROLWARE
 CNCC     CON    2RCN        NO LOAD 7165 ADAPTOR CONTROLWARE 
 CLND     CON    2R          LOAD NAD CONTROLWARE 
 CNND     CON    2RNN        NO LOAD NAD CONTROLWARE
          CON    2R          (LOAD CONTROL MODULE - N/A)
          CON    2R          (NO LOAD CONTROL MODULE - N/A) 
 CLM8     CON    2RM8        LOAD 7990 CONTROLWARE
 CNM8     CON    2RN8        NO LOAD 7990 CONTROLWARE 
 CLCX     CON    2R          LOAD CCC/NIP CONTROLWARE 
 CNCX     CON    2RNX        NO LOAD CCC/NIP CONTROLWARE
 CLCT     CON    2R          LOAD CCC/698 CONTROLWARE 
 CNCT     CON    2RNT        NO LOAD CCC/698 CONTROLWARE
          LOC    *L+TLCS-1
 GDH      SPACE  4,10 
**        GDH - GENERATE DISPLAY HEADER.
* 
*         ENTRY  (T1) = LINE NUMBER.
* 
*         EXIT   SEE *RTL*. 
*                (PA) = RTL.
* 
*         CALLS  RTL. 
  
  
 GDH      SUBR               ENTRY/EXIT 
          LDM    TDBP+1,DB
          SHN    6           FETCH DECK NAME
          CRM    DHDR+2,ON
          LDN    DHDRL       DISPLAY NAME 
          OAM.   DHDR,CH
          LDD    T1 
          NJN    GDH1        IF NOT FIRST PAGE OF DECK
          AOD    T1 
 GDH1     LDC    RTL         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          RJM    RTL
          UJN    GDHX        RETURN 
 GED      SPACE  4,10 
**        GED - INITIATE EST DISPLAY. 
* 
*         EXIT   SEE *GEL*. 
*                (PA) = GEL.
*                (YY) = COORDINATE FOR NEXT DISPLAY LINE. 
* 
*         CALLS  CDI, GEL.
  
  
 GED      SUBR               ENTRY/EXIT 
          RJM    CDI         CHECK DISPLAY INDEX
          LCN    YINC 
          RAD    YY 
          LDN    EDHAA       OUTPUT DISPLAY HEADER
          OAM    EDHA,CH
          LDC    GEL         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          RJM    GEL         GENERATE EST DISPLAY LINE
          UJN    GEDX        RETURN 
 GEL      SPACE  4,10 
**        GEL - GENERATE EST DISPLAY LINE.
* 
*         ENTRY  (T1) = EST ORDINAL.
* 
*         EXIT   (A) = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES).
*                (LBUF) = DISPLAY LINE. 
* 
*         USES   BA, T2.
* 
*         CALLS  CCD, C1D, C2D, IEL, REP. 
  
  
 GEL5     LDD    T2          SET LENGTH OF DISPLAY LINE 
          SBN    YY 
  
 GEL      SUBR               ENTRY/EXIT 
          RJM    REP         READ EQUIPMENT PARAMETERS
          RJM    IEL         INITIALIZE DISPLAY LINE
          ZJN    GEL5        IF EQUIPMENT UNDEFINED 
          LDD    WB 
          LPN    3           EXTRACT EQUIPMENT STATUS 
          SHN    1
          STD    BA          SET INDEX
          LDM    GELA,BA
          STI    T2 
          AOD    T2 
          LDM    GELA+1,BA   SET STATUS IN DISPLAY LINE 
          STI    T2 
          AOD    T2 
          LDD    WB 
          SHN    0-13 
          NJN    GEL2        IF MASS STORAGE
          LDD    WB+4 
          SHN    -11
          RJM    C1D         CONVERT EQUIPMENT (CONTROLLER) NUMBER
          AOD    T2 
          LDD    WB+4 
          LPN    77 
          UJN    GEL3        CONVERT UNIT NUMBER
  
 GEL2     LDM    MSTB+DVPR   CONTROLLER NUMBER
          SHN    -11
          RJM    C1D
          SOD    T2          BACK UP FOR SECOND CONTROLLER DISPLAY
          LDM    MSTB+DVPR
          SHN    21-5 
          PJN    GEL2.1      IF NO SECOND CONTROLLER
          RJM    C1D         CONVERT SECOND CHANNEL CONTROLLER NUMBER 
          UJN    GEL2.2      CONVERT UNIT NUMBER
  
 GEL2.1   LDN    2           SKIP SECOND CONTROLLER FIELD 
          RAD    T2 
 GEL2.2   LDM    MSTB+DVUN+3 CONVERT UNIT NUMBER
 GEL3     RJM    C2D
          LDD    WB+1        CONVERT PRIMARY CHANNEL
          LMN    37 
          ZJN    GEL4        IF CHANNEL NOT SPECIFIED 
          LDD    WB+1 
          RJM    CCD         CONVERT CHANNEL NUMBER 
          LDD    WB+2 
          ZJN    GEL4        IF NO 2ND CHANNEL
          RJM    CCD
 GEL4     LJM    GEL5        SET LENGTH OF DISPLAY LINE 
 GELA     SPACE  4,10 
*         EQUIPMENT STATUS. 
  
 GELA     DATA   4H ON
          DATA   4HIDLE 
          DATA   4H OFF 
          DATA   4HDOWN 
 GID      SPACE  4,10 
**        GID - INITIATE MASS STORAGE INITIALIZATION DISPLAY. 
* 
*         EXIT   SEE *GIL*. 
*                (A) = 0 IF END OF MASS STORAGE EQUIPMENT.
*                (PA) = GIL.
*                (YY) = COORDINATE FOR NEXT DISPLAY LINE. 
* 
*         USES   PA, T2, YY.
* 
*         CALLS  CDI, GIL.
  
  
 GID      SUBR               ENTRY/EXIT 
          LDN    EDHCA       OUTPUT DISPLAY HEADER
          OAM    EDHC,CH
          RJM    CDI         CHECK DISPLAY INDEX
          RJM    GIL         GENERATE LINE
          ZJN    GIDX        IF NO MORE MASS STORAGE
          STD    T2 
          LCN    YINC        ADJUST Y-COORDINATE
          RAD    YY 
          LDC    GIL         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          LDD    T2 
          UJN    GIDX        RETURN 
 GIL      SPACE  4,15 
**        GIL - GENERATE MASS STORAGE INITIALIZATION LINE.
* 
*         ENTRY  (T1) = EST ORDINAL.
*                (EW) = CURRENT EQUIPMENT COUNT.
* 
*         EXIT   (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. 
*                    = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES).
*                (T1) = MASS STORAGE EST ORDINAL. 
*                (LBUF) = DISPLAY LINE. 
* 
*         USES   FP, T0, T2.
* 
*         CALLS  C1D, C2D, IML, SBS.
  
  
 GIL      SUBR               ENTRY/EXIT 
          RJM    IML
          ZJN    GILX        IF NO MORE MASS STORAGE EQUIPMENT
          LDD    WB+4        SET INITIALIZATION OPTIONS 
          LPC    7760 
          ZJN    GIL2        IF INITIALIZATION NOT SPECIFIED
          STD    T0          FTPQSAEB 
          LDC    GILA 
          RJM    SBS         DISPLAY BIT STATUS 
          UJN    GIL3        CHECK *PF* ENTRY 
  
 GIL2     LDN    4           ADVANCE POSITION 
          RAD    T2 
 GIL3     LDM    MSTB+DVNM   DETERMINE IF *PF* ENTRY ENTERED
          NJN    GIL4        IF ENTERED 
          LJM    GIL9        SET LENGTH OF DISPLAY LINE 
  
 GIL4     AOD    T2 
          LDD    WB          DETERMINE DEVICE TYPE
          LPN    4
          ZJN    GIL5        IF FAMILY DEVICE 
          LDC    2RX &2RF 
 GIL5     LMC    2RF         SET *F* OR *X* 
          STI    T2 
          AOD    T2 
          LDM    MSTB+DVPF+1 SET DEVICE MASK
          SHN    -6 
          LPN    3
          RJM    C1D
          SOD    T2          BACKSPACE OVER SEPARATOR 
          LDM    MSTB+DVPF+1
          RJM    C2D
          LDM    MSTB+DVPF   SET SECONDARY MASK 
          SHN    -2 
          LPN    3
          RJM    C1D
          SOD    T2          BACKSPACE OVER SEPARATOR 
          LDM    MSTB+DVPF
          LPN    3
          SHN    14 
          LMM    MSTB+DVPF+1
          SHN    -10
          RJM    C2D
          LDC    MSTB+DVNM   SET FAMILY OR PACKNAME 
          STD    FP 
          AOD    T2 
 GIL6     LDI    FP 
          STI    T2 
          AOD    T2 
          AOD    FP 
          LMC    MSTB+DVNM+3
          NJN    GIL6        IF MORE CHARACTERS TO CHECK
          LDM    MSTB+DVNM+3 SET SEVENTH CHARACTER
          SCN    77          CLEAR DEVICE NUMBER
          STI    T2 
          AOD    T2 
          LDD    WB          DETERMINE IF FAMILY OR AUXILARY DEVICE 
          LPN    4
          ZJN    GIL7        IF FAMILY DEVICE 
          LDN    2           ADVANCE POSITION 
          RAD    T2 
          UJN    GIL8        SET NUMBER OF CATALOG TRACKS 
  
 GIL7     LDM    MSTB+DVDN   SET DEVICE NUMBER
          RJM    C2D
 GIL8     LDM    MSTB+DVPF   SET NUMBER OF CATALOG TRACKS 
          SHN    -12
          RJM    C1D
          SOD    T2          BACKSPACE OVER SEPARATOR 
          LDM    MSTB+DVPF
          SHN    -4 
          RJM    C2D
 GIL9     LDD    T2          SET LENGTH OF DISPLAY LINE 
          SBN    YY 
          LJM    GILX        RETURN 
 GILA     SPACE  4,10 
*         OPTION MASK.
  
 GILA     CON    2RFT&2R--
          CON    2RPQ&2R--
          CON    2RSA&2R--
          CON    2REB&2R--
          CON    0
 GMD      SPACE  4,10 
**        GMD - INITIATE MST DISPLAY. 
* 
*         EXIT   SEE *GML*. 
*                (A) = 0 IF END OF MASS STORAGE EQUIPMENT.
*                (PA) = GML.
*                (YY) = COORDINATE FOR NEXT DISPLAY LINE. 
* 
*         USES   T2.
* 
*         CALLS  CDI, GML.
  
  
 GMD      SUBR               ENTRY/EXIT 
          LDN    EDHBA       OUTPUT DISPLAY HEADER
          OAM    EDHB,CH
          LDD    MA          GET DAYFILE AND DEFAULT FAMILY EQUIPMENTS
          SHN    6
          ADN    NEEQ*TDDCL 
          CRD    CB 
          RJM    CDI         CHECK DISPLAY INDEX
          RJM    GML
          ZJN    GMDX        IF NO MORE MASS STORAGE
          STD    T2 
          LCN    YINC        ADJUST Y-COORDINATE
          RAD    YY 
          LDC    GML         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          LDD    T2 
          UJN    GMDX        RETURN 
 GML      SPACE  4,15 
**        GML - GENERATE MST DISPLAY LINE.
* 
*         ENTRY  (T1) = EST ORDINAL.
*                (EW) = CURRENT EQUIPMENT COUNT.
* 
*         EXIT   (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. 
*                    = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES).
*                (T1) = MASS STORAGE EST ORDINAL. 
*                (LBUF) = DISPLAY LINE. 
* 
*         USES   BA, T2.
* 
*         CALLS  IML, SBS.
  
  
 GML      SUBR               ENTRY/EXIT 
          RJM    IML
          ZJN    GMLX        IF NO MORE MASS STORAGE EQUIPMENT
          LDD    WB 
          LPC    3400        SET S, M, R
          SHN    1
          STD    T0          SMR......... 
          LDD    WB 
          LPN    20          SET N
          SHN    10-4 
          RAD    T0          SMRN........ 
          LDD    WB+4 
          LPN    10          SET A
          SHN    7-3
          RAD    T0          SMRNA....... 
          LDD    WB+4 
          SCN    17 
          ZJN    GML2        IF NO INITIALIZE PENDING 
          LDC    100         SET I
          RAD    T0          SMRNAI...... 
 GML2     LDM    MSTB+DVPR   SET P
          LPN    1
          SHN    5
          RAD    T0          SMRNAIP..... 
          LDN    4
          STD    BA 
 GML3     LDM    CB,BA       DETERMINE DAYFILE AND FAMILY RESIDENCE 
          LPC    777
          LMD    T1 
          NJN    GML4        IF NO RESIDENCE
          LDM    GMLC,BA     SET D, C, E, B, AND/OR F 
          RAD    T0 
 GML4     SOD    BA 
          PJN    GML3        IF MORE TO CHECK 
          LDC    GMLA 
          RJM    SBS         DISPLAY BIT STATUS 
          LDM    MSTB+DVPR   SET G
          LPN    2
          SHN    12 
          STD    T0 
          LDC    GMLB 
          RJM    SBS         DISPLAY BIT STATUS 
          LDN    2
          RAD    T2 
          LDM    MSTB+DVFA   SET FILE TYPE BITS 
          SHN    3
          ADN    4           SET UNUSED BIT 
          STD    T0 
          LDC    GMLD 
          RJM    SBS         DISPLAY BIT STATUS 
          LDD    T2          SET LENGTH OF DISPLAY LINE 
          SBN    YY 
          LJM    GMLX        RETURN 
 GMLA     SPACE  4,10 
*         STATUS MASKS. 
  
 GMLA     CON    2RSM&2R--
          CON    2RRN&2R--
          CON    2RAI&2R--
          CON    2RPD&2R--
          CON    2RCE&2R--
          CON    2RBF&2R--
          CON    0
  
 GMLB     CON    2RG-&2R--
          CON    0
  
 GMLC     CON    20 
          CON    10 
          CON    4
          CON    2
          CON    1
  
  
*         FILES MASK. 
  
 GMLD     CON    2RSB&2R--
          CON    2RLP&2R--
          CON    2RDR&2R--
          CON    2ROI&2R--
          CON    2RT &2R--
          CON    0
 GTD      SPACE  4,10 
**        GTD - INITIATE MASS STORAGE ERROR THRESHOLD DISPLAY.
* 
*         EXIT   SEE *GTL*. 
*                (A) = 0 IF END OF MASS STORAGE EQUIPMENT.
*                (PA) = GTL.
*                (YY) = COORDINATE FOR NEXT DISPLAY LINE. 
* 
*         USES   T2.
* 
*         CALLS  CDI, GTL.
  
  
 GTD      SUBR               ENTRY/EXIT 
          LDN    EDHEA       OUTPUT DISPLAY HEADER
          OAM.   EDHE,CH
          RJM    CDI         CHECK DISPLAY INDEX
          RJM    GTL         GENERATE LINE
          ZJN    GTDX        IF NO MORE MASS STORAGE
          STD    T2 
          LCN    YINC        ADJUST Y-COORDINATE
          RAD    YY 
          LDC    GTL         CHANGE PROCESSOR ADDRESS 
          STD    PA 
          LDD    T2 
          UJN    GTDX        RETURN 
 GTL      SPACE  4,15 
**        GTL - GENERATE MASS STORAGE ERROR THRESHOLD LINE. 
* 
*         ENTRY  (T1) = EST ORDINAL.
*                (EW) = CURRENT EQUIPMENT COUNT.
* 
*         EXIT   (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. 
*                    = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES).
*                (T1) = MASS STORAGE EST ORDINAL. 
*                (LBUF) = DISPLAY LINE. 
* 
*         USES   BA.
* 
*         CALLS  D4S, IML.
  
  
 GTL      SUBR               ENTRY/EXIT 
          RJM    IML
          ZJN    GTLX        IF NO MORE MASS STORAGE EQUIPMENT
          LDM    MSTB+DVNT
          RJM    D4S         CONVERT TRACK COUNT
          LDN    0
          STD    BA 
 GTL1     LDM    MSTB+DVTH,BA  CONVERT THRESHOLD VALUE
          RJM    D4S
          AOD    BA          ADVANCE INDEX
          LMN    5
          NJN    GTL1        IF MORE ERROR LIMITS 
          LDD    T2 
          SBN    YY 
          UJP    GTLX        RETURN 
 IEL      SPACE  4,10 
**        IEL - INITIALIZE EQUIPMENT DISPLAY LINE.
* 
*         ENTRY  (T1) = EST ORDINAL.
*                (WB - WB+4) = EST DATA.
* 
*         EXIT   (A) = 0 IF EQUIPMENT UNDEFINED.
*                (T2) = *LBUF* ADDRESS FOR CONTINUED ASSEMBLY.
* 
*         CALLS  CLB, D4S.
  
  
 IEL3     LDN    2           ADVANCE PAST PARTITION FIELD 
          RAD    T2 
  
 IEL      SUBR               ENTRY/EXIT 
          RJM    CLB
          LDD    T1          CONVERT EST ORDINAL
          RJM    D4S
          LDD    WB+3        SET EQUIPMENT MNEMONIC 
          ZJN    IELX        IF EQUIPMENT UNDEFINED 
          STI    T2 
          LDN    2           ADVANCE ASSEMBLY ADDRESS 
          RAD    T2 
          LDD    WB 
          SHN    21-13
          PJN    IEL3        IF NOT MASS STORAGE
          SHN    21-5-21+13 
          PJN    IEL3        IF NOT BUFFERED DEVICE 
          LDM    ESTB+3 
          SHN    21-13
          PJN    IEL3        IF NO PARTITION NUMBER 
          SHN    21-11-21+13
          MJN    IEL2        IF DOUBLE DIGIT PARTITION NUMBER 
          SHN    0-16 
          RJM    C1D         CONVERT 1 OCTAL DIGIT
 IEL1     UJN    IELX        RETURN 
  
 IEL2     SHN    4
          LPN    17 
          RJM    C2D         DISPLAY 2 OCTAL DIGITS 
          UJN    IEL1        RETURN 
 IML      SPACE  4,10 
**        IML - INITIALIZE MASS STORAGE DISPLAY LINE. 
* 
*         ENTRY  (T1) = EST ORDINAL.
*                (EW) = CURRENT EQUIPMENT COUNT.
* 
*         EXIT   (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. 
*                (T1) = MASS STORAGE EST ORDINAL. 
* 
*         CALLS  IEL, REP.
  
  
 IML2     RJM    IEL         INITIALIZE DISPLAY LINE
  
 IML      SUBR               ENTRY/EXIT 
 IML1     RJM    REP
          NJN    IML2        IF MASS STORAGE EQUIPMENT FOUND
          AOD    T1 
          LMD    EW 
          NJN    IML1        IF MORE EQUIPMENT TO CHECK 
*         LDN    0
          UJN    IMLX        RETURN 
 REP      SPACE  4,10 
**        REP - READ EQUIPMENT PARAMETERS.
* 
*         ENTRY  (T1) = EST ORDINAL.
* 
*         EXIT   (A) = 0 IF NOT MASS STORAGE. 
*                (WB - WB+4) = EST DATA.
*                (MSTB) = MST DATA IF MASS STORAGE. 
  
  
 REP      SUBR               ENTRY/EXIT 
          LDD    EA 
          SHN    5
          ADD    T1          FETCH EST DATA 
          SHN    1
          ADK    EQDE 
          CRD    WB 
          ADK    EQAE-EQDE
          CRM    ESTB,ON
          LDD    WB 
          SHN    0-13 
          ZJN    REPX        IF NOT MASS STORAGE
          LDD    MA 
          SHN    4
          ADD    T1 
          SHN    2
          ADD    T1 
          ERRNZ  TDDCL-5     CODE DEPENDS ON VALUE OF TAG 
          CRM    MSTB,DV
          UJN    REPX        RETURN 
 RNB      SPACE  4,10 
**        RNB - READ NEXT BLOCK.
* 
*         ENTRY  (A) = 0 IF READ INITIATED. 
*                (WC) = WORD COUNT OF PREVIOUS BLOCK. 
* 
*         EXIT   (A) = (WC) = BLOCK SIZE (CM WORD COUNT). 
  
  
 RNB2     LDN    0           INDICATE EOR 
  
 RNB      SUBR               ENTRY/EXIT 
          ZJN    RNB1        IF READ INITIATED
          LDD    WC 
          LMC    TPLN/5 
          NJN    RNB2        IF EOR 
          ACN    TC 
          LDN    RTBF        INITIATE READ
          OAN    TC 
          AJM    *,TC        WAIT FUNCTION ACCEPT 
 RNB1     ACN    TC 
          IAN    TC          INPUT WORD COUNT 
          STD    WC 
          UJN    RNBX        RETURN 
 RTL      SPACE  4,10 
**        RTL - READ TEXT LINE. 
* 
*         ENTRY  (T1) = LINE NUMBER.
*                (DB) = DISPLAY BUFFER INDEX. 
*                (YY) = Y-COORDINATE FOR LINE.
* 
*         EXIT   (A) = LINE LENGTH (INCLUDING COORDINATES)
*                    .LT. 0 IF FORMAT EFFECTOR ENCOUNTERED. 
*                (LBUF) = LINE IMAGE. 
  
  
 RTL1     LDN    1R -1R1     REMOVE FORMAT EFFECTOR 
          SHN    6
          RAM    LBUF 
 RTL2     LDN    LBUFL+1+2   SET LINE LENGTH
  
 RTL      SUBR               ENTRY/EXIT 
          LDM    TDBP+1,DB
          SHN    3
          ADD    T1          READ REQUEST LINE
          SHN    3
          CRM    LBUF,SX
          LDD    DB 
          NJN    RTL2        IF NOT INSTRUCTION DISPLAY 
          LDM    LBUF 
          SHN    -6          CHECK LINE 
          LMN    1R1
          NJN    RTL2        IF NO FORMAT EFFECTOR
          LDD    YY 
          SBK    BL01 
          ZJN    RTL1        IF TOP OF DISPLAY
*         LCN    0
          UJN    RTLX        RETURN 
 SBS      SPACE  4,10 
**        SBS - SET BIT STATUS. 
* 
*         ENTRY  DISPLAY HARDWARE POSTIIONED AT DESIRED LOCATION. 
*                (A) = ADDRESS OF LETTER TABLE.  TABLE MUST BE
*                      TERMINATED BY A ZERO WORD. 
*                (T0) = BIT STATUS LEFT JUSTIFIED.
*                (T2) = ADDRESS TO STORE BIT STATUS.
* 
*         USES   BA, FP, T0, T2.
  
  
 SBS1     LPC    0
 SBSA     EQU    *-1
          LMC    2R--        FORM LETTER IF BIT ON OR *-* IF BIT OFF
          STI    T2 
          AOD    FP          ADVANCE BIT INDEX
          AOD    T2          ADVANCE ADDRESS
 SBS2     LDD    T0          POSITION NEXT 2 BITS 
          SHN    2
          STD    T0 
          SHN    -14         GET NEXT 2 BITS
          STD    BA 
          LDM    SBSB,BA     GET MASK 
          STM    SBSA 
          LDI    FP 
          NJN    SBS1        IF NOT END OF TABLE
  
 SBS      SUBR               ENTRY/EXIT 
          STD    FP          SAVE TABLE ADDRESS 
          UJN    SBS2        POSITION BITS
  
  
 SBSB     CON    0000        -- 
          CON    0077        -X 
          CON    7700        X- 
          CON    7777        XX 
 SCT      SPACE  4,10 
**        SCT - SEARCH CONTROLWARE TABLE. 
* 
*         ENTRY  (A) = EQUIPMENT TYPE (DEVICE MNEMONIC).
* 
*         EXIT   (A) = (T2) = CONTROLWARE TYPE ADDRESS IN *TDCW*. 
*                    = 0 IF ENTRY NOT FOUND.
* 
*         USES   T2.
  
  
 SCT1     LDN    2           ADVANCE TABLE ADDRESS
          RAD    T2 
 SCT2     LDI    T2          CHECK ENTRY
          ZJN    SCTX        IF END OF TABLE
          LMD    T0          COMPARE DEVICE TYPE
          NJN    SCT1        IF NO MATCH
          AOD    T2 
  
 SCT      SUBR               ENTRY/EXIT 
          STD    T0 
          LDC    TDCW        SET TABLE ADDRESS
          STD    T2 
          UJN    SCT2        ENTER LOOP 
 UTD      SPACE  4,15 
**        UTD - UNPACK TEXT DECK. 
* 
*         ENTRY  (A) = ADDRESS OF BUFFER POINTER. 
* 
*         EXIT   (A) = LINE COUNT FOR DECK. 
*                (LL) = LINE LIMIT FOR BUFFER.
*                (LN) = 0.
* 
*         USES   BA, T1, T2, WC, WB - WB+4. 
* 
*         CALLS  RNB. 
  
  
 UTD1     LDD    WB+4 
          NJN    UTD5        IF NOT END OF LINE 
          CRD    WB 
 UTD2     LDI    T1          CHECK LINE COUNT 
          LMD    LL 
          ZJN    UTD5        IF BUFFER FULL 
          LDI    BA 
          SHN    3
          ADI    T1          STORE WORD 
          SHN    3
          ADD    T2 
          CWD    WB 
          AOD    T2          ADVANCE WORD COUNT 
          LMN    6
          NJN    UTD1        IF NOT SIX WORDS 
          STD    T2 
          AOI    T1          ADVANCE LINE COUNT 
          LDD    WB+4 
          ZJN    UTD5        IF END OF LINE 
 UTD3     LDN    5           SKIP NEXT WORD 
          IAM    WB,TC
          ZJN    UTD4        IF NOT END OF DATA 
          RJM    RNB
 UTD4     LDD    WB+4 
          NJN    UTD3        IF NOT END OF LINE 
 UTD5     LDN    5           INPUT NEXT WORD
          IAM    WB,TC
          ZJN    UTD2        IF NOT END OF DATA 
 UTD6     RJM    RNB
          NJN    UTD5        IF NOT EMPTY PRU 
          LDI    T1 
          OAN    BC          OUTPUT LINE COUNT FOR DECK 
          DCN    BC 
  
 UTD      SUBR               ENTRY/EXIT 
          STD    BA 
          ADN    FW-FA       SET LINE COUNTER ADDRESS 
          STD    T1 
          LDD    BL          SET LINE LIMIT FOR BUFFER
          SBI    BA 
          SHN    3
          STD    LL 
          LDN    0           CLEAR LINE COUNT 
          STD    T2 
          STI    T1 
          STD    WB+4 
          STM    FI-FW,T1    CLEAR BUFFER INDEX 
          STD    LN 
          UJN    UTD6        ENTER LOOP 
          SPACE  4,10 
**        DISPLAY HEADERS.
  
  
 DHDR     CON    HL03,CH01
          BSS    5
 DHDRL    EQU    *-DHDR 
  
 EDHA     CON    YCPH,CH02
          DATA   H*EQUIPMENT STATUS*
          CON    YCSH,CH02
          DATA   H*EST TYPE  PN  ST  EQ   UN  CHANNELS-PORTS* 
 EDHAA    EQU    *-EDHA 
  
 EDHB     CON    YCPH,CH02
          DATA   H*MASS STORAGE STATUS* 
          CON    YCSH,CH02
          DATA   H*EST TYPE  PN     STATUS          FILES*
 EDHBA    EQU    *-EDHB 
  
 EDHC     CON    YCPH,CH02
          DATA   H*MASS STORAGE INITIALIZATION STATUS*
          CON    YCSH,CH02
          DATA   H*EST TYPE  PN OPTIONS   T  IAM   DAM    FM/PK*
          DATA   H*   DN    NC* 
 EDHCA    EQU    *-EDHC 
  
 EDHD     CON    YCPH,CH02
          DATA   H*CONTROLWARE STATUS*
          CON    YCSH,CH02
          DATA   H*CHANNEL   CONTROLWARE* 
 EDHDA    EQU    *-EDHD 
  
 EDHE     CON    YCPH,CH02
          DATA   H*MASS STORAGE ERROR THRESHOLDS* 
          CON    YCSH,CH02
          DATA   H*EST TYPE  PN   NT    VF    RA    LS    RE    UE* 
 EDHEA    EQU    *-EDHE 
          SPACE  4,10 
*         DISPLAY BUFFERS.
  
 DIS      HERE
 ESTB     EQU    *           SECOND WORD OF EST ENTRY FOR DISPLAY 
 MSTB     EQU    ESTB+5      MASS STORAGE DESCRIPTOR TABLE BUFFER 
 TCCS     EQU    MSTB+TDDEL  CONTROLWARE TYPES TO LOAD
          SPACE  4,10 
 LBUFL    EQU    KBUFL/2     LINE BUFFER LENGTH 
          ERRNZ  KBUFL-60D   CODE DEPENDS ON VALUE
          LOC    *O 
          QUAL   *
 IBUFL    EQU    *-IBUF 
          SPACE  4,10 
*         CHANNEL TABLES. 
  
  
          CHTB   TC 
          CHTB   BC 
          CHTB   AC 
          SPACE  4,10 
*         INSTRUCTION MODIFICATION BLOCK. 
  
  
          DIMB
          SPACE  4,10 
          ERRNG  MBUF-*      *SET* OVERFLOWS INTO MOVE BUFFER 
          SPACE  4,10 
*         RESTORE I/O INSTRUCTIONS. 
  
  
          RSTC
          SPACE  4,10 
 .DSE     SET    0
 .ILL     SET    0
 .KBR     SET    0
          TTL    SET/CMR - SET SYSTEM CONFIGURATION.
          TITLE 
          IDENT  CMR,OVL
          QUAL   CMR
          ORG    OVL
*COMMENT  SET - SET SYSTEM CONFIGURATION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MACROS   SPACE  4,10 
**        MACRO DEFINITIONS.
  
  
 MTLN     SPACE  4,10 
**        MTLN - GENERATE TAGGED LIST OF MANAGED TABLE ENTRY COUNTS.
* 
*N        MTLN   I,L
*                N = TABLE NAME.
*                I = MANAGED TABLE IDENTIFIER.
*                L = DEFAULT NUMBER OF ENTRIES. 
  
  
          MACRO  MTLN,N,I,L 
 .A       IFC    NE,*N**
 N        BSS    0
 .2       SET    N
 TT       MICRO  1,3, N 
 .A       ELSE
 .B       IFC    NE,*I**
 .I       EQU    *-.2 
          CON    L
          ENDIF 
          ENDM
          SPACE  4,10 
**        MAINTENANCE REGISTER REQUEST CODE SYMBOLS.
  
          QUAL
  
 RMRF     EQU    /IOU/MRRD-/IOU/MRRD     READ 
 WMRF     EQU    /IOU/MRWT-/IOU/MRRD     WRITE
  
          QUAL   *
 NVECPU   SPACE  4,10 
**        NVECPU - SUBROUTINES TO RESERVE CPU1 FOR NOS/VE.
* 
*         THIS MACRO PROVIDES COMMON CODE FOR *CMR* AND *RCM*.
  
  
 NVECPU   MACRO 
          LIST   G
  
  
  
  
**        RESERVE PROCESSOR FOR NOS/VE. 
* 
*         USES   T5, CM - CM+4. 
* 
*         CALLS  RWR. 
  
  
 RPN4     CCF.   *+2,MR      CLEAR CHANNEL FLAG 
  
 RPN      SUBR               ENTRY/EXIT 
          LDM    .CPU 
 RPN1     LPN    2
          ADM    C8XX 
          NJN    RPNX        IF NOT DUAL STATE DUAL CPU MAINFRAME 
          SCF.   RPN1,MR     SET CHANNEL FLAG 
          LDM    ISPF 
          SHN    0-13 
          STD    T5          FORM REGISTER INDEX
          SHN    1
          RAD    T5 
          ZJN    RPN1.1      IF CYBER 180 - 810/815/825/830 
  
*         PROCESS LEVEL 3 DEADSTART.
  
 .RCM     IF     DEF,RCM
          LDC    EIBP 
          CRD    CM 
          LDD    CM 
          SHN    21-12
          PJN    RPN2        IF NOT DUAL 170-STATE CPUS WITH CACHE
          LDD    CM 
          LPC    2177        CLEAR MONITOR, NVE AND CACHE PURGE FLAGS 
          STD    CM 
          LDC    EIBP 
          CWD    CM 
          UJN    RPN3        CLEAR CHANNEL FLAG AND RETURN
  
 RPN1.1   LDD    HO 
          LPN    1
          NJN    RPN3        IF FIRST CPU OFF 
          LDN    SSTL        PROCESS LEVEL 3 DEADSTART
          CRD    CM 
          LDD    CM+3 
          SHN    0-13 
          NJN    RPN3        IF NOS/VE DISABLED 
  
*         PROCESS LEVEL 0, 1 OR 2 DEADSTART.
  
 .RCM     ELSE
          LDM    DCPC 
          ZJN    RPN2        IF NOT DUAL 170-STATE CPUS WITH CACHE
          LDM    DCPN 
          NJN    RPN4        IF SECOND CPU DEDICATED TO NOS 
 RPN1.1   LDD    HO 
          LPN    1
          NJN    RPN4        IF FIRST CPU OFF 
          LDM    VEFL 
          ZJN    RPN3        IF NOS/VE MEMORY SPACE UNDECLARED
          LDD    HO 
          LPN    2
          NJN    RPN3        IF SECOND CPU OFF
          LDM    P2CC 
          LMK    /IOU/MRHP   HALT PROCESSOR 
          FAN.   MR 
          LDN    2
          RAD    HO 
 .RCM     ENDIF 
  
*         DISABLE PORT TO SECOND CPU. 
  
 RPN2     LDK    RMRF        READ ENVIRONMENTAL CONTROL REGISTER
          RJM    RWR
          DCN.   MR 
          LDM    RBUF+1,T5   DISABLE PORT TO SECOND CPU 
          SCN    40 
          LMN    40 
          STM    RBUF+1,T5
          LDK    WMRF        WRITE *EC* REGISTER
          RJM    RWR
          FJM.   *,MR        WAIT CHANNEL EMPTY 
          DCN.   MR 
 RPN3     LJM    RPN4        CLEAR CHANNEL FLAG AND RETURN
  
  
  
  
**        READ / WRITE ENVIRONMENTAL CONTROL REGISTER.
* 
*         ENTRY  (A) = *RMRF* TO READ REGISTER, 
*                    = *WMRF* TO WRITE REGISTER.
* 
*         EXIT   (RBUF) = REGISTER CONTENTS.
  
  
 RWR      SUBR               ENTRY/EXIT 
          LMM    CMCC 
          FAN.   MR          FUNCTION MAINTENANCE CHANNEL 
          LPN    20 
          ERRNZ  RMRF+20-WMRF CODE DEPENDS ON VALUE 
          SHN    3
          LMC    IAMI+MR     FORM I/O INSTRUCTION 
          STM    RWRA 
          ACN.   MR 
          LDN    0
          OAN.   MR          SEND MEMORY *EC* REGISTER NUMBER 
          LDK    /IOU/ECMR
          OAN.   MR 
          FJM.   *,MR        WAIT CHANNEL BUSY
          DCN.   MR 
          ACN.   MR          READ / WRITE REGISTER
          LDN    10 
 RWRA     IAM.   RBUF,MR
          UJP    RWRX        RETURN 
  
  
 RBUF     EQU    MBUF+500-10
  
          LIST   *
          ENDM
 ENTRY    SPACE  4,10 
**        ENTRY POINTS. 
  
  
          CON    TSYN-1      ADDRESS OF SYNTAX TABLE
          CON    TSYNA       ADDRESS OF END OF SYNTAX TABLE 
 CMR      SPACE  4,10 
**        CMR - INITIALIZE CENTRAL MEMORY.
  
  
 CMR      SUBR               ENTRY/EXIT 
          RJM    CCP         COMPLETE *CMR* PROCESSING
          UJN    CMRX        RETURN 
  
          QUAL
          SPACE  4,10 
****      ASSEMBLED VALUES. 
  
  
*         CM TABLE LENGTHS. 
  
 MTBL     MTLN
          MTLN   FOT,10      FAMILY ORDINAL TABLE 
          MTLN   FNT,23      FILE NAME TABLE
          MTLN   EJT,620     EXECUTING JOB TABLE
          MTLN   QFT,620     QUEUE FILE TABLE 
          MTLN   CLT,0       COMMON LIBRARIES TABLE 
          MTLN   LID,DFLDT   LOGICAL ID TABLE 
          MTLN   MLS,MLTLD   NOS/VE MESSAGE LINK STATUS TABLE 
          MTLN   ORT,100B 
          MTLN   EMB,EMBMN   ERROR MESSAGE BUFFER 
          MTLN
  
*         MISCELLANEOUS.
  
 INBS     CON    0           INSTALLATION BLOCK SIZE
  
****
 TAXM     SPACE  4,10 
**        TAXM - EXTENDED MEMORY ALLOCATION TABLE.
*         ENTRY = 5 BYTES.
*         FIRST ENTRY IS FOR THIS MACHINE.
* 
*T, TAXM  12/ID, 12/FU, 12/UEC, 12/IOBT, 12/IOB 
* 
*         ID = MACHINE ID.
*         FU = 0 IF USER ECS TO RESIDE IN EXTENDED MEMORY EQUIPMENT.
*            .NE. 0 IF INTERNAL USER EXTENDED MEMORY IN UEM.
*         UEC = AMOUNT OF USER XM/*EMBS* TO ALLOCATE TO 
*               MACHINE *ID*. 
*         IOBT = TRACKS NEEDED FOR I/O BUFFERS. 
*         IOB = AMOUNT OF SPACE/*EMBS* TO ALLOCATE TO DEMA/819/895
*               BUFFERS.
  
  
 TAXM     BSSZ   4*5         ALLOW 4 MACHINES WITH CPU ACCESS TO EM 
 TAXML    EQU    *-TAXM 
 TAXXL    EQU    *-TAXM      EXTENDED *TAXM* LENGTH 
 CFT      SPACE  4,10 
**        CFT - CONVERT EXTENDED MEMORY FL TO TRACK COUNT.
* 
*         ENTRY  (A) = EXTENDED MEMORY FL/*EMBS*. 
* 
*         EXIT   (A) = DESIRED SPACE IN TRACKS. 
*                (T0) = DESIRED SPACE IN TRACKS.
* 
*         USES   T6, T7.
  
  
 CFT      SUBR               ENTRY/EXIT 
          SHN    5
          STD    T7          SET EXTENDED MEMORY FL 
          SHN    -14
          STD    T6 
          LCN    0           TRACK COUNT = (FL * 40) / 101
          STD    T0 
 CFT1     AOD    T0          ADVANCE TRACK COUNT
          LDC    -101 
          RAD    T7 
          PJN    CFT1        IF NOT UNDERFLOW 
          AOD    T7 
          SOD    T6 
          PJN    CFT1        IF NOT END OF CONVERSION 
          LDD    T0 
          UJN    CFTX        RETURN 
 CMS      SPACE  4,20 
**        CMS - CHECK MEMORY SIZES. 
* 
*         CHECKS THAT CM, USER XM AND I/O BUFFER BLOCKS WILL ALL FIT
*         INTO THE MEMORIES DEFINED TO HOLD THEM. 
* 
*         ENTRY  (A) = 0 IF CHECK TO INCLUDE *XM* ALLOCATION DATA.
*                (PD) = 5, IF EST ORDINAL 5 DEFINED AS EXTERNAL XM. 
*                (EN) = CPU ACCESS EXTENDED MEMORY EST ORDINAL. 
*                (FL - FL+1) = MINIMUM CM REQUIRED. 
*                (MZ - MZ+1) = MEMORY SIZE (FROM CTI).
*                (UEMZ - UEMZ+1) = UEM REQUIRED/100B. 
*                (VEMZ - VEMZ+1) = NVE BLOCK REQUIRED/100B. 
*                TAXM = TABLE OF EXTENDED MEMORY ALLOCATIONS. 
* 
*         EXIT   (A) = 0 IF NO ERRORS.
*                (KM) = MESSAGE ADDRESS IF ERROR. 
* 
*         USES   CN - CN+4, T1 - T5.
* 
*         CALLS  CFT, VDA.
  
  
 CMS      SUBR               ENTRY/EXIT 
          NJP    CMS10       IF NOT CHECKING *XM* ALLOCATION DATA 
          CRD    T1 
          CRD    CN 
          LDD    PD 
          ZJN    CMS3        IF NO POSSIBLE LINK DEVICE 
          ADD    EN 
          SBN    2*LDEQ+1 
          MJN    CMS3        IF NOT BOTH A LINK DEVICE AND A CPU DEVICE 
          AOD    CN 
          UJN    CMS3        ENTER LOOP 
  
*         ACCUMULATE TOTALS FOR USER XM AND I/O BUFFERS.
*         IF BOTH A LINK DEVICE AND A CPU ACCESS EXTENDED MEMORY DEVICE 
*         ARE DEFINED, THE TOTALS MUST BE KEPT SEPARATE.  ALL *XM*
*         ENTRIES FOR OTHER MACHINES ARE DEFINING SPACE IN THE LINK 
*         DEVICE. 
  
 CMS1     LDD    T2 
          NJN    CMS2        IF NOT THIS MACHINE-S ENTRY
          LDD    CN 
          ZJN    CMS2        IF NOT TWO EXTENDED MEMORY EQUIPMENTS
          LDD    T4          SAVE USER XM TRACK COUNT FOR THIS MACHINE
          STD    CN+1 
          LDN    ZERL        CLEAR TOTALS FOR LINK DEVICE 
          CRD    T1 
 CMS2     LDN    5           ADVANCE INDEX
          RAD    T2 
          LMN    TAXML
          ZJN    CMS7        IF END OF ALLOCATION TABLE 
 CMS3     LDM    TAXM,T2
 CMS4     ZJN    CMS2        IF EMPTY ENTRY 
          LDM    TAXM+1,T2
          NJN    CMS5        IF USER XM IN UEM WITH NO EST ENTRY
          LDM    TAXM+2,T2
          RJM    CFT         CONVERT TO TRACK COUNT 
          RAD    T4          ACCUMULATE USER XM TRACKS NEEDED 
          SHN    -13
          NJN    CMS6        IF TOO MUCH DEFINED
 CMS5     LDM    TAXM+3,T2   ACCUMULATE TOTAL I/O BUFFER TRACKS NEEDED
          RAD    T1 
          LDM    TAXM+4,T2   ACCUMULATE TOTAL I/O BUFFER SPACE NEEDED 
          RAD    T3 
          SHN    -14
          ZJP    CMS1        IF NO OVERFLOW 
 CMS6     LDC    2RXM        *XM ALLOCATION ERROR.* 
          LJM    CMS14       SET MESSAGE ADDRESS
  
*         CHECK EXTENDED MEMORY FIT.
  
 CMS7     LDD    HO 
          SHN    21-11
          PJN    CMS8        IF NOT CYBER 176 
          AOD    T5          COUNT 176 TRACK
 CMS8     LDD    PD 
          NJN    CMS9        IF EQUIPMENT 5 EM DEVICE 
          LDD    EN 
          ZJN    CMS10       IF NO EST ENTRY
 CMS9     RJM    VDA         VERIFY DEVICE ALLOCATION 
          MJN    CMS6        IF INSUFFICIENT SPACE
          LDD    CN 
          ZJN    CMS10       IF NOT TWO EXTENDED MEMORY EQUIPMENTS
          LDM    TAXM+3      TRACK COUNT FOR I/O BUFFER SPACE 
          STD    T1 
          LDD    CN+1        TRACK COUNT FOR USER XM
          STD    T4 
          LDD    EN 
          RJM    VDA         VERIFY DEVICE ALLOCATION 
          MJN    CMS6        IF INSUFFICIENT SPACE
  
*         CHECK MAIN MEMORY FIT.
  
 CMS10    LDM    UEMZ+1 
          ADM    UEMZ 
          ZJN    CMS11       IF NO UEM DEFINED
          LDD    MZ+1        ADJUST CM SIZE FOR 1000B WORD UEM BOUNDARY 
          LPN    7
 CMS11    ADM    VEMZ+1      ACCUMULATE TOTAL MAIN MEMORY REQUIRED
          ADM    UEMZ+1 
          ADD    FL+1 
          STD    T2 
          SHN    -14
          ADM    VEMZ 
          ADM    UEMZ 
          ADD    FL 
          STD    T1 
          LDD    MZ+1        CHECK AGAINST SIZE RETURNED BY *CTI* 
          SBD    T2 
          PJN    CMS12       IF NO BORROW 
          AOD    T1          PROPAGATE BORROW 
 CMS12    LDD    MZ 
          SBD    T1 
          SHN    -21
          ZJN    CMS15       IF IT ALL FITS 
          LDC    2RCM 
 CMS14    STM    CMSA 
          LDC    CMSA 
          STD    KM          SET MESSAGE ADDRESS
 CMS15    LJM    CMSX        RETURN 
  
 CMSA     DATA   C*CM ALLOCATION ERROR.*
 VDA      SPACE  4,10 
**        VDA - VALIDATE DEVICE ALLOCATION. 
* 
*         ENTRY  (A) = EST ORDINAL TO VALIDATE. 
*                (T1) = TRACKS OF I/O BUFFERS DEFINED.
*                (T4) = TRACKS OF USER EXTENDED MEMORY DEFINED. 
*                (T5) = 1, IF MACHINE IS 176. 
* 
*         EXIT   (A) .LT. 0 IF DEFINED TRACKS WILL NOT FIT. 
* 
*         CALLS  STA. 
  
  
 VDA      SUBR               ENTRY/EXIT 
          RJM    /EQP/STA 
          LDD    T4 
          ZJN    VDA2        IF NO EXTERNAL USER XM DEFINED 
          AOD    T4          COUNT USER XM SYSTEM SECTOR TRACK
 VDA2     LDM    /EQP/TDDB+DVNT 
          SBD    T1          TRACK COUNT FOR I/O BUFFER SPACE 
          SBD    T4          TRACK COUNT FOR USER XM SPACE
          SBD    T5          176 SPACE
          SBN    2           LABEL AND CE TRACKS
          UJN    VDAX        RETURN 
  
 EQPL     BSS    0           *EQP* LOAD ADDRESS 
  
          QUAL   *
          SPACE  4,10 
**        TSYN - SYNTAX TABLE.
  
  
 TSYN     BSS    0
          CON    BSP
          CON    CLT
          CON    DFT
          CON    DUALCPU
          CON    EJE
          CON    EMB
          CON    EQP
          CON    FNE
          CON    FOE
          CON    INB
          CON    IPD
          CON    LIB
          CON    LIE
          CON    MID
          CON    MCM
          CON    MLS
          CON    NAME 
          CON    NCP
          CON    OPS
          CON    ORT
          CON    PCP
          CON    PPU
          CON    QFE
          CON    VEE
          CON    VERSION
  
 TSYNA    CON    0
          CON    NEXT 
          CON    IPR
          CON    0           END OF TABLE 
 CCP      SPACE  4,10 
**        CCP - COMPLETE *CMR* PROCESSING.
* 
*         SYSTEM NAME AND VERSION ARE SAVED IN CENTRAL MEMORY NOW,
*         INSTEAD OF WAITING UNTIL *ICM*, TO MAKE ROOM IN *EQP*.
*         THE *NOS/VE* PROCESSOR IS RESERVED IF REQUIRED, AND THE 
*         *EQP* OVERLAYS ARE READ IN AND WRITTEN TO CENTRAL MEMORY. 
  
  
 CCP      SUBR               ENTRY/EXIT 
          LDN    6
          STD    T1 
          LDN    SYTL        STORE SYSTEM NAME, VERSION 
          CWM    .NME,T1
          LDC    RJMI        FORCE OVERLAY LOADS FOR *EQPDECK* ENTRIES
          STM    AKLC 
          RJM    RPN         RESERVE PROCESSOR FOR *NVE*
          LDN    3*EQXL      LOAD *EQ1*, *EQ2* AND *EQ3*
          STD    T5 
          LDC    EQXL*100    SET NUMBER OF WORDS TO READ
          STD    T7 
 CCP1     RJM    ROV
          LDD    EB 
          SBD    T5 
          SHN    6
          CWM    EQXO,T7
          LDD    T5 
          SBN    EQXL 
          STD    T5 
          NJN    CCP1        IF MORE OVERLAYS 
          UJN    CCPX        RETURN 
  
  
****      OPERATING SYSTEM NAME AND VERSION.
  
 .NME     DATA   C* CDC NETWORK OPERATING SYSTEM.*
          BSSZ   .NME+24-*
 VER170   MICRO  2,18,$"VER170"$  REMOVE LEADING/TRAILING SPACES
 .VER     DATA   C*"VER170"*
          BSSZ   .VER+12-*
****
  
          ERRNG  /EQP/EQXO-* OVERFLOW INTO *EQ1*/*EQ2*/*EQ3* OVERLAYS 
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          AODSUB
          ASDSUB
          ASNSUB
          CDRSUB
          NVECPU
          TITLE  CM TABLE PROCESSORS. 
 EJE      SPACE  4,10 
***       EJT=XXXX. 
*         SET NUMBER OF EJT ENTRIES = XXXX. 
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.EJT*.
  
  
 EJE      DATA   C*EJT=*
          LDN    .EJT 
          UJN    QFE1        PROCESS EJT DEFINITION 
 FOE      SPACE  4,10 
***       FOT=XXX.
*         SET NUMBER OF FOT ENTRIES = XXX.
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.FOT*.
  
  
 FOE      DATA   C*FOT=*
          LDN    .FOT 
          UJN    QFE1        PROCESS FOT DEFINITION 
 FNE      SPACE  4,10 
***       FNT=XXXX. 
*         SET NUMBER OF FNT ENTRIES = XXXX. 
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.FNT*.
  
  
 FNE      DATA   C*FNT=*
          LDN    .FNT 
          UJN    QFE1        PROCESS FNT DEFINITION 
 ORT      SPACE  4,16 
***       ORT=XXX.
*         SET NUMBER OF ORT ENTRIES = XXX.
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.ORT*.
  
  
 ORT      DATA   C*ORT=*
          LDN    .ORT 
          UJN    QFE1        PROCESS ORT DEFINITION 
 QFE      SPACE  4,10 
***       QFT=XXXX. 
*         SET NUMBER OF QFT ENTRIES = XXXX. 
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.QFT*.
  
  
 QFE      DATA   C*QFT=*
          LDN    .QFT 
 QFE1     STD    T7          SAVE INDEX 
          RJM    ASD         ASSEMBLE NUMBER OF TABLE ENTRIES 
          SBN    3
          MJN    QFE2        IF INCORRECT VALUE 
          SBN    101-3
          MJN    QFE3        IF CORRECT VALUE FOR ALL TABLES
          LDD    T7 
          LMK    .FOT 
          NJN    QFE3        IF NOT DEFINING FOT
 QFE2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 QFE3     LDD    AB+4        SET ENTRY COUNT
          STM    MTBL,T7
          JMP    KBR         RETURN 
 CLT      SPACE  4,10 
***       CLT=XXX.
*         SET NUMBER OF CLT ENTRIES = XXX.
*         DEFAULT = VALUE ASEMBLED WITH TAG *.CLT*. 
  
  
 CLT      DATA   C*CLT=*
          LDN    .CLT 
          UJN    QFE1        PROCESS CLT DEFINITION 
 BSP      SPACE  4,10 
***       BSP=X.
*         SPECIFIES WHETHER OR NOT TO BUILD THE *SCI* PARAMETER 
*         TABLE.  FOR COMPATIBILITY REASONS, *BSP=N.* MUST BE 
*         SPECIFIED WHEN RUNNING A DUAL STATE ENVIRONMENT IN
*         WHICH THE NOS/VE PSR LEVEL IS 688 OR EARLIER. 
*         DEFAULT = BUILD *SCI* PARAMETER TABLE.
  
  
 BSP      DATA   C*BSP=*
          LDM    C8XX 
          NJN    BSP1        IF NOT DUAL STATE MAINFRAME
          LDI    KA 
          SHN    6
          LMM    1,KA 
          LMC    2RY. 
          ZJN    BSP3        IF BUILD TABLE SPECIFIED 
          LMC    2RN.&2RY.
          ZJN    BSP2        IF DO NOT BUILD SPECIFIED
 BSP1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 BSP2     LDN    1           SET FLAG TO NOT BUILD TABLE
 BSP3     STM    BSPT 
          JMP    KBR         RETURN 
 DFT      SPACE  4,10 
***       DFT=X.
*         SET/CLEAR *DFT* DEDICATED MODE. 
* 
*         X = *N* TO CLEAR DEDICATED MODE,
*         X = *D* TO SET DEDICATED MODE.
* 
*         DEFAULT IS NON-DEDICATED MODE, UNLESS THE *VE* ENTRY IS 
*         SPECIFIED.
  
  
 DFT      DATA   C*DFT=*
          LDI    KA          GET FIRST CHARACTER
          LMN    1RN
          ZJN    DFT1        IF NOT DEDICATED MODE
          LMN    1RN&1RD
          NJN    DFT2        IF INCORRECT ENTRY 
          LDC    4000 
 DFT1     STD    T3 
          AOD    KA          GET NEXT CHARACTER 
          LDI    KA 
          LMN    1R.
          NJN    DFT2        IF NOT TERMINATED BY A *.* 
          LDM    DFTA+1 
          LPC    3777 
          LMD    T3          SAVE DEDICATED MODE
          STM    DFTA+1 
          JMP    KBR         RETURN 
  
 DFT2     JMP    ILL         PROCESS INCORRECT ENTRY
 DUALCPU  SPACE  4,10 
***       DUALCPU=X.
*         SET DUAL CPU OPERATING MODE FOR DUAL STATE. 
* 
*         X = *N* TO DEDICATE SECOND CPU TO *NOS*.
*         X = *V* TO DEDICATE SECOND CPU TO *NOS/VE*. 
* 
*         DEFAULT IS TO DEDICATE SECOND CPU TO *NOS/VE*.  THE FIRST 
*         CPU IS ALWAYS SHARED.  ONLY ALLOWED ON CY960-32.
  
  
 DUALCPU  DATA   C*DUALCPU=*
          LDM    CMDL        CHECK CPU MODEL NUMBER 
          LMC    0#3A 
          NJN    DUA2        IF NOT 960/970 
          LDD    HO 
          LPN    2
          NJN    DUA2        IF CPU 1 OFF / NONEXISTANT 
          LDI    KA          GET FIRST CHARACTER
          LMN    1RV
          ZJN    DUA1        IF *DUALCPU=V* 
          LMN    1RN&1RV
          NJN    DUA2        IF NOT *DUALCPU=N* 
          LDN    1
 DUA1     STD    T3          SAVE DUAL CPU FLAG 
          AOD    KA          GET NEXT CHARACTER 
          LDI    KA 
          LMN    1R.
          NJN    DUA2        IF NOT TERMINATED BY A *.* 
          LDD    T3          SET DUAL CPU FLAG
          STM    DCPN 
          JMP    KBR         RETURN 
  
 DUA2     JMP    ILL         PROCESS INCORRECT ENTRY
 EMB      SPACE  4,16 
***       EMB=XXXX. 
*         SET NUMBER WORDS FOR EMB = XXXX.
*         DEFAULT = VALUE ASSEMBLED WITH TAG *.EMB*.
*         MINIMUM = VALUE DEFINED IN *PPCOM* AS *EMBMN*.
*         MAXIMUM = VALUE DEFINED IN *PPCOM* AS *EMBMX* (7777B).
  
  
 EMB      DATA   C*EMB=*
          RJM    ASD         ASSEMBLE DIGITS
          ADC    -EMBMN 
          MJN    EMB1        IF TABLE LENGTH .LT. *PPCOM* MINIMUM 
          LDD    AB 
          ADD    AB+1 
          ADD    AB+2 
          ADD    AB+3 
          NJN    EMB1        IF TABLE LENGTH .GT. 7777B 
          LDD    AB+4 
          STM    .EMB+MTBL   SET TABLE LENGTH 
          JMP    KBR         RETURN 
  
 EMB1     JMP    ILL         PROCESS INCORRECT ENTRY
 EQP      SPACE  4,10 
***       EQP=NN. 
* 
*         BUILD SYSTEM WITH SPECIFIED EQPDECK.
*                OMITTED. USE EQPDNN, WHERE NN IS THE SAME NUMBER 
*                AS THE CMRDECK USED. 
*                EQP=NN. USE RECORD NAMED EQPDNN. 
  
  
 EQP      DATA   C*EQP=*
          LDN    EQPD 
          UJN    IPD1        SET DECK NUMBER
 IPD      SPACE  4,10 
***       IPD=NN. 
*         ASSEMBLE INSTALLATION PARAMETER DECK NN.
*         DEFAULT = ASSEMBLE FIRST IPRDECK RECOGNIZED.
  
  
 IPD      DATA   C*IPD=*
          LDN    IPRD 
 IPD1     STD    T7          SET TABLE INDEX
          RJM    ASD         ASSEMBLE DECK NUMBER 
          SHN    -6 
          ZJN    IPD2        IF VALID DECK NUMBER 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 IPD2     LDD    AB+4        SET DECK NUMBER
          STM    TTXC,T7
 IPD3     JMP    KBR         RETURN 
 INB      SPACE  4,10 
***       INB=NNNN. 
*         SET THE LENGTH OF THE INSTALLATION BLOCK. 
*         DEFAULT = 0.
*         MAXIMUM = 7777B.
  
  
 INB      DATA   C*INB=*
          RJM    ASD         ASSEMBLE DIGITS
          STM    INBS 
          JMP    KBR         RETURN 
 LIB      SPACE  4,10 
***       LIB=NN. 
*         BUILD SYSTEM WITH SPECIFIED LIBDECK.
*                OMITTED. USE RECORD NAMED *LIBD00*.
*                LIB=NN. USE RECORD NAMED *LIBDNN*. 
  
  
 LIB      DATA   C*LIB=*
          LDN    LIBD 
          UJN    IPD1        SET DECK NUMBER
 LIE      SPACE  4,10 
***       LDT=NNNN. 
* 
*         SET THE LENGTH OF THE LID TABLE, NOT INCLUDING THE HEADER.
*         THE NUMBER OF WORDS MUST BE .LE. MXLDT, AND .GE. MNLDT. 
  
  
 LIE      DATA   C*LDT=*
          RJM    ASD         ASSEMBLE DIGITS
          SBK    MNLDT
          MJN    LIE1        IF TABLE LENGTH TOO SMALL
          SBK    MXLDT+1-MNLDT
          PJN    LIE1        IF TABLE LENGTH TOO LARGE
          AOD    AB+4        ADD A WORD FOR TABLE HEADER
          STM    .LID+MTBL   SET TABLE LENGTH 
          JMP    KBR         RETURN 
  
 LIE1     JMP    ILL         PROCESS INCORRECT ENTRY
 MID      SPACE  4,10 
***       MID=XX. 
* 
*         SET MACHINE IDENTIFICATION MNEMONIC = XX. 
*         XX MUST BE 2 ALPHANUMERIC CHARACTERS. 
*         DEFAULT VALUE = AA. 
  
  
 MID      DATA   C*MID=*
          SOD    KA 
          LDN    3           ASSEMBLE ID
          RJM    ASN
          LDD    T0 
          SBN    2
          NJN    MID1        IF .NE. 2 CHARACTERS 
          LDI    KA          CHECK END OF ENTRY 
          LMN    1R.
          ZJN    MID2        IF TERMINATOR FOUND
 MID1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 MID2     LDD    CM          SET MACHINE ID 
          STD    ID 
          JMP    KBR         RETURN 
 MCM      SPACE  4,10 
***       MINCM=XXXX. 
*         SET THE MINIMUM REQUIRED AMOUNT OF CM FL TO XXXX HUNDRED
*         WORDS.  THIS AMOUNT OF CM + UEM SIZE + NVE SIZE MUST BE 
*         .LE. THE PHYSICAL MEMORY AVAILABLE (FROM *CTI*).  THE 
*         ACTUAL AMOUNT OF MEMORY USED AS CM WILL BE PHYSICAL SIZE -
*         UEM SIZE - NVE SIZE.  FOR NON-CME MAINFRAMES, UEM SIZE
*         IS ZERO.
  
  
 MCM      DATA   C*MINCM=*
          RJM    ASD         ASSEMBLE SIZE
          LDD    FL          SAVE PREVIOUS VALUE
          STD    AB 
          LDD    FL+1 
          STD    AB+1 
          LDD    AB+3        SET MINCM SIZE 
          STD    FL 
          LDD    AB+4 
          STD    FL+1 
          LDN    1
          RJM    CMS         CHECK MEMORY SIZES 
          ZJN    MCM2        IF VALID 
 MCM1     LDD    AB          RESTORE PREVIOUS VALUE 
          STD    FL 
          LDD    AB+1 
          STD    FL+1 
          JMP    ERR         DISPLAY ERROR
  
 MCM2     LDD    AB+3        CHECK FOR MINCM .LT. ABSOLUTE MINIMUM
          SHN    14 
          LMD    AB+4 
          ADC    -MEMS
          PJN    MCM3        IF CORRECT MEMORY SIZE 
          LDC    CMSA        *CM ALLOCATION ERROR.* 
          STD    KM          SET ERROR MESSAGE
          UJN    MCM1        ERROR EXIT 
  
 MCM3     JMP    KBR         RETURN 
          SPACE  4,10 
***       MLST=NN.
*         SET SIZE OF MESSAGE LINK STATUS TABLE. THE *MLST* IS USED 
*         TO COMMUNICATE MESSAGE LINK INTERFACE (*MLI*) STATUS FROM 
*         *NOS/VE* TO *NVE*. SIZE MAY RANGE FROM 0 TO MLTLM.
  
  
 MLS      DATA   C*MLST=* 
          RJM    ASD         ASSEMBLE DIGITS
          SBK    MLTLM+1
          MJN    MLS1        IF TABLE LENGTH IN RANGE 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 MLS1     LDD    AB+4 
          STM    .MLS+MTBL   SET TABLE LENGTH 
          JMP    KBR         RETURN 
 NAME     SPACE  4,10 
***       NAME=CCC-CCC
*         SET SYSTEM DATE LINE NAME = CCC-CCC.
*         (MAXIMUM OF 38 CHARACTERS ALLOWED.) 
  
  
 NAME     DATA   C*NAME=* 
          LDC    2*19DS12+.NME
 NME1     STD    T3          SET BUFFER ADDRESS 
          SHN    -14
          STD    T1 
          SHN    -1          SET BUFFER LIMIT 
          ADD    T3 
          STD    T2 
          LDD    KI          SET KEYBOARD BUFFER LIMIT
          RAD    KB 
 NME2     SOD    KB          CHECK LAST CHARACTER 
          LDI    KB 
          ZJN    NME2        IF NULL
          LMN    1R 
          ZJN    NME2        IF BLANK 
          LMN    1R.&1R 
          ZJN    NME3        IF *.* 
          AOD    KB 
          LDN    1R.
          STI    KB 
 NME3     AOD    KB          CHECK COMMAND LENGTH 
          SBD    KA 
          SBD    T1 
          MJN    NME5        IF .LT. LIMIT
          ZJN    NME5        IF .EQ. LIMIT
 NME4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 NME5     LDI    KA          PACK CHARACTER DATA
          SHN    6
          LMM    1,KA        MOVE COMMAND TO BUFFER 
          STI    T3 
          LDN    2           ADVANCE KEYBOARD BUFFER ADDRESS
          RAD    KA 
          AOD    T3          ADVANCE BUFFER ADDRESS 
          LMD    T2 
          NJN    NME5        IF NOT COMMAND LIMIT 
          JMP    KBR         RETURN 
 NCP      SPACE  4,10 
***       NCP=X.
*         SET NUMBER OF CONTROL POINTS = X. (X = 2 - NCPS-1)
*         DEFAULT = 12B.
  
  
 NCP      DATA   C*NCP=*
          RJM    ASD         ASSEMBLE DIGITS
          SBN    MNCP 
          MJN    NME4        IF .LT. 2 CONTROL POINTS 
          SBN    NCPS-MNCP+1
          PJN    NME4        IF .GT. MAXIMUM ALLOWED
          ADN    NCPS+2      SET NUMBER OF CONTROL POINTS 
          STM    .NCP 
 NCP1     JMP    KBR         RETURN 
 OPS      SPACE  4,10 
***       OPSECM=N. 
*         SELECTS SECURITY MODE OF SYSTEM.
*         N      SECURITY MODE (0-3). 
*         DEFAULT = 0.
  
  
 OPS      DATA   C*OPSECM=* 
          RJM    ASD         ASSEMBLE DIGITS
          SBN    4
          PJN    OPS1        IF INCORRECT VALUE 
          LDM    .SSML       SET NEW SECURITY MODE
          SCN    7
          LMD    AB+4 
          STM    .SSML
          JMP    KBR         RETURN 
  
 OPS1     JMP    ILL         PROCESS INCORRECT ENTRY
 PCP      SPACE  4,10 
***       PCP=XXX.
*         SET NUMBER OF PSEUDO CONTROL POINTS = XXX.
*         DEFAULT = 0.
  
  
 PCP      DATA   C*PCP=*
          RJM    ASD         ASSEMBLE PCP COUNT 
          SBK    NPPS+1 
          MJN    PCP1        IF .LE. MAXIMUM ALLOWED
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCP1     LDD    AB+4        SET PCP COUNT
          STM    .NPCP
          JMP    KBR         RETURN 
 PPU      SPACE  4,10 
***       PPU=* 
*         TOGGLE STATUS OF UPPER 10 PPU.
*         DEFAULT = SET STATUS TO OFF.
 PPU      SPACE  4,10 
***       PPU=X,Y,...,Z.
*         TOGGLE STATUS OF PPU X,Y,...,Z. 
*         PP-S 0, 1, 2, 10 AND *APP* PP ARE INVALID ENTRIES.
  
  
 PPU      DATA   C*PPU=*
          LDM    .PPS        COPY PPU STATUS
          STD    T6 
          LDM    .PPS+1 
          STD    T6+1 
          LDI    KA          CHECK NEXT CHARACTER 
          LMN    1R*
          NJN    PPU3        IF NOT (*) 
          LDM    .APP 
          SBN    20 
          PJN    PPU4        IF ALTERNATE PP IN UPPER BANK
          LCN    0           TOGGLE UPPER BANK
          LMM    .PPS+1 
          STM    .PPS+1 
 PPU1     JMP    KBR         RETURN 
  
 PPU3     RJM    AOD         ASSEMBLE PPU NUMBER
          SBN    3
          MJN    PPU4        IF PPU = 0, 1, 2 
          SBN    10-3 
          ZJN    PPU4        IF PPU = 10
          ADN    10 
          LMM    .APP 
          ZJN    PPU4        IF ALTERNATE PP
          LDD    AB+4        SET BANK 
          SHN    -4 
          STD    T1 
          ZJN    PPU5        IF LOWER BANK
          SCN    1
          NJN    PPU4        IF ABOVE 20
          LDM    .PPU        CHECK PPU COUNT
          SBN    20D
          PJN    PPU5        IF .GT. 10 PPU-S SENSED
 PPU4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PPU5     LDD    AB+4        SET PPU NUMBER 
          LPN    17 
          SBN    12 
          PJN    PPU4        IF OUT OF RANGE
          ADN    12          FORM SHN INSTRUCTION 
          LMC    SHNI 
          STM    PPUA 
          LDN    1           SHIFT PPU BIT
 PPUA     SHN    ** 
          LMM    T6,T1       TOGGLE STATUS BIT
          STM    T6,T1
          LDI    KA          CHECK CHARACTER
          LMN    1R.
          ZJN    PPU6        IF *.* 
          AOD    KA          SKIP SEPARATOR 
          LJM    PPU3        LOOP 
  
 PPU6     LDD    T6          SET NEW STATUS 
          STM    .PPS 
          LDD    T6+1 
          STM    .PPS+1 
          JMP    KBR         RETURN 
 VEE      SPACE  4,10 
***       VE=XXXXXXX. 
*         BUILD THE *EICB* AND SET THE MAXIMUM NOS/VE BLOCK SIZE TO 
*         XXXXXXX THOUSAND WORDS.  XXXXXXX MUST BE AN EVEN NUMBER.
*         THE SUM OF UEM SIZE + NVE SIZE + MINCM SIZE (65K USED IF
*         MINCM NOT SPECIFIED) MUST BE .LE. THE PHYSICAL MEMORY 
*         AVAILABLE (FROM *CTI*).  IF *VE=0* IS SPECIFIED,
*         NOS/VE WILL DYNAMICALLY REQUEST MEMORY FROM NOS AT
*         NOS/VE INITIATION.  NOTE THAT UEM MAY NOT BE DEFINED
*         IF *VE=0* HAS BEEN SPECIFIED. 
* 
*         VE=*. 
*         THIS KEYBOARD ONLY ENTRY CLEARS *VE* SPECIFICATION. 
  
  
 VEE      DATA   C*VE=* 
          LDM    C8XX 
          NJN    VEE0        IF ENTRY INCORRECT FOR MAINFRAME TYPE
          LDM    DCPS 
          NJN    VEE0        IF DUAL-NOS-CPU SELECTED IN *CIP*
          LDD    AM 
          ZJN    VEE1        IF NOT KEYBOARD ASSEMBLY 
          LDI    KA 
          SHN    6
          LMM    1,KA        CHECK *VE* PARAMETER 
          LMC    2R*. 
          NJN    VEE1        IF NOT /VE=*/
          STM    VEFL        CLEAR PREVIOUS SPECIFICATION 
          STM    VEMZ 
          STM    VEMZ+1 
          JMP    KBR         RETURN 
  
 VEE0     JMP    ILL         PROCESS INCORRECT ENTRY
  
 VEE1     RJM    ASD         ASSEMBLE MAXIMUM BLOCK SIZE
          LPN    1
          NJN    VEE0        IF NOT EVEN NUMBER 
          LDD    AB+3 
          SHN    0-11 
          ADD    AB+2 
          ADD    AB+1 
          ADD    AB 
          NJN    VEE0        IF BLOCK SIZE .GT. 4 GIGABYTES 
          LDM    VEMZ        SAVE PREVIOUS VALUE
          STD    AB 
          LDM    VEMZ+1 
          STD    AB+1 
          LDD    AB+4        CONVERT FROM WORDS/1000B TO WORDS/100B 
          SHN    3
          STM    VEMZ+1 
          SHN    -14
          SHN    17 
          LMD    AB+3 
          SHN    3
          STM    VEMZ 
          LDN    1
          RJM    CMS         CHECK MEMORY SIZES 
          ZJN    VEE2        IF VALID 
          LDD    AB          RESTORE PREVIOUS VALUE 
          STM    VEMZ 
          LDD    AB+1 
          STM    VEMZ+1 
          JMP    ERR         DISPLAY ERROR
  
 VEE2     LDC    4000        SET *VE* ENTRY PRESENT FLAG
          STM    VEFL 
          JMP    KBR         RETURN 
 VERSION  SPACE  4,10 
***       VERSION=CCC-CCC.
*         SET VERSION NAME = CCC-CCC. 
*         (MAXIMUM OF 18 CHARACTERS ALLOWED.) 
  
  
 VERSION  DATA   C*VERSION=*
          LDC    2*9DS12+.VER 
          LJM    NME1        PROCESS VERSION NAME 
  
  
          ERRNG  7777-*-4    IF OVERFLOW
  
          QUAL   *
          TTL    SET/EQP - PROCESS EQUIPMENT PARAMETERS.
          TITLE 
          IDENT  EQP,EQPL 
          QUAL   EQP
          ORG    EQPL 
*COMMENT  SET - PROCESS EQUIPMENT PARAMETERS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        MACRO DEFINITIONS.
 KWDF     SPACE  4,15 
**        KWDF - KEYWORD DEFINITIONS. 
* 
*         THIS MACRO GENERATES A TABLE WHICH HAS A BIT SET FOR EACH 
*         KEYWORD SPECIFIED.  *KWOF* IS DEFINED AS THE WORD OFFSET
*         AND *KWBT* IS DEFINED AS THE BIT NUMBER TO BE SET FOR THE 
*         KEYWORD *KW*.  IF *EM* IS SPECIFIED, A WORD CONTAINING THE
*         2 CHARACTER EQUIPMENT MNEMONIC IS DEFINED.
* 
*         KWDF   EM,(KW)
* 
*         ENTRY  (EM) = EQUIPMENT MNEMONIC. 
*                (KW) = KEYWORD LIST. 
  
  
          PURGMAC  KWDF 
  
 KWDF     MACRO  EM,KW
          IFC    NE,+EM++,1 
          VFD    12/2R_EM 
.A        SET    0
          DUP    KTWC 
.B        DECMIC .A 
.".B"     SET    0
.A        SET    .A+1 
          ENDD
          IRP    KW 
.D        SET    1
.B        SET    -1 
.C        ECHO   ,P=("KWM") 
          IFC    EQ,*P*KW*,2
.D        SET    0
          STOPDUP 
.B        SET    .B+1 
.C        ENDD
          IFNE   .D,0,1 
          ERR    INCORRECT KEYWORD - KW 
  
.A        SET    .B/12D 
.B        SET    .B-.A*12D
 KW_BT    EQU    11D-.B 
 KW_OF    EQU    .A 
.C        DECMIC .A 
.B        DECMIC KW_BT
.".C"     SET    .".C"+1S".B" 
          IRP 
          DUP    KTWC 
.A        DECMIC .D 
          VFD    12/.".A" 
.D        SET    .D+1 
          NOREF  .".A"
          ENDD
          NOREF  .A,.B,.D 
 KWDF     ENDM
 TBKP     SPACE  4,10 
**        TBKP - GENERATE TABLE OF KEYWORD PARAMETERS.
* 
*         TBKP   KW,V,W,SC,M
* 
*         ENTRY  (KW) = KEYWORD.
*                (V) = 1 IF NULL KEYWORD VALUE ALLOWED. 
*                    = 0 IF NULL KEYWORD VALUE INCORRECT. 
*                (W) = PP WORD OFFSET INTO EST TO STORE VALUE.
*                (SC) = SHIFT COUNT TO POSITION VALUE.
*                (M) = MASK.
  
  
          PURGMAC  TBKP 
  
 TBKP     MACRO  KW,V,W,SC,M
 PL_KW    CON    P_KW 
          VFD    6/KW_BT,6/KW_OF+1
          VFD    6/SC,1/V,5/W 
          VFD    12/M 
 TBKP     ENDM
 TBKW     SPACE  4,10 
**        TBKW - GENERATE TABLE OF VALID AND REQUIRED KEYWORDS. 
* 
*         TBKW   EQ,(V1,...,VN),(R1,...,RN) 
* 
*         ENTRY  (EQ) = EQUIPMENT MNEMONIC. 
*                (VN) = KEYWORD WHICH IS VALID FOR THE EQUIPMENT. 
*                (RN) = KEYWORD WHICH IS REQUIRED FOR THE EQUIPMENT.
  
  
          PURGMAC  TBKW 
  
 TBKW     MACRO  EQ,VK,RK 
          KWDF   EQ,(VK)
          KWDF   ,(RK)
 TBKW     ENDM
 TEQP     SPACE  4,10 
**        TEQP - DEFINE EQUIPMENT PROCESSING. 
* 
* NAME    TEQP   PROC,MUN,MCH 
* 
*         PROC = PROCESSOR. 
*         MUN = MAXIMUM UNIT NUMBER.
*         MCH = MAXIMUM NUMBER OF CHANNELS. 
  
  
          PURGMAC  TEQP 
 TEQP     MACRO  NAME,PROC,MUN,MCH
          VFD    12/2R_NAME,12/PROC,6/MUN,6/MCH 
          ENDM
          SPACE  4,10 
**        ENTRY POINTS. 
  
  
          CON    /EQ3/TSYN-1 ADDRESS OF SYNTAX TABLE
          CON    LOVB+1      INSTRUCTION TO CHANGE END OF SYNTAX TABLE
 EQP      SPACE  4,10 
**        EQP - INITIALIZE CENTRAL MEMORY.
  
  
 EQP      SUBR               ENTRY/EXIT 
          LDC    EQ3L-77     READ *EQ3* FROM CM 
          STD    T7 
          LDD    EB 
          SBN    EQXL 
          SHN    6
          CRM    EQXO,T7
          RJM    /EQ3/VCD    VALIDATE *CM*/ISMD ENTRIES 
          RJM    /EQ3/SDF    SET DEFAULT MASS STORAGE DEVICE
          RJM    /EQ3/CME    CHECK MMF ENVIRONMENT
          RJM    /EQ3/SDS    SEARCH FOR DEADSTART DEVICE
          LDC    UJNI+2      DISABLE *EQP* OVERLAY LOADS
          STM    AKLC 
          LDD    AB+4        SET DEADSTART EQUIPMENT
          STD    DF 
 MCMS     RJM    /EQ3/ACM    ADJUST CENTRAL MEMORY
*MCMS     CON    0,0         (MINCM VALUE AFTER *ACM* CALL) 
          RJM    ROV         READ NEXT OVERLAY
          RJM    /ICM/ICM    INITIALIZE CENTRAL MEMORY
          RJM    ROV         READ NEXT OVERLAY
          RJM    /ICT/ICT    INITIALIZE CENTRAL MEMORY TABLES 
          RJM    ROV         READ NEXT OVERLAY
          RJM    /APR/MSF    PROCESS FLAW DECKS 
          LJM    EQPX        RETURN 
          TITLE  RESIDENT SUBROUTINES.
 EEB      SPACE  4,10 
**        EEB - ENTER EQUIPMENT BUFFER. 
* 
*         ENTRY  (EBUT) = EQUIPMENT EST ENTRY.
*                (TDDB) = MST ENTRY IF MASS STORAGE.
*                (EB) = EBUF ADDRESS. 
*                (EQ) = DEVICE ENTRY TABLE NUMBER.
*                (ET) = TDDE ADDRESS. 
* 
*         EXIT   (EBUT) ENTRY IN EBUF.
*                (TDDB) ENTRY IN TDDE IF MASS STORAGE.
  
  
 EEB      SUBR               ENTRY/EXIT 
          LDD    EB          (EBUF ADDRESS) 
          SHN    5
          ADD    EQ 
          SHN    1
          CWM    EBUT,ON
          CWM    EBUT+5,ON
          LDI    ES 
          SHN    -13
          ZJN    EEBX        IF NOT MASS STORAGE
          LDD    ET 
          SHN    4
          ADD    EQ 
          SHN    2
          ADD    EQ 
          ERRNZ  TDDCL-5     CODE DEPENDS ON VALUE OF TAG 
          CWM    TDDB,DV
          UJN    EEBX        RETURN 
 STA      SPACE  4,10 
**        STA - SET DESCRIPTION TABLE ADDRESS.
* 
*         ENTRY  (A) = EST ORDINAL. 
* 
*         EXIT   (A) = 0 IF NOT MASS STORAGE. 
*                (EQ) = EST ORDINAL.
*                (EBUT) = EST ENTRY.
*                (TDDB) = DEVICE DESCRIPTION IF MASS STORAGE. 
  
  
 STA1     LDD    ET          READ IN *TDDB* ENTRY 
          SHN    4
          ADD    EQ 
          SHN    2
          ADD    EQ 
          ERRNZ  TDDCL-5     CODE DEPENDS ON VALUE OF TAG 
          CRM    TDDB,DV
  
 STA      SUBR               ENTRY/EXIT 
          STD    EQ 
          SHN    22-5 
          ADD    EB          (EBUF ADDRESS) 
          SHN    6
          CRM    EBUT,ON     READ EQUIPMENT ENTRY 
          CRM    EBUT+5,ON
          LDI    ES 
          SHN    -13
          ZJN    STAX        IF NOT A MASS STORAGE DEVICE 
          UJN    STA1        READ IN *TDDB* ENTRY 
  
          QUAL
          SPACE  4,10 
****      ASSEMBLED VALUES. 
  
  
*         SYSTEM DEVICE VALUES. 
  
 SYDC     CON    0           SYSTEM DEVICE COUNT
 SYDT     CON    0           SYSTEM DEVICE TYPE 
 SYNU     CON    0           NUMBER OF UNITS
  
*         CM BUFFER LENGTHS.
  
 .DFB     CON    400+MCML+1  SYSTEM DAYFILE BUFFER
 .ACF     CON    400+MCML+1  ACCOUNT FILE BUFFER
 .ERL     CON    200+MCML+1  ERROR LOG BUFFER 
 .BML     CON    400+MBML+1  MAINTENANCE LOG BUFFER 
  
*         DAYFILE RESIDENCE EST ORDINALS. 
  
 DFBF     BSS    0
          CON    4000+NEEQ   SYSTEM DAYFILE 
          CON    4000+NEEQ   ACCOUNT DAYFILE
          CON    4000+NEEQ   ERRLOG DAYFILE 
          CON    4000+NEEQ   MAINTENANCE LOG DAYFILE
 DFBFL    EQU    *-DFBF 
  
*         MISCELLANEOUS.
  
 DFMS     CON    0           DEFAULT MASS STORAGE DEVICE
 MDLL     EQU    *-DFMS 
 MSLM     CON    MSMX        MASS STORAGE LIMIT 
 SPSA     CON    0,0         *SCI* PP RESIDENT SAVE AREA FWA
  
****
  
 TCST     SPACE  4,10 
**        TCST - CHANNEL STATUS TABLE.
*         ENTRY = 1 WORD. 
* 
*T, TCST  6/ 0, 1/ S, 5/ 0
*         S = UP/DOWN STATUS - 0 = UP, 1 = DOWN.
  
  
 TCSTL    EQU    CTALL*5
 TCST     BSSZ   TCSTL
 TCHS     SPACE  4,10 
**        TCHS - TABLE OF CONTROLWARE TYPES TO LOAD.
*         ENTRY = 1 WORD. 
* 
*T, TCHS  12/  CT+100 
*         CT = CONTROLWARE TYPE AS DEFINED IN *COMSDSL* 
  
  
 TCHSL    EQU    CTALL*5
 TCHS     BSSZ   TCHSL
          QUAL   *
 EBUF     SPACE  4,40 
**        EBUF - EQUIPMENT STATUS TABLE BUFFER. 
*         ENTRY = 2 CENTRAL MEMORY WORDS. 
* 
*T EBUF   60/EST WORD 0 
*T EBUF+1 60/EST WORD 1 
* 
*         EBUF BIT 51 IS USED AS A PSEUDO EQUIPMENT INTERLOCK.  WHEN
*         SET, THE ENTRY CANNOT BE CHANGED OR REDEFINED.
* 
*         FOR MASS STORAGE EQUIPMENT, EBUF BIT 50 AND BITS 11-0 
*         ARE USED BY *SET* TO INDICATE THE FOLLOWING - 
* 
*         BIT 50 = AUXILIARY DEVICE 
* 
*         BITS 11-0 
* 
*T,       1/F,1/T,1/P,1/Q,1/D,1/A,1/E,1/M,1/L,3/NU
* 
*                F = FORMAT PACK (844 ONLY) 
*                T = INITIALIZE ALL 
*                P = INITIALIZE PERMANENT FILES 
*                Q = INITIALIZE QUEUED FILES
*                D = INITIALIZE SYSTEM DAYFILE
*                A = INITIALIZE ACCOUNT DAYFILE 
*                E = INITIALIZE ERRLOG DAYFILE
*                M = INITIALIZE MAINTENANCE LOG 
*                L = ALTERNATE SYSTEM LIBRARY RESIDENCE 
*                NU = NUMBER OF UNITS-1 
  
  
 EBUT     BSSZ   ESTE*5      EBUF BUILD TABLE 
 TDDE     SPACE  4,15 
**        TDDE - TABLE OF DEVICE DESCRIPTIONS.
* 
*         ENTRY = TDDEL WORDS.
*                NO ENTRY IS PRESENT FOR EQUIPMENT ZERO.
  
  
 TDDB     BSSZ   TDDEL
          SPACE  4,10 
 APRL     BSS    0           LOAD ADDRESS FOR *ICM*, *ICT* AND *APR*
 RMD      SPACE  4,10 
**        RMD - RESET MASS STORAGE DEVICE INFORMATION.
* 
*         ENTRY  (EQ) = EST ORDINAL OF EQUIPMENT. 
*                (EBUT) = EQUIPMENT EST ENTRY.
*                (CN - CN+4) = EST ENTRY IF (EBUT) = 0. 
*                (TDDB) = DEVICE DESCRIPTION. 
* 
*         USES   T1.
  
  
 RMD6     LDD    CN          CHECK NEW DEFINITION 
          SHN    0-13 
          ZJN    RMDX        IF NOT MASS STORAGE
  
*         RESET DEFAULT ERROR THRESHOLD VALUES. 
  
 RMD7     LDN    MSCL        FETCH DEFAULT VALUES 
          CRM    TDDB+DVTH,ON 
          LDD    CN+3 
          LMK    2RDE 
          ZJN    RMDX        IF EXTENDED MEMORY EQUIPMENT 
          LMK    2RDP&2RDE
          ZJN    RMDX        IF EXTENDED MEMORY EQUIPMENT 
          LDM    TDDB+DVNT
          SHN    0-3         RESTRICTED = TRACK COUNT / 8 
          STM    TDDB+DVRA
          SHN    3-4         LOW SPACE = TRACK COUNT / 16 
          STM    TDDB+DVLS
  
 RMD      SUBR               ENTRY/EXIT 
          LDI    ES 
          ZJN    RMD6        IF EQUIPMENT NOT PREVIOUSLY DEFINED
          SHN    21-13
          PJN    RMDX        IF NOT MASS STORAGE
          SHN    21-11-21+13
          PJN    RMD1        IF NOT SHARED DEVICE 
          SHN    21-5-21+11 
          PJN    RMD0        IF NOT SHARED BUFFERED DEVICE
          SOM    NSBD        DECREMENT SHARED BUFFERED DEVICE COUNT 
 RMD0     SOD    NS          DECREMENT SHARED DEVICE COUNT
          NJN    RMD1        IF MORE SHARED DEVICES 
          STD    LD          CLEAR ISD FLAG/LINK DEVICE NUMBER
 RMD1     LDI    ES 
          SHN    21-12
          PJN    RMD2        IF NOT SYSTEM DEVICE 
          SOM    SYDC        DECREMENT SYSTEM DEVICE COUNT
          NJN    RMD2        IF MORE SYSTEM DEVICES 
          STM    SYDT        CLEAR SYSTEM DEVICE TYPE 
          STM    SYNU        CLEAR NUMBER OF UNITS
 RMD2     LDM    .PFNL+3
          SBD    EQ 
          NJN    RMD3        IF NOT DEFAULT FAMILY EQUIPMENT
          STM    .PFNL+3     CLEAR DEFAULT FAMILY EST ORDINAL 
 RMD3     LDN    4           SET DAYFILE INDEX
          STD    T1 
 RMD4     LDM    DFBF-1,T1
          LPC    3777 
          SBD    EQ 
          NJN    RMD5        IF NOT A MATCH 
          LDC    4000+NEEQ
          STM    DFBF-1,T1   RESET DEFAULT RESIDENCE
 RMD5     SOD    T1 
          NJN    RMD4        IF MORE DAYFILES 
          LDD    ET 
          SHN    6
          ADN    NEEQ*TDDCL 
          CWM    DFBF,ON
          LJM    RMD7        SET DEFAULT ERROR THRESHOLDS 
 SCC      SPACE  4,10 
**        SCC - SET CONTROLWARE TABLE IN CM.
* 
*         EXIT   CONTROLWARE TYPES SET IN CM. 
* 
*         USES   T1.
  
  
 SCC      SUBR               ENTRY/EXIT 
          LDN    CTALL
          STD    T1 
          LDD    ET          SET TABLE IN CM
          ADN    TDDBL       CM BUFFER SIZE/100 
          SHN    6
          CWM    TCHS,T1
          UJN    SCCX        RETURN 
 SFE      SPACE  4,10 
**        SFE - SEARCH FOR SPECIFIED EQUIPMENT TYPE.
* 
*         ENTRY  (A) = 1/1,17/MNEMONIC, IF INITIAL CALL.
*                (LE) = LAST EST ORDINAL. 
* 
*         EXIT   (A) .LT. 0, IF SPECIFIED EQUIPMENT NOT FOUND.
*                    = BYTE 4 OF EST ENTRY, IF EQUIPMENT FOUND. 
*                (EQ) = EST ORDINAL.
* 
*         CALLS  STA. 
  
  
 SFE      SUBR               ENTRY/EXIT 
          PJN    SFE1        IF NOT INITIAL CALL
          STM    SFEA 
          LDD    LE          INITIALIZE EST INDEX 
          ADN    1
          STD    EQ 
 SFE1     SOD    EQ          DECREMENT EST INDEX
          MJN    SFEX        IF END OF EST
          RJM    STA
          LDM    EBUT+3 
          LMC    0
 SFEA     EQU    *-1
          NJN    SFE1        IF NO MATCH
          LDM    EBUT+4 
          UJN    SFEX        RETURN 
 SID      SPACE  4,10 
**        SID - SEARCH FOR *ISMD* DEVICE. 
* 
*         ENTRY  (A) .LT. 0 IF INITIAL CALL.
*                (T4) = *TFSD* INDEX IF NOT INITIAL CALL. 
* 
*         EXIT   SEE *SFE*. 
*                (T4) = *TFSD* INDEX. 
* 
*         CALLS  SFE. 
  
  
 SID1     LMC    1S17        SET INITIAL CALL 
 SID2     RJM    SFE
          PJN    SIDX        IF DEVICE FOUND
          AOD    T4 
 SID3     LDM    TFSD,T4
          NJN    SID1        IF NOT END OF TABLE
          LCN    0
  
 SID      SUBR               ENTRY/EXIT 
          PJN    SID2        IF NOT INITIAL CALL
          LDN    0
          STD    T4 
          UJN    SID3        ENTER SEARCH LOOP
 TFSD     SPACE  4,10 
**        TFSD - TABLE OF *ISMD* DEVICE TYPES.
* 
*T        12/ DEVICE MNEMONIC 
  
  
 TFSD     CON    2RDD 
          CON    2RDG 
          CON    0
 TENB     SPACE  4,10 
**        TENB - TABLE OF *CM* EST ORDINALS.
* 
*T        12/ EST ORDINAL 
  
  
 TENB     BSSZ   8D 
 SPE      SPACE  4,20 
**        SPE - SYNCHRONIZE PARTITIONS AND ENTER EQUIPMENT. 
* 
*         ENTRY  (EBUT) = EQUIPMENT EST ENTRY.
*                (TDDB) = MST ENTRY IF MASS STORAGE.
*                (EB) = EBUF ADDRESS. 
*                (EQ) = DEVICE ENTRY TABLE NUMBER.
*                (ET) = TDDE ADDRESS. 
* 
*         EXIT   (EBUT) ENTRY IN EBUF.
*                (TDDB) ENTRY IN TDDE IF MASS STORAGE.
*                TO *ILL* IF CHANNEL MISMATCH.
* 
*         USES   CM, T1.
* 
*         CALLS  EEB. 
  
  
 SPE11    RJM    EEB         ENTER EQUIPMENT INTO BUFFER
  
 SPE      SUBR               ENTRY/EXIT 
          LDI    ES 
          SHN    21-13
          PJN    SPE11       IF NOT MASS STORAGE
          SHN    21-5-21+13 
          PJN    SPE11       IF NOT A BUFFERED DEVICE 
          LDM    EBUT+10
          SHN    21-13
          PJN    SPE11       IF NOT A PARTITIONED DEVICE
          LDD    LE 
          STD    T1 
  
*         CHECK NEXT EST ENTRY. 
  
 SPE1     SOD    T1 
          ZJN    SPE11       IF SEARCH COMPLETED
          SHN    -5+22
          ADD    EB          (EBUF ADDRESS) 
          SHN    6
          CRM    SPEA,ON     READ EQUIPMENT ENTRY 
          LDM    EBUT+3 
          LMM    SPEA+3 
          NJN    SPE1        IF NOT THE SAME DEVICE TYPE
  
*         CHECK IF TWO PARTITIONS ARE PART OF THE SAME DEVICE.
  
          LDM    SPEA+1      COMPARE CHANNELS 
          LMM    EBUT+1 
          ZJN    SPE2        IF FIRST CHANNEL MATCHES 
          LDM    SPEA+1 
          LMM    EBUT+2 
          ZJN    SPE2        IF FIRST CHANNEL MATCHES SECOND CHANNEL
          LDM    SPEA+2 
          LMM    EBUT+2 
          NJN    SPE1        IF SECOND CHANNEL DOES NOT MATCH 
 SPE2     LDD    ET          READ *TDDB* ENTRY
          SHN    4
          ADD    T1 
          SHN    2
          ADD    T1 
          CRM    SPEB,DV
          LDM    TDDB+DVPR   COMPARE EQUIPMENT NUMBER 
          LMM    SPEB+DVPR
          SHN    -11
          NJN    SPE3        IF EQUIPMENT NUMBER DOES NOT MATCH 
          LDM    TDDB+DVUN+3 COMPARE UNIT NUMBER
          LMM    SPEB+DVUN+3
          ZJN    SPE4        IF UNIT NUMBER MATCHES 
 SPE3     LJM    SPE1        CHECK NEXT EST ENTRY 
  
*         VERIFY THAT SAME CHANNEL PAIR DEFINED FOR BOTH PARTITIONS.
  
 SPE4     LDM    SPEA+1      COMPARE CHANNELS 
          LMM    EBUT+1 
          NJN    SPE6        IF FIRST CHANNEL DOES NOT MATCH
          LDM    SPEA+2 
          LMM    EBUT+2 
          ZJN    SPE7        IF SECOND CHANNEL MATCHES
 SPE5     JMP    ILL         PROCESS INCORRECT ENTRY
  
 SPE6     LDM    SPEA+1 
          LMM    EBUT+2 
          NJN    SPE5        IF FIRST CHANNEL DOES NOT MATCH SECOND 
          LDM    SPEA+2 
          LMM    EBUT+1 
          NJN    SPE5        IF SECOND CHANNEL DOES NOT MATCH FIRST 
  
*         SYNCHRONIZE *INITIALIZE,FP* FOR BOTH PARTITIONS.
  
 SPE7     LDM    EBUT+4 
          LMM    SPEA+4 
          LPC    MLFPR
          ZJN    SPE8        IF *INITIALIZE,FP* FLAGS ARE THE SAME
          AOM    SPEC        FORCE *EBUF* UPDATE
          LDM    EBUT+4      SET *INITIALIZE,FP* FOR BOTH PARTITIONS
          LPN    17 
          LMC    MLFPR+MLIAL
          STM    EBUT+4 
          LDM    SPEA+4 
          LPN    17 
          LMC    MLFPR+MLIAL
          STM    SPEA+4 
  
*         SYNCHRONIZE *SHARE* FOR BOTH PARTITIONS.
  
 SPE8     LDI    ES 
          LMM    SPEA 
          LPC    1000 
          ZJN    SPE9        IF *SHARE* FLAGS ARE THE SAME
          AOM    SPEC        FORCE *EBUF* UPDATE
          AOD    NS          INCREMENT SHARED DEVICE COUNT
          AOM    NSBD        INCREMENT SHARED BUFFERED DEVICE COUNT 
          LDI    ES          SET *SHARE* FLAG FOR BOTH PARTITIONS 
          LPC    6777 
          LMD    TH 
          STI    ES 
          LDM    SPEA 
          LPC    6777 
          LMD    TH 
          STM    SPEA 
          LDM    TDDB+DVFA   CLEAR TEMP, NONSHARED FOR BOTH PARTITIONS
          LPC    -4000
          STM    TDDB+DVFA
          LDM    SPEB+DVFA
          LPC    -4000
          STM    SPEB+DVFA
  
*         UPDATE *EBUF*, IF REQUIRED. 
  
 SPE9     LDC    **          (NONZERO IF *EBUF* UPDATE REQUIRED)
 SPEC     EQU    *-1
          ZJN    SPE10       IF *EBUF* UPDATE NOT REQUIRED
          LDN    0           CLEAR FLAG FOR NEXT EST ENTRY
          STM    SPEC 
          LDD    T1 
          SHN    22-5 
          ADD    EB          (EBUF ADDRESS) 
          SHN    6
          CWM    SPEA,ON
 SPE10    LJM    SPE1        CHECK NEXT EST ENTRY 
  
  
 SPEA     BSS    5           TEMPORARY EBUF ENTRY 
 SPEB     BSS    TDDCL*5     TEMPORARY TDDE ENTRY 
 LOV      SPACE  4,10 
**        LOV - LOAD *EQP* OVERLAYS.
* 
*         ENTRY  AT *LOV1* WITH (A) = -EQXL TO LOAD *EQ2*.
  
  
 LOV      SUBR               ENTRY/EXIT 
          LDC    EQML 
          STD    T7 
          LDM    KBUF        CHECK INITIAL KEYWORD
          SHN    6
          LMM    KBUF+1 
          LMC    2REQ 
          STM    LOVA+1 
          ZJN    LOV1        IF *EQXXX=* ENTRY, LOAD *EQ1*
          LCN    2*EQXL      LOAD *EQ3* 
 LOV1     ADN    3*EQXL      (ENTRY FROM */EQ1/EQM* TO LOAD *EQ2*)
          STD    T6 
          LDD    EB 
          SBD    T6 
          SHN    6
          CRM    EQXO,T7
 LOVA     LDC    *
          ZJN    LOV2        IF *EQXXX=* ENTRY
 LOVB     LDC    0           SET *TSYNA* VALUE
*         LDC    GGO         (IF PROCESSING KEYBOARD ENTRY) 
          STM    /EQ3/TSYNA 
 LOV2     BSS    0
  
 EQXO     BSS    0           ORIGIN FOR *EQ1*/*EQ2*/*EQ3* 
          SPACE  4,10 
*         DEFINE UNQUALIFIED (RESIDENT) TAGS FOR *EQP*. 
  
          QUAL   *
  
 EEB      EQU    /EQP/EEB 
 RMD      EQU    /EQP/RMD 
 SCC      EQU    /EQP/SCC 
 SFE      EQU    /EQP/SFE 
 SID      EQU    /EQP/SID 
 SPE      EQU    /EQP/SPE 
 STA      EQU    /EQP/STA 
  
 APRL     EQU    /EQP/APRL
 EBUT     EQU    /EQP/EBUT
 EQXO     EQU    /EQP/EQXO
 MCMS     EQU    /EQP/MCMS
 TDDB     EQU    /EQP/TDDB
 TENB     EQU    /EQP/TENB
 TFSD     EQU    /EQP/TFSD
          TTL    SET/EQ1 - PROCESS MASS STORAGE *EQXXX=* ENTRY. 
          TITLE 
          IDENT  EQ1,/EQ1/EQM 
          QUAL   EQ1
          ORG    EQXO 
*COMMENT  SET - PROCESS MASS STORAGE *EQXXX=* ENTRY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        MICRO DEFINITIONS.
  
 KWM      MICRO  1,,*AP,CH,EQ,ET,IB,MA,MC,PN,ST,SZ,TS,UN* 
  
.A        MICCNT KWM
.A        SET    .A+1 
 KWMC     EQU    .A/3        KEYWORD COUNT
  
.A        SET    KWMC+11D 
 KTWC     EQU    .A/12D      KEYWORD TABLE WORD COUNT 
          TITLE  EQUIPMENT DEFINITIONS. 
 EQM      SPACE  4,10 
***       EQXXX=TY-N,P1=V1,...,PI=VN. 
* 
*         SET MASS STORAGE EQUIPMENT XXX WITH:  
* 
*                TY = TYPE (2 CHARACTERS) 
*                 N = NUMBER OF PARTITIONS (PARTITIONED DEVICES ONLY).
*                     PARTITIONED DEVICES ARE NOTED IN THE LIST BELOW.
* 
*         DEVICE TYPES SUPPORTED -
* 
*                DA = FSC 33502 DISK SUBSYSTEM. 
*                DB = 885-42 DEMA.
*                DC = 895 DISK SUBSYSTEM. 
*                DD = 834 DISK SUBSYSTEM. 
*                DE = EXTENDED MEMORY.
*                DF = 887 DISK SUBSYSTEM (4KB SECTORS). 
*                DG = 836 DISK SUBSYSTEM. 
*                DH = 887 DISK SUBSYSTEM (16KB SECTORS).
*                DI = 844-21 DISK SUBSYSTEM (HALF TRACK). 
*                DJ = 844-4X DISK SUBSYSTEM (HALF TRACK). 
*                DK = 844-21 DISK SUBSYSTEM (FULL TRACK). 
*                DL = 844-4X DISK SUBSYSTEM (FULL TRACK). 
*                DM = 885 DISK SUBSYSTEM (HALF TRACK).
*                DN = 9853 XMD DISK SUBSYSTEM.
*                DP = EXTENDED MEMORY WITH DDP/LSP. 
*                DQ = 885 DISK SUBSYSTEM (FULL TRACK).
*                DR = CDSS II DISK SUBSYSTEM. 
*                DV = 819 DISK SUBSYSTEM (SINGLE DENSITY).
*                DW = 819 DISK SUBSYSTEM (DOUBLE DENSITY).
*                DX = FSC 3330-01 DISK SUBSYSTEM. 
*                DY = FSC 3330-11 DISK SUBSYSTEM. 
*                DZ = FSC 3350 DISK SUBSYSTEM.
*                EA = 5830 DISK ARRAY SUBSYSTEM; 5832 (1X SSD) DISK.
*                EB = 5830 DISK ARRAY SUBSYSTEM; 5832 (2X SSD) DISK.
*                EC = 5830 DISK ARRAY SUBSYSTEM; 5833 (1X SABRE) DISK.
*                ED = 5830 DISK ARRAY SUBSYSTEM; 5833 (1P SABRE) DISK.
*                EE = 5830 DISK ARRAY SUBSYSTEM; 5833 (2X SABRE) DISK.
*                EF = 5830 DISK ARRAY SUBSYSTEM; 5833 (2P SABRE) DISK.
*              EM-2 = 5830 DISK ARRAY SUBSYSTEM; 5833 (3P SABRE) DISK.
*              EN-2 = 5830 DISK ARRAY SUBSYSTEM; 5833 (4X SABRE) DISK.
*                EG = 5830 DISK ARRAY SUBSYSTEM; 5838 (1X ELITE) DISK.
*                EH = 5830 DISK ARRAY SUBSYSTEM; 5838 (1P ELITE) DISK.
*              EI-2 = 5830 DISK ARRAY SUBSYSTEM; 5838 (2X ELITE) DISK.
*              EJ-2 = 5830 DISK ARRAY SUBSYSTEM; 5838 (2P ELITE) DISK.
*              EK-3 = 5830 DISK ARRAY SUBSYSTEM; 5838 (3P ELITE) DISK.
*              EL-4 = 5830 DISK ARRAY SUBSYSTEM; 5838 (4X ELITE) DISK.
*                EO = 5830 DISK ARRAY SUBSYSTEM; 47444 (1X 3.5IN) DISK. 
*                EP = 5830 DISK ARRAY SUBSYSTEM; 47444 (1P 3.5IN) DISK. 
*              ES-2 = 5830 DISK ARRAY SUBSYSTEM; 47444 (2X 3.5IN) DISK. 
*              EU-2 = 5830 DISK ARRAY SUBSYSTEM; 47444 (2P 3.5IN) DISK. 
*              EV-3 = 5830 DISK ARRAY SUBSYSTEM; 47444 (3P 3.5IN) DISK. 
*              EW-4 = 5830 DISK ARRAY SUBSYSTEM; 47444 (4X 3.5IN) DISK. 
* 
* 
*         AND PARAMETERS WHERE P1,...,PI ARE THE FOLLOWING KEYWORDS 
* 
*                AP = APRDECK (FLAW DECK) NUMBER. 
*                CH = CHANNEL NUMBER(S).
*                EQ = EQUIPMENT (CONTROLLER) NUMBER.
*                ET = MT/PT/CT. 
*                     MT = EXTENDED MEMORY TYPE.
*                     PT = PATH TYPE. 
*                     CT = CPU TYPE.
*                IB = INSTALLATION BYTE.
*                MA = MAINTENANCE MODE (EM HALF SIZE).
*                MC = ESM SIDE DOOR MAINTENANCE PORT CHANNEL NUMBER.
*                PN = PARTITION NUMBER. 
*                ST = STATUS. 
*                SZ = EXTENDED MEMORY SIZE. 
*                TS = EXTENDED MEMORY TRACK SIZE. 
*                UN = UNIT NUMBER(S). 
  
  
 EQM      BSS    0
          LDN    2           ADVANCE CHARACTER ADDRESS
          RAD    KA 
          RJM    CDR         ASSEMBLE DIGITS
          LMN    1R=
          ZJN    EQM2        IF *=* 
 EQM1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 EQM2     AOD    KA          SKIP CHARACTER 
          LDD    AB+4        CHECK EST ORDINAL
          SBN    NOPE 
          MJN    EQM1        IF PSEUDO EQUIPMENT
          SBK    ESMX-NOPE
          PJN    EQM1        IF EST ORDINAL EXCEEDS MAXIMUM 
          LDD    AB+4        SET EST ORDINAL
          RJM    STA         READ EBUF ENTRY
          RJM    CDR
          LMN    1R.
          NJP    EQM5        IF NOT *EQXXX=.* 
          LDD    AB+4 
          NJN    EQM1        IF *EQXXX = N.*
          RJM    CDC         CLEAR ISMD CHANNELS
          LDN    0
          CRD    CN          CLEAR DEVICE DESCRIPTION 
          CRM    EBUT+5,ON
          ERRNG  5-TDDCL     CODE DEPENDS ON VALUE
          CRM    TDDB,DV
          LDD    EQ 
          LMD    EN 
          NJN    EQM4        IF NOT EXTENDED MEMORY EQUIPMENT 
          STD    EN          CLEAR EST ORDINAL
          STM    EMSC        DE/DP SHIFT COUNT
          LDN    TAXXL       CLEAR EXTENDED MEMORY ALLOCATION TABLES
          STD    T1 
          LDD    EQ 
          LMN    LDEQ 
          NJN    EQM3        IF NOT LINK DEVICE 
          STD    PD 
 EQM3     LDN    0
          STM    TAXM-1,T1
          SOD    T1 
          NJN    EQM3        IF MORE TO CLEAR 
          CRM    EMTY,ON
 EQM4     LJM    EQM19       CLEAR EST
  
*         PROCESS TYPE. 
  
 EQM5     LDI    KA          ASSEMBLE TYPE
          SHN    6
          LMM    1,KA 
          STD    AB+4 
          LDM    EBUT+3 
          ZJN    EQM7        IF EMPTY ENTRY 
          LMD    AB+4 
          ZJN    EQM8        IF NO CHANGE IN DEVICE TYPE
          LDD    AB+4 
          LMC    2R** 
          ZJN    EQM8        IF NONSTANDARD EQUIPMENT ENTRY 
          RJM    CDC         CLEAR ISMD CHANNELS
 EQM7     LDN    0           CLEAR DEVICE DESCRIPTION 
          CRD    CN 
          CRM    EBUT+5,ON
          ERRNG  5-TDDCL     CODE DEPENDS ON VALUE
          CRM    TDDB,DV
          LDD    AB+4 
          STD    CN+3 
          AOM    TRQP        SET INITIAL ENTRY FLAG 
          UJN    EQM9        SEARCH FOR DEVICE
  
 EQM8     LDN    JSNL        MOVE EST ENTRY TO DIRECT CELLS 
          CWM    EBUT,ON
          SBN    1
          CRD    CN 
  
*         SEARCH FOR DEVICE IN MASS STORAGE TABLE.
  
 EQM9     LDD    AB+4 
          RJM    SMD         SEARCH MASS STORAGE DEVICE TABLE 
          NJN    EQM10       IF MASS STORAGE DEVICE 
  
*         EQUIPMENT IS NOT MASS STORAGE - LOAD *EQ2* TO PROCESS ENTRY.
  
          LDD    KB          RESET CHARACTER ADDRESS
          STD    KA 
          LCN    EQXL 
          LJM    /EQP/LOV1   FORCE LOAD OF *EQ2*
  
 EQM10    LDM    TRQP 
          ZJP    EQM14       IF NOT INITIAL ENTRY 
          LDC    4100        SET MASS STORAGE AND UNAVAILABLE 
          STD    CN 
          LDI    MS          SET SHARED DEVICE, DEFAULT CATALOG TRACKS
          LPC    4000 
          LMM    MSCT,MS
          STM    TDDB+DVCT
          LDM    MSNT,MS     SET NUMBER OF TRACKS 
          LPC    3777 
          STM    TDDB+DVNT
          LDM    MSAI,MS     SET CONTROLWARE LOAD, ALGORITHM INDEX
          STM    TDDB+DVAI
          LDM    MSDI,MS     SET DRIVER INDEX 
          STM    TDDB+DVDI
          LDM    MSSL,MS     SET MAXIMUM PARTITION NUMBER 
          STM    TDDB+DVSL
          LDM    MSUL,MS     SET BUFFERED DEVICE FLAGS IN MST 
          LPC    6000 
          STM    TDDB+DVED
          SHN    5-12        SET BUFFERED DEVICE FLAG IN EST
          LPN    40 
          RAD    CN 
 EQM14    LDN    2           SKIP EQUIPMENT MNEMONIC
          RAD    KA 
          LDM    MSPR,MS
          STD    T1 
          LDC    TVRK-TVRKL  SET TABLE OF VALID KEYWORDS
          STD    TA 
 EQM16    LDN    TVRKL       ADVANCE TABLE ADDRESS
          RAD    TA 
          LDI    TA 
          ZJN    EQM21       IF END OF TABLE
          LMD    AB+4 
          NJN    EQM16       IF NO MATCH
          LDM    TRQP 
  
**        EXIT TO PROCESSOR WITH -
* 
*                (A) = (TRQP) = PREVIOUS DEFINITION STATUS. 
*                (CN - CN+4) = WORD TO BUILD EST ENTRY. 
*                (TDDB) = BUFFER TO BUILD *TDDE* ENTRY. 
*                (MS) = *TMSD* ADDRESS IF MASS STORAGE. 
*                (TA) = *TVRK* ENTRY ADDRESS. 
  
          RJM    0,T1 
  
          LDM    EBUT+3 
          LMD    CN+3 
          ZJN    EQM20       IF NOT INITIAL ENTRY 
 EQM19    RJM    CML         CHECK MASS STORAGE LIMIT 
          RJM    RMD         RESET MASS STORAGE DEVICE
 EQM20    LDN    JSNL 
          CWD    CN          MOVE EST ENTRY TO BUFFER 
          CRM    EBUT,ON
          RJM    EEB         ENTER EQUIPMENT DEFINITION 
          RJM    EDC         ENTER ISMD CHANNELS
          RJM    CLE         CHECK LAST EQUIPMENT 
          JMP    KBR         RETURN 
  
 EQM21    JMP    ILL         PROCESS INCORRECT ENTRY
          TITLE  EQUIPMENT DEFINITION PROCESSORS. 
 ECS      SPACE  4,10 
***       EQXXX=DE. 
*         EQXXX=DP. 
  
  
 ECS      SUBR               ENTRY/EXIT 
          ZJN    ECS1        IF NOT INITIAL ENTRY 
          LDC    4112 
          STM    TDDB+DVED
 ECS1     LDN    BMLL        SAVE CURRENT PARAMETERS
          CWM    EMTY,ON
          RJM    KWP         PROCESS KEYWORDS 
          LDD    CN+3 
          LMC    2RDP 
          ZJN    ECS2        IF TYPE *DP* 
          LDM    TDDB+DVED
          SCN    7           SET NO DDP PATH FOR *DE* 
          STM    TDDB+DVED
  
*         PROCESS EXTENDED MEMORY SIZE. 
  
 ECS2     LDM    EBUT+7      PRESET SHIFT TO *EMBS* BLOCKS
          SHN    -6 
          LPN    3
          STD    T5 
          LMC    SHNI+77
          STM    ECSA 
          LDN    0
          STD    T1 
          LDM    TDDB+DVED   CHECK DEVICE TYPE
          SHN    -6 
          LPN    7
          LMN    1
          NJN    ECS4        IF NOT ECS 1 
          LDM    TDDB+DVES
          ZJN    ECS3        IF NOT 2 MILLION WORDS 
          LMN    1
          ADM    TDDB+DVES+1
          NJP    ILL         IF .GT. 2M WORDS 
          LDC    2015232D/1000
          UJN    ECS5        SET DEVICE SIZE
  
 ECS3     LDM    TDDB+DVES+1 ADJUST ECS 1 SIZE FOR FLAWED AREA
          SHN    2
          ADM    TDDB+DVES+1
          SHN    -7 
          STD    T1          SIZE*5/200B
 ECS4     LDM    TDDB+DVES
          SHN    14 
          LMM    TDDB+DVES+1
 ECS5     SBD    T1 
 ECSA     SHN    0
*         SHN    -EMSC       (CONVERT TO *EMBS*-WORD BLOCKS)
          RJM    CFT
          STM    TDDB+DVNT
          LDM    TDDB+DVED
          SHN    21-11
          PJN    ECS6        IF NOT IN MAINTENANCE MODE 
          SHN    12-6 
          LPN    7
          SBN    5
          MJP    ILL         IF NOT ESM/STORNET EQUIPMENT TYPE
          LDM    TDDB+DVNT
          SHN    -1          REDUCE PHYSICAL EM SIZE BY ONE HALF
          STM    TDDB+DVNT
 ECS6     LDD    EQ          RESET EXTENDED MEMORY PARAMETERS 
          LMD    EN 
          NJN    ECS7        IF REDEFINING EXTENDED MEMORY
          STD    EN 
          CRM    EMTY,ON
  
*         MEMORY TYPE DEPENDENT PROCESSING. 
  
 ECS7     LDM    TDDB+DVED
          LPN    70 
          ZJP    ECS10       IF NO CPU PATH 
          LMN    40 
          NJN    ECS8        IF NOT UEM 
          LDM    TDDB+DVES   SET UEM SIZE/100B
          SHN    14 
          LMM    TDDB+DVES+1
          SHN    3
          STM    UEMZ+1 
          SHN    -14
          STM    UEMZ 
          LDN    1
          RJM    CMS         CHECK MEMORY SIZE
          ZJN    ECS8        IF NO MEMORY SIZE CONFLICTS
          LDN    BMLL        RESTORE PREVIOUS PARAMETERS
          CRM    EMTY,ON
          JMP    ERR         DISPLAY ERROR
  
 ECS8     LDD    EN 
          NJN    ECS9        IF CPU PATH EQUIPMENT PREVIOUSLY SET 
          LDD    EQ 
          STD    EN 
 ECS9     LDM    TDDB+DVED
          SHN    -6 
          LPN    7
          STM    EMTY 
          LDD    T5          SET XM SHIFT COUNT 
          STM    EMSC 
          LDM    TDDB+DVNT   COMPUTE FIELD LENGTH 
          SHN    6
          ADM    TDDB+DVNT
          ADN    37          ROUND UP 
          SHN    -5 
          STM    EMFL        XM FL / *EMBS* 
 ECS10    LDD    EQ 
          LMN    LDEQ 
          NJN    ECS11       IF NOT POSSIBLE LINK DEVICE
          LDD    T5 
          STM    LDSH 
          LDM    TDDB+DVED
          LPN    70 
          LMN    40 
          ZJN    ECS11       IF UEM 
          LDN    LDEQ        SET POSSIBLE LINK DEVICE 
          STD    PD 
 ECS11    LJM    ECSX        RETURN 
  
 PDE      EQU    ECS         *DE* PROCESSOR 
 PDP      EQU    ECS         *DP* PROCESSOR 
 PDC      SPACE  4,10 
***       EQXXX=DC. 
  
  
 PDC1     RJM    KWP         PROCESS KEYWORDS 
  
 PDC      SUBR               ENTRY/EXIT 
          LDC    MABL        CHECK PP SPEED 
          CRD    CM 
          LDD    CM+4 
          SBN    2
          PJN    PDC1        IF 4X PP SPEED 
          JMP    ILL         PROCESS KEYWORDS 
 PDD      SPACE  4,10 
***       EQXXX=DD. 
*         EQXXX=DG. 
  
 PDD1     LDN    37          PRESET NO CHANNELS SPECIFIED 
          STD    CN+1 
          LDN    4           SET LIMIT TEST FOR DRIVE NUMBER
          RAM    SUNB 
          RJM    KWP         PROCESS KEYWORDS 
  
 PDD      SUBR               ENTRY/EXIT 
          LDM    ISPF 
          SHN    21-13
          PJN    PDD1        IF CYBER 810/815/825/830 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
  
 PDG      EQU    PDD         *DG* PROCESSOR 
 PDF      SPACE  4,10 
***       EQXXX=DF. 
*         EQXXX=DH. 
*         EQXXX=DN. 
*         EQXXX=EA. 
*         EQXXX=EB. 
*         EQXXX=EC. 
*         EQXXX=ED. 
*         EQXXX=EE. 
*         EQXXX=EF. 
*         EQXXX=EG. 
*         EQXXX=EH. 
*         EQXXX=EO. 
*         EQXXX=EP. 
  
  
 PDF1     LDC    PCC         SET CHANNEL PROCESSOR
          STM    TKWPA
          LDM    TKWPB+2     *EQ* DEFINITION PARAMETERS 
          SCN    37 
          LMN    TDDB-EBUT+DVPR  SET LOCATION FOR CONTROLLER NUMBER 
          STM    TKWPB+2
          RJM    KWP         PROCESS KEYWORDS 
  
 PDF      SUBR               ENTRY/EXIT 
          LDM    .CCHN
          NJN    PDF1        IF *I4* IOU
          JMP    ILL         PROCESS INCORRECT ENTRY
  
  
 PDH      EQU    PDF         *DH* PROCESSOR 
 PDN      EQU    PDF         *DN* PROCESSOR 
 PEA      EQU    PDF         *EA* PROCESSOR 
 PEB      EQU    PDF         *EB* PROCESSOR 
 PEC      EQU    PDF         *EC* PROCESSOR 
 PED      EQU    PDF         *ED* PROCESSOR 
 PEE      EQU    PDF         *EE* PROCESSOR 
 PEF      EQU    PDF         *EF* PROCESSOR 
 PEG      EQU    PDF         *EG* PROCESSOR 
 PEH      EQU    PDF         *EH* PROCESSOR 
 PEO      EQU    PDF         *EO* PROCESSOR 
 PEP      EQU    PDF         *EP* PROCESSOR 
 PEI      SPACE  4,10 
***       EQXXX=EI-2.        (MULTIPLE PARTITION DEVICES) 
*         EQXXX=EJ-2. 
*         EQXXX=EK-3. 
*         EQXXX=EL-4. 
*         EQXXX=EM-2. 
*         EQXXX=EN-2. 
*         EQXXX=ES-2. 
*         EQXXX=EU-2. 
*         EQXXX=EV-3. 
*         EQXXX=EW-4. 
  
  
 PEI      SUBR               ENTRY/EXIT 
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    PEI2        IF *,* 
          LMN    1R-&1R,
          NJN    PEI1        IF NOT *-* 
          AOD    KA 
          RJM    CDR         ASSEMBLE NUMBER OF PARTITIONS
          LMN    1R,
          NJN    PEI1        IF INCORRECT SEPARATOR 
          LDD    AB+4 
          ZJN    PEI1        IF NULL PARTITION COUNT
          STM    PEIB 
          LDM    MSSL,MS
          LPN    17 
          ADN    1
          SBD    AB+4 
          PJN    PEI3        IF PARTITION COUNT OK
 PEI1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PEI2     AOM    PEIB        INDICATE ONLY ONE PARTITION
 PEI3     NJN    PEI4        IF NOT MAXIMUM PARTITONS 
          AOM    PEIA        MAKE *PN=* NOT REQUIRED
 PEI4     RJM    PDF         PROCESS BASIC DAS SETUP
 PEIA     LDN    **          *PN=* PROCESSED INDICATOR
          ZJN    PEI1        IF REQUIRED *PN=* NOT PROCESSED
          LDC    0           NUMBER OF PARTITIONS 
 PEIB     EQU    *-1
          ADD    EQ 
          SBN    1
          STD    T7 
          LDC    0           FIRST PARTITION NUMBER 
 PEIC     EQU    *-1
          STD    T6 
 PEI5     STD    T0          PRESET CYLINDER CALCULATION
          LDM    EBUT+10     SET EST PARTITION NUMBER 
          SHN    14 
          SCN    57 
          LMD    T6 
          LMN    40          MARK AS A PARTITIONED DEVICE 
          SHN    6
          STM    EBUT+10
          LDN    0           CLEAR MST CYLINDER OFFSET
          STM    TDDB+DVCO
 PEI6     SOD    T0          CALCULATE CYLINDER OFFSET
          MJN    PEI7        IF CALCULATION IS COMPLETE 
          LDM    MSCP,MS
          RAM    TDDB+DVCO
          UJN    PEI6        CHECK FOR COMPLETION 
  
 PEI7     LDD    EB          READ ORIGINAL EQUIPMENT ENTRY
          SHN    5
          ADD    EQ 
          SHN    1
          CRM    EBUT,ON
          LDD    EQ 
          LMD    T7 
          ZJP    PEIX        IF THIS IS THE LAST PARTITION
          LDM    EBUT+3 
          LMD    CN+3 
          ZJN    PEI8        IF NOT INITIAL ENTRY 
          RJM    CML         CHECK MASS STORAGE LIMIT 
          RJM    RMD         RESET MASS STORAGE DEVICE
 PEI8     LDN    JSNL 
          CWD    CN          MOVE EST ENTRY TO BUFFER 
          CRM    EBUT,ON
          RJM    SPE         ENTER EQUIPMENT DEFINITION 
          LDM    EBUT+4      UPDATE INITIALIZATION FLAGS
          STM    CN+4 
          RJM    CLE         CHECK LAST EQUIPMENT 
          AOD    T6          INCREMENT PARTITION NUMBER 
          UJP    PEI5        PROCESS NEXT PARTITION 
  
  
 PEJ      EQU    PEI         *EJ* PROCESSOR 
 PEK      EQU    PEI         *EK* PROCESSOR 
 PEL      EQU    PEI         *EL* PROCESSOR 
 PEM      EQU    PEI         *EM* PROCESSOR 
 PEN      EQU    PEI         *EN* PROCESSOR 
 PES      EQU    PEI         *ES* PROCESSOR 
 PEU      EQU    PEI         *EU* PROCESSOR 
 PEV      EQU    PEI         *EV* PROCESSOR 
 PEW      EQU    PEI         *EW* PROCESSOR 
 KWP      SPACE  4,10 
**        KWP - KEYWORD MAIN PROCESSOR. 
* 
*         ENTRY  (KA) = ADDRESS OF SEPARATOR CHARACTER. 
*                (TA) = *TVRK* ENTRY ADDRESS. 
  
  
 KWP      SUBR               ENTRY/EXIT 
 KWP1     AOD    KA 
          LDI    KA          ASSEMBLE KEYWORD 
          SHN    6
          LMM    1,KA 
          STD    AB 
          LDN    2           ADVANCE KEYBOARD BUFFER ADDRESS
          RAD    KA 
          LDI    KA 
          LMN    1R=
          NJN    KWP3        IF INCORRECT SEPARATOR 
          AOD    KA 
          LDC    TKWP-TKWPL 
          STD    T3 
 KWP2     LDN    TKWPL
          RAD    T3 
          LDI    T3 
          NJN    KWP4        IF NOT END OF TABLE
 KWP3     JMP    ILL         PROCESS INCORRECT ENTRY
  
 KWP4     STD    T2 
          LDD    AB 
          LMI    T2 
          NJN    KWP2        IF NOT MATCH 
          RJM    VKW         VALIDATE KEYWORD 
  
*         EXIT TO KEYWORD PROCESSOR.
*         (T3) = ADDRESS OF *TKWP* ENTRY. 
*         (KA) = ADDRESS OF KEYWORD VALUE FIRST CHARACTER.
  
          LJM    1,T2        EXIT TO PROCESSOR
  
*         RETURN FROM KEYWORD PROCESSOR.
*         (KA) = ADDRESS OF SEPARATOR CHARACTER.
  
 KWP5     LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    KWP1        IF NOT END OF ENTRY
          LMN    1R.&1R,
          NJN    KWP3        IF INCORRECT SEPARATOR 
          LDM    TRQP 
          ZJN    KWP7        IF NOT INITIAL ENTRY 
          LDN    KTWC 
          STD    T2 
          LDN    TVRKL
          RAD    TA 
 KWP6     SOD    TA 
          LDI    TA 
          STM    KWPA 
          LDM    TRQP,T2
          LPC    ** 
 KWPA     EQU    *-1
          LMI    TA 
          NJN    KWP3        IF REQUIRED KEYWORD NOT SPECIFIED
          SOD    T2 
          NJN    KWP6        IF MORE KEYWORDS TO CHECK
 KWP7     LDD    CN 
          LPN    3
          LMN    3
          ZJN    KWP9        IF DEVICE IS DOWN
          LDD    CN+1        CHECK PRIMARY CHANNEL
          SHN    21-13
          PJN    KWP9        IF NO PRIMARY CHANNEL
          SHN    21-12-21+13
          PJN    KWP9        IF CHANNEL IS UP 
          LDD    CN+2        CHECK SECONDARY CHANNEL
          SHN    21-13
          PJN    KWP8        IF NO SECONDARY CHANNEL
          SHN    21-12-21+13
          PJN    KWP9        IF CHANNEL IS UP 
 KWP8     JMP    ILL         PROCESS INCORRECT ENTRY
  
 KWP9     LJM    KWPX        RETURN 
  
  
 PDI      EQU    KWP         *DI* PROCESSOR 
 PDJ      EQU    KWP         *DJ* PROCESSOR 
 PDM      EQU    KWP         *DM* PROCESSOR 
 PDK      EQU    KWP         *DK* PROCESSOR 
 PDL      EQU    KWP         *DL* PROCESSOR 
 PDQ      EQU    KWP         *DQ* PROCESSOR 
 PDR      EQU    KWP         *DR* PROCESSOR 
 PDB      EQU    KWP         *DB* PROCESSOR 
 PDX      EQU    KWP         *DX* PROCESSOR 
 PDY      EQU    KWP         *DY* PROCESSOR 
 PDZ      EQU    KWP         *DZ* PROCESSOR 
 PDA      EQU    KWP         *DA* PROCESSOR 
 PDV      EQU    KWP         *DV* PROCESSOR 
 PDW      EQU    KWP         *DW* PROCESSOR 
          TITLE  MISCELLANEOUS EQUIPMENT DEFINITION SUBROUTINES.
 CDC      SPACE  4,15 
**        CDC - CLEAR ISMD CHANNELS.
* 
*         ENTRY  (EBUT) = PREVIOUS EBUT *CM* EQUIPMENT ENTRY. 
* 
*         EXIT   CHANNEL NUMBERS ARE CLEARED IN ALL ISMD DEVICE ENTRIES 
*                WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT.
* 
*         USES   T1, T2, T3.
* 
*         CALLS  SDC. 
  
  
 CDC      SUBR               ENTRY/EXIT 
          LDM    EBUT+4      SAVE EQUIPMENT NUMBER
          SHN    -11
          STD    T1 
          LDM    EBUT+3 
          LMC    2RCM 
          NJN    CDCX        IF NOT CONTROL MODULE
          STM    TENB,T1     CLEAR EST ORDINAL
          STD    T3 
          LDN    37          SET NO CHANNEL SPECIFIED 
          STD    T2 
          RJM    SDC         SET ISMD CHANNELS
          UJN    CDCX        RETURN 
 CLE      SPACE  4,15 
**        CLE - CHECK LAST EQUIPMENT. 
* 
*         ENTRY  (EQ) = CURRENT EST ORDINAL.
*                (LE) = LAST EQUIPMENT DEFINED. 
*                (CN - CN+4) = CURRENT EQUIPMENT DEFINITION.
* 
*         EXIT   (LE) = CURRENT LAST EQUIPMENT. 
*                (EQ) = CURRENT EST ORDINAL + 1.
* 
*         USES   T5, CN - CN+4. 
* 
*         CALLS  IBF. 
  
  
 CLE3     AOD    EQ          CHECK NEW EQUIPMENT DEFINITION 
          SBD    LE 
          PJN    CLE2        IF ORDINAL .GE. PREVIOUS HIGH
  
 CLE      SUBR               ENTRY/EXIT 
          LDD    CN+3 
          NJN    CLE3        IF DEFINING EQUIPMENT
          AOD    EQ 
          LMD    LE 
          NJN    CLEX        IF NOT CLEARING LAST EQUIPMENT 
 CLE1     SOD    LE 
          SHN    14+1 
          ADD    EB          SEARCH FOR LAST EQUIPMENT
          SHN    6
          CRD    CN 
          LDD    CN+3 
          ZJN    CLE1        IF EQUIPMENT UNDEFINED 
          LDN    1
 CLE2     RAD    LE          UPDATE LAST EQUIPMENT
          STD    T5 
          LDN    UECF        SEND COUNT TO BUFFER PP
          RJM    IBF
          UJN    CLEX        RETURN 
 CML      SPACE  4,10 
**        CML - CHECK MASS STORAGE LIMIT. 
* 
*         ENTRY  (CN - CN+4) = CURRENT EQUIPMENT DEFINITION.
*                (EBUT - EBUT+4) = PREVIOUS EQUIPMENT DEFINITION. 
  
  
 CML2     SOM    MSLM 
  
 CML      SUBR               ENTRY/EXIT 
          LDI    ES 
          LMD    CN          CHECK REDEFINITION 
          SHN    0-13 
          ZJN    CMLX        IF NO CHANGE IN STATUS 
          LDD    CN          CHECK MASS STORAGE 
          SHN    0-13 
          ZJN    CML1        IF NOT MASS STORAGE
          LDM    MSLM 
          NJN    CML2        IF NOT MASS STORAGE LIMIT
          LDC    CMLB        SET ERROR MESSAGE
          JMP    ILL1        DISPLAY ERROR
  
 CML1     AOM    MSLM        ADVANCE MASS STORAGE LIMIT 
          UJN    CMLX        RETURN 
  
 CMLB     DATA   C*MS LIMIT EXCEEDED.*
 EDC      SPACE  4,20 
**        EDC - ENTER ISMD CHANNELS.
* 
*         ENTRY  (CN - CN+4) = EQUIPMENT ENTRY. 
*                (EQ) = CURRENT EST ORDINAL.
* 
*         EXIT   (EQ) = CURRENT EST ORDINAL.
*                IF DEVICE IS AN ISMD, A SEARCH IS MADE FOR THE *CM*
*                   EQUIPMENT WHICH CORRESPONDS TO THE FIRST UNIT - IF
*                   FOUND, THE CHANNEL NUMBERS ARE SET IN THE ISMD
*                   ENTRY.
* 
*         USES   T1, T2, T3, CM - CM+4. 
* 
*         CALLS  EEB. 
  
  
 EDC      SUBR               ENTRY/EXIT 
          LCN    0
          STD    T5 
 EDC1     AOD    T5          ADVANCE INDEX
          LDM    TFSD,T5
          ZJN    EDCX        IF END OF TABLE
          LMD    CN+3 
          NJN    EDC1        IF NOT MATCHING DEVICE TYPE
          LDM    TDDB+DVUN+3 SAVE FIRST UNIT EQUIPMENT NUMBER 
          LPN    70 
          SHN    -3 
          STD    T3 
          LDM    TENB,T3
          ZJN    EDCX        IF NO *CM* DEFINED 
          SHN    22-5 
          ADD    EB 
          SHN    6           READ CONTROL MODULE EST ENTRY
          CRD    CM 
          LDD    CM+1        SET CHANNEL(S) INTO ISMD ENTRY 
          STM    EBUT+1 
          LDD    CM+2 
          STM    EBUT+2 
          RJM    EEB         ENTER EQUIPMENT ENTRY
          LJM    EDCX        RETURN 
 SDC      SPACE  4,15 
**        SDC - SET ISMD CHANNELS.
* 
*         ENTRY  (T1) = *CM* EQUIPMENT NUMBER.
*                (T2) = FIRST CHANNEL.
*                (T3) = SECOND CHANNEL. 
* 
*         EXIT   CHANNEL NUMBERS ARE SET IN ALL ISMD DEVICE ENTRIES 
*                WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT.
* 
*         USES   T5.
* 
*         CALLS  EEB, SID, STA. 
  
  
 SDC2     LDD    T5          RESTORE *EQ* CONTENTS
          RJM    STA
  
 SDC      SUBR               ENTRY/EXIT 
          LDD    EQ          SAVE CONTENTS OF *EQ*
          STD    T5 
          RJM    EEB         SAVE *EBUT*
          LCN    0
 SDC1     RJM    SID         SEARCH FOR ISMD DEVICE 
          MJN    SDC2        IF NONE FOUND
          LDM    TDDB+DVUN+3  GET FIRST UNIT EQUIPMENT NUMBER 
          LPN    70 
          SHN    -3 
          LMD    T1 
          NJN    SDC1        IF NOT THIS *CM* EQUIPMENT NUMBER
          LDD    T2          SET CHANNEL NUMBERS
          STM    EBUT+1 
          LDD    T3 
          STM    EBUT+2 
          RJM    EEB         ENTER EQUIPMENT ENTRY
          UJN    SDC1        FIND NEXT ISMD ENTRY 
 SMD      SPACE  4,10 
**        SMD - SEARCH MASS STORAGE DEVICE TABLE *TMSD*.
* 
*         ENTRY  (A) = EQUIPMENT TYPE (DEVICE MNEMONIC).
* 
*         EXIT   (A) = (MS) = *TMSD* TABLE ADDRESS. 
*                    = 0 IF ENTRY NOT FOUND.
* 
*         USES   MS.
  
  
 SMD1     LDN    TMSDL       ADVANCE TABLE ADDRESS
          RAD    MS 
 SMD2     LDI    MS          CHECK ENTRY
          ZJN    SMDX        IF END OF TABLE
          LMD    T0          COMPARE DEVICE TYPE
          LPC    3777 
          NJN    SMD1        IF NO MATCH
          LDD    MS 
  
 SMD      SUBR               ENTRY/EXIT 
          STD    T0 
          LDC    TMSD        SET TABLE ADDRESS
          STD    MS 
          UJN    SMD2        ENTER LOOP 
 VKW      SPACE  4,10 
**        VKW - VALIDATE KEYWORD. 
* 
*         ENTRY  (TA) = *TVRK* ENTRY ADDRESS. 
*                (T3) = *TKWP* ENTRY ADDRESS. 
*                (KA) = CHARACTER ADDRESS OF KEYWORD VALUE. 
* 
*         EXIT   (A) = (AB+4) = 0, IF NULL VALUE SPECIFIED. 
*                TO *ILL* IF INCORRECT KEYWORD OR NULL VALUE SPECIFIED
*                AND NULL VALUE NOT ALLOWED.
* 
*         USES   T5, T6, T7, AB+4.
* 
*         CALLS  CSC. 
  
  
 VKW      SUBR               ENTRY/EXIT 
          LDM    1,T3        GET KEYWORD BIT POSITION 
          SHN    14 
          LMD    TH 
          ERRNZ  1000-SHNI   ADJUST IF VALUE CHANGES
          STM    VKWA 
          SHN    -14         GET KEYWORD WORD OFFSET
          STD    T6 
          ADD    TA          ADDRESS OF *TVRK* WORD 
          STD    T5 
          LDN    1           GENERATE KEYWORD BIT MASK
 VKWA     SHN    ** 
          STD    T7 
          STM    VKWB 
          STM    VKWC 
          LDI    T5          CHECK IF KEYWORD ALLOWED 
          LPC    0
 VKWB     EQU    *-1
          NJN    VKW2        IF KEYWORD IS ALLOWED
 VKW1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 VKW2     LDC    TRQP        SET KEYWORD SPECIFIED BIT
          RAD    T6 
          LDI    T6 
          LPC    0
 VKWC     EQU    *-1
          NJN    VKW1        IF KEYWORD ALREADY PROCESSED 
          LDD    T7 
          RAI    T6 
          RJM    CSC         CHECK FOR NULL VALUE 
          NJN    VKW3        IF NOT NULL VALUE
          LDM    2,T3        CHECK *TKWP* 
          SHN    21-5 
          PJN    VKW1        IF NULL VALUE NOT ALLOWED
          LDN    0           CLEAR VALUE
          STD    AB+4 
 VKW3     LJM    VKWX        RETURN 
 STV      SPACE  4,10 
**        STV - STORE KEYWORD VALUE.
* 
*         ENTRY  (AB+4) = KEYWORD VALUE.
*                (T3) = ADDRESS OF KEYWORD PARAMETERS.
*                (CN - CN+4) = *EQDE* EST WORD. 
*                (EBUT+5 - EBUT+11) = *EQAE* EST WORD.
* 
*         EXIT   KEYWORD VALUE STORED IN EST ENTRY. 
  
  
 STV      SUBR               ENTRY/EXIT 
          LDM    2,T3 
          SHN    14          SET SHIFT COUNT
          LMD    TH 
          ERRNZ  1000-SHNI   ADJUST IF VALUE CHANGES
          STM    STVB 
          SHN    -14         SET EST ENTRY LOCATION 
          LPN    37 
          STD    T0 
          SBN    5
          MJN    STV1        IF IN *EQDE* WORD
          LDC    EBUT 
          UJN    STV2        PROCESS DATA 
  
 STV1     LDN    CN 
 STV2     ADD    T0 
          STD    T7 
          LDM    3,T3        SET MASK 
          STM    STVA 
          LDI    T7          UPDATE EST ENTRY 
          LPC    ** 
 STVA     EQU    *-1
          STI    T7 
          LDD    AB+4 
 STVB     SHN    **          POSITION KEYWORD VALUE 
          RAI    T7          STORE KEYWORD VALUE
          UJN    STVX        RETURN 
          TITLE  KEYWORD PROCESSORS.
 AOK      SPACE  4,10 
**        AOK - ASSEMBLE OCTAL KEYWORD VALUE. 
* 
*         ENTRY  (A) = 6/MINIMUM VALUE, 12/MAXIMUM VALUE+1
* 
*         EXIT   TO *KWP5*, KEYWORD VALUE STORED. 
*                TO *ILL* IF INCORRECT VALUE. 
* 
*         USES   T6, T7.
* 
*         CALLS  CDR, STV.
  
  
 AOK      BSS    0
          STD    T7          SAVE MAXIMUM VALUE+1 
          SHN    -14
          STD    T6          SAVE MINIMUM VALUE 
          RJM    CDR         ASSEMBLE KEYWORD VALUE 
          LDD    AB+4 
          SBD    T6 
          PJN    AOK2        IF VALUE .GE. MINIMUM
 AOK1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 AOK2     LDD    AB+4 
          SBD    T7 
          PJN    AOK1        IF VALUE .GT. MAXIMUM
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PAP      SPACE  4,10 
***       AP=N. 
* 
*         APRDECK NUMBER. 
*         N = 0-77B.
  
  
 PAP      DATA   H*AP*
          ZJN    PAP1        IF NULL VALUE
          RJM    CDR         ASSEMBLE APRDECK NUMBER
          LDD    AB+4 
          SHN    -6 
          ZJN    PAP1        IF .LE. 77B
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PAP1     LDD    AB+4        SET APRDECK NUMBER 
          STM    TDDB+DVAP
          JMP    KWP5       RETURN
 PCC      SPACE  4,10 
***       CH=C1N/C2N. 
* 
*         CONCURRENT CHANNEL + PORT NUMBER. 
*         C1 = PRIMARY CHANNEL. 
*         C2 = SECONDARY CHANNEL. 
*         N = A FOR PORT A. 
*           = B FOR PORT B. 
  
  
 PCC      DATA   H*CH*
          LDN    0           PRESET PORT A DEFINITIONS
          STD    CN+1 
          STD    CN+2 
          LDN    CN+1        PRESET CHANNEL INDEX 
          STD    T4 
 PCC1     RJM    CDR         ASSEMBLE CHANNEL NUMBER
          LMN    1RA
          ZJN    PCC2        IF PORT A SPECIFIED
          LMN    1RB&1RA
          NJN    PCC3        IF NOT PORT B (DEFAULT TO A) 
          LDC    200         SET PORT B INDICATOR 
          STI    T4 
 PCC2     AOD    KA          ADVANCE CHARACTER ADDRESS
 PCC3     LDN    40          MARK CHANNEL CONCURRENT
          RAD    AB+4 
          LMC    4000        MARK CHANNEL ACCESSIBLE
          RAI    T4          SET CHANNEL ENTRY
          LPN    37 
          SBM    .CCHN
          MJN    PCC5        IF VALID CHANNEL NUMBER
 PCC4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCC5     LDM    TCST,AB+4
          ZJN    PCC6        IF CHANNEL IS NOT DOWN 
          LDC    3000        MARK CHANNEL DOWN
          RAI    T4 
 PCC6     RJM    CSC         CHECK SEPARATOR CHARACTER
          NJN    PCC7        IF NOT VALID KEYWORD SEPARATOR 
          LDD    CN+1        PRIMARY CHANNEL
          LMD    CN+2        SECONDARY CHANNEL
          LPN    77 
          ZJN    PCC4        IF DUPLICATE CHANNELS
          JMP    KWP5        RETURN 
  
 PCC7     LMN    1R/&1R,
          NJN    PCC4        IF NO OTHER CHANNEL
          AOD    KA 
          AOD    T4 
          LMN    CN+3 
          ZJN    PCC4        IF MORE THAN TWO CHANNELS SPECIFIED
          LJM    PCC1        PROCESS SECOND CHANNEL 
 PCH      SPACE  4,10 
***       CH=C1/C2. 
* 
*         CHANNEL NUMBER. 
*         CN = 2, 4 OR 6, IF EQUIPMENT TYPE IS *DV* OR *DW*.
*         CN = 0-13B, 20-33B, FOR ALL OTHER EQUIPMENT TYPES.
*         CN = C0-C11B FOR CONCURRENT CHANNELS 0-11B. 
  
  
 PCH      DATA   H*CH*
          LDN    CN+1        SET CHANNEL BYTE ADDRESS 
          STD    T4 
          LDN    CN+1+2      SET MAXIMUM NUMBER OF CHANNELS ALLOWED 
          STD    T3 
          LDN    0           CLEAR CHANNEL BUFFER 
          STD    CN+1 
          STD    CN+2 
          LDD    CN+3 
          LMC    2RRM 
          NJN    PCH3        IF NOT TYPE *RM* 
          RJM    CDR
          LDD    AB+4 
          SBN    15 
          NJN    PCH6        IF INCORRECT CHANNEL NUMBER
          LDC    4000+CHMX
          LJM    PCH9        SET CHANNEL DATA 
  
 PCH3     LMC    2RDV&2RRM
          ZJN    PCH4        IF TYPE *DV* 
          LMN    1RW&1RV
          ZJN    PCH4        IF TYPE *DW* 
          LDC    LDNI        SET FIRST CHANNEL
          STM    VCNA 
          UJN    PCH7        ASSEMBLE FIRST CHANNEL NUMBER
  
 PCH4     LDC    VCP
          STM    PCHA 
 PCH5     LDD    T4 
          SBD    T3 
          MJN    PCH7        IF MORE CHANNELS ALLOWED 
 PCH6     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCH7     LDC    4000        SET CHANNEL ACCESSIBLE 
          STI    T4 
          LDI    KA          CHECK SEPARATOR
          SBN    1R8
          PJN    PCH6        IF NULL CHANNEL PARAMETER
          ADN    1R8-1RC
          NJN    PCH8        IF NOT A CONCURRENT CHANNEL
          LDN    40 
          RAI    T4          SET CONCURRENCY ATTRIBUTE
          AOD    KA 
 PCH8     RJM    CDR         ASSEMBLE CHANNEL NUMBER
          RJM    VCN         VALIDATE CHANNEL NUMBER
*         RJM    VCP         (VALIDATE CHANNEL PAIR)
 PCHA     EQU    *-1
          LDD    AB+4        APPEND CHANNEL NUMBER
 PCH9     RAI    T4 
          LPN    77          CHECK CHANNEL DATA 
          STD    AB+4 
          SBN    40 
          MJN    PCH11       IF NOT A CONCURRENT CHANNEL
          SBM    .CCHN
          MJN    PCH11       IF VALID CHANNEL NUMBER
 PCH10    JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCH11    LDM    TCST,AB+4
          ZJN    PCH12       IF CHANNEL IS NOT DOWN 
          LDC    3000        MARK CHANNEL DOWN
          RAI    T4 
 PCH12    RJM    CSC         CHECK SEPARATOR CHARACTER
          NJN    PCH13       IF INVALID KEYWORD SEPARATOR 
          JMP    KWP5        RETURN 
  
 PCH13    LMN    1R/&1R,
          NJN    PCH10       IF INVALID SEPARATOR 
          AOD    T4 
          AOD    KA 
          LJM    PCH5        PROCESS NEXT CHANNEL 
 PEQ      SPACE  4,10 
***       EQ=N. 
* 
*         EQUIPMENT (CONTROLLER) NUMBER.
*         N = 0-7.
  
  
 PEQ      DATA   H*EQ*
          LDN    10          SET MAXIMUM VALUE + 1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PET      SPACE  4,20 
***       ET=MT.
*         ET=MT/PT.  (*DP* TYPE EQUIPMENT ONLY).
*         ET=MT/PT/CT.  (*DP* TYPE EQUIPMENT ONLY). 
* 
*         EXTENDED MEMORY TYPE (DEFAULT = E1,D1). 
*         MT = MEMORY TYPE. 
*              E1 - ECS 1.
*              E2 - ECS 2.
*              LE - LCME. 
*              EM - UEM.
*              ES - ESM.
*              SN - STORNET.
*         PT = PATH TYPE. 
*              D1 - DC135 DDP (DEFAULT FOR MT = E1/E2). 
*              D2 - DC145 PARITY ENHANCED DDP OR ESM LOW SPEED PORT.
*                   (DEFAULT FOR MT = ES OR SN).
*         CT = CPU TYPE.
*              NC - NO CPU COUPLER. 
*                   (DEFAULT FOR MT = SN).
  
  
 PET      DATA   H*ET*
          LDN    CFGL        GET HARDWARE MODE
          CRD    CM 
          LDD    CM+3 
          SHN    4-12 
          LPN    20 
          ADC    4511        4531 = EXTENDED, 4511 = ECS ADDRESSING 
          STM    TMTO+ESMP+2
          LDC    TMTOL*10000+TMTO  CHECK MEMORY TYPE
          RJM    CET
          RJM    CSC         CHECK SEPARATOR CHARACTER
          ZJN    PET3        IF NO PATH TYPE/CPU TYPE SPECIFIED 
          LMN    1R/&1R,
          ZJN    PET2        IF CORRECT SEPARATOR 
 PET1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PET2     LDD    CN+3 
          LMC    2RDP 
          NJN    PET1        IF NOT TYPE *DP* 
          AOD    KA 
          LDI    KA 
          LMN    1R/
          ZJN    PET4        IF NULL PATH TYPE
          LDC    TPTOL*10000+TPTO  CHECK PATH TYPE
          RJM    CET
          RJM    CSC         CHECK SEPARATOR CHARACTER
 PET3     ZJN    PET5        IF NO CPU TYPE 
          LMN    1R/&1R,
          NJN    PET1        IF NOT CORRECT SEPARATOR 
 PET4     AOD    KA 
          LDC    TCTOL*10000+TCTO  CHECK CPU TYPE 
          RJM    CET
 PET5     JMP    KWP5        RETURN 
          SPACE  4,10 
**        EXTENDED MEMORY TYPE OPTION TABLES. 
* 
*         ENTRY = 3 WORDS 
*T,       12/ OP,12/ MASK,1/D,2/ R,3/ MT,3/ CT,3/ PT
* 
*         OP = MNEMONIC.
*         MASK = *DILL* BYTE 3 MASK.
*         R = RESERVED. 
*         D = DEVICE SUPPORTS DIRECT TRANSFER.
*         MT = MEMORY TYPE. 
*              0 = RESERVED.
*              1 = E1 (ECS 1).
*              2 = E2 (ECS 2).
*              3 = LE (LCME). 
*              4 = EM (UEM).
*              5 = ES (ESM).
*              6 = SN (STORNET).
*              7 = RESERVED.
* 
*         CT = CPU TYPE 
*              0 = NO CPU PATH. 
*              1 = ECS MODE.
*              2 = LCME.
*              3 = ESM MODE.
*              4 = UEM CPU INTERFACE. 
*              5 - 7 = RESERVED.
* 
*         PT = PP PATH TYPE.
*              0 = NO DDP.
*              1 = DC145 PARITY ENHANCED DDP
*                  OR ESM LOW SPEED PORT. 
*              2 = DC135 DDP. 
*              3-7 = RESERVED 
  
  
 TMTO     BSS    0           TABLE OF MEMORY TYPE OPTIONS 
          CON    2RE1,0,4112  ECS 1, DC135 DDP
          CON    2RE2,0,4212  ECS 2, DC135 DDP
          CON    2RLE,0,4320  LCME
          CON    2REM,0,4440  UEM 
 ESMP     EQU    *-TMTO      POINTER FOR ESM ENTRY
          CON    2RES,0,4511  ESM, LSP
          CON    2RSN,0,0601  STORNET 
 TMTOL    EQU    *-TMTO 
  
 TPTO     BSS    0           TABLE OF PATH TYPE OPTIONS 
          CON    2RD1,-7,2   DC135 DDP
          CON    2RD2,-7,1   DC145 PARITY ENHANCED DDP
 TPTOL    EQU    *-TPTO 
  
 TCTO     BSS    0           TABLE OF CPU TYPE OPTIONS
          CON    2RNC,-4077,1  NO CPU COUPLER 
 TCTOL    EQU    *-TCTO 
 PIB      SPACE  4,10 
***       IB=N. 
* 
*         INSTALLATION BYTE.
*         N = 0B - 7777B. 
  
  
 PIB      DATA   H*IB*
          RJM    AOD         ASSEMBLE INSTALLATION BYTE VALUE 
          STM    EBUT+5 
          JMP    KWP5        RETURN 
 PMA      SPACE  4,10 
***       MA=STATUS.
* 
*         EXTENDED MEMORY MAINTENANCE MODE. 
*         STATUS = *ON* OR *OFF*. 
  
  
 PMA      DATA   H*MA*
          RJM    AST         ASSEMBLE MAINTENANCE MODE STATUS 
          SHN    21-0 
          PJN    PMA1        IF *ON* OR *OFF* 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PMA1     LDM    TDDB+DVED   SET STATUS 
          SHN    23-11
          SCN    2
          LMD    AB+4 
          LMN    2
          SHN    11-1 
          STM    TDDB+DVED
          JMP    KWP5        RETURN 
 PMC      SPACE  4,10 
***       MC=N. 
* 
*         ESM SIDE DOOR PORT CHANNEL NUMBER.
*         N = 0-13B, 20B-33B. 
  
  
 PMC      DATA   H*MC*
          RJM    CDR         ASSEMBLE CHANNEL NUMBER
          LDC    LDNI        SET FIRST CHANNEL
          STM    VCNA 
          RJM    VCN         VALIDATE CHANNEL NUMBER
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PPN      SPACE  4,10 
***       PN=N. 
* 
*         PARTITION NUMBER. 
*         PN = 1-17B
  
 PPN      DATA   H*PN*
          RJM    AOD         ASSEMBLE PARTITION NUMBER
          LDM    MSSL,MS
          LPN    17B
          ADN    1
          SBD    AB+4 
          SBM    PEIB        CHECK NUMBER OF PARTITIONS 
          MJN    PPN1        IF PARTITION OUT OF RANGE
          LDD    AB+4        SAVE FIRST PARTITION NUMBER
          STM    PEIC 
          AOM    PEIA        INDICATE *PN* PARAMETER PROCESSED. 
          JMP    KWP5        RETURN 
  
 PPN1     JMP    ILL         PROCESS INCORRECT ENTRY
 PST      SPACE  4,10 
***       ST=STATUS.
* 
*         DEVICE STATUS.
*         STATUS = *ON* OR *IDLE* OR *OFF* OR *DOWN*. 
* 
*         *ON* OR *IDLE* = EQUIPMENT AVAILABLE FOR ACCESS.
*         *OFF* OR *DOWN* = EQUIPMENT UNAVAILABLE FOR ACCESS. 
* 
*         *OFF* OR *DOWN* IS NOT VALID FOR AN EQUIPMENT WHICH IS
*         DEFINED AS A SYSTEM, FAMILY, OR CHECKPOINT DEVICE.
  
  
 PST      DATA   H*ST*
          RJM    AST         ASSEMBLE STATUS
          ZJN    PST3        IF *ON*
          LPN    2
          NJN    PST2        IF *OFF* OR *DOWN* 
          UJN    PST3        PROCESS *IDLE* 
  
 PST1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PST2     LDD    CN 
          SHN    21-12
          MJN    PST1        IF SYSTEM DEVICE 
          LDM    .PFNL+3
          SBD    EQ 
          ZJN    PST1        IF FAMILY EQUIPMENT
          LDM    TDDB+DVPR
          LPN    2
          NJN    PST1        IF CHECKPOINT DEVICE 
 PST3     RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PSZ      SPACE  4,10 
***       SZ=N. 
* 
*         SIZE OF EXTENDED MEMORY.
*         N = VALUE  (ECS 1 AVAILABLE)  (ECS 2, ESM, OR LCME AVAILABLE) 
*             400B   (125K)             (131K)
*             1000B  (250K)             (262K)
*             2000B  (500K)             (524K)
*             4000B  (1000K)            (1048K) 
*             10000B (2000K)            (2096K) 
* 
*         N = 10B (4K) THROUGH 10000B-MINCM (2000K-MINCM) FOR UEM.
* 
*         FOR UEM, ECS 2, LCM AND ESM, SZ MAY BE ANY VALUE BETWEEN AND
*         INCLUDING 10B (4K WORDS) AND 10000B (2M WORDS).  THE SUM OF 
*         UEM SIZE + NVE SIZE + MINCM SIZE (65K USED IF NOT SPECIFIED)
*         MUST BE .LE. THE PHYSICAL MAIN MEMORY SIZE RETURNED BY *CTI*. 
* 
*         FOR UEM AND ESM, *SZ* MAY BE UP TO 100000B (16M WORDS). 
  
  
 PSZ      DATA   H*SZ*
          RJM    AOD         ASSEMBLE SIZE
          STM    TDDB+DVES+1
          LDD    AB+3 
          STM    TDDB+DVES
          SCN    17 
          NJN    PSZ1        IF TOO MANY DIGITS 
          LDM    EBUT+7 
          LPC    300
          STD    T1          SAVE PREVIOUS XM SHIFT 
          LDD    AB+3 
          SHN    14 
          LMD    AB+4 
          SBN    10 
          PJN    PSZ2        IF .GE. 10K
 PSZ1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PSZ2     ADN    10-1 
          SHN    -14
          ZJN    PSZ5        IF .LE. 2M WORDS 
          SHN    -1 
          ZJN    PSZ4        IF .LE. 4M WORDS 
          SHN    -1 
          ZJN    PSZ3        IF .LE. 8M WORDS 
          SHN    -1 
          NJN    PSZ1        IF .GT. 16M WORDS
          LDN    1
 PSZ3     ADN    1
 PSZ4     ADN    1
 PSZ5     SHN    6
          SBD    T1 
          MJN    PSZ6        IF PREVIOUS SHIFT OKAY 
          RAM    EBUT+7 
 PSZ6     JMP    KWP5        RETURN 
 PTS      SPACE  4,10 
***       TS=N. 
* 
*         TRACK SIZE FOR EXTENDED MEMORY. 
*         N = VALUE  (TRACK SIZE IN SECTORS)
*             20     (20B)
*             40     (40B)
*             100    (100B) 
*             200    (200B) 
* 
*         EXTENDED MEMORY MAY BE ALLOCATED IN TRACKS OF 20B, 40B, 100B
*         AND 200B SECTORS, ALLOWING THE SIZE OF EXTENDED MEMORY TO 
*         EXCEED THE PREVIOUS 2M WORD LIMIT AND EXTEND TO 16MW. 
  
  
 PTS      DATA   H*TS*
          LDM    EBUT+7      SAVE PREVIOUS XM SHIFT 
          LPC    300
          STD    T3 
          RJM    AOD         ASSEMBLE TRACK SIZE
          SBN    20 
          ZJN    PTS3        IF 20B 
          SBN    40-20
          ZJN    PTS2        IF 40B 
          SBN    100-40 
          ZJN    PTS1        IF 100B
          SBD    HN 
          NJN    PTS4        IF NOT 200B
          LDN    1
 PTS1     ADN    1
 PTS2     ADN    1
          SHN    6
          SBD    T3 
          MJN    PTS3        IF PREVIOUS SHIFT OKAY 
          RAM    EBUT+7 
 PTS3     JMP    KWP5        RETURN 
  
 PTS4     JMP    ILL         PROCESS INCORRECT ENTRY
 PUN      SPACE  4,10 
***       UN=U1.
*         UN=U1/.../UN. 
*         UN=U1-UN.  (HORIZONTALLY CONTIGUOUS UNITS)
* 
*         UNIT NUMBER.
*         UN = 0-77B (MAXIMUM UNIT NUMBER AND NUMBER OF UNITS 
*              ALLOWED ARE DEVICE TYPE DEPENDENT.)
  
 PUN      DATA   H*UN*
          LDI    KA 
          SBN    1R8
          PJN    PUN1        IF NULL UNIT PARAMETER 
          RJM    CDR         ASSEMBLE UNIT NUMBER 
          RJM    CSC
          ZJN    PUN3        IF SINGLE UNIT SPECIFIED 
          LMN    1R/&1R,
          ZJN    PUN3        IF MULTIPLE UNITS SPECIFIED
          LMN    1R-&1R/
          NJN    PUN1        IF INCORRECT SEPARATOR 
          LDD    AB+4        SAVE FIRST UNIT NUMBER 
          STD    T6 
          AOD    KA 
          RJM    CDR         ASSEMBLE LAST UNIT NUMBER
          RJM    CSC
          ZJN    PUN2        IF NOT INCORRECT SEPARATOR 
 PUN1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PUN2     LDD    AB+4        SET LAST UNIT NUMBER 
          RAM    SUNA 
          LDD    T6 
          SBD    AB+4 
          PJN    PUN1        IF INCORRECT RANGE 
          RAD    AB+4        RESET FIRST UNIT NUMBER
 PUN3     LDM    MSUL,MS     SET UP MAXIMUM UNIT NUMBER 
          LPN    77 
          RAM    SUNC 
          LDC    DVUNL*10000B+TDDB+DVUN  DESCRIPTOR TABLE WORD/COUNT
          RJM    SUL         SET UNIT LIST
          LDM    MSUL,MS     CHECK UNIT COUNT 
          SHN    -6 
          LPN    7
          SBD    T6 
          MJN    PUN1        IF INCORRECT UNIT COUNT
          LDD    T6          SAVE UNIT COUNT-1
          STD    CN+4 
          LDM    MSNT,MS
          SHN    0-13 
          ZJN    PUN4        IF NOT *LDAM* TYPE DEVICE
          LDD    CN          SET *LDAM* STATUS IN EST 
          LPC    7577 
          ADC    200
          STD    CN 
 PUN4     JMP    KWP5        RETURN 
          TITLE  MISCELLANEOUS KEYWORD SUBROUTINES. 
          AODSUB
 AST      SPACE  4,15 
**        AST - ASSEMBLE STATUS.
* 
*         EXIT   (A) = (AB+4) = STATUS. 
*                      0 = ON.
*                      1 = IDLE.
*                      2 = OFF. 
*                      3 = DOWN.
* 
*         USES   KB, ST.
* 
*         CALLS  AKL7.
  
  
 AST1     DATA   C*DOWN*
          LDN    3
          UJN    AST5        SET *DOWN* STATUS
  
 AST2     DATA   C*OFF* 
          LDN    2
          UJN    AST5        SET *OFF* STATUS 
  
 AST3     DATA   C*IDLE*
          LDN    1
          UJN    AST5        SET *IDLE* STATUS
  
 AST4     DATA   C*ON*
          LDN    0
 AST5     STD    AB+4        SET STATUS 
  
 AST      SUBR               ENTRY/EXIT 
          LDC    ASTA-1 
          STD    ST          SET SYNTAX TABLE ADDRESS 
          LDD    KA 
          STD    KB 
          LJM    AKL7        ASSEMBLE STATUS
  
  
 ASTA     CON    AST4 
          CON    AST2 
          CON    AST1 
          CON    AST3 
          CON    0           END OF STATUS SYNTAX TABLE 
          CDRSUB
 CET      SPACE  4,10 
**        CET - CHECK EXTENDED MEMORY TYPE. 
* 
*         ENTRY  (A) = 6/TL,12/TA.
*                      TL = TABLE LENGTH. 
*                      TA = FWA OF TABLE. 
* 
*         EXIT   OPTION MERGED INTO *DILL* BYTE 3.
*                TO *ILL* IF ERROR. 
*                (KA) ADVANCED. 
* 
*         USES   AB, T1, T7.
  
  
 CET      SUBR               ENTRY/EXIT 
          STD    T7 
          SHN    -14
          ADD    T7          SET LWA+1 OF TABLE 
          STD    T1 
          LDI    KA          ASSEMBLE NAME
          SHN    6
          LMM    1,KA 
          STD    AB 
          LDN    2           ADVANCE CHARACTER ADDRESS
          RAD    KA 
 CET1     LCN    3           SEARCH OPTION TABLE
          RAD    T1 
          SBD    T7 
          PJN    CET3        IF MORE OPTIONS
 CET2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CET3     LDI    T1 
          LMD    AB 
          NJN    CET1        IF OPTION NOT FOUND
          LDM    2,T1        CHECK MAINFRAME REQUIREMENTS 
          SHN    -6 
          LPN    7
          SBN    3
          MJN    CET6        IF ECS OR PATH TYPE/CPU TYPE OPTION
          ZJN    CET4        IF LCME
          SBN    4-3
          NJN    CET6        IF NOT UEM 
          LDD    CN+3 
          LMC    2RDE 
          NJN    CET2        IF UEM AND NOT TYPE *DE* 
          LDD    HO 
          SHN    21-13
          PJN    CET6        IF CM EXTENSION ON MAINFRAME 
          UJN    CET2        PROCESS INCORRECT ENTRY
  
 CET4     LDD    HO 
          SHN    21-11
          PJN    CET2        IF NOT CYBER 176 
 CET6     LDM    1,T1        SET MASK 
          STM    CETA 
          LDM    TDDB+DVED   MERGE NEW OPTION INTO *DILL* BYTE 3
          LPC    ** 
 CETA     EQU    *-1
          LMM    2,T1 
          STM    TDDB+DVED
          LJM    CETX        RETURN 
 CSC      SPACE  4,10 
**        CSC - CHECK SEPARATOR CHARACTER.
* 
*         ENTRY  (KA) = ADDRESS OF SEPARATOR CHARACTER
* 
*         EXIT   (A) = 0 IF SEPARATOR CHARACTER IS *,* OR *.*.
  
  
 CSC      SUBR               ENTRY/EXIT 
          LDI    KA 
          LMN    1R.
          ZJN    CSCX        IF *.* 
          LMN    1R,&1R.
          UJN    CSCX        RETURN 
 SUL      SPACE  4,10 
**        SUL - SET UNIT LIST.
* 
*         ENTRY  (A) = 6/LIST WORD COUNT, 12/ LIST WORD ADDRESS.
*                (AB+4) = FIRST UNIT NUMBER.
* 
*         EXIT   (T6) = UNIT COUNT - 1. 
*                UNIT LIST SET IN SPECIFIED ADDRESS.
* 
*         USES   T0, T5, T6.
* 
*         CALLS  SUN. 
  
  
 SUL      SUBR               ENTRY/EXIT 
          STM    SULA        FWA OF LIST
          STD    T5 
          SHN    -14         NUMBER OF WORDS
          RAD    T5          LWA+1 OF LIST
          LDN    0           INITIALIZE UNIT COUNT
          STD    T6 
 SUL1     SOD    T5 
          SBM    SULA 
          MJP    ILL         IF TOO MANY ENTRIES FOR LIST 
          LDD    AB+4 
          STI    T5          SET LOWER UNIT 
          RJM    SUN         GET NEXT UNIT
          MJN    SUL2        IF END OF LIST 
          SHN    6           SET UPPER ENTRY
          RAI    T5 
          RJM    SUN         GET NEXT UNIT
          PJN    SUL1        IF NOT END OF LIST 
 SUL2     SOD    T5 
          SBM    SULA 
          MJN    SULX        IF ALL DONE WITH LIST
          LDN    0           CLEAR EMPTY LIST ENTRIES 
          STI    T5 
          UJN    SUL2        CHECK IF DONE
  
  
 SULA     BSS    1           TABLE ADDRESS STORAGE
 SUN      SPACE  4,20 
**        SUN - SET UNIT NUMBER.
* 
*         ENTRY  (MS) = *TMSD* ADDRESS. 
*                (AB+4) = CURRENT UNIT NUMBER.
* 
*         EXIT   (A) = (AB+4) = NEXT UNIT NUMBER. 
*                    = -1 IF END OF UNITS.
*                (T6) = (T6) + 1 IF NEXT UNIT FOUND.
*                TO *ILL* IF ERROR. 
* 
*         USES   AB+4, KA, T6.
* 
*         CALLS  CDR, CSC.
  
  
 SUN3     SBD    AB+4 
          ZJN    SUN4        IF END OF ENTRIES
          AOD    T6 
          AOD    AB+4 
          ADN    1
 SUN4     SBN    1
  
 SUN      SUBR               ENTRY/EXIT 
          LDD    AB+4 
 SUNB     LPN    0
          NJN    SUN1        IF NUMBER OUT OF RANGE 
 SUNC     LDN    0           MAXIMUM VALUE
          SBD    AB+4 
          MJN    SUN1        IF NUMBER .GT. LIMIT 
 SUNA     LDN    0
          NJN    SUN3        IF RANGE OF ENTRIES
          RJM    CSC
          ZJN    SUN4        IF END OF ENTRIES
          LMN    1R/&1R,
          ZJN    SUN2        IF MORE ENTRIES
 SUN1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 SUN2     AOD    KA 
          LDI    KA 
          SBN    1R8
          PJN    SUN1        IF NULL ENTRY
          RJM    CDR         ASSEMBLE NEXT ENTRY
          AOD    T6 
          LDD    AB+4 
          UJN    SUNX        RETURN 
 VCP      SPACE  4,10 
**        VCP - VALIDATE CHANNEL PAIR.
* 
*         ENTRY  (AB+4) = CHANNEL PAIR NUMBER.
* 
*         EXIT   TO *ILL* IF INCORRECT CHANNEL NUMBER.
* 
*         USES   T1.
  
  
 VCP2     LDD    T1 
          SHN    1
          SBD    AB+4 
          NJN    VCP1        IF NOT VALID CHANNEL PAIR NUMBER 
  
 VCP      SUBR               ENTRY/EXIT 
          LDN    4
          STD    T1 
 VCP1     SOD    T1 
          NJN    VCP2        IF MORE VALID CHANNEL PAIRS
          JMP    ILL         PROCESS INCORRECT ENTRY
 VCN      SPACE  4,10 
**        VCN - VALIDATE CHANNEL NUMBER.
* 
*         ENTRY  (AB+4) = CHANNEL NUMBER. 
* 
*         EXIT   TO *ILL* IF INCORRECT CHANNEL NUMBER.
  
  
 VCN2     ADN    20 
          SBM    .CHN 
          PJN    VCN1        IF NOT LEGAL CHANNEL 
  
 VCN      SUBR               ENTRY/EXIT 
 VCNA     LDN    0
          ZJN    VCN0        IF FIRST CHANNEL 
          LDD    AB+4 
          ZJN    VCN1        IF .EQ. 0
 VCN0     AOM    VCNA 
          LDD    AB+4        GET CHANNEL NUMBER 
          SBN    14 
          MJN    VCNX        IF .LE. 13B
          SBN    20-14
          PJN    VCN2        IF .GE. 20B
 VCN1     JMP    ILL         PROCESS INCORRECT ENTRY
 TVRK     SPACE  4,10 
****      TVRK - TABLE OF VALID AND REQUIRED KEYWORDS.
  
 TVRK     BSS    0
          TBKW   DA,(ST,UN,CH,AP,IB),(UN,CH)
 TVRKL    EQU    *-TVRK 
          TBKW   DB,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DC,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DD,(ST,UN,AP,IB),(UN)
          TBKW   DE,(ST,MA,ET,SZ,AP,MC,TS,IB),(SZ)
          TBKW   DF,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DG,(ST,UN,AP,IB),(UN)
          TBKW   DH,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DI,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DJ,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DK,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DL,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DM,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DN,(ST,EQ,UN,CH,AP,IB),(UN,CH) 
          TBKW   DP,(ST,MA,ET,SZ,CH,AP,MC,TS,IB),(SZ,CH)
          TBKW   DQ,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DR,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DV,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DW,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DX,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DY,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   DZ,(ST,UN,CH,AP,IB),(UN,CH)
          TBKW   EA,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EB,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EC,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   ED,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EE,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EF,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EG,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EH,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EI,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EJ,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EK,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EL,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EM,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EN,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EO,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   EP,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH)
          TBKW   ES,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EU,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EV,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          TBKW   EW,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) 
          CON    0           END OF TABLE 
  
****
 TKWP     SPACE  4,10 
****      TKWP - TABLE OF KEYWORD PARAMETERS. 
  
  
 TKWP     BSS    0
          TBKP   AP,1,DVAP,00B,0000B   APRDECK NUMBER 
 TKWPL    EQU    *-TKWP 
 TKWPA    TBKP   CH,0,1,00B,7777B      CHANNEL(S) 
 TKWPB    TBKP   EQ,0,4,11B,0777B      EQUIPMENT (CONTROLLER) NUMBER
          TBKP   ET,0,DVED,00B,7777B   EXTENDED MEMORY TYPE 
          TBKP   IB,0,5,00B,0000B      INSTALLATION BYTE
          TBKP   MA,0,DVED,11B,6777B   MAINTENANCE MODE 
          TBKP   MC,0,7,00B,7700B      MAINTENANCE CHANNEL
          TBKP   PN,0,10B,6,6077B      PARTITION NUMBER 
          TBKP   ST,0,0,0,7774B        STATUS 
          TBKP   SZ,0,DVNT,00B,0000B   EXTENDED MEMORY SIZE 
          TBKP   TS,0,0,00B,0000B      EXTENDED MEMORY TRACK SIZE 
          TBKP   UN,0,4,00B,7777B      UNIT NUMBER(S) 
          CON    0           END OF TABLE 
  
****
 TRQP     SPACE  4,10 
**        TRQP - TABLE OF REQUIRED PARAMETERS.
* 
*         (TRQP) .NE. 0 IF INITIAL ENTRY OF THIS EQUIPMENT. 
*         (TRQP+1)-(TRQP+KTWC) = REQUIRED KEYWORDS - BIT CORRESPONDING
*         TO *TVRK* BITS SET WHEN KEYWORD IS SPECIFIED. 
  
 TRQP     BSSZ   KTWC+1 
 TBLM     SPACE  4,10 
**        TBLM - GENERATE TABLE OF MASS STORAGE PROCESSING PARAMETERS.
* 
*         TBLM   EQ 
* 
*         ENTRY  (EQ) = MASS STORAGE EQUIPMENT MNEMONIC.
  
  
          PURGMAC  TBLM 
  
 TBLM     MACRO  EQ 
 DT_EQ    VFD    1/SD_EQ,11/2R_EQ 
          CON    /EQ1/P_EQ
          VFD    1/LDAM_EQ,11/NT_EQ 
          VFD    3/BF_EQ,3/PK_EQ-1,6/NU_EQ-1
          CON    CT_EQ
          VFD    1/TT_EQ,11/SL_EQ+PNUN_EQ-1 
          VFD    6/DI_EQ,6/2R"DRN_EQ"-1RD*100 
          VFD    6/C"FW_EQ",6/AI_EQ 
          CON    CYPN_EQ
  
 TBLM     ENDM
 TMSD     SPACE  4,10 
**        TMSD - TABLE OF MASS STORAGE DEVICES. 
*         ENTRY = TMSDL WORDS.
  
*         THE ENTRIES IN *TMSD* ARE REFERENCED WITH THE FOLLOWING TAGS. 
  
  
 TMSD     BSS    0
          LOC    0
  
          BSS    1           1/  SHARED FLAG, 11/ DEVICE MNEMONIC 
 MSPR     BSS    1           12/ PROCESSOR ADDRESS
 MSNT     BSS    1           1/  LDAM FLAG, 11/ NUMBER OF TRACKS
 MSUL     BSS    1           3/  FLAGS, 3/ MAX PACKS, 6/ MAX UNIT NO. 
 MSCT     BSS    1           12/ DEFAULT NUMBER OF CATALOG TRACKS 
 MSSL     BSS    1           1/  FULL TRACK FLAG, 
*                            11/ SECTOR LIMIT + MAX PARTITION NO. 
 MSDI     BSS    1           6/  DRIVER INDEX,
*                            6/  DRIVER NAME (LAST CHARACTER) 
 MSAI     BSS    1           6/  CONTROLWARE LOAD, 6/  ALGORITHM INDEX
 MSCP     BSS    1           12/ CYLINDERS PER PARTITION
 TMSDL    BSS    0           TABLE LENGTH 
          ORG    TMSD 
  
  
          LIST   G
          TBL    "MSEQ" 
          PURGMAC  TBLM 
          LIST   *
  
          CON    0           END OF TABLE 
  
          SPACE  4,10 
          QUAL   *
  
 EQ1S     EQU    *+4-EQXO    *EQ1* SIZE 
 EQ1L     EQU    EQ1S/5+77   *EQ1* OVERLAY LENGTH 
  
          ERRNG  7777-*-4    OVERFLOW WHEN LOADING *EQ1*
          TTL    SET/EQ2 - PROCESS NON-MASS STORAGE *EQXXX=* ENTRY. 
          TITLE 
          IDENT  EQ2,/EQ2/EQM 
          QUAL   EQ2
          ORG    EQXO 
*COMMENT  SET - PROCESS NON-MASS STORAGE *EQXXX=* ENTRY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        MICRO DEFINITIONS.
  
 KWM      MICRO  1,,*CH,CW,DR,EQ,FC,IB,ID,LS,ND,NT,PA,PI,PS,PT,SA,ST,TF,
,TN,UN,W0,W1* 
  
.A        MICCNT KWM
.A        SET    .A+1 
 KWMC     EQU    .A/3        KEYWORD COUNT
  
.A        SET    KWMC+11D 
 KTWC     EQU    .A/12D      KEYWORD TABLE WORD COUNT 
          TITLE  EQUIPMENT DEFINITIONS. 
 EQM      SPACE  4,10 
***       EQXXX=TY,P1=V1,...,PN=VN. 
* 
*         SET NON MASS STORAGE EQUIPMENT XXX WITH 
* 
*                TY = TYPE (2 CHARACTERS) 
* 
*         DEVICE TYPES SUPPORTED -
* 
*                AT = ACS CARTRIDGE MAGNETIC TAPE DRIVE.
*                CC = 6683 SATELLITE COUPLER. 
*                CI = *CYBIS* DEVICE. 
*                CM = CONTROL MODULE. 
*                CP = 415 CARD PUNCH. 
*                CR = 405 CARD READER.
*                CT = CARTRIDGE MAGNETIC TAPE DRIVE.
*                D1 = *CYBIS* DEVICE. 
*                D2 = *CYBIS* DEVICE. 
*                D3 = *CYBIS* DEVICE. 
*                D4 = *CYBIS* DEVICE. 
*                LQ = 512 LINE PRINTER. 
*                LR = 580-12 LINE PRINTER.
*                LS = 580-16 LINE PRINTER.
*                LT = 580-20 LINE PRINTER.
*                LX = 5870 NON-IMPACT PRINTER.
*                LY = 5970 NON-IMPACT PRINTER.
*                MP = MAP III.
*                MT = 7-TRACK MAGNETIC TAPE DRIVE.
*                NC = NAD.
*                ND = CDNA MAINFRAME INTERFACE (MDI). 
*                NI = *CYBIS* DEVICE. 
*                NO = *CYBIS* DEVICE. 
*                NP = 255X NETWORK PROCESSING UNIT. 
*                NT = 9-TRACK MAGNETIC TAPE DRIVE.
*                OD = OPTICAL DISK
*                RM = TWO PORT MULTIPLEXER. 
*                RP = RING PORT.
*                SP = *CYBIS* DEVICE. 
*                SS = MSE M860 CONTROLLER.
*                TT = TIME-SHARING MULTIPLEXER. 
*                     NOTE - THE TERMINAL DRIVER SCANS ONLY THE FIRST 
*                            *N* NUMBER OF PORTS (ZERO THRU *N*)
*                            SPECIFIED BY THE *PT=* KEYWORD WHEN THE
*                            DEVICE TYPE (TY) IS *TT*.  IF NO *PT=* 
*                            KEYWORD IS GIVEN, ALL 64 PORTS ARE 
*                            SCANNED. 
*                ** = NONSTANDARD EQUIPMENT ENTRY.
* 
*         AND PARAMETERS WHERE P1,...,PN ARE THE FOLLOWING KEYWORDS 
* 
*                CH = CHANNEL NUMBER(S).
*                CW = CONTROL MODULE CONTROLWARE. 
*                DR = ACS DRIVE INDEX (WITHIN PANEL). 
*                EQ = EQUIPMENT (CONTROLLER) NUMBER.
*                FC = FORMS CODE. 
*                IB = INSTALLATION BYTE.
*                ID = UNIT RECORD ID. 
*                LS = ACS LSM INDEX (WITHIN ACS). 
*                ND = NPU NODE NUMBER.
*                NT = MDI NODE NUMBER.
*                PA = ACS PANEL INDEX (WITHIN LSM). 
*                PI = PIP INDEX.
*                PS = PAPER SIZE. 
*                PT = PORT NUMBER OR NUMBER OF PORTS. 
*                SA = 255X SAM (SYSTEM AUTOSTART MODULE) STATUS.
*                ST = STATUS. 
*                TF = TAPE FLAGS. 
*                TN = PRINT TRAIN.
*                UN = UNIT NUMBER.
*                W0 = OCTAL VALUE OF EST ENTRY - WORD ZERO. 
*                W1 = OCTAL VALUE OF EST ENTRY - WORD ONE.
  
  
 EQM      BSS    0
          LDN    2           ADVANCE CHARACTER ADDRESS
          RAD    KA 
          RJM    CDR         ASSEMBLE DIGITS
          LMN    1R=
          ZJN    EQM2        IF *=* 
 EQM1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 EQM2     AOD    KA          SKIP CHARACTER 
          LDD    AB+4        CHECK EST ORDINAL
          SBN    NOPE 
          MJN    EQM1        IF PSEUDO EQUIPMENT
          SBK    ESMX-NOPE
          PJN    EQM1        IF EST ORDINAL EXCEEDS MAXIMUM 
          LDD    AB+4        SET EST ORDINAL
          RJM    STA         READ EBUF ENTRY
          RJM    CDR
          LMN    1R.
          NJP    EQM5        IF NOT *EQXXX=.* 
          LDD    AB+4 
          NJN    EQM1        IF *EQXXX = N.*
          RJM    CDC         CLEAR ISMD CHANNELS
          LDN    0
          CRD    CN          CLEAR DEVICE DESCRIPTION 
          CRM    EBUT+5,ON
          ERRNG  5-TDDCL     CODE DEPENDS ON VALUE
          CRM    TDDB,DV
          LDD    EQ 
          LMD    EN 
          NJN    EQM4        IF NOT EXTENDED MEMORY EQUIPMENT 
          STD    EN          CLEAR EST ORDINAL
          STM    EMSC        DE/DP SHIFT COUNT
          LDN    TAXXL       CLEAR EXTENDED MEMORY ALLOCATION TABLES
          STD    T1 
          LDD    EQ 
          LMN    LDEQ 
          NJN    EQM3        IF NOT LINK DEVICE 
          STD    PD 
 EQM3     LDN    0
          STM    TAXM-1,T1
          SOD    T1 
          NJN    EQM3        IF MORE TO CLEAR 
          CRM    EMTY,ON
 EQM4     LJM    EQM19       CLEAR EST
  
*         PROCESS TYPE. 
  
 EQM5     LDI    KA          ASSEMBLE TYPE
          SHN    6
          LMM    1,KA 
          STD    AB+4 
          LDM    EBUT+3 
          ZJN    EQM7        IF EMPTY ENTRY 
          LMD    AB+4 
          ZJN    EQM8        IF NO CHANGE IN DEVICE TYPE
          LDD    AB+4 
          LMC    2R** 
          ZJN    EQM8        IF NONSTANDARD EQUIPMENT ENTRY 
          RJM    CDC         CLEAR ISMD CHANNELS
 EQM7     LDN    0           CLEAR DEVICE DESCRIPTION 
          CRD    CN 
          CRM    EBUT+5,ON
          ERRNG  5-TDDCL     CODE DEPENDS ON VALUE
          CRM    TDDB,DV
          LDD    AB+4 
          STD    CN+3 
          AOM    TRQP        SET INITIAL ENTRY FLAG 
          UJN    EQM10       SEARCH FOR DEVICE
  
 EQM8     LDN    JSNL        MOVE EST ENTRY TO DIRECT CELLS 
          CWM    EBUT,ON
          SBN    1
          CRD    CN 
  
*         SEARCH FOR DEVICE IN EQUIPMENT TYPE TABLE.
  
 EQM10    LDC    TETY-TETYL  SET EQUIPMENT TYPE TABLE 
          STD    MS 
 EQM11    LDN    TETYL       ADVANCE TABLE ADDRESS
          RAD    MS 
          LDI    MS 
          NJN    EQM13       IF NOT END OF TABLE
 EQM12    JMP    ILL         PROCESS INCORRECT ENTRY
  
 EQM13    LMD    AB+4        CHECK TYPE 
          NJN    EQM11       IF NO MATCH
          LDN    2           SKIP EQUIPMENT MNEMONIC
          RAD    KA 
          LDM    EQPR,MS
          STD    T1 
          LDC    TVRK-TVRKL  SET TABLE OF VALID KEYWORDS
          STD    TA 
 EQM16    LDN    TVRKL       ADVANCE TABLE ADDRESS
          RAD    TA 
          LDI    TA 
          ZJN    EQM12       IF END OF TABLE
          LMD    AB+4 
          NJN    EQM16       IF NO MATCH
          LDM    TRQP 
  
**        EXIT TO PROCESSOR WITH -
* 
*                (A) = (TRQP) = PREVIOUS DEFINITION STATUS. 
*                (CN - CN+4) = WORD TO BUILD EST ENTRY. 
*                (TDDB) = BUFFER TO BUILD *TDDE* ENTRY. 
*                (MS) = *TETY* ADDRESS. 
*                (TA) = *TVRK* ENTRY ADDRESS. 
  
          RJM    0,T1 
  
          LDM    TRQP 
          ZJN    EQM20       IF NOT INITIAL ENTRY 
 EQM19    RJM    CML         CHECK MASS STORAGE LIMIT 
          RJM    RMD         RESET MASS STORAGE DEVICE
 EQM20    LDN    JSNL 
          CWD    CN          MOVE EST ENTRY TO BUFFER 
          CRM    EBUT,ON
          RJM    EEB         ENTER EQUIPMENT DEFINITION 
          RJM    EDC         ENTER ISMD CHANNELS
          RJM    CLE         CHECK LAST EQUIPMENT 
          JMP    KBR         RETURN 
 TETY     SPACE  4,10 
****      TETY - TABLE OF EQUIPMENT TYPES.
*         ENTRY = 3 WORDS.
* 
*         12/ NAME, 12/ ADDR, 6/ UN, 6/ CH
*         NAME   EQUIPMENT MNEMONIC 
*         ADDR   ADDRESS OF PROCESSOR 
*         UN     MAXIMUM UNIT NUMBER ALLOWED (2**N-1).
*         CH     MAXIMUM CHANNELS ALLOWED 
* 
*         NOTE - MASS STORAGE DEVICES ARE IN TABLE *TMSD*.
  
  
 TETY     BSS    0
 EQPR     EQU    1           PROCESSOR ADDRESS
  
*         UNIT RECORD DEVICES.
  
          TEQP   CP,KWP,0,1 
 TETYL    EQU    *-TETY 
          TEQP   CR,KWP,0,1 
          TEQP   LQ,LPT,0,1 
          TEQP   LR,LPT,0,1 
          TEQP   LS,LPT,0,1 
          TEQP   LT,LPT,0,1 
          TEQP   LX,LXT,0,1 
          TEQP   LY,LXT,0,1 
  
*         COMMUNICATIONS / NETWORK DEVICES. 
  
          TEQP   CC,ALD,0,1 
          TEQP   NC,NAD,17,1
          TEQP   ND,KWP,0,1 
          TEQP   NP,KWP,0,1 
          TEQP   NQ,KWP,0,1 
          TEQP   RM,ALD,1,1 
          TEQP   TT,ALD,10,1
  
*         *CYBIS* DEVICES.
  
          TEQP   CI,KWP,7,2 
          TEQP   D1,KWP,7,2 
          TEQP   D2,KWP,7,2 
          TEQP   D3,KWP,7,2 
          TEQP   D4,KWP,7,2 
          TEQP   NI,KWP,7,2 
          TEQP   NO,KWP,7,2 
          TEQP   SP,KWP,7,2 
  
*         MAGNETIC TAPE DEVICES.
  
          TEQP   AT,MMT,17,2
          TEQP   CT,MMT,17,2
          TEQP   MT,MMT,17,2
          TEQP   NT,MMT,17,2
  
*         MISCELLANEOUS DEVICES.
  
          TEQP   CM,CMD,0,2 
          TEQP   MP,KWP,0,1 
          TEQP   OD,ALD,17,1 OPTICAL DISK 
          TEQP   RP,KWP,0,1 
          TEQP   SS,KWP,17,2
  
*         INSTALLATION DEFINED DEVICES. 
  
          TEQP   **,KWP,0,0 
  
          CON    0           END OF TABLE 
****
          TITLE  EQUIPMENT DEFINITION PROCESSORS. 
 ALD      SPACE  4,10 
**        ALD - PROCESS ALLOCATABLE DEVICE. 
  
  
 ALD      SUBR               ENTRY/EXIT 
          ZJN    ALD1        IF NOT INITIAL EQUIPMENT ENTRY 
          LDC    2000        SET ALLOCATABLE DEVICE 
          RAD    CN 
 ALD1     RJM    KWP         PROCESS KEYWORDS 
          UJN    ALDX        RETURN 
 CMD      SPACE  4,10 
***       EQXXX=CM. 
  
  
 CMD      SUBR               ENTRY/EXIT 
          LDM    ISPF 
          SHN    21-13
          PJN    CMD2        IF CYBER 810/815/825/830 
 CMD1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CMD2     LDM    TRQP 
          ZJN    CMD3        IF NOT INITIAL ENTRY 
          LDN    CMCW        SET DEFAULT CONTROLWARE
          STD    AB+4 
          LDC    PLCW        SET KEYWORD PARAMETER ADDRESS
          STD    T3 
          RJM    STV         STORE KEYWORD VALUE
 CMD3     RJM    KWP         PROCESS KEYWORDS 
          LDD    CN+4        GET EQUIPMENT NUMBER 
          SHN    -11
          STD    T6 
          LDM    TENB,T6
          ZJN    CMD4        IF UNIQUE EQUIPMENT NUMBER 
          LMD    EQ 
          NJN    CMD1        IF NOT CURRENT EST ORDINAL 
 CMD4     RJM    CDC         CLEAR ISMD CHANNELS
          LDD    EQ          SET EST ORDINAL
          STM    TENB,T6
          LJM    CMDX        RETURN 
 LPT      SPACE  4,10 
***       EQXXX=LQ. 
*         EQXXX=LR-P. 
*         EQXXX=LS-P. 
*         EQXXX=LT-P. 
* 
*         IF *-P* IS PRESENT, SPECIFIES 580 PFC PRINTER.
  
  
 LPT1     AOD    KA 
          LDC    200         SET 580 PFC BIT
          RAD    CN 
 LPT2     RJM    KWP         PROCESS KEYWORDS 
  
 LPT      SUBR               ENTRY/EXIT 
          LDD    CN          CLEAR 580 PFC BIT
          LPC    7577 
          STD    CN 
          LDI    KA          CHECK SEPARATOR
          LMN    1R-
          NJN    LPT2        IF NOT *-* 
          AOD    KA          SKIP *-* 
          LDI    KA          CHECK FOR 580 PFC
          LMN    1RP
          ZJN    LPT1        IF 580 PFC 
          JMP    ILL         PROCESS INCORRECT ENTRY
LXT       SPACE  4,10 
***       EQXXX=LX. 
*         EQXXX=LY. 
  
  
 LXT1     RJM    KWP         PROCESS KEYWORDS 
          LDD    CN+1 
          LPN    37 
          STD    T1 
          LDN    CNCX        SET NO LOAD OF NIP CONTROLWARE 
          STM    TCHS,T1
          RJM    SCC         UPDATE CONTROLWARE TABLE 
  
 LXT      SUBR               ENTRY/EXIT 
          LDD    CN 
          LPN    57 
          LMN    20          SET CONTROLWARE LOAD REQUIRED
          STD    CN 
          LDC    700         FORCE TRAIN = 7
          STD    CN+4 
          UJN    LXT1        COMPLETE PROCESSING
 MMT      SPACE  4,20 
***       EQXXX=MT-N. 
*         EQXXX=NT-N. 
*         EQXXX=CT-N. 
*         EQXXX=AT-N. 
* 
*         *N* CONSECUTIVE EST ENTRIES ARE GENERATED BEGINNING AT *XXX*. 
* 
*         THE *N* UNITS BEGIN WITH THE UNIT NUMBER SPECIFIED BY *UN=* 
*         AND MUST BE NUMBERED CONSECUTIVELY. 
* 
*         FOR *AT* UNITS, THE ACS DRIVE INDEXES FOR THE *N* UNITS 
*         BEGIN WITH THE DRIVE INDEX SPECIFIED BY *DR=* AND MUST BE 
*         NUMBERED CONSECUTIVELY. 
* 
*         FOR *CT* AND *AT* UNITS DEFINED WITH DUAL CHANNEL ACCESS, 
*         THE PRIMARY AND SECONDARY CHANNELS WILL BE REVERSED FOR EACH
*         CONSECUTIVE EST ENTRY GENERATED.
  
  
 MMT      CON    0           ENTRY
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    MMT1        IF *,* 
          LMN    1R-&1R,
          NJN    MMT2        IF NOT *-* 
          AOD    KA 
          RJM    CDR         ASSEMBLE NUMBER OF UNITS 
          LMN    1R,
          NJN    MMT2        IF INCORRECT SEPARATOR 
          LDD    AB+4 
          ZJN    MMT2        IF NULL UNIT COUNT 
          SBN    21 
          PJN    MMT2        IF UNIT COUNT TOO LARGE
          ADN    20 
 MMT1     ADN    1           SET UNIT COUNT 
          STM    MMTA 
          ADD    EQ 
          SBK    ESMX+1 
          MJN    MMT3        IF LAST UNIT DOES NOT EXCEED MAXIMUM 
 MMT2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 MMT3     RJM    KWP         PROCESS KEYWORDS 
          LDD    CN+4 
          LPN    17 
          ADM    MMTA 
          SBN    21 
          PJN    MMT2        IF UNIT NUMBER OVERFLOW
          LDD    CN+3 
          LMC    2RAT 
          NJN    MMT3.1      IF NOT *AT* DEVICE 
          LDM    EBUT+5+2 
          LPN    7
          ADM    MMTA 
          SBN    5
          PJN    MMT2        IF ACS DRIVE INDEX OVERFLOW
 MMT3.1   LDD    EQ 
          STD    T6 
          ADM    MMTA        SET NEXT EST ORDINAL 
          STD    T7 
 MMT4     LDD    EB          READ PREVIOUS EQUIPMENT DEFINITION 
          SHN    5
          ADD    T6 
          SHN    1
          CRD    AB 
          LDD    AB          CHECK ORIGINAL EQUIPMENT STATUS
          SHN    21-13
          MJP    MMT2        IF REDEFINING MS 
          AOD    T6 
          LMD    T7 
          NJN    MMT4        IF NOT END OF UNITS
          RJM    CHD         CHECK ISMT DUAL CHANNEL ERROR
          LDD    CN+1        FIRST CHANNEL
          RJM    CHN         CHECK ISMT DUPLICATE CHANNEL ERROR 
          LDD    CN+2        SECOND CHANNEL 
          ZJN    MMT5        IF NO SECOND CHANNEL 
          RJM    CHN         CHECK ISMT DUPLICATE CHANNEL ERROR 
 MMT5     LDD    EB 
          SHN    5
          ADD    EQ          ENTER TAPE DEFINITION IN EST BUFFER
          SHN    1
          CWD    CN 
          ADN    1
          CWM    EBUT+5,ON
          AOD    CN+4        ADVANCE UNIT NUMBER
          LDD    CN+3 
          LMC    2RAT 
          NJN    MMT5.1      IF NOT *AT* DEVICE 
          AOM    EBUT+5+2    ADVANCE ACS DRIVE INDEX
 MMT5.1   AOD    EQ 
          LMD    T7 
          ZJN    MMT6        IF ALL UNITS DEFINED 
          RJM    RCC         REVERSE CHANNELS FOR CARTRIDGE TAPE
          UJN    MMT5        DEFINE REMAINING UNITS 
  
 MMT6     SOD    EQ 
          RJM    CLE         CHECK LAST EQUIPMENT 
          JMP    KBR         RETURN 
  
 MMTA     CON    0           UNIT COUNT 
 NAD      SPACE  4,15 
**        EQXXX=NC. 
  
  
 NAD      SUBR               ENTRY/EXIT 
          ZJN    NAD1        IF NOT INITIAL EQUIPMENT ENTRY 
          LDC    3000        SET ALLOCATABLE, CONTROLWARE NOT LOADED
          RAD    CN 
 NAD1     RJM    KWP
          LDD    CN+1        CHANNEL NUMBER 
          LPN    37 
          STD    T1 
          LDN    CNND        SET NO LOAD OF NAD CONTROLWARE 
          STM    TCHS,T1
          RJM    SCC
          UJN    NADX        RETURN 
 KWP      SPACE  4,10 
**        KWP - KEYWORD MAIN PROCESSOR. 
* 
*         ENTRY  (KA) = ADDRESS OF SEPARATOR CHARACTER. 
*                (TA) = *TVRK* ENTRY ADDRESS. 
  
  
 KWP      SUBR               ENTRY/EXIT 
 KWP1     AOD    KA 
          LDI    KA          ASSEMBLE KEYWORD 
          SHN    6
          LMM    1,KA 
          STD    AB 
          LDN    2           ADVANCE KEYBOARD BUFFER ADDRESS
          RAD    KA 
          LDI    KA 
          LMN    1R=
          NJN    KWP3        IF INCORRECT SEPARATOR 
          AOD    KA 
          LDC    TKWP-TKWPL 
          STD    T3 
 KWP2     LDN    TKWPL
          RAD    T3 
          LDI    T3 
          NJN    KWP4        IF NOT END OF TABLE
 KWP3     JMP    ILL         PROCESS INCORRECT ENTRY
  
 KWP4     STD    T2 
          LDD    AB 
          LMI    T2 
          NJN    KWP2        IF NOT MATCH 
          RJM    VKW         VALIDATE KEYWORD 
  
*         EXIT TO KEYWORD PROCESSOR.
*         (T3) = ADDRESS OF *TKWP* ENTRY. 
*         (KA) = ADDRESS OF KEYWORD VALUE FIRST CHARACTER.
  
          LJM    1,T2        EXIT TO PROCESSOR
  
*         RETURN FROM KEYWORD PROCESSOR.
*         (KA) = ADDRESS OF SEPARATOR CHARACTER.
  
 KWP5     LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    KWP1        IF NOT END OF ENTRY
          LMN    1R.&1R,
          NJN    KWP3        IF INCORRECT SEPARATOR 
          LDM    TRQP 
          ZJN    KWP7        IF NOT INITIAL ENTRY 
          LDN    KTWC 
          STD    T2 
          LDN    TVRKL
          RAD    TA 
 KWP6     SOD    TA 
          LDI    TA 
          STM    KWPA 
          LDM    TRQP,T2
          LPC    ** 
 KWPA     EQU    *-1
          LMI    TA 
          NJN    KWP3        IF REQUIRED KEYWORD NOT SPECIFIED
          SOD    T2 
          NJN    KWP6        IF MORE KEYWORDS TO CHECK
 KWP7     LDD    CN 
          LPN    3
          LMN    3
          ZJN    KWP9        IF DEVICE IS DOWN
          LDD    CN+1        CHECK PRIMARY CHANNEL
          SHN    21-13
          PJN    KWP9        IF NO PRIMARY CHANNEL
          SHN    21-12-21+13
          PJN    KWP9        IF CHANNEL IS UP 
          LDD    CN+2        CHECK SECONDARY CHANNEL
          SHN    21-13
          PJN    KWP8        IF NO SECONDARY CHANNEL
          SHN    21-12-21+13
          PJN    KWP9        IF CHANNEL IS UP 
 KWP8     JMP    ILL         PROCESS INCORRECT ENTRY
  
 KWP9     LJM    KWPX        RETURN 
          TITLE  MISCELLANEOUS EQUIPMENT DEFINITION SUBROUTINES.
 CDC      SPACE  4,15 
**        CDC - CLEAR ISMD CHANNELS.
* 
*         ENTRY  (EBUT) = PREVIOUS EBUT *CM* EQUIPMENT ENTRY. 
* 
*         EXIT   CHANNEL NUMBERS ARE CLEARED IN ALL ISMD DEVICE ENTRIES 
*                WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT.
* 
*         USES   T1, T2, T3.
* 
*         CALLS  SDC. 
  
  
 CDC      SUBR               ENTRY/EXIT 
          LDM    EBUT+4      SAVE EQUIPMENT NUMBER
          SHN    -11
          STD    T1 
          LDM    EBUT+3 
          LMC    2RCM 
          NJN    CDCX        IF NOT CONTROL MODULE
          STM    TENB,T1     CLEAR EST ORDINAL
          STD    T3 
          LDN    37          SET NO CHANNEL SPECIFIED 
          STD    T2 
          RJM    SDC         SET ISMD CHANNELS
          UJN    CDCX        RETURN 
 CLE      SPACE  4,15 
**        CLE - CHECK LAST EQUIPMENT. 
* 
*         ENTRY  (EQ) = CURRENT EST ORDINAL.
*                (LE) = LAST EQUIPMENT DEFINED. 
*                (CN - CN+4) = CURRENT EQUIPMENT DEFINITION.
* 
*         EXIT   (LE) = CURRENT LAST EQUIPMENT. 
*                (EQ) = CURRENT EST ORDINAL + 1.
* 
*         USES   T5, CN - CN+4. 
* 
*         CALLS  IBF. 
  
  
 CLE3     AOD    EQ          CHECK NEW EQUIPMENT DEFINITION 
          SBD    LE 
          PJN    CLE2        IF ORDINAL .GE. PREVIOUS HIGH
  
 CLE      SUBR               ENTRY/EXIT 
          LDD    CN+3 
          NJN    CLE3        IF DEFINING EQUIPMENT
          AOD    EQ 
          LMD    LE 
          NJN    CLEX        IF NOT CLEARING LAST EQUIPMENT 
 CLE1     SOD    LE 
          SHN    14+1 
          ADD    EB          SEARCH FOR LAST EQUIPMENT
          SHN    6
          CRD    CN 
          LDD    CN+3 
          ZJN    CLE1        IF EQUIPMENT UNDEFINED 
          LDN    1
 CLE2     RAD    LE          UPDATE LAST EQUIPMENT
          STD    T5 
          LDN    UECF        SEND COUNT TO BUFFER PP
          RJM    IBF
          UJN    CLEX        RETURN 
 CML      SPACE  4,10 
**        CML - CHECK MASS STORAGE LIMIT. 
* 
*         ENTRY  (CN - CN+4) = CURRENT EQUIPMENT DEFINITION.
*                (EBUT - EBUT+4) = PREVIOUS EQUIPMENT DEFINITION. 
  
  
 CML      SUBR               ENTRY/EXIT 
          LDI    ES 
          LMD    CN          CHECK REDEFINITION 
          SHN    0-13 
          ZJN    CMLX        IF NO CHANGE IN STATUS 
          AOM    MSLM        ADVANCE MASS STORAGE LIMIT 
          UJN    CMLX        RETURN 
 EDC      SPACE  4,20 
**        EDC - ENTER ISMD CHANNELS.
* 
*         ENTRY  (CN - CN+4) = EQUIPMENT ENTRY. 
*                (EQ) = CURRENT EST ORDINAL.
* 
*         EXIT   (EQ) = CURRENT EST ORDINAL.
*                IF DEVICE TYPE = *CM*, THE CHANNEL NUMBERS ARE SET IN
*                   ALL ISMD ENTRIES WHICH HAVE THE FIRST UNIT ON THIS
*                   *CM* EQUIPMENT. 
* 
*         USES   T1, T2, T3, CM - CM+4. 
* 
*         CALLS  SDC. 
  
  
 EDC      SUBR               ENTRY/EXIT 
          LDD    CN+3 
          LMC    2RCM 
          NJN    EDCX        IF NOT *CM* DEVICE 
          LDD    CN+4        SET EQUIPMENT NUMBER 
          SHN    -11
          STD    T1 
          LDD    CN+1        SET CHANNEL NUMBERS
          STD    T2 
          LDD    CN+2 
          STD    T3 
          RJM    SDC         SET ISMD CHANNELS
          UJN    EDCX        RETURN 
 RCC      SPACE  4,10 
**        RCC - REVERSE CHANNELS FOR CARTRIDGE TAPE.
* 
*         IF *CT* OR *AT* DEVICE WITH DUAL CHANNEL ACCESS DEFINED,
*         REVERSE THE PRIMARY AND SECONDARY CHANNELS. 
* 
*         ENTRY  (CN - CN+4) = FIRST WORD OF EST ENTRY. 
* 
*         EXIT   (CN - CN+4) = UPDATED FIRST WORD OF EST ENTRY. 
* 
*         USES   CN+1, CN+2, T1.
  
  
 RCC      SUBR               ENTRY/EXIT 
          LDD    CN+3 
          LMC    2RCT 
          ZJN    RCC1        IF *CT* EQUIPMENT
          LMC    2RAT&2RCT
          NJN    RCCX        IF NOT *AT* EQUIPMENT
 RCC1     LDD    CN+2 
          ZJN    RCCX        IF NO SECOND CHANNEL 
          STD    T1 
          LDD    CN+1        REVERSE CHANNELS 
          STD    CN+2 
          LDD    T1 
          STD    CN+1 
          UJN    RCCX        RETURN 
 SDC      SPACE  4,15 
**        SDC - SET ISMD CHANNELS.
* 
*         ENTRY  (T1) = *CM* EQUIPMENT NUMBER.
*                (T2) = FIRST CHANNEL.
*                (T3) = SECOND CHANNEL. 
* 
*         EXIT   CHANNEL NUMBERS ARE SET IN ALL ISMD DEVICE ENTRIES 
*                WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT.
* 
*         USES   T5.
* 
*         CALLS  EEB, SID, STA. 
  
  
 SDC2     LDD    T5          RESTORE *EQ* CONTENTS
          RJM    STA
  
 SDC      SUBR               ENTRY/EXIT 
          LDD    EQ          SAVE CONTENTS OF *EQ*
          STD    T5 
          RJM    EEB         SAVE *EBUT*
          LCN    0
 SDC1     RJM    SID         SEARCH FOR ISMD DEVICE 
          MJN    SDC2        IF NONE FOUND
          LDM    TDDB+DVUN+3  GET FIRST UNIT EQUIPMENT NUMBER 
          LPN    70 
          SHN    -3 
          LMD    T1 
          NJN    SDC1        IF NOT THIS *CM* EQUIPMENT NUMBER
          LDD    T2          SET CHANNEL NUMBERS
          STM    EBUT+1 
          LDD    T3 
          STM    EBUT+2 
          RJM    EEB         ENTER EQUIPMENT ENTRY
          UJN    SDC1        FIND NEXT ISMD ENTRY 
 VKW      SPACE  4,10 
**        VKW - VALIDATE KEYWORD. 
* 
*         ENTRY  (TA) = *TVRK* ENTRY ADDRESS. 
*                (T3) = *TKWP* ENTRY ADDRESS. 
*                (KA) = CHARACTER ADDRESS OF KEYWORD VALUE. 
* 
*         EXIT   (A) = (AB+4) = 0, IF NULL VALUE SPECIFIED. 
*                TO *ILL* IF INCORRECT KEYWORD OR NULL VALUE SPECIFIED
*                AND NULL VALUE NOT ALLOWED.
* 
*         USES   T5, T6, T7, AB+4.
* 
*         CALLS  CSC. 
  
  
 VKW      SUBR               ENTRY/EXIT 
          LDM    1,T3        GET KEYWORD BIT POSITION 
          SHN    14 
          LMD    TH 
          ERRNZ  1000-SHNI   ADJUST IF VALUE CHANGES
          STM    VKWA 
          SHN    -14         GET KEYWORD WORD OFFSET
          STD    T6 
          ADD    TA          ADDRESS OF *TVRK* WORD 
          STD    T5 
          LDN    1           GENERATE KEYWORD BIT MASK
 VKWA     SHN    ** 
          STD    T7 
          STM    VKWB 
          STM    VKWC 
          LDI    T5          CHECK IF KEYWORD ALLOWED 
          LPC    0
 VKWB     EQU    *-1
          NJN    VKW2        IF KEYWORD IS ALLOWED
 VKW1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 VKW2     LDC    TRQP        SET KEYWORD SPECIFIED BIT
          RAD    T6 
          LDI    T6 
          LPC    0
 VKWC     EQU    *-1
          NJN    VKW1        IF KEYWORD ALREADY PROCESSED 
          LDD    T7 
          RAI    T6 
          RJM    CSC         CHECK FOR NULL VALUE 
          NJN    VKW3        IF NOT NULL VALUE
          LDM    2,T3        CHECK *TKWP* 
          SHN    21-5 
          PJN    VKW1        IF NULL VALUE NOT ALLOWED
          LDN    0           CLEAR VALUE
          STD    AB+4 
 VKW3     LJM    VKWX        RETURN 
 STV      SPACE  4,10 
**        STV - STORE KEYWORD VALUE.
* 
*         ENTRY  (AB+4) = KEYWORD VALUE.
*                (T3) = ADDRESS OF KEYWORD PARAMETERS.
*                (CN - CN+4) = *EQDE* EST WORD. 
*                (EBUT+5 - EBUT+11) = *EQAE* EST WORD.
* 
*         EXIT   KEYWORD VALUE STORED IN EST ENTRY. 
  
  
 STV      SUBR               ENTRY/EXIT 
          LDM    2,T3 
          SHN    14          SET SHIFT COUNT
          LMD    TH 
          ERRNZ  1000-SHNI   ADJUST IF VALUE CHANGES
          STM    STVB 
          SHN    -14         SET EST ENTRY LOCATION 
          LPN    37 
          STD    T0 
          SBN    5
          MJN    STV1        IF IN *EQDE* WORD
          LDC    EBUT 
          UJN    STV2        PROCESS DATA 
  
 STV1     LDN    CN 
 STV2     ADD    T0 
          STD    T7 
          LDM    3,T3        SET MASK 
          STM    STVA 
          LDI    T7          UPDATE EST ENTRY 
          LPC    ** 
 STVA     EQU    *-1
          STI    T7 
          LDD    AB+4 
 STVB     SHN    **          POSITION KEYWORD VALUE 
          RAI    T7          STORE KEYWORD VALUE
          UJN    STVX        RETURN 
          TITLE  KEYWORD PROCESSORS.
 AOK      SPACE  4,10 
**        AOK - ASSEMBLE OCTAL KEYWORD VALUE. 
* 
*         ENTRY  (A) = 6/MINIMUM VALUE, 12/MAXIMUM VALUE+1
* 
*         EXIT   TO *KWP5*, KEYWORD VALUE STORED. 
*                TO *ILL* IF INCORRECT VALUE. 
* 
*         USES   T6, T7.
* 
*         CALLS  CDR, STV.
  
  
 AOK      BSS    0
          STD    T7          SAVE MAXIMUM VALUE+1 
          SHN    -14
          STD    T6          SAVE MINIMUM VALUE 
          RJM    CDR         ASSEMBLE KEYWORD VALUE 
          LDD    AB+4 
          SBD    T6 
          PJN    AOK2        IF VALUE .GE. MINIMUM
 AOK1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 AOK2     LDD    AB+4 
          SBD    T7 
          PJN    AOK1        IF VALUE .GT. MAXIMUM
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PCH      SPACE  4,10 
***       CH=C1/C2. 
* 
*         CHANNEL NUMBER. 
*         CN = 15B, IF EQUIPMENT TYPE IS *RM*.
*         CN = 0-13B, 20-33B, FOR ALL OTHER EQUIPMENT TYPES.
  
  
 PCH      DATA   H*CH*
          LDN    CN+1        SET CHANNEL BYTE ADDRESS 
          STD    T4 
          LDM    2,MS 
          LPN    77          MAXIMUM CHANNELS ALLOWED 
          ADN    CN+1 
          STD    T3 
          LDN    0           CLEAR CHANNEL BUFFER 
          STD    CN+1 
          STD    CN+2 
          LDD    CN+3 
          LMC    2RRM 
          NJN    PCH7        IF NOT TYPE *RM* 
          RJM    CDR
          LDD    AB+4 
          SBN    15 
          NJN    PCH6        IF INCORRECT CHANNEL NUMBER
          LDC    4000+CHMX
          LJM    PCH9        SET CHANNEL DATA 
  
 PCH5     LDD    T4 
          SBD    T3 
          MJN    PCH7        IF MORE CHANNELS ALLOWED 
 PCH6     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCH7     LDC    4000        SET CHANNEL ACCESSIBLE 
          STI    T4 
          LDI    KA          CHECK SEPARATOR
          SBN    1R8
          PJN    PCH6        IF NULL CHANNEL PARAMETER
          RJM    CDR         ASSEMBLE CHANNEL NUMBER
          RJM    VCN         VALIDATE CHANNEL NUMBER
          LDD    AB+4        APPEND CHANNEL NUMBER
 PCH9     RAI    T4 
          LPN    77          CHECK CHANNEL DATA 
          STD    AB+4 
          LDM    TCST,AB+4
          ZJN    PCH12       IF CHANNEL IS NOT DOWN 
          LDC    3000        MARK CHANNEL DOWN
          RAI    T4 
 PCH12    RJM    CSC         CHECK SEPARATOR CHARACTER
          NJN    PCH13       IF INVALID KEYWORD SEPARATOR 
          JMP    KWP5        RETURN 
  
 PCH13    LMN    1R/&1R,
          NJN    PCH6        IF INVALID SEPARATOR 
          AOD    T4 
          AOD    KA 
          LJM    PCH5        PROCESS NEXT CHANNEL 
 PCW      SPACE  4,10 
***       CW=CC.
* 
*         CONTROL MODULE CONTROLWARE. 
*         CC = *CM*, *NCM*, *C2*, OR *NC2*. 
  
  
 PCW      DATA   H*CW*
          LDN    TCMCL       INITIALIZE TABLE OFFSET
          STD    T7 
          SOD    KA 
          LDN    4
          RJM    ASN
          NJN    PCW2        IF ERROR IN ASSEMBLY 
 PCW1     LCN    3
          RAD    T7 
          PJN    PCW3        IF NOT END OF TABLE
 PCW2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCW3     LDM    TCMC,T7
          LMD    CM 
          NJN    PCW1        IF NO MATCH
          LDM    TCMC+1,T7
          LMD    CM+1 
          NJN    PCW1        IF NO MATCH
          LDM    TCMC+2,T7
          STD    AB+4 
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 TCMC     SPACE  4,10 
*         TCMC - TABLE OF CONTROL MODULE CONTROLWARE TYPES. 
  
  
 TCMC     BSS    0
          VFD    24/0LCM,12/CMCW
          VFD    24/0LNCM,12/CMCW+40
          VFD    24/0LC2,12/C2CW
          VFD    24/0LNC2,12/C2CW+40
 TCMCL    EQU    *-TCMC      TABLE LENGTH 
 PDR      SPACE  4,10 
***       DR=N. 
* 
*         ACS DRIVE INDEX.
*         N = 0-3.
  
  
 PDR      DATA   H*DR*
          LDN    4           SET MAXIMUM VALUE + 1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PEQ      SPACE  4,10 
***       EQ=N. 
* 
*         EQUIPMENT (CONTROLLER) NUMBER.
*         N = 0-7.
  
  
 PEQ      DATA   H*EQ*
          LDN    10          SET MAXIMUM VALUE + 1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PFC      SPACE  4,10 
***       FC=XX.
* 
*         FORMS CODE. 
*         XX = 2 ALPHANUMERIC CHARACTERS IN THE RANGE AA-99.
  
  
 PFC      DATA   H*FC*
          ZJN    PFC3        IF NULL VALUE
          SOD    KA 
          LDN    3           ASSEMBLE FORMS CODE
          RJM    ASN
          NJN    PFC1        IF INCORRECT FORMS CODE
          LDD    T0 
          SBN    2
          ZJN    PFC2        IF 2 CHARACTERS
 PFC1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PFC2     LDD    CM 
          STD    AB+4 
 PFC3     RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PIB      SPACE  4,10 
***       IB=N. 
* 
*         INSTALLATION BYTE.
*         N = 0B - 7777B. 
  
  
 PIB      DATA   H*IB*
          RJM    AOD         ASSEMBLE INSTALLATION BYTE VALUE 
          STM    EBUT+5 
          JMP    KWP5        RETURN 
 PID      SPACE  4,10 
***       ID=N. 
* 
*         UNIT RECORD ID. 
*         N = 0-67B.
  
  
 PID      DATA   H*ID*
          ZJN    PID1        IF NULL VALUE
          RJM    CDR         ASSEMBLE ID
          LDD    AB+4 
          SBN    IDLM 
          MJN    PID1        IF VALID ID
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PID1     RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PLS      SPACE  4,10 
***       LS=N. 
* 
*         ACS LSM INDEX.
*         N = 0-17B.
  
  
 PLS      DATA   H*LS*
          LDN    20          SET MAXIMUM VALUE + 1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PND      SPACE  4,10 
***       ND=N. 
* 
*         NPU NODE NUMBER.
*         N = 1-377B. 
  
  
 PND      DATA   H*ND*
          LDC    1S12+400    SET MINIMUM VALUE, MAXIMUM VALUE+1 
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PNT      SPACE  4,10 
***       NT=N. 
* 
*         MDI NODE NUMBER.
*         N = 1-377B. 
  
  
 PNT      DATA   H*NT*
          LDC    1S12+400    SET MINIMUM VALUE, MAXIMUM VALUE+1 
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PPA      SPACE  4,10 
***       PA=N. 
* 
*         ACS PANEL INDEX.
*         N = 0-23B.
  
  
 PPA      DATA   H*PA*
          LDN    24          SET MAXIMUM VALUE + 1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PPI      SPACE  4,10 
***       PI=N. 
* 
*         PIP INDEX.
*         N = 1-4.
  
  
 PPI      DATA   H*PI*
          LDC    1S12+5      SET MINIMUM VALUE, MAXIMUM VALUE+1 
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PPS      SPACE  4,10 
***       PS=X. 
* 
*         PAPER SIZE. 
*         X = *S* (SHORT) OR *L* (LONG).
  
  
 PPS      DATA   H*PS*
          LDI    KA 
          LMN    1RL
          ZJN    PPS2        IF LONG PAPER
          LMN    1RS&1RL
          ZJN    PPS1        IF SHORT PAPER 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PPS1     LDD    CN 
          SHN    -7          USE PFC FLAG TO SET LAST PFC LOADED FLAG 
          LPN    1
          LMN    2           SET SHORT PAPER FLAG 
 PPS2     STD    AB+4 
          RJM    STV         STORE VALUE
          AOD    KA 
          JMP    KWP5        RETURN 
 PPT      SPACE  4,10 
***       PT=N. 
* 
*         PORT NUMBER OR NUMBER OF PORTS. 
*         N = 0 OR 1 (MULTIPLEXER PORT NUMBER) IF *RM* EQUIPMENT TYPE.
*           = 1-1000B (NUMBER OF PORTS) IF *TT* STIMULATOR. 
  
  
 PPT      DATA   H*PT*
          RJM    CDR         ASSEMBLE PORT NUMBER 
          LDD    CN+3 
          LMC    2RTT 
          ZJN    PPT5        IF *TT* STIMULATOR EQUIPMENT TYPE
          LDD    AB+4        MULTIPLEXER PORT NUMBER
          SHN    -1 
          ZJN    PPT2        IF .LE. 1
 PPT1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PPT2     LCN    1           SET MASK IN *TKWP* ENTRY 
 PPT3     STM    3,T3 
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
  
 PPT5     LDD    AB+4        NUMBER OF PORTS TO STIMULATE 
          ZJN    PPT1        IF .EQ. 0
          SBN    1
          SHN    -11
          NJN    PPT1        IF .GT. 1000B
          LDD    AB+4 
          LPC    777
          STD    AB+4 
          LDC    7000 
          UJN    PPT3        SET MASK 
 PSA      SPACE  4,10 
***       SA=STATUS.
* 
*         255X SYSTEM AUTOSTART MODULE (SAM) FLAG.
*         STATUS = *ON* OR *OFF*. 
* 
*         *ON* = *SAM* IS PRESENT.
*         *OFF* = *SAM* IS ABSENT.
  
  
 PSA      DATA   H*SA*
          RJM    AST         ASSEMBLE *SAM* STATUS
          SHN    21-0 
          PJN    PSA2        IF *ON* OR *OFF* 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PSA2     LMN    1           COMPLEMENT FLAG
          STD    AB+4 
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PST      SPACE  4,10 
***       ST=STATUS.
* 
*         DEVICE STATUS.
*         STATUS = *ON* OR *OFF* OR *DOWN*. 
* 
*         *ON* = EQUIPMENT AVAILABLE FOR ACCESS.
*         *OFF* OR *DOWN* = EQUIPMENT UNAVAILABLE FOR ACCESS. 
  
  
 PST      DATA   H*ST*
          RJM    AST         ASSEMBLE STATUS
          RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 PTF      SPACE  4,10 
***       TF=XXX. 
* 
*         TAPE FLAG.
*         XXX = ATS - DEVICE IS 67X (ATS) UNIT. 
*               FSC - DEVICE IS FSC UNIT. 
*               MTS - DEVICE IS 66X (MTS) UNIT. 
*               IST - DEVICE IS ISMT UNIT.
*               CMTGE - DEVICE IS 698 (CMTS) UNIT.
*               ATSGE - ATS UNIT WITH GE (6250 CPI) CAPABILITY. 
*               FSCGE - FSC UNIT WITH GE (6250 CPI) CAPABILITY. 
  
  
 PTF      DATA   H*TF*
          LDI    KA          ASSEMBLE TAPE FLAG 
          SHN    6
          LMM    1,KA 
          STD    AB 
          LDN    2
          RAD    KA 
          LDI    KA 
          SHN    6
          STD    AB+1 
          AOD    KA 
          LDC    TTFO-3      SEARCH TAPE FLAG OPTION TABLE
          STD    T1 
 PTF1     LDN    3
          RAD    T1 
          LDI    T1          COMPARE FIRST 2 CHARACTERS 
          ZJN    PTF2        IF END OF TABLE
          LMD    AB 
          NJN    PTF1        IF NOT MATCH 
          LDM    1,T1        COMPARE NEXT CHARACTER 
          SCN    77 
          LMD    AB+1 
          NJN    PTF1        IF NOT MATCH 
          LDM    2,T1        SET TAPE FLAG VALUE
          STD    AB+4 
          RJM    CIT         CHECK ISMT DEVICES 
          RJM    CSC         CHECK SEPARATOR CHARACTER
          ZJN    PTF4        IF *,* OR *.*
          LDM    1,T1 
          SHN    21-5 
          MJN    PTF3        IF *GE* ALLOWED
 PTF2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PTF3     LDI    KA 
          SHN    6
          LMM    1,KA 
          LMC    2RGE 
          NJN    PTF2        IF NOT *GE*
          LDN    2
          RAD    KA 
          LDN    4
          RAD    AB+4 
 PTF4     RJM    STV         STORE VALUE
          JMP    KWP5        RETURN 
 TTFO     SPACE  4,10 
**        TTFO - TABLE OF TAPE FLAG OPTIONS.
*         ENTRY = 3 WORDS.
* 
*T,       18/ TO, 1/ GE, 5/, 12/ OV 
*         TO = 3 CHARACTER TAPE FLAG OPTION.
*         GE = GE (6250 CPI) CAPABILITIES ALLOWED.
*         OV = OPTION VALUE.
  
  
 TTFO     BSS    0
          VFD    18/3LATS,1/1,5/0,12/40 
          VFD    18/3LFSC,1/1,5/0,12/60 
          VFD    18/3LMTS,1/0,5/0,12/100
 TTFOA    VFD    18/3LIST,1/1,5/0,12/42 
          VFD    18/3LCMT,1/1,5/0,12/41 
          CON    0
 PTN      SPACE  4,10 
***       TN=N. 
* 
*         PRINTER WITH TRAIN CARTRIDGE N. 
*         N = 0-7.
*             0-3 = CDC GRAPHIC 64-CHARACTER SET. 
*             4-5 = ASCII GRAPHIC 64-CHARACTER SET. 
*             6   = ASCII GRAPHIC 95-CHARACTER SET. 
*             7   = ASCII GRAPHIC 95-CHARACTER SET USED AS AN 
*                   ASCII 64-CHARACTER SET. 
  
  
 PTN      DATA   H*TN*
          LDN    10          SET MAXIMUM VALUE+1
          JMP    AOK         ASSEMBLE KEYWORD VALUE 
 PUN      SPACE  4,10 
***       UN=U1.
* 
*         UNIT NUMBER.
*         UN = 0-77B (MAXIMUM UNIT NUMBER IS DEVICE DEPENDENT). 
  
  
 PUN      DATA   H*UN*
          LDI    KA 
          SBN    1R8
          PJN    PUN1        IF NULL UNIT PARAMETER 
          RJM    CDR         ASSEMBLE UNIT NUMBER 
          RJM    CSC
          NJN    PUN1        IF INCORRECT SEPARATOR 
          LDM    2,MS 
          SHN    -6 
          STM    PUNA 
          SBD    AB+4 
          PJN    PUN2        IF UNIT NUMBER .LE. LIMIT
 PUN1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PUN2     LDD    CN+4        SET UNIT NUMBER
          LPC    *           MASK EXISTING UNIT NUMBER
 PUNA     EQU    *-1
          LMD    CN+4        CLEAR OLD UNIT NUMBER
          LMD    AB+4        ADD NEW UNIT NUMBER
          STD    CN+4 
          JMP    KWP5        RETURN 
  
 PW0      SPACE  4,10 
***       W0=N. 
* 
*         EST ENTRY WORD 0. 
*         N = OCTAL VALUE OF EST ENTRY WORD 0 (20 DIGIT MAXIMUM). 
  
  
 PW0      DATA   H*W0*
          RJM    AOD         ASSEMBLE OCTAL DIGITS
          LDN    JSNL 
          CWD    AB 
          CRD    CN 
          JMP    KWP5        RETURN 
 PW1      SPACE  4,10 
***       W1=N. 
* 
*         EST ENTRY WORD 1. 
*         N = OCTAL VALUE OF EST ENTRY WORD 1 (20 DIGIT MAXIMUM). 
  
  
 PW1      DATA   H*W1*
          RJM    AOD         ASSEMBLE OCTAL DIGITS
          LDN    JSNL 
          CWD    AB 
          CRM    EBUT+5,ON
          JMP    KWP5        RETURN 
          TITLE  MISCELLANEOUS KEYWORD SUBROUTINES. 
          AODSUB
          ASNSUB
 AST      SPACE  4,15 
**        AST - ASSEMBLE STATUS.
* 
*         EXIT   (A) = (AB+4) = STATUS. 
*                      0 = ON.
*                      2 = OFF. 
*                      3 = DOWN.
* 
*         USES   KB, ST.
* 
*         CALLS  AKL7.
  
  
 AST1     DATA   C*DOWN*
          LDN    3
          UJN    AST5        SET *DOWN* STATUS
  
 AST2     DATA   C*OFF* 
          LDN    2
          UJN    AST5        SET *OFF* STATUS 
  
 AST4     DATA   C*ON*
          LDN    0
 AST5     STD    AB+4        SET STATUS 
  
 AST      SUBR               ENTRY/EXIT 
          LDC    ASTA-1 
          STD    ST          SET SYNTAX TABLE ADDRESS 
          LDD    KA 
          STD    KB 
          LJM    AKL7        ASSEMBLE STATUS
  
  
 ASTA     CON    AST4 
          CON    AST2 
          CON    AST1 
          CON    0           END OF STATUS SYNTAX TABLE 
          CDRSUB
 CIT      SPACE  4,10 
**        CIT - CHECK ISMT DEVICES. 
* 
*         ENTRY  (T1) = TAPE FLAG.
*                (MMTA) = UNIT COUNT. 
* 
* 
*         EXIT   TO *ILL* IF ERROR. 
  
  
 CIT      SUBR               ENTRY/EXIT 
          LDD    T1          TAPE FLAG
          LMC    TTFOA
          NJN    CITX        IF NOT ISMT DEVICE 
          LDM    ISPF 
          SHN    21-13
          MJN    CIT1        IF NOT CYBER 170-810/815/825/830 
          LDM    MMTA        UNIT COUNT 
          SBN    1
          ZJN    CITX        IF VALID UNIT COUNT
 CIT1     JMP    ILL         PROCESS INCORRECT ENTRY
 CHN      SPACE  4,10 
**        CHN - CHECK ISMT DUPLICATE CHANNEL ERROR. 
* 
*         ENTRY  (A) = TAPE CHANNEL.
*                (CN - CN+4) = EST ENTRY. 
*                (EB) = *EBUF* POINTER. 
* 
*         USES   T1, T2, AB - AB+4. 
* 
*         CALLS  CKC. 
  
  
 CHN      SUBR               ENTRY/EXIT 
          LPN    37 
          STD    T2 
          LDD    LE          SET START OF SEARCH
          STD    T1 
 CHN1     SOD    T1          DECREMENT EST ORDINAL
          SBN    NOPE 
          MJN    CHNX        IF NO MORE TO CHECK
          LDD    EB          READ EST ENTRY 
          SHN    5
          ADD    T1 
          SHN    1
          ADK    EQDE 
          CRD    AB 
          LDD    AB+3 
          ZJN    CHN1        IF EMPTY ENTRY 
          LMC    2RDE 
          ZJN    CHN1        IF TYPE *DE* 
          LDD    AB+1 
          RJM    CKC         CHECK FIRST CHANNEL
          LDD    AB+2 
          ZJN    CHN1        IF NO SECOND CHANNEL 
          RJM    CKC         CHECK SECOND CHANNEL 
          UJN    CHN1        GET NEXT EST ENTRY 
 CKC      SPACE  4,10 
**        CKC - CHECK CHANNELS. 
* 
*         ENTRY  (A) = CHANNEL DATA.
*                (T1) = EST ORDINAL TO CHECK. 
*                (T2) = CHANNEL TO COMPARE AGAINST. 
*                (EQ) = CURRENT EST ORDINAL.
*                (CN - CN+4) = CURRENT EST ENTRY. 
*                (AB - AB+4) = EST ENTRY TO COMPARE AGAINST.
* 
*         EXIT   TO *ILL* IF ISMT DUPLICATE CHANNEL ERROR.
  
  
 CKC      SUBR               ENTRY/EXIT 
          LPN    77 
          LMD    T2 
          NJN    CKCX        IF NOT SAME CHANNEL
          LDD    EQ          CURRENT EST ORDINAL
          LMD    T1 
          ZJN    CKCX        IF SAME EST ORDINAL
          LDD    CN 
          SHN    21-3 
          MJN    CKC2        IF ISMT
          LDD    AB 
          SHN    21-3 
          PJN    CKCX        IF NOT ISMT ENTRY
 CKC2     JMP    ILL         PROCESS ERROR
 CHD      SPACE  4,10 
**        CHD - CHECK ISMT DUAL CHANNEL ERROR.
* 
*         ENTRY  (CN - CN+4) = EST ENTRY. 
* 
*         EXIT TO *ILL* IF ISMT DUAL CHANNEL ERROR. 
  
  
 CHD      SUBR               ENTRY/EXIT 
          LDD    CN 
          SHN    21-3 
          PJN    CHDX        IF NOT ISMT
          LDD    CN+2 
          ZJN    CHDX        IF SECOND CHANNEL DOES NOT EXIST 
          JMP    ILL         PROCESS ERROR
 CSC      SPACE  4,10 
**        CSC - CHECK SEPARATOR CHARACTER.
* 
*         ENTRY  (KA) = ADDRESS OF SEPARATOR CHARACTER
* 
*         EXIT   (A) = 0 IF SEPARATOR CHARACTER IS *,* OR *.*.
  
  
 CSC      SUBR               ENTRY/EXIT 
          LDI    KA 
          LMN    1R.
          ZJN    CSCX        IF *.* 
          LMN    1R,&1R.
          UJN    CSCX        RETURN 
 VCN      SPACE  4,10 
**        VCN - VALIDATE CHANNEL NUMBER.
* 
*         ENTRY  (AB+4) = CHANNEL NUMBER. 
* 
*         EXIT   TO *ILL* IF INCORRECT CHANNEL NUMBER.
  
  
 VCN2     ADN    20 
          SBM    .CHN 
          PJN    VCN1        IF NOT LEGAL CHANNEL 
  
 VCN      SUBR               ENTRY/EXIT 
 VCNA     LDN    0
          ZJN    VCN0        IF FIRST CHANNEL 
          LDD    AB+4 
          ZJN    VCN1        IF .EQ. 0
 VCN0     AOM    VCNA 
          LDD    AB+4        GET CHANNEL NUMBER 
          SBN    14 
          MJN    VCNX        IF .LE. 13B
          SBN    20-14
          PJN    VCN2        IF .GE. 20B
 VCN1     JMP    ILL         PROCESS INCORRECT ENTRY
 TVRK     SPACE  4,10 
****      TVRK - TABLE OF VALID AND REQUIRED KEYWORDS.
  
 TVRK     BSS    0
  
*         UNIT RECORD DEVICES.
  
          TBKW   CP,(ST,EQ,CH,ID,FC,IB),(EQ,CH) 
 TVRKL    EQU    *-TVRK 
          TBKW   CR,(ST,EQ,CH,ID,IB),(EQ,CH)
          TBKW   LQ,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) 
          TBKW   LR,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) 
          TBKW   LS,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) 
          TBKW   LT,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) 
          TBKW   LX,(ST,EQ,CH,ID,FC,IB),(EQ,CH) 
          TBKW   LY,(ST,EQ,CH,ID,FC,IB),(EQ,CH) 
  
*         COMMUNICATIONS / NETWORK DEVICES. 
  
          TBKW   CC,(ST,EQ,CH,IB),(EQ,CH) 
          TBKW   NC,(ST,CH,IB),(CH) 
          TBKW   ND,(ST,EQ,CH,PI,ND,NT,IB),(EQ,CH,PI,ND,NT) 
          TBKW   NP,(ST,EQ,CH,PI,ND,SA,IB),(EQ,CH,PI,ND,SA) 
          TBKW   NQ,(ST,EQ,CH,PI,ND,SA,IB),(EQ,CH,PI,ND,SA) 
          TBKW   RM,(ST,CH,PT,IB),(CH,PT) 
          TBKW   TT,(ST,EQ,CH,PT,IB),(EQ,CH)
  
*         *CYBIS* DEVICES.
  
          TBKW   CI,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   D1,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   D2,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   D3,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   D4,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   NI,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   NO,(CH,EQ,UN,ST,IB),(CH) 
          TBKW   SP,(CH,EQ,UN,ST,IB),(CH) 
  
*         MAGNETIC TAPE DEVICES.
  
          TBKW   AT,(ST,UN,CH,LS,PA,DR,IB),(UN,CH,LS,PA,DR) 
          TBKW   CT,(ST,UN,CH,IB),(UN,CH) 
          TBKW   MT,(ST,EQ,UN,CH,TF,IB),(EQ,UN,CH,TF) 
          TBKW   NT,(ST,EQ,UN,CH,TF,IB),(EQ,UN,CH,TF) 
  
*         MISCELLANEOUS DEVICES.
  
          TBKW   CM,(EQ,CH,CW,IB),(EQ,CH) 
          TBKW   MP,(ST,CH,IB),(CH) 
          TBKW   OD,(ST,EQ,UN,CH,IB),(ST,EQ,UN,CH)
          TBKW   RP,(ST,CH,IB),(CH) 
          TBKW   SS,(ST,EQ,UN,CH,IB),(EQ,UN,CH) 
  
*         INSTALLATION DEFINED DEVICES. 
  
          TBKW   **,(W0,W1),(W0)
          CON    0           END OF TABLE 
  
****
 TKWP     SPACE  4,10 
****      TKWP - TABLE OF KEYWORD PARAMETERS. 
  
  
 TKWP     BSS    0
          TBKP   CH,0,1,00B,7777B      CHANNEL(S) 
 TKWPL    EQU    *-TKWP 
          TBKP   CW,0,7,00B,0000B      CONTROLWARE
          TBKP   DR,0,7,00B,7770B      ACS DRIVE INDEX
          TBKP   EQ,0,4,11B,0777B      EQUIPMENT (CONTROLLER) NUMBER
          TBKP   FC,1,7,00B,0000B      FORMS CODE 
          TBKP   IB,0,5,00B,0000B      INSTALLATION BYTE
          TBKP   ID,1,4,00B,7700B      UNIT RECORD ID 
          TBKP   LS,0,7,10B,0377B      ACS LSM INDEX
          TBKP   ND,0,4,00B,7400B      NODE NUMBER
          TBKP   NT,0,7,00B,7400B      MDI NODE NUMBER
          TBKP   PA,0,7,03B,7407B      ACS PANEL INDEX
          TBKP   PI,0,7,11B,0777B      PIP INDEX
          TBKP   PS,0,0,10B,6377B      PAGE SIZE
          TBKP   PT,0,4,00B,7777B      PORT / PORT COUNT
          TBKP   SA,0,0,11B,6777B      *SAM* FLAG 
          TBKP   ST,0,0,0,7774B        STATUS 
          TBKP   TF,0,0,02B,7043B      TAPE FLAGS 
          TBKP   TN,1,4,06B,7077B      PRINT TRAIN
          TBKP   UN,0,4,00B,7777B      UNIT NUMBER
          TBKP   W0,0,0,00B,0000B      WORD 0 (FOR **)
          TBKP   W1,0,0,00B,0000B      WORD 1 (FOR **)
          CON    0           END OF TABLE 
  
****
 TRQP     SPACE  4,10 
**        TRQP - TABLE OF REQUIRED PARAMETERS.
* 
*         (TRQP) .NE. 0 IF INITIAL ENTRY OF THIS EQUIPMENT. 
*         (TRQP+1)-(TRQP+KTWC) = REQUIRED KEYWORDS - BIT CORRESPONDING
*         TO *TVRK* BITS SET WHEN KEYWORD IS SPECIFIED. 
  
 TRQP     BSSZ   KTWC+1 
          SPACE  4,10 
          QUAL   *
  
 EQ2S     EQU    *+4-EQXO    *EQ2* SIZE 
 EQ2L     EQU    EQ2S/5+77   *EQ2* OVERLAY LENGTH 
  
          ERRNG  7777-*-4    OVERFLOW WHEN LOADING *EQ2*
          TTL    SET/EQ3 - PROCESS MISCELLANEOUS *EQPDECK* ENTRY. 
          TITLE 
          IDENT  EQ3,/EQ3/EQ3 
          QUAL   EQ3
          ORG    EQXO 
*COMMENT  SET - PROCESS MISCELLANEOUS *EQPDECK* ENTRY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
.ILL      SET    0
.KBR      SET    0
 EQ3      SPACE  4,10 
**        EQ3 - PROCESS MISCELLANEOUS *EQPDECK* ENTRY.
  
  
 EQ3      UJN    /EQP/LOVX   RETURN TO SYNTAX PROCESSOR 
          SPACE  4,10 
**        TSYN - SYNTAX TABLE.
  
  
 TSYN     BSS    0
          CON    ACC
          CON    ACF
          CON    ASR
          CON    AXM
          CON    BML
          CON    CKP
          CON    DFL
          CON    DWN
          CON    ERL
          CON    FAM
          CON    ISH
          CON    LBC
          CON    MSF
          CON    MXS
          CON    PFS
          CON    REM
          CON    SHD
          CON    SYS
          CON    THD
          CON    UEM
          CON    UPC
  
 TSYNA    CON    0
          CON    NEXT 
          CON    IPR
          CON    AUT
          CON    GRN
          CON    RST
          CON    INI
          CON    PRS
          CON    0           END OF TABLE 
          TITLE  CM TABLE AND BUFFER PROCESSORS.
 ACF      SPACE  4,10 
***       ACCOUNT=EQ,BL.
*         DEFINE ACCOUNT DAYFILE RESIDENCE AND CM BUFFER SIZE.
* 
*         EQ     EST ORDINAL, IF FILE IS NOT RECOVERED. 
*                DEVICE CANNOT BE DEFINED AS REMOVABLE. 
*         BL     CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B,
*                DEFAULT = 400B.
  
  
 ACF      DATA   C*ACCOUNT=*
          LDN    1
          UJN    ERL1        PROCESS ACCOUNT LOG DEFINITION 
 BML      SPACE  4,10 
***       MAINLOG=EQ,BL.
*         DEFINE MAINTENANCE LOG RESIDENCE AND CM BUFFER SIZE.
* 
*         EQ     EST ORDINAL, IF FILE IS NOT RECOVERED. 
*                DEVICE CANNOT BE DEFINED AS REMOVABLE. 
*         BL     CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B,
*                DEFAULT = 0. 
  
  
 BML      DATA   C*MAINLOG=*
          LDN    3
          UJN    ERL1        PROCESS MAINTENANCE LOG DEFINITION 
 DFL      SPACE  4,10 
***       DAYFILE=EQ,BL.
*         DEFINE SYSTEM DAYFILE RESIDENCE AND CM BUFFER SIZE. 
* 
*         EQ     EST ORDINAL, IF FILE IS NOT RECOVERED. 
*                DEVICE CANNOT BE DEFINED AS REMOVABLE. 
*         BL     CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B,
*                DEFAULT = 400B.
  
  
 DFL      DATA   C*DAYFILE=*
          LDN    0
          UJN    ERL1        PROCESS DAYFILE LOG DEFINITION 
 ERL      SPACE  4,10 
***       ERRLOG=EQ,BL. 
*         DEFINE ERRLOG DAYFILE RESIDENCE AND CM BUFFER SIZE. 
* 
*         EQ     EST ORDINAL, IF FILE IS NOT RECOVERED. 
*                DEVICE CANNOT BE DEFINED AS REMOVABLE. 
*         BL     CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B,
*                DEFAULT = 200B.
  
  
 ERL      DATA   C*ERRLOG=* 
          LDN    2
 ERL1     STD    T3 
          LDN    NEEQ        PRESET DEFAULT EQUIPMENT 
          STD    T7 
          LDI    KA 
          LMN    1R,
          ZJN    ERL4        IF DEFAULT EQUIPMENT 
          LMN    1R.&1R,
          ZJN    ERL2        IF ZERO LENGTH BUFFER
          SOD    KA 
          RJM    CEM         CHECK FOR MASS STORAGE EQUIPMENT 
          SHN    13-10
          PJN    ERL3        IF NOT REMOVABLE DEVICE
 ERL2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 ERL3     LDD    AB+4        SET EST ORDINAL
          STD    T7 
          LDI    KA 
          LMN    1R.
          ZJN    ERL6        IF DEFAULT (PREVIOUS) BUFFER LENGTH
 ERL4     AOD    KA 
          RJM    ASD
          ZJN    ERL2        IF ZERO LENGTH BUFFER
          LPN    77 
          NJN    ERL2        IF NOT MULTIPLE OF 100B
          LDD    AB+4 
          ADC    -MXDB-1
          PJN    ERL2        IF ENTRY .GT. SYSTEM DEFINED MAXIMUM 
          LDM    .DFB,T3     SET BUFFER LENGTH
          LPN    77 
          LMD    AB+4 
          STM    .DFB,T3
 ERL6     LDD    T7          SET DAYFILE EQUIPMENT
          LMC    4000 
          STM    DFBF,T3
  
*         ENTRY FROM *FAMILY = N* PROCESSOR.
  
 ERL7     LDD    ET 
          SHN    6
          ADN    NEEQ*TDDCL 
          CWM    DFBF,ON
          JMP    KBR         RETURN 
          TITLE  EQUIPMENT DEFINITION ENTRIES.
          SPACE  4,10 
***       THESE ENTRIES MUST BE MADE AFTER EQUIPMENT HAS BEEN DEFINED.
*         THESE DEFINITIONS ARE CLEARED BY *RESET*, AND IF THE
*         EQUIPMENT IS REDEFINED OR DELETED (EQXXX=0.). 
 ACC      SPACE  4,10 
***       ACCESS,LL,UL,X1,X2,...,XN.
* 
*         SETS UPPER AND LOWER SECURITY ACCESS LEVEL LIMITS FOR 
*         EQUIPMENTS X1,X2,...,XN.  THIS ENTRY IS VALID ONLY FOR
*         MASS STORAGE, UNIT RECORD, MAGNETIC TAPE AND MULTIPLEXOR
*         EQUIPMENTS.  THIS ENTRY WILL BE IGNORED ON AN UNSECURE
*         SYSTEM. 
* 
*         XN = EST ORDINAL. 
*         LL = LOWER ACCESS LEVEL LIMIT.
*         UL = UPPER ACCESS LEVEL LIMIT.
  
  
 ACC      DATA   C*ACCESS,* 
          LDN    AB 
          STD    T5 
          SOD    KA 
          LDM    .SSML
          LPN    7
          NJN    ACC1        IF SECURE SYSTEM 
 ACC0     JMP    KBR         RETURN 
  
 ACC1     LDN    10 
          RJM    ASN         ASSEMBLE ACCESS LEVEL LIMIT
          NJN    ACC2        IF MORE THAN 7 CHARACTERS
          LDN    CM          CHECK FOR VALID ACCESS LEVEL 
          RJM    VAL
          MJN    ACC2        IF NO MATCH
          STI    T5 
          LDI    KA 
          LMN    1R,
          NJN    ACC2        IF INCORRECT SEPARATOR 
          AOD    T5 
          SBN    AB+2 
          NJN    ACC1        IF NOT END OF LIMITS 
          LDD    AB+1 
          SBD    AB 
          PJN    ACC3        IF LOWER LIMIT .LE. UPPER LIMIT
 ACC2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 ACC3     LDD    AB          SAVE ACCESS LEVELS 
          SHN    3
          ADD    AB+1 
          STD    CM 
 ACC4     RJM    GNE         GET NEXT EST ORDINAL 
          ZJN    ACC0        IF END OF EST
          MJN    ACC9        IF MASS STORAGE
          LDN    0           CHECK EQUIPMENT TYPE 
          STD    T5 
 ACC8     AOD    T5 
          LDM    TVEQ-1,T5
          ZJN    ACC10       IF END OF TABLE
          LMM    EBUT+3 
          NJN    ACC8        IF NOT MATCH 
 ACC9     LDM    EBUT+10
          SCN    77 
          LMD    CM 
          STM    EBUT+10
          RJM    EEB         UPDATE EQUIPMENT ENTRY 
          UJN    ACC4        CHECK NEXT EQUIPMENT 
  
 ACC10    RJM    IRE         PROCESS RANGE ERROR
 TVEQ     SPACE  4,10 
**        TVEQ - TABLE OF VALID EQUIPMENT TYPES FOR ACCESS LEVELS.
  
 TVEQ     BSS    0
          CON    2RAT 
          CON    2RCP 
          CON    2RCR 
          CON    2RCT 
          CON    2RLQ 
          CON    2RLR 
          CON    2RLS 
          CON    2RLT 
          CON    2RLX 
          CON    2RLY 
          CON    2RMT 
          CON    2RNT 
          CON    2ROD        DEVICE TYPE OPTICAL DISK 
          CON    2RRM 
          CON    2RTT 
          CON    0           END OF EQUIPMENT TYPES 
 ASR      SPACE  4,10 
***       ASR=X,Y,...,Z.
* 
*         DEFINE EQ X,Y,...,Z AS ALTERNATE SYSTEM DEVICES.
*         X - Z EST ORDINALS MUST BE .LT. 40. 
* 
*         NOTE   THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR ASR 
*                DEVICES AND IF SPECIFIED PREVIOUSLY WILL CAUSE 
*                *INCORRECT ENTRY* FOR THIS ENTRY.
*                            *SYSTEM* 
*                            *REMOVE* 
  
  
 ASR      DATA   C*ASR=*
          SOD    KA 
 ASR1     RJM    GNE         GET NEXT EST ORDINAL 
          NJN    ASR2        IF MORE EQUIPMENT
          JMP    KBR         RETURN 
  
 ASR2     PJN    ASR3        IF NOT MASS STORAGE
          SHN    21-12-21+13
          MJN    ASR3        IF SYSTEM DEVICE 
          SHN    12-10
          PJN    ASR4        IF NOT REMOVABLE DEVICE
 ASR3     RJM    IRE         PROCESS INCORRECT RANGE
  
 ASR4     LDM    EBUT+4      SET *ASR* STATUS 
          SCN    10 
          LMN    10 
          STM    EBUT+4 
          LDD    EQ 
          SHN    -5 
          NJN    ASR3        IF EQUIPMENT OUT OF RANGE
          RJM    EEB         ENTER EQUIPMENT IN TABLES
          UJN    ASR1        PROCESS NEXT EQUIPMENT 
 DWN      SPACE  4,10 
***       DOWN,CH=C1,C2,...,CN. 
* 
*         DOWN SPECIFIED CHANNELS.
* 
*         C1 - CN = CHANNEL NUMBER TO BE DOWNED.  A PREFIX OF 
*                   *C* DESIGNATES A CONCURRENT CHANNEL.
  
  
 DWN      DATA   C*DOWN,* 
          LDN    40          INDICATE *DOWN* PROCESSING 
  
*         ENTRY FROM *UPC* FOR COMMON 
*         PROCESSING OF *UP* AND *DOWN*.
  
 DWN1     STD    T6          SAVE UP/DOWN INDICATOR 
          LDC    DWNA 
          RJM    SOT         SEARCH OPTION TABLE
          LDI    KA 
          LMN    1R=
          NJN    DWN5        IF INCORRECT SEPARATOR 
          STD    T5          CLEAR THE UNDO FLAG
          STD    T4          CLEAR ERROR COUNT
 DWN2     STD    T3          ASSUME NORMAL CHANNEL
          AOD    KA 
          STM    DWNB        SAVE COMMAND STRING POINTER
          LDI    KA 
          LMN    1RC
          NJN    DWN3        IF NOT *C* FOR CONCURRENT CHANNEL
          LDN    40          INDICATE CONCURRENT CHANNEL
          STD    T3 
          AOD    KA          SKIP PAST THE *C*
 DWN3     RJM    AOD         ASSEMBLE CHANNEL NUMBER
          ADD    T3 
          STD    AB+4 
          SBN    TCSTL
          PJN    DWN4        IF CHANNEL NUMBER TOO HIGH 
          LDD    AB+4 
          LMD    DH 
          ZJN    DWN4        IF DEADSTART CHANNEL 
          LDM    .DSD 
          LMD    AB+4 
          LPN    77 
          NJN    DWN6        IF NOT DISK DEADSTART (CIP) CHANNEL
 DWN4     LDM    DWNB        POSITION COMMAND LINE POINTER
          STD    KA 
 DWN5     LJM    ILL         RETURN ERROR 
  
 DWN6     LDM    TCST,AB+4
          LMN    40 
          LMD    T6 
          ZJN    DWN9        IF NOT ALREADY IN REQUESTED STATE
 DWN7     LDI    KA 
          LMN    1R,
          ZJP    DWN2        IF NOT LAST CHANNEL
          LJM    KBR         RETURN 
  
 DWN8     LDD    T4 
          ZJN    DWN7        IF NO ERRORS 
          LDD    T5 
          NJN    DWN4        IF UNDO PASS 
          AOD    T5          FLAG UNDO PASS 
          LDN    40          REVERSE THE PROCESSING 
 DWN9     LMD    T6 
          STD    T6 
          STM    TCST,AB+4
          LDN    NOPE-1      INITIALIZE *EST* SEARCH ORDINAL
          STD    EQ 
 DWN10    AOD    EQ          INCREMENT *EST* ORDINAL
          SBD    LE 
          PJN    DWN8        IF END OF *EST*
          LDD    EQ 
          RJM    STA         GET *EST* ENTRY
          LDM    EBUT+3 
          ZJN    DWN10       IF NULL ENTRY
          LMC    2RDE 
          ZJN    DWN10       IF *DE* EQUIPMENT
          LDN    40          SET *NO CHANGE* FLAG 
          STD    AB 
          LDD    ES 
          STD    T3 
 DWN11    AOD    T3 
          LMC    EBUT+3 
          NJN    DWN12       IF ANOTHER CHANNEL TO CHECK
          LDD    AB 
          NJN    DWN10       IF ACCESSIBLE OR NOT CHANGED 
          LDI    ES 
          LPN    3
          LMN    3
          ZJN    DWN10       IF EQUIPMENT IS DOWN 
          AOD    T4          INCREMENT ERROR COUNT
          UJP    DWN10       CONTINUE SCAN OF *EST* 
  
 DWN12    LDI    T3 
          ZJN    DWN11       IF NO CHANNEL PRESENT
          LMD    AB+4        CHANNEL NUMBER 
          LPN    77 
          NJN    DWN13       IF NOT THIS CHANNEL
          LDC    3000        DOWN/UP CHANNEL STATUS 
          LMI    T3 
          STI    T3 
          RJM    EEB         UPDATE *EST* ENTRY 
          LDD    AB          CLEAR *NO CHANGE* FLAG 
          LPN    37 
          STD    AB 
 DWN13    LDI    T3 
          SHN    21-12
          MJN    DWN11       IF THIS CHANNEL IS DOWN
          AOD    AB          INCREMENT ACCESS COUNT 
          UJP    DWN11       CHECK NEXT CHANNEL 
  
  
 DWNA     CON    2RCH 
          CON    0
 DWNB     CON    0
 FAM      SPACE  4,10 
***       FAMILY=NN.
* 
*         SET DEFAULT FAMILY NAME TO NAME ON EQUIPMENT NN.
*         ALL PERMANENT FILE REQUESTS WILL GO TO THIS FAMILY UNLESS 
*         USER HAS INDICATED HE IS USER OF ALTERNATE FAMILY.
*         NOTE   THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR 
*                DEFAULT FAMILY DEVICE AND IF SPECIFIED PREVIOUSLY WILL 
*                CAUSE *INCORRECT ENTRY* FOR THIS ENTRY.
*                            *REMOVE* 
*                            ST = *OFF* 
  
  
 FAM      DATA   C*FAMILY=* 
          SOD    KA 
          RJM    CEM         CHECK IF MASS STORAGE EQUIPMENT
          LPC    402S6
          ZJN    FAM2        IF NOT OFF/DOWN/REMOVABLE
 FAM1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 FAM2     LDI    KA 
          LMN    1R.
          NJN    FAM1        IF NOT *.* 
          LDD    AB+4        SET DEFAULT FAMILY EQUIPMENT 
          STM    .PFNL+3
          LJM    ERL7        SET FAMILY NUMBER
 INI      SPACE  4,25 
***       INITIALIZE,OP,X1,X2,...,XN. 
*         INITIALIZE MASS STORAGE EQUIPMENT *XN* BASED
*         ON THE OPTION *OP*. 
*         OP     FUNCTION 
* 
*         AL     TOTAL INITIALIZE.
*         PF     INITIALIZE PERMANENT FILES.
*         QF     INITIALIZE QUEUED FILES. 
*         DF     INITIALIZE SYSTEM DAYFILE. 
*         AF     INITIALIZE ACCOUNT DAYFILE.
*         EF     INITIALIZE ERRLOG DAYFILE. 
*         MF     INITIALIZE MAINTENANCE LOG.
*         FP     FORMAT PACK (AUTOMATIC SELECTION OF *AL*). 
* 
*         THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD AND WHEN 
*         LEVEL 0 RECOVERY IS SELECTED. 
* 
*         USE *DSD* ONLINE INITIALIZATION COMMANDS FOR ALL
*         OTHER SITUATIONS. 
* 
*         FOR OP=AL THE PARAMETERS ON THE *PF* ENTRY WILL 
*         BE USED TO DESCRIBE THE DEVICE. 
  
  
 INI      DATA   C*INITIALIZE,* 
          LDD    RS 
          NJN    INI2        IF NOT LEVEL 0 
          STD    T4 
          LDC    TINO        SEARCH OPTION TABLE
          RJM    SOT
          STD    T6          SAVE INDEX 
          SBN    TINOA
          SHN    4-22 
          NJN    INI1        IF FULL INITIALIZE OPTION
          LDC    1777 
          STD    T4 
          LMM    TINF,T6     SET MASK 
 INI1     STM    INIA 
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    INI6        IF VALID SYNTAX
 INI2     JMP    ILL         PROCESS INCORRECT ENTRY
  
*         SET EQUIPMENTS TO INITIALIZE. 
  
 INI6     RJM    CEM         CHECK FOR MASS STORAGE EQUIPMENT 
          RJM    CDD         CHECK DEADSTART DEVICE 
          ADD    T4 
          ZJN    INI2        IF FULL INITIALIZE OF DEADSTART DEVICE 
          LDI    ES 
          LPN    3           CHECK DEVICE STATE 
          LMN    3
          ZJN    INI2        IF EQUIPMENT *DOWN*
  
*         SET INITIALIZE OPTION.
  
          LDM    EBUT+4 
          LPC    **          CLEAR BIT TO BE SET
 INIA     EQU    *-1
          LMM    TINF,T6     APPEND NEW OPTION FLAG(S)
          STM    EBUT+4 
          RJM    SPE         ENTER EQUIPMENT IN TABLES
          LDI    KA 
          LMN    1R,
          ZJN    INI6        IF MORE EQUIPMENTS 
          JMP    KBR         RETURN 
          SPACE  4,10 
**        TINO - TABLE OF INITIALIZE OPTIONS. 
  
  
 TINO     BSS    0
          CON    2RAL        FULL INITIALIZE
          CON    2RFP        FORMAT PACK
 TINOA    EQU    *-TINO 
          CON    2RPF        PERMANENT FILES
          CON    2RQF        QUEUE FILES
          CON    2RDF        DAYFILE
          CON    2RAF        ACCOUNT FILE 
          CON    2REF        ERRORLOG 
          CON    2RMF        MAINTENANCE LOG
          CON    0
 TINF     SPACE  4,10 
**        TINF - TABLE OF INITIALIZE FLAGS. 
  
  
 TINF     BSS    0
          CON    MLIAL
          CON    MLFPR+MLIAL
          CON    MLIPF*4
          CON    MLIQF*4
          CON    MLIDF/20 
          CON    MLIAF/20 
          CON    MLIEF/20 
          CON    MLIMF/20 
 ISHARE   SPACE  4,10 
***       ISHARE=X1,X2,...,XN.
* 
*         DEFINE X1,X2,...,XN AS INDEPENDENT SHARED DEVICES.
*         XN MUST BE MASS STORAGE AND OF TYPE FLAGGED IN *TMSD*.
* 
  
 ISH      DATA   C*ISHARE=* 
          LDD    LD 
          LPC    -4000
          ZJN    ISH1        IF NO *SHARE=* ENTRIES 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 ISH1     SOD    KA          CHARACTER STRING ADDRESS 
          LDC    1020        SET INDEPENDENT SHARED DEVICE FLAG 
          RJM    DSC         DEVICE STATUS CHECK
          LDC    4000 
          STD    LD 
          JMP    KBR         RETURN 
 MSF      SPACE  4,10 
***       MSAL,X=E1,E2,... EN.
* 
*         ALLOW ALLOCATION TYPE *X* ON EQUIPMENTS *E1* TO *EN*. 
* 
*         X  =   T FOR TEMPORARY FILES. 
*                I FOR INPUT FILES. 
*                O FOR OUTPUT FILES.
*                R FOR ROLLOUT FILES. 
*                D FOR USER DAYFILES. 
*                P FOR PRIMARY FILES. 
*                L FOR LOCAL FILES. 
*                B FOR *LGO* FILES. 
*                S FOR SECONDARY ROLLOUT FILES. 
* 
*         NOTE   THIS ENTRY IS NOT ALLOWED FOR REMOVABLE EQUIPMENT. 
*                EST ORDINALS *EN* MUST BE .LT. 60. 
  
  
 MSF      DATA   C*MSAL,* 
          LDN    MXRS-1 
          STD    T1 
 MSF1     LDM    TMSF,T1     FIND FILE TYPE 
          LMI    KA 
          ZJN    MSF3        IF FOUND 
          SOD    T1 
          PJN    MSF1        IF NOT END OF TABLE
 MSF2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 MSF3     AOD    KA          CHECK SEPARATOR
          LDI    KA 
          LMN    1R=
          NJN    MSF2        IF INCORRECT SEPARATOR 
          AOD    KA 
          LDD    T1          SET BIT
          ADD    TH 
          ERRNZ  1000-SHNI   ADJUST IF VALUE CHANGES
          STM    MSFA 
          LDN    1
 MSFA     SHN    ** 
 MSF4     STD    T7          SET MASKS
          LMC    -0 
          STM    MSFB 
          LDC    TDDB+DVFA
          STD    T6 
          SOD    KA 
 MSF5     RJM    GNE         GET NEXT EST ORDINAL 
          NJN    MSF6        IF MORE EQUIPMENT
          JMP    KBR         RETURN 
  
 MSF6     PJN    MSF7        IF NOT MASS STORAGE
          SHN    21-10-21+13
          PJN    MSF8        IF NOT REMOVABLE DEVICE
 MSF7     RJM    IRE         PROCESS INCORRECT RANGE
  
 MSF8     LDN    57 
          SBD    EQ 
          MJN    MSF7        IF EQUIPMENT OUT OF RANGE
          LDI    T6 
          LPC    0
 MSFB     EQU    *-1
          LMD    T7 
          STI    T6 
          LPN    1
          ZJN    MSF9        IF NOT TEMPORARY FILES 
          LDI    ES 
          SHN    21-11
          MJN    MSF9        IF SHARED DEVICE 
          LDI    T6 
          LPC    -4000
          LMC    4000 
          STI    T6 
 MSF9     RJM    SPE         UPDATE EQUIPMENT DEFINITION
          UJN    MSF5        PROCESS NEXT EQUIPMENT 
  
 TMSF     INDEX              ALLOCATION TYPE TABLE
          INDEX  TMPS,1RT    TEMPORARY FILES
          INDEX  INPS,1RI    INPUT FILES
          INDEX  OUTS,1RO    OUTPUT FILES 
          INDEX  ROLS,1RR    ROLLOUT FILES
          INDEX  DAYS,1RD    USER DAYFILES
          INDEX  PRIS,1RP    PRIMARY FILES
          INDEX  LOCS,1RL    LOCAL FILES
          INDEX  LGOS,1RB    *LGO* FILES
          INDEX  SROS,1RS    SECONDARY ROLLOUT FILES
          INDEX  MXRS 
 MXS      SPACE  4,10 
***       MAXSHARE=N,B. 
* 
*         DEFINE MAXIMUM NUMBER OF SHARED DEVICES, IF *PRESET* MAY BE 
*         PERFORMED AND NOT ALL SHARED DEVICES ARE DEFINED ON THIS
*         MAINFRAME.
* 
*         N = MAXIMUM TOTAL NUMBER OF SHARED DEVICES (N < 377B).
*         B = OPTIONAL PARAMETER SPECIFYING MAXIMUM NUMBER OF SHARED
*         DEVICES WHICH ARE BUFFERED DEVICES (B .LE. N;  B < 377B). 
  
  
 MXS      DATA   C*MAXSHARE=* 
          RJM    AOD         ASSEMBLE OCTAL DIGITS
          SBK    377
          PJN    MXS1        IF DEVICE COUNT TOO LARGE
          LDD    AB+4 
          STD    T3 
          SBD    NS 
          PJN    MXS2        IF .GE. NUMBER OF SHARED DEVICES 
 MXS1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 MXS2     LDI    KA          CHECK SEPARATOR
          LMN    1R.
          ZJN    MXS3        IF NO OPTIONAL PARAMETER SPECIFIED 
          AOD    KA          SKIP SEPARATOR 
          RJM    ASD         ASSEMBLE DIGITS
          SBK    377
          PJN    MXS1        IF DEVICE COUNT TOO LARGE
          LDD    AB+4 
          SBM    NSBD 
          MJN    MXS1        IF .LT. NUMBER OF SHARED DEVICES 
          LDD    T3 
          SBD    AB+4 
          MJN    MXS1        IF MORE SHARED BUFFERED THAN TOTAL SHARED
          LDD    AB+4        SET MAXIMUM SHARED BUFFERED DEVICE COUNT 
          STM    MSBD 
 MXS3     LDD    T3          SET MAXIMUM SHARED DEVICE COUNT
          STM    MSDC 
          JMP    KBR         RETURN 
 PFS      SPACE  4,30 
***       PF=NNN,TY,DM,SM,FM,DN,NC. 
* 
*         DEFINE PERMANENT FILE FAMILY DEVICE PARAMETERS (TY=F).
* 
*         PF=NNN,TY,FM,NC.
* 
*         DEFINE AUXILIARY PERMANENT FILE DEVICE PARAMETERS (TY = X). 
* 
*         ALL PARAMETERS ARE ORDER DEPENDENT. 
*         THIS ENTRY IS REQUIRED ONLY IF DEVICE IS TO BE INITIALIZED. 
*         PF DESCRIPTIONS WILL BE RECOVERED FROM LABEL IF INITIALIZE
*         IS NOT SPECIFIED. 
* 
*         NNN  EST ORDINAL. 
* 
*         TY   TYPE OF PERMANENT FILE RESIDENCE.
*                *F* = DEVICE IS A FAMILY DEVICE. 
*                *X* = DEVICE IS AUXILIARY (BOTH DIRECTS AND INDIRECTS
*                            ALLOWED) IF TX = X THEN ONLY FM PARAMETER
*                            IS REQUIRED
* 
*         DM   DEVICE MASK - THIS DEFINES WHICH USERS CATALOGS RESIDE 
*                            ON THIS DEVICE.  0 < DM < 377. 
*                            THIS IS NOT ENTERED FOR AUXILIARY DEVICE.
*                            A BIT SET IN DM FIELD DIRECTS TO THIS
*                            DEVICE ALL CATALOGS WHOSE LAST DIGIT 
*                            CORRESPONDS TO BIT POSITION. 
*                            EXAMPLE  DM = 132 CONTAINS USERS WITH USER 
*                            INDEX -
*                            XXX1 
*                            XXX3 
*                            XXX4 
*                            XXX6 
* 
*         SM     SECONDARY MASK  THIS DEFINES WHICH USERS MAY DEFINE
*                            DIRECT ACCESS PERMANENT FILES ON THIS
*                            DEVICE. THE VALIDATION IS PERFORMED
*                            IN THE SAME MANNER AS FOR THE
*                            DEVICE MASK. 
* 
*         FM     FAMILY NAME (1 - 7 CHARACTERS) THIS SHOULD 
*                            BE THE SAME FOR ALL DEVICES IN 
*                            THE FAMILY.
*                            THIS IS PACK NAME IF TY = X. 
* 
*         DN     DEVICE NUMBER  THIS DEFINES UNIQUE DESCRIPTION OF
*                            DEVICE IN FAMILY. ALL DEVICES IN FAMILY
*                            SHOULD HAVE DIFFERENT DN SPECIFIED.
*                            DN = 1-77.  THIS IS NOT ENTERED FOR
*                            AUXILIARY DEVICE.
* 
*         NC     NUMBER OF CATALOG TRACKS  THIS PARAMETER MUST
*                            BE A POWER OF 2 AND NOT GREATER THAN 
*                            200B. THIS PARAMETER IS OPTIONAL WITH
*                            THE DEFAULT BASED ON EQUIPMENT TYPE. 
*                            THIS ENTRY IS MEANINGLESS IF *DM* IS NOT 
*                            DEFINED. 
  
  
 PFS      DATA   C*PF=* 
          SOD    KA 
          RJM    CEM         CHECK IF EQUIPMENT MASS STORAGE
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          NJN    PFS1        IF NOT *,* 
          AOD    KA          SKIP *,* 
  
*         PROCESS *TY*. 
  
          LDI    KA 
          LMN    1RF
          ZJN    PFS3        IF FAMILY DEVICE 
          LMN    1RX&1RF
          ZJN    PFS2        IF *X* 
 PFS1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PFS2     LDN    4           SET AUXILIARY STATUS 
 PFS3     STD    T4 
          AOD    KA          ADVANCE CHARACTER
          LDI    KA 
          LMN    1R,
          NJN    PFS1        IF SEPARATOR NOT *,* 
          LDD    T4 
          ZJN    PFS4        IF NOT AUXILIARY DEVICE
          LDC    377S8       SET DEFAULT MASKS
          UJN    PFS5        PROCESS PACK NAME
  
*         PROCESS *DM*. 
  
 PFS4     AOD    KA          ASSEMBLE DEVICE MASK 
          RJM    AOD
          SHN    -10
          NJN    PFS6        IF OUT OF RANGE
          LDD    AB+4        SET IN DEVICE DESCRIPTION *TDDE* 
          STD    T7 
  
*         PROCESS *SM*. 
  
          AOD    KA          ASSEMBLE *SM*
          RJM    AOD
          SHN    -10
          NJN    PFS6        IF OUT OF RANGE
          LDD    AB+4 
          SHN    10 
          ADD    T7 
 PFS5     STD    T7 
          SHN    -14
          STD    T6 
  
*         PROCESS FAMILY OR PACKNAME. 
  
          LDN    10          ASSEMBLE NAME
          RJM    ASN
          NJN    PFS6        IF .GT. 7 CHARACTERS 
          LDD    CM          CHECK NAME 
          ZJN    PFS6        IF NO CHARACTERS ASSEMBLED 
          LMC    1R0*100
          NJN    PFS7        IF NOT *0* 
 PFS6     JMP    ILL         PROCESS INCORRECT ENTRY
  
*         PROCESS *DN*. 
  
 PFS7     LDD    T4 
          NJN    PFS8        IF AUXILIARY DEVICE
          AOD    KA          ASSEMBLE DEVICE NUMBER 
          RJM    AOD
          LPN    77 
          ZJN    PFS6        IF INCORRECT DEVICE NUMBER 
          RAD    CM+3 
  
*         PROCESS *NC*. 
  
 PFS8     LDI    KA 
          LMN    1R.
          ZJN    PFS9        IF DEFAULT USED
          AOD    KA 
          RJM    ASD
          SHN    4
 PFS9     RAD    T6 
          STM    TDDB+DVPF   SAVE PARAMETERS
          SHN    -14
 PFS10    NJN    PFS6        IF *NC* .GT. 200B
          LDD    T7 
          STM    TDDB+DVPF+1
          LDD    T6 
          SHN    -4 
          ZJN    PFS11       IF *NC* = ZERO 
          LDD    AB+4 
          SHN    21-10
          SHN    1
          PJN    *-1         IF BIT NOT DETECTED
          LPC    376000 
          NJN    PFS10       IF *NC* NOT A POWER OF 2 
 PFS11    LDI    ES 
          SCN    4
          LMD    T4          SET *X* STATUS 
          STI    ES 
          LDD    CM          MOVE NAME TO *TDDE*
          STM    TDDB+DVNM
          LDD    CM+1 
          STM    TDDB+DVNM+1
          LDD    CM+2 
          STM    TDDB+DVNM+2
          LDD    CM+3 
          STM    TDDB+DVDN
          RJM    SPE         UPDATE TABLE IN CM 
          LJM    KBR         RETURN 
 PRS      SPACE  4,10 
***       PRESET. 
* 
*         PRESET LINK DEVICE FOR MULTI-MAINFRAME OPERATION. 
* 
*         PRESET=X,Y,...,Z. 
*         PRESET=X-Z. 
* 
*         PRESET TABLES ON INDEPENDENT SHARED DEVICES X,Y,...,Z.
* 
*         THIS ENTRY IS ALLOWED ONLY FROM THE KEYBOARD. 
  
  
 PRS      DATA   C*PRESET*
          LDD    RS 
          NJN    PRS1        IF NOT LEVEL 0 DEADSTART 
          LDI    KA 
          LMN    1R=
          ZJN    PRS5        IF PRESETTING ISHARED DEVICES
          RJM    CLD         ASSURE LINK DEVICE DEFINED 
          ZJN    PRS1        IF NO SHARED DEVICES 
          LDI    KA 
          LMN    1R.
          ZJN    PRS3        IF NO PARAMETER
 PRS1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PRS3     LDN    1           SET *PRESET* FLAG
          STM    PRSF 
 PRS4     JMP    KBR         RETURN 
  
 PRS5     LDD    LD 
          SHN    0-13 
          ZJN    PRS1        IF NOT ISHARED ENVIRONMENT 
 PRS6     RJM    GNE         GET NEXT EST ORDINAL 
          ZJN    PRS4        IF END OF COMMAND
          PJN    PRS1        IF NOT MASS STORAGE
          SHN    13-4 
          PJN    PRS1        IF NOT ISHARED DEVICES 
          LDM    DVPR+TDDB
          SCN    1
          LMN    1           SET PRESET FLAG
          STM    DVPR+TDDB
          RJM    SPE         RETURN EQUIPMENT ENTRIES 
          UJN    PRS6        NEXT ORDINAL 
 REM      SPACE  4,10 
***       REMOVE=X,Y,...,Z. 
* 
*         DEFINE EQUIPMENTS X,Y,...,Z AS REMOVABLE DEVICES. 
*         THESE EQUIPMENTS WILL BE AVAILABLE TO REMOVE OR INTRODUCE 
*         DEVICES DURING OPERATION OF SYSTEM. 
* 
*         NOTE   THIS DIRECTIVE MUST BE ENTERED BEFORE A MASS STORAGE 
*                DEVICE CAN BE SPECIFIED AS *DOWN* SUCCESSFULLY.
*                DEVICES *DE*, *DP*, *DV* AND *DW* CANNOT BE REMOVABLE. 
*                THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR 
*                REMOVABLE DEVICES AND IF SPECIFIED PREVIOUSLY WILL 
*                CAUSE *INCORRECT ENTRY* FOR THIS ENTRY.
* 
*                            *ASR*
*                            *SYSTEM* 
*                            *TEMP* 
*                            *FAMILY* 
*                            *DAYFILE*
*                            *ACCOUNT*
*                            *ERRLOG* 
*                            *SCKP* 
  
  
 REM      DATA   C*REMOVE=* 
          SOD    KA 
 REM1     RJM    GNE         GET NEXT EST ORDINAL 
          NJN    REM2        IF MORE EQUIPMENT
          JMP    KBR         RETURN 
  
 REM2     PJN    REM3        IF NOT MASS STORAGE
          LPC    2000S6 
          ADM    TDDB+DVFA
          ZJN    REM4        IF NOT SYSTEM OR FILE ALLOCATION DEVICE
 REM3     RJM    IRE         PROCESS INCORRECT RANGE
  
 REM4     LDM    TDDB+DVPR   CHECK CHECKPOINT DEVICE
          LPN    2
          NJN    REM3        IF SYSTEM CHECKPOINT DEVICE
          LDM    EBUT+4 
          LPN    10 
          NJN    REM3        IF ALTERNATE SYSTEM DEVICE 
          LDD    AB+4 
          LMM    .PFNL+3
          ZJN    REM3        IF DEFAULT FAMILY DEVICE 
          LDN    DFBFL-1+MDLL 
          STD    T1 
 REM5     LDM    DFBF,T1
          LPC    777
          LMD    AB+4 
          ZJN    REM3        IF DAYFILE DEVICE
          SOD    T1 
          PJN    REM5        IF NOT END OF DAYFILES 
          LDN    REML-1      CHECK TABLE OF NON-REMOVABLE DEVICES 
          STD    T1 
 REM6     LDM    REMA,T1     CHECK NEXT TABLE ENTRY 
          LMM    EBUT+3 
          ZJN    REM3        IF DEVICE CANNOT BE REMOVABLE
          SOD    T1 
          PJN    REM6        IF NOT END OF TABLE
          LDI    ES 
          LPC    7377 
          LMC    400
          STI    ES 
          RJM    SPE         RETURN EQUIPMENT ENTRY TO TABLES 
          LJM    REM1        MORE EQUIPMENT TO PROCESS
  
  
 REMA     BSS    0           DEVICES THAT CANNOT BE REMOVABLE 
          CON    2RDE 
          CON    2RDP 
          CON    2RDV 
          CON    2RDW 
 REML     EQU    *-REMA      LENGTH OF TABLE
  
 CKP      SPACE  4,10 
***       SCKP=X,Y,...,Z. 
* 
*         *CKP* ASSIGNS THE CHECKPOINT ATTRIBUTE TO DEVICES WITH EST
*         ORDINALS X, Y, ..., Z.  CHECKPOINT DEVICES MUST BE
*         NON-REMOVABLE AND CANNOT BE EXTENDED MEMORY DEVICES.
  
  
 CKP      DATA   C*SCKP=* 
          SOD    KA 
 CKP1     RJM    GNE         GET NEXT EST ORDINAL 
          NJN    CKP2        IF MORE EQUIPMENT
          JMP    KBR         RETURN 
  
 CKP2     PJN    CKP3        IF NOT MASS STORAGE DEVICE 
          SHN    13-10
          MJN    CKP3        IF REMOVABLE DEVICE
          LDM    EBUT+3 
          LMC    2RDE 
          ZJN    CKP3        IF EM DEVICE 
          LMK    2RDP&2RDE
          ZJN    CKP3        IF EM DEVICE 
          LDM    TDDB+DVPR   SET CHECKPOINT DEVICE BIT IN SKELETAL MST
          SCN    2
          LMN    2
          STM    TDDB+DVPR   BACK INTO MST BUFFER 
          RJM    SPE         UPDATE EQUIPMENT DEFINITION
          UJN    CKP1        CHECK FOR MORE EQUIPMENT 
  
 CKP3     RJM    IRE         PROCESS INCORRECT ENTRY
 SHD      SPACE  4,10 
***       SHARE=X1,X2,...,XN. 
* 
*         DEFINE X1,X2,...,XN AS SHARED DEVICES.
*         XN MUST BE MASS STORAGE AND OF TYPE FLAGGED IN *TMSD*.
* 
*         NOTE   THIS ENTRY IS NOT ALLOWED FOLLOWING *PRESET*.
  
  
 SHD      DATA   C*SHARE=*
          LDD    LD 
          SHN    0-13 
          NJN    SHD2        IF ISD PRESENT 
          LDM    PRSF 
          NJN    SHD2        IF LINK DEVICE PRESET
          SOD    KA 
          LDD    TH 
          RJM    DSC         DEVICE STATUS CHECK
          LDN    LDEQ        SET LINK DEVICE NUMBER 
          STD    LD 
          JMP    KBR         RETURN 
  
 SHD2     JMP    ILL         PROCESS INCORRECT ENTRY
 SYSTEM   SPACE  4,10 
***       SYSTEM=X,Y,...,Z. 
*         SET SYSTEM DEVICES TO X, Y, ..., Z. 
*         X - Z MAY BE ANY NON REMOVABLE MASS STORAGE DEVICE. 
*                IF NONE IS SPECIFIED, THE FIRST MASS STORAGE 
*                DEVICE IS USED AS A DEFAULT. 
*                ALL EQUIPMENTS SPECIFIED MUST BE OF SAME TYPE. 
*         X - Z EST ORDINALS MUST BE .LT. 40. 
* 
*         ENTRY IS NOT ALLOWED IF 
*                            ST = *OFF* 
*                            *REMOVE* 
*                            *ASR*
  
  
 SYS      DATA   C*SYSTEM=* 
          SOD    KA 
 SYS1     RJM    GNE         GET NEXT EST ORDINAL 
          NJN    SYS2        IF MORE EQUIPMENT
          JMP    KBR         RETURN 
  
 SYS2     PJN    SYS3        IF NOT MASS STORAGE
          SHN    21-12-21+13
          MJN    SYS1        IF ALREADY SYSTEM DEVICE 
          LPC    402S7
          NJN    SYS3        IF OFF/DOWN/REMOVABLE
          LDM    EBUT+4 
          SHN    21-3 
          MJN    SYS3        IF ALTERNATE SYSTEM DEVICE 
          LDD    EQ 
          SHN    -5 
          NJN    SYS3        IF EQUIPMENT OUT OF RANGE
          LDM    SYDC 
          ZJN    SYS4        IF NO PREVIOUS SYSTEM DEVICES
          LMN    MXSY 
          ZJN    SYS3        IF MAXIMUM SYSTEM DEVICE COUNT 
          LDM    EBUT+3 
          LMM    SYDT 
          NJN    SYS3        IF NOT SAME DEVICE TYPE
          LDM    EBUT+4 
          LMM    SYNU 
          LPN    7
          ZJN    SYS5        IF SAME UNIT COUNT 
 SYS3     RJM    IRE         PROCESS INCORRECT RANGE
  
 SYS4     LDM    EBUT+3      SET SYSTEM DEVICE TYPE 
          STM    SYDT 
          LDM    EBUT+4 
          STM    SYNU 
 SYS5     LDC    2000        SET SYSTEM DEVICE STATUS 
          RAI    ES 
          LDN    1           SET *TSDS* ALLOCATION STATUS 
          SHN    TSDS 
          RAM    TDDB+DVFA
          RJM    SPE         RETURN EQUIPMENT ENTRIES 
          AOM    SYDC        INCREMENT SYSTEM DEVICE COUNT
          LJM    SYS1        CHECK FOR ADDITIONAL SYSTEM DEVICES
 THD      SPACE  4,10 
***       THRESHOLD,OP=XXXX,X1,X2,...,XN. 
* 
*         OP = VF   TO SET VALIDATION FAILURE THRESHOLD.
*              RA   TO SET RESTRICT ACTIVITY THRESHOLD. 
*              LS   TO SET LOW SPACE THRESHOLD. 
*              RE   TO SET RECOVERED ERROR THRESHOLD. 
*              UE   TO SET UNRECOVERED ERROR THRESHOLD. 
*         XXXX = THRESHOLD VALUE. 
*         X1,X2,...,XN = EST ORDINALS OF MS DEVICES.
  
  
 THD      DATA   C*THRESHOLD,*
          LDC    TTHD 
          RJM    SOT         SEARCH TABLE FOR THRESHOLD OPTION
          STD    T6 
          LDI    KA          CHECK SEPARATOR
          LMN    1R=
          NJN    THD1        IF NOT *=* 
          AOD    KA 
          RJM    AOD         ASSEMBLE THRESHOLD VALUE 
          STD    T7 
          SHN    0-13 
          NJN    THD1        IF VALUE TOO LARGE 
          LDI    KA          CHECK NEXT SEPARATOR 
          LMN    1R,
          ZJN    THD3        IF VALID SYNTAX
 THD1     JMP    ILL         INCORRECT ENTRY
  
 THD2     PJN    THD1        IF NOT MASS STORAGE DEVICE 
          LDD    T7          SET ERROR THRESHOLD
          STM    TDDB+DVTH,T6 
          RJM    SPE         UPDATE EQUIPMENT DEFINITION
 THD3     RJM    GNE         CHECK NEXT EST ORDINAL 
          NJN    THD2        IF ANOTHER DEVICE SPECIFIED
          JMP    KBR         RETURN 
  
  
**        TTHD - TABLE OF THRESHOLD IDENTIFIERS.
  
  
 TTHD     INDEX 
          INDEX  DVVF-DVTH,2RVF  VERIFICATION FAILURES
          INDEX  DVRA-DVTH,2RRA  RESTRICTED ACTIVITY
          INDEX  DVLS-DVTH,2RLS  LOW SPACE
          INDEX  DVRE-DVTH,2RRE  RECOVERED ERRORS 
          INDEX  DVUE-DVTH,2RUE  UNRECOVERED ERRORS 
          INDEX  5
          CON    0
 UEM      SPACE  4,10 
***       UEMIN.
* 
*         TOGGLE FULL INITIALIZE STATUS FOR *UEM* EQUIPMENT 
*         ON LEVEL 0 DEADSTART. 
  
  
 UEM      DATA   C*UEMIN.*
          LDD    EN          CHECK FOR UEM PRESENT
          RJM    STA
          ZJN    UEM1        IF EXTENDED MEMORY EQUIPMENT UNDEFINED 
          LDM    EMTY 
          LMN    4
          ZJN    UEM2        IF MEMORY TYPE *UEM* 
 UEM1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 UEM2     LDD    RS 
          NJN    UEM3        IF RECOVERY DEADSTART
          LDM    EBUT+4 
          LPC    MLIAL+17 
          LMC    MLIAL       SET FULL INITIALIZE REQUESTED
          STM    EBUT+4 
          RJM    EEB         UPDATE EQUIPMENT SPECIFICATION 
 UEM3     JMP    KBR         RETURN 
 UPC      SPACE  4,10 
***       UP,CH=C1,C2,...,CN. 
* 
*         UP SPECIFIED CHANNELS PREVIOUSLY DOWNED.
* 
*         C1 - CN = CHANNEL NUMBER TO BE UPPED.  A PREFIX OF
*                   *C* DESIGNATES A CONCURRENT CHANNEL.
  
  
 UPC      DATA   C*UP,* 
          LDN    0           INDICATE *UP* PROCESSING 
          UJP    DWN1        JOIN COMMON *UP*/*DOWN* PROCESSING 
 XM       SPACE  4,20 
***       XM=MID,IIII,UUUUU,EM. 
*         ALLOCATE EXTENDED MEMORY WHERE -
* 
*         MID = MACHINE ID. 
*         IIII = NUMBER OF WORDS/1000B TO ALLOCATE FOR 819/DEMA/895 
*                BUFFERS.  MINIMUM = 40B (16K WORDS). 
*                MAXIMUM = 37770B (8M WORDS). 
*              = 0 IF NO BUFFERS DESIRED. 
*         UUUUU = NUMBER OF WORDS/1000B TO ALLOCATE FOR USER XM.
*                 MAXIMUM = 77740B. 
*         EM = IF PRESENT, FORCE USER EXTENDED MEMORY TO UEM. 
* 
*         XM=MID. 
*         CLEAR ALLOCATION FOR MACHINE *ID*.
  
  
 AXM      DATA   C*XM=* 
          LDC    SHNI+3      PRESET SHIFT INSTRUCTION 
          ADM    EMSC 
          STM    AXMA 
          LDN    ZERL        INITIALIZE TABLE ENTRY 
          CRD    CN 
          SOD    KA 
          RJM    A2C         ASSEMBLE MACHINE ID
 AXM0     ZJP    .ILL        IF NOT SPECIFIED 
          STD    CN 
          LDN    1
          RJM    AVS         ASSEMBLE IOB SIZE
          ZJN    AXM1        IF NO IOB SIZE SPECIFIED 
          STD    CN+4 
          RJM    CFT         CONVERT TO TRACK COUNT 
          SHN    6
          ADD    T0 
          SHN    -5 
          SBD    CN+4 
          SHN    0-21 
          RAD    T0 
          STD    CN+3 
 AXM1     LDN    0
          RJM    AVS         ASSEMBLE USER XM SIZE
          STD    CN+2 
          ZJN    AXM1.1      IF VALUE NOT SPECIFIED 
          LDM    VEFL 
          ZJN    AXM1.1      IF *VE* NOT SPECIFIED
          LDM    VEMZ 
          ADM    VEMZ+1 
          ZJN    AXM0        IF *VE=.* SPECIFIED
 AXM1.1   RJM    A2C         ASSEMBLE OPTIONAL *EM* PARAMETER 
          LMC    2REM 
          NJN    AXM2        IF NO *EM* PARAMETER 
          LDM    EMTY 
          LMN    4
          ZJN    AXM2        IF UEM EST ENTRY PRESENT 
          AOD    CN+1        SET USER XM IN UEM 
  
*         VALIDATE ENTRIES ARE CONSISTENT FOR MAINFRAME AND EM TYPE.
  
 AXM2     LDD    ID 
          LMD    CN 
          NJN    AXM6        IF NOT FOR THIS MACHINE
  
*         *EM* REQUIRES CME MACHINE.
  
          LDD    CN+1 
          ZJN    AXM3        IF NOT *EM*
          LDD    HO 
          SHN    21-13
          MJN    AXM5        IF NOT CME 
  
*         I/O BUFFERS REQUIRE CPU ACCESS EQUIPMENT. 
  
 AXM3     LDD    CN+4 
          ZJN    AXM4        IF NO I/O BUFFERS
          LDD    EN 
          ZJN    AXM5        IF NO CPU ACCESS EQUIPMENT 
  
*         USER XM REQUIRES CPU ACCESS, UNLESS IT-S IN UEM WITH NO EST.
  
 AXM4     LDD    CN+2 
          ZJN    AXM8        IF NO USER XM
          LDD    EN 
          NJN    AXM8        IF CPU ACCESS EQUIPMENT
          LDD    CN+1 
          NJN    AXM8        IF *EM*
 AXM5     JMP    ILL
  
*         VALIDATE ENTRIES FOR ANOTHER MACHINE. 
*         I/O BUFFERS OR USER XM REQUIRES LINK DEVICE.
  
 AXM6     LDD    CN+4 
          ADD    CN+2 
          ZJN    AXM7        IF NO I/O BUFFERS OR USER XM 
          LDD    PD 
          ZJN    AXM5        IF NO LINK DEVICE
          LDN    0
 AXM7     STD    CN+1        CLEAR POSSIBLE USER XM IN UEM FLAG 
  
*         LOCATE PROPER ENTRY IN TABLE. 
  
 AXM8     LDN    0
          STD    T3          CLEAR POINTER TO EMPTY SLOT
          STD    T4 
          LDD    CN 
          LMD    ID 
          ZJN    AXM11       IF ENTRY FOR THIS MACHINE, USE FIRST SLOT
  
*         SEARCH EXTENDED MEMORY ALLOCATION TABLE FOR MATCHING ID 
*         OR EMPTY SLOT.
  
 AXM9     LDN    5
          RAD    T4          ADVANCE SEARCH 
          ADK    -TAXML 
          MJN    AXM10       IF NOT END OF TABLE
          LDD    T3 
          ZJN    AXM5        IF NO FREE ENTRY 
          STD    T4 
          LJM    AXM15       MOVE ENTRY TO TABLE
  
 AXM10    LDM    TAXM,T4
          LMD    CN 
          ZJN    AXM15       IF MATCHING ENTRY FOUND
          LMD    CN 
          NJN    AXM9        IF SLOT USED 
          LDD    T3 
          NJN    AXM9        IF FREE ENTRY FOUND
          LDD    T4 
          STD    T3          SAVE POINTER TO EMPTY SLOT 
          UJN    AXM9        LOOP 
  
*         PROCESS ENTRY FOR THIS MACHINE. 
  
 AXM11    LDD    T5          SET SHIFT COUNT FROM *AVS* 
          STM    UESC 
          LDM    EMTY 
          LMN    4
          ZJN    AXM15       IF UEM PRESENT, PRESERVE ITS SIZE
          LDD    CN+1 
          NJN    AXM13       IF INTERNAL USER EXTENDED MEMORY SPECIFIED 
          LDM    TAXM+1      CHECK PRIOR *XM* ENTRY 
          ZJN    AXM15       IF NO PRIOR INTERNAL USER EM DEFINITION
          LDN    0
          UJN    AXM14       CLEAR UEM SIZE 
  
 AXM13    LDD    CN+2        GET USER EXTENDED MEMORY SIZE
 AXMA     SHN    3           CONVERT BACK TO 100B WORD BLOCKS 
*         SHN    3+EMSC      (EMSC = EXTENDED MEMORY SHIFT COUNT) 
 AXM14    STM    UEMZ+1      SET/CLEAR UEM REQUIRED SIZE
          SHN    -14
          STM    UEMZ 
  
*         ENTER *XM* ENTRY IN *TAXM* TABLE. 
  
 AXM15    LDN    CN 
          STD    T1 
          LDD    CN+2 
          ADD    CN+4 
          NJN    AXM16       IF NOT CLEARING ENTRY
          STD    CN          CLEAR MACHINE ID 
 AXM16    LDI    T1          MOVE ENTRY TO *TAXM* TABLE 
          STM    TAXM,T4
          AOD    T4 
          AOD    T1 
          SBN    CN+5 
          NJN    AXM16       IF MORE BYTES TO MOVE
          RJM    CMS
          ZJN    AXM17       IF NO ERROR
          JMP    ERR         ERROR EXIT 
  
 AXM17    JMP    KBR         RETURN 
          TITLE  MISCELLANEOUS SUBROUTINES. 
 ACM      SPACE  4,10 
**        ACM - ADJUST CENTRAL MEMORY.
* 
*         EXIT   (FL - FL+1) = EXECUTION FIELD LENGTH.
* 
*         USES   T1 - T4. 
  
  
 ACM      SUBR               ENTRY/EXIT 
          LDD    FL 
          STM    MCMS 
          LDD    FL+1        SAVE MINCM VALUE 
          STM    MCMS+1 
          LCN    0           SET MAXIMUM NOS FL TO 2097088
          STD    T2 
          LPN    7
          STD    T1 
          LDM    UEMZ+1 
          ADM    UEMZ 
          ZJN    ACM1        IF NO UEM DEFINED
          LDD    MZ+1 
          LPN    7           ADJUST FOR 1000B WORD UEM BOUNDARY 
 ACM1     STD    T4 
          LDM    VEMZ+1      FIND MEMORY NOT ALLOCATED TO VE OR UEM 
          ADM    UEMZ+1 
          RAD    T4 
          SHN    -14
          ADM    VEMZ 
          ADM    UEMZ 
          STD    T3 
          LDD    MZ+1 
          SBD    T4 
          STD    FL+1 
          PJN    ACM1.1      IF NO BORROW 
          AOD    T3          ADJUST FOR BORROW
          AOD    FL+1 
 ACM1.1   LDD    MZ 
          SBD    T3 
          STD    FL 
          LDD    T1          COMPARE WITH MAXIMUM USABLE NOS FL 
          STD    T3 
          LDD    FL+1 
          SBD    T2 
          STD    T4 
          PJN    ACM2        IF NO BORROW 
          AOD    T3          ADJUST FOR BORROW
          AOD    T4 
 ACM2     LDD    FL 
          SBD    T3 
          STD    T3 
          MJN    ACM4        IF NO UNUSED MEMORY AVAILABLE FOR NOS/VE 
          LDM    VEFL 
          ZJN    ACM3        IF NOS/VE NOT DEFINED
          LDD    T4 
          RAM    VEMZ+1      ADJUST NOS/VE MEMORY SIZE
          SHN    -14
          ADD    T3 
          RAM    VEMZ 
 ACM3     LDD    T1          ADJUST NOS MEMORY SIZE 
          STD    FL 
          LDD    T2 
          STD    FL+1 
 ACM4     LDD    FL 
          ZJN    ACM5        IF MACHINE FL .LT. 262K
          LDD    HO 
          SHN    0-13 
          ZJN    ACM5        IF CME MAINFRAME 
          LCN    0           SET NOS MEMORY SIZE TO 262K - 100B 
          STD    FL+1 
          LDN    0
          STD    FL 
 ACM5     LDD    FL+1 
          ADM    UEMZ+1 
          SHN    -14
          ADD    FL 
          ADM    UEMZ 
          SHN    -3 
          NJN    ACM6        IF EXPANDED MODE NEEDED
          LDM    EMSC 
          ADD    TH 
          ERRNZ  SHNI-1000
          STM    ACMB 
          LDM    EMFL 
          ZJN    ACM7        IF EXPANDED MODE NOT NEEDED
 ACMB     SHN    0
*         SHN    EMSC 
          SBN    1
          SHN    -14         CHECK FOR EMFL GT 2MW
          ZJN    ACM7        IF EXPANDED MODE NOT NEEDED
 ACM6     LDK    PSNI 
          STM    ACMD 
          LDM    CMDL        GET MODEL NUMBER 
          SBN    40 
          ZJP    ACM11       IF CYBER 835 
          SBN    77-40
          PJN    ACM10       IF CYBER 990 
          LDM    C8XX 
          ZJN    ACM8        IF CYBER 800 TYPE MAINFRAME
          LDD    HO 
          SHN    21-13
          PJN    ACM8        IF CYBER 865/875 
          LDC    PJNI+ACM13-ACMC
          STM    ACMC        ERROR, IF ECS AND .GT. 2MW XM
 ACM7     LDM    CMDL 
          SBN    77 
          PJN    ACM10       IF CYBER 990 
          LDD    HO 
          LPC    100         CHECK FOR A CYBER 170 TYPE MAINFRAME 
          NJN    ACM9        IF NOT A CYBER 170 TYPE MAINFRAME
          LDN    CFGL 
          CRD    CM 
          LDD    CM+3 
          SHN    21-12       GET ESM MODE BIT 
 ACMC     PJN    ACM9        IF ECS AND NOT ESM 
*         PJN    ACM13       (IF ECS MODE AND .GT. 2MW) 
 ACM8     LDN    1           SET EXPANDED ADDRESSING MODE 
          STM    EMAF 
 ACM9     LJM    ACMX        RETURN 
  
 ACM10    LDM    C9LM 
          NJN    ACM15       IF LARGE CYBER 990 
 ACMD     UJN    ACM9        RETURN 
*         PSN                (IF .GE. 2MW CM) 
 ACM11    LDD    FL          SUBTRACT UEM FROM CM 
          SBM    UEMZ 
          STD    FL 
          SBM    MCMS        CHECK FOR TOO LITTLE MEMORY AVAILABLE
          MJN    ACM13       IF MORE XM REQUESTED THAN AVAILABLE
          LDD    FL 
          SHN    14 
          ADD    FL+1 
          SBM    UEMZ+1 
          STD    FL+1 
          SHN    -14
          STD    FL 
          SHN    14 
          ADD    FL+1 
          SBM    MCMS+1      CHECK FOR TOO LITTLE MEMORY AVAILABLE
 ACM12    PJN    ACM9        IF VALID MEMORY SIZE REMAINING 
 ACM13    LDC    2RXM 
          STM    CMSA 
          LDC    CMSA 
 ACM14    LJM    DSE         DISPLAY ERROR MESSAGE AND HANG 
  
 ACM15    LDM    TAXM+2 
          NJN    ACM12       IF USER XM PRESENT 
          LDC    ACME 
          UJN    ACM14       DISPLAY ERROR MESSAGE
  
  
 ACME     DATA   C*USER XM REQUIRED.* 
  
          ERRPL  ACM13-ACMC-40  JUMP OUT OF RANGE 
          AODSUB
          ASDSUB
          ASNSUB
 AVS      SPACE  4,10 
**        AVS - ASSEMBLE AND VALIDATE SIZE PARAMETER. 
* 
*         ENTRY  (A) = 0 IF PROCESSING USER EM SIZE.
*                    = 1 IF PROCESSING IO BUFFER SIZE.
*                (KA) = CURRENT CHARACTER STRING ADDRESS. 
* 
*         EXIT   (A) = 0 IF END OF STRING, ELSE ASSEMBLED SIZE/*EMBS*.
*                (T5) = USER EM SHIFT COUNT REQUIRED FOR USER EM SIZE 
*                       TO FIT IN 11 BITS.
* 
*         ERROR  TO *ILL* IF INCORRECT SIZE ENTRY.
* 
*         CALLS  AOD. 
  
  
 AVS6     LDD    LD 
          LPC    777
          NJN    AVS7        IF LINK DEVICE DEFINED 
          LDM    EMSC 
          STM    LDSH        USE EM DEVICE WITH CPU ACCESS
 AVS7     LDC    SHNI+3 
          SBM    EMSC 
          STM    AVSA 
          LDD    AB+3        RETURN SIZE PARAMETER VALUE
          SHN    14 
          LMD    AB+4 
 AVSA     SHN    3           ALLOW FOR BLOCKING FACTOR
*         SHN    3-EMSC 
          ADN    7
          SHN    -3 
          STD    T0 
          SHN    -14
          NJN    AVS1        IF VALUE TOO LARGE 
          LDD    T0 
  
 AVS      SUBR               ENTRY/EXIT 
          STD    T5 
          LDI    KA 
          SBN    1R.
          ZJN    AVSX        IF NO ENTRY
          AOD    KA          ADVANCE CHARACTER ADDRESS
          RJM    AOD         ASSEMBLE SIZE PARAMETER
          LDD    AB+3        VALIDATE SIZE PARAMETER
          SCN    7
          NJN    AVS1        IF SIZE TOO LARGE
          LDD    T5 
          ZJN    AVS2        IF PROCESSING USER XM SIZE 
          LDD    AB+3 
          SHN    14 
          LMD    AB+4 
          ZJN    AVSX        IF NO IOB SIZE SPECIFIED 
          SBN    40 
          MJN    AVS1        IF IOB SIZE .LT. 16K WORDS 
          SBK    37771-40 
          MJN    AVS5        IF IOB SIZE .LT. 8M WORDS
 AVS1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 AVS2     LDD    AB+3 
          SHN    14 
          LMD    AB+4 
          ADC    -77741 
          PJN    AVS1        IF USER XM SIZE .GT. MAXIMUM 
          ADC    77741
          SHN    -13
          ZJN    AVS4        IF .LE. 1M WORDS 
 AVS3     STD    T0 
          AOD    T5          INCREASE EM SHIFT COUNT
          LDD    T0 
          SHN    -1 
          NJN    AVS3        IF XM SIZE NOT YET DETERMINED
 AVS4     LDD    EN 
          NJN    AVS5        IF XM DEVICE DEFINED 
          LDD    T5 
          ZJN    AVS5        IF NO SHIFT REQUIRED 
          SBN    1
          STM    EMSC 
 AVS5     UJP    AVS6        RETURN SIZE PARAMETER VALUE
 A2C      SPACE  4,10 
**        A2C - ASSEMBLE TWO CHARACTER VALUE. 
* 
*         ENTRY  KA = CURRENT CHARACTER STRING ADDRESS. 
* 
*         EXIT   (A) = VALUE ASSEMBLED. 
*                TO *ILL* IF SEPARATOR NOT *.* OR *,* OR IF 
*                VALUE LONGER THAN TWO CHARACTERS.
* 
*         CALLS  ASN. 
  
  
 A2C1     LDD    CM          RETURN VALUE 
  
 A2C      SUBR
          LDI    KA 
          SBN    1R.
          ZJN    A2CX        IF NOTHING TO ASSEMBLE 
          LDN    3
          RJM    ASN         ASSEMBLE VALUE 
          ZJN    A2C1        IF .LE. 2 CHARACTERS AND PROPER SEPARATOR
          JMP    ILL         PROCESS INCORRECT ENTRY
 CDD      SPACE  4,10 
**        CDD - CHECK DEADSTART DISK. 
* 
*         ENTRY  (DF) = DEADSTART FUNCTION. 
*                (DH) = DEADSTART CHANNEL.
* 
*         EXIT   (A) = 0 IF DEADSTART DEVICE. 
  
  
 CDD      SUBR               ENTRY/EXIT 
          LDD    DF 
          LPC    700
          NJN    CDDX        IF NOT DISK DEADSTART
          LDI    ES 
          SHN    -6 
          LPN    42 
 CDD1     LMN    42 
          NJN    CDDX        IF NOT MASS STORAGE / *LDAM* DEVICE
          LDM    EBUT+1 
          LMD    DH 
          LPN    77 
          ZJN    CDD2        IF MATCH ON PRIMARY CHANNEL
          LDM    EBUT+2 
          ZJN    CDD1        IF NO SECONDARY CHANNEL
          LMD    DH 
          LPN    77 
          NJN    CDDX        IF NO MATCH ON SECONDARY CHANNEL 
 CDD2     LDD    DF 
          LPN    77 
          LMM    TDDB+DVUN+3
          UJN    CDDX        RETURN 
          CDRSUB
 CDT      SPACE  4,10 
**        CDT - CHECK DEADSTART TAPE. 
* 
*         ENTRY  (DF) = DEADSTART FUNCTION. 
*                (DH) = DEADSTART CHANNEL.
* 
*         EXIT   (A) = 0 IF DEADSTART DEVICE. 
  
  
 CDT      SUBR               ENTRY/EXIT 
          LDM    EBUT+3      CHECK EQUIPMENT TYPE 
          SHN    14 
          LMC    1LT+1RN
          ZJN    CDT2        IF *NT*
 CDT1     LMN    1RM&1RN
          NJN    CDTX        IF NOT *MT*
 CDT2     LDM    EBUT+4 
          LMD    DF          CHECK CONNECT CODE 
          LPC    7017 
          NJN    CDTX        IF NO MATCH ON EQUIPMENT AND UNIT
          LDM    EBUT+1      CHECK 1ST CHANNEL
          LMD    DH 
          LPN    37 
          ZJN    CDTX        IF MATCH ON 1ST CHANNEL
          LDM    EBUT+2 
          ZJN    CDT1        IF NO SECOND CHANNEL 
          LMD    DH 
          LPN    37 
          UJN    CDTX        RETURN 
 CEM      SPACE  4,10 
**        CEM - CHECK FOR MASS STORAGE. 
* 
*         EXIT   (A) = (EBUT) WITH BIT 13 SHIFTED TO SIGN POSITION. 
*                (MS) = *TMSD* TABLE ADDRESS. 
*                (AB+4) = EST ORDINAL.
  
  
 CEM2     LDD    AB+4        FETCH EQUIPMENT DEFINITION 
          RJM    STA
          LDI    ES 
          SHN    21-13
          PJN    CEM1        IF NOT MASS STORAGE
  
 CEM      SUBR               ENTRY/EXIT 
          AOD    KA 
          RJM    AOD         ASSEMBLE EST ORDINAL 
          SBD    LE 
          MJN    CEM2        IF VALID EST ORDINAL 
 CEM1     JMP    ILL         PROCESS INCORRECT ENTRY
 CLD      SPACE  4,10 
**        CLD - CHECK LINK DEVICE DEFINED FOR MMF OPERATION.
* 
*         EXIT   (A) = 0 IF NO SHARED DEVICES.
* 
*         ERROR  TO *DDE*.
* 
*         NOTES  IF (NS) .NE. 0 AND A LINK DEVICE IS DEFINED
*                CORRECTLY, SHARED STATUS WILL BE SET IF THE
*                LINK DEVICE IS NOT ALREADY SHARED. 
* 
*         CALLS  EEB, STA.
  
  
 CLD      SUBR               ENTRY/EXIT 
          LDD    LD 
          LMC    4000 
          ZJN    CLDX        IF ISD PRESENT 
          LDD    NS 
          ZJN    CLDX        IF NO SHARED DEVICES 
          LDN    LDEQ        CHECK LINK DEVICE TYPE 
          RJM    STA
          ZJN    CLD4        IF NO EQUIPMENT DEFINED
          LDM    TDDB+DVED   CHECK EXTENDED MEMORY TYPE 
          SHN    -6 
          LPN    7
          ZJN    CLD3        IF NOT EXTENDED MEMORY 
          SBN    3
          ZJN    CLD3        IF LCME
          LDI    ES 
          SHN    21-1 
          MJN    CLD3        IF DEVICE *OFF* OR *DOWN*
          SHN    2+21-11
          MJN    CLDX        IF SHARED STATUS SET PREVIOUSLY
          LDD    TH          SET SHARED STATUS
          RAI    ES 
          RJM    EEB         RETURN EQUIPMENT ENTRY 
          AOD    NS          ADVANCE SHARED DEVICE COUNT
          UJP    CLDX        RETURN 
  
 CLD3     LDN    CLDB-CLDA   SET ERROR MESSAGE ADDRESS
 CLD4     ADC    CLDA 
          LJM    DDE         DISPLAY DEADSTART ERROR
  
  
 CLDA     DATA   C*NO LINK DEVICE DEFINED.* 
 CLDB     DATA   C*LINK DEVICE INCORRECTLY DEFINED.*
 CME      SPACE  4,10 
**        CME - CHECK *MMF* ENVIRONMENT.
* 
*         ERROR  TO *DDE*.
* 
*         CALLS  CLD. 
  
  
 CME      SUBR               ENTRY/EXIT 
          RJM    CLD
          ZJN    CMEX        IF NOT ECS MMF ENVIRONMENT 
          LDM    EBUT+4 
          SCN    17 
          ZJN    CMEX        IF LINK DEVICE NOT BEING INITIALIZED 
          LDM    PRSF 
          NJN    CMEX        IF PRESET SPECIFIED
          LDC    CMEA 
          LJM    DDE         DISPLAY DEADSTART ERROR
  
  
 CMEA     DATA   C*INITIALIZE OF LINK DEVICE REQUIRES PRESET.*
 COD      SPACE  4,10 
**        COD - CONVERT OCTAL TO DISPLAY CODE.
* 
*         ENTRY  (A) = FWA OF ERROR MESSAGE.
*                (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. 
* 
*         EXIT   (KM) = ERROR MESSAGE ADDRESS.
  
  
 COD      SUBR               ENTRY/EXIT 
          STD    KM 
          LDD    EQ          UNPACK FIRST TWO DIGITS
          SHN    -3 
          STD    T0 
          SHN    3
          LMD    T0 
          SCN    70 
          ADC    2R00        CONVERT DIGIT
          STM    1,KM 
          LDD    EQ          UNPACK THIRD DIGIT 
          LPN    7
          SHN    6
          ADC    2R0         CONVERT DIGIT
          STM    2,KM 
          UJN    CODX        RETURN 
 DCM      SPACE  4,10 
**        DCM - DISPLAY CONVERTED MESSAGE.
* 
*         ENTRY  (A) = ADDRESS OF ERROR MESSAGE.
*                (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. 
* 
*         EXIT   TO *DDE*.
* 
*         CALLS  COD. 
  
  
 DCM      RJM    COD         CONVERT OCTAL TO DISPLAY 
          LDD    KM 
*         UJN    DDE
          ERRNZ  DDE-*       IF CODE NOT CONTIGUOUS 
 DDE      SPACE  4,10 
**        DDE - DISPLAY DEADSTART ERROR.
* 
*         ENTRY  (A) = ADDRESS OF ERROR MESSAGE.
* 
*         EXIT   TO *ATD3*. 
  
  
 DDE      STD    KM          SET MESSAGE ADDRESS
          LDN    0
          STD    DS          FORCE DISPLAY
          STD    DP 
          LJM    ATD3        PROCESS KEYBOARD ASSEMBLY
 DSC      SPACE  4,10 
**        DSC - DEVICE STATUS CHECK.
* 
*         ENTRY  (A) = BITS TO SET IN BYTE 0 OF EST ENTRY.
* 
*         EXIT   (MS) = *TMSD* BUFFER ADDRESS IF MASS STORAGE.
*                (AB+4) = EST ORDINAL.
* 
*         USES   NS, T7.
* 
*         CALLS  GNE, IRE, SPE. 
  
  
 DSC      SUBR               ENTRY/EXIT 
          STD    T7 
 DSC1     RJM    GNE         GET NEXT EST ORDINAL 
          ZJN    DSCX        IF NO MORE EQUIPMENT 
          PJN    DSC3        IF NOT MASS STORAGE
          SHN    21-11-21+13
          MJN    DSC1        IF ALREADY DEFINED AS SHARED 
          LDM    TDDB+DVCT   CHECK FOR VALID DEVICE TYPE
          SHN    21-13
          PJN    DSC3        IF INCORRECT DEVICE TYPE 
          LDD    T7 
          RAI    ES 
          LPN    20 
          ZJN    DSC4        IF NOT INDEPENDENT SHARED DEVICE 
          LDM    EBUT+3 
          LMC    2RDE 
          ZJN    DSC3        IF EXTENDED MEMORY 
          LMK    2RDP&2RDE
          NJN    DSC4        IF NOT EXTENDED MEMORY 
 DSC3     RJM    IRE         PROCESS INCORRECT RANGE
  
 DSC4     AOD    NS          INCREMENT SHARED DEVICE COUNT
          LDI    ES 
          LPN    40 
          ZJN    DSC5        IF NOT BUFFERED DEVICE 
          AOM    NSBD        INCREMENT SHARED BUFFERED DEVICE COUNT 
 DSC5     LDM    TDDB+DVFA   CLEAR TEMP - NONSHARED STATUS
          LPC    -4000
          STM    TDDB+DVFA
          RJM    SPE         SYNCHRONIZE PARTITIONS AND ENTER EQUIPMENT 
          UJP    DSC1        PROCESS NEXT EQUIPMENT 
 GNE      SPACE  4,15 
**        GNE - GET NEXT EST ORDINAL. 
* 
*         ENTRY  (KA) = ADDRESS OF SEPARATOR. 
* 
*         EXIT   (A) = (EBUT) WITH BIT 13 SHIFTED TO SIGN POSITION, 
*                      IF MASS STORAGE EQUIPMENT. 
*                    = 1, IF NOT MASS STORAGE EQUIPMENT.
*                    = 0, IF NO MORE EQUIPMENTS.
*                (EQ) = EST ORDINAL.
* 
*         USES   AB+3, AB+4, EQ, KA.
* 
*         CALLS  AOD, CDR, STA. 
  
  
 GNE6     LDD    AB+4 
          STD    EQ 
          SBD    LE 
          MJN    GNE7        IF VALID EST ORDINAL 
          RJM    IRE         PROCESS INCORRECT RANGE
  
 GNE7     LDD    AB+4 
          RJM    STA
          LDM    EBUT+3 
          NJN    GNE8        IF ENTRY NOT NULL
          LDM    GNEA 
          NJN    GNE1        IF PROCESSING A RANGE OF ORDINALS
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 GNE8     LDI    ES 
          SHN    21-13
          MJN    GNEX        IF MASS STORAGE
          LDN    1
  
 GNE      SUBR               ENTRY/EXIT 
          LDM    GNEA 
          ZJN    GNE2        IF NOT PROCESSING RANGE
 GNE1     AOD    AB+4 
          LDM    GNEA 
          SBD    AB+4 
          PJN    GNE3        IF NOT END OF RANGE
          LDN    0
          STM    GNEA 
 GNE2     LDI    KA 
          LMN    1R.         CHECK SEPARATOR
          ZJN    GNEX        IF *.* 
          AOD    KA 
          RJM    CDR         ASSEMBLE EST ORDINAL 
          LMN    1R,         CHECK SEPARATOR
          ZJN    GNE3        IF *,* 
          LMN    1R.&1R,
          ZJN    GNE3        IF *.* 
          LMN    1R-&1R.
          NJN    GNE4        IF NOT *-* 
          LDD    AB+4        SAVE EST ORDINAL 
          STD    EQ 
          AOD    KA 
          RJM    AOD         ASSEMBLE LAST EST ORDINAL
          STM    GNEA        SAVE LAST EST ORDINAL
          SBK    ESMX 
          PJN    GNE4        IF EST ORDINAL EXCEEDS MAXIMUM 
          LDD    EQ 
          STD    AB+4        RESTORE CURRENT EST ORDINAL
          SBM    GNEA 
          PJN    GNE4        IF INCORRECT RANGE 
 GNE3     LJM    GNE6        READ EST ENTRY 
  
 GNE4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 GNEA     CON    0           LAST EST ORDINAL IN RANGE
 IRE      SPACE  4,10 
**        IRE - INCORRECT RANGE ERROR.
* 
*         ENTRY  (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. 
* 
*         EXIT   TO *ERR*.
* 
*         CALLS  COD. 
  
  
 IRE      EQU    *-1
          LDC    IREA 
          RJM    COD
          JMP    ERR
  
  
 IREA     DATA   C*EQXXX - INCORRECT ENTRY* 
 SDF      SPACE  4,10 
**        SDF - SET DEFAULT MASS STORAGE DEVICE.
* 
*         EXIT   (DFMS) = FIRST NONREMOVABLE MASS STORAGE DEVICE. 
* 
*         ERROR  TO *DDE*.
* 
*         USES   EQ.
* 
*         CALLS  STA. 
  
  
 SDF3     LPC    402S6
          NJN    SDF2        IF OFF/DOWN/REMOVABLE
          LDM    EBUT+3 
          LMC    2RDE 
          ZJN    SDF2        IF EXTENDED MEMORY 
          LMK    2RDP&2RDE
          ZJN    SDF2        IF EXTENDED MEMORY 
          LDD    EQ 
          SBN    40 
          PJN    SDF2        IF ORDINAL OUT OF RANGE
          ADN    40 
          STM    DFMS        SET DEFAULT DEVICE 
  
 SDF      SUBR               ENTRY/EXIT 
          LDN    NOPE 
          STD    EQ 
 SDF1     LDD    EQ          FETCH EQUIPMENT ENTRY
          RJM    STA
          LDI    ES 
          SHN    21-13
          MJN    SDF3        IF MASS STORAGE
 SDF2     AOD    EQ          INCREMENT ORDINAL
          LMD    LE 
          NJN    SDF1        IF NOT END OF EST
          LDC    SDFA 
          LJM    DDE         DISPLAY DEADSTART ERROR
  
  
 SDFA     DATA   C*NO SYSTEM DEVICE DEFINED.* 
 SDS      SPACE  4,10 
**        SDS - SEARCH FOR DEADSTART DEVICE.
* 
*         EXIT   (AB+4) = EST ORDINAL OF DEADSTART DEVICE.
* 
*         ERROR  TO *DDE*.
* 
*         USES   AB+4.
* 
*         CALLS  CDD, CDT, STA. 
  
  
 SDS      SUBR               ENTRY/EXIT 
          LDN    NOPE 
          STD    AB+4 
 SDS1     LDD    AB+4        READ EQUIPMENT ENTRY 
          RJM    STA
          LDI    ES 
          LPN    3
          LMN    3
          ZJN    SDS2        IF DEVICE *DOWN* 
          RJM    CDD         CHECK DEADSTART DISK 
          ZJN    SDSX        IF MS DEVICE IDENTIFIED
          RJM    CDT         CHECK DEADSTART TAPE 
          ZJN    SDSX        IF TAPE UNIT FOUND 
 SDS2     AOD    AB+4        ADVANCE EST ORDINAL
          LMD    LE 
          NJN    SDS1        IF NOT END OF EST
          LDC    SDSA 
          LJM    DDE         DISPLAY DEADSTART ERROR
  
  
 SDSA     DATA   C*DEADSTART DEVICE UNDEFINED.* 
 SOT      SPACE  4,15 
**        SOT - SEARCH OPTION TABLE.
* 
*         ENTRY  (A) = FWA OF PARAMETER TABLE.
*                ((KA - KA+1)) = PARAMETER NAME.
* 
*         EXIT   (A) = INDEX OF ENTRY FOUND.
*                (T2) = TABLE ADDRESS OF ENTRY FOUND. 
*                (T1) = ((T2)) = PARAMETER NAME.
*                (KA) = KEYBOARD BUFFER ADDRESS ADVANCED. 
* 
*         USES   T3.
  
  
 SOT2     LDN    2           ADVANCE BUFFER ADDRESS 
          RAD    KA 
          LDD    T2          RETURN WITH INDEX
          SBD    T3 
  
 SOT      SUBR               ENTRY/EXIT 
          STD    T2 
          STD    T3          SAVE FWA OF TABLE
          LDI    KA 
          SHN    6
          LMM    1,KA        ASSEMBLE PARAMETER NAME
          STD    T1 
          LDI    T2 
 SOT1     LMD    T1 
          ZJN    SOT2        IF MATCH FOUND 
          AOD    T2 
          LDI    T2 
          NJN    SOT1        IF NOT END OF TABLE
          JMP    ILL         INCORRECT ENTRY
          TITLE  MISCELLANEOUS ENTRIES. 
 AUT      SPACE  4,10 
***       AUTOLOAD. 
*         TOGGLE SELECTION OF AUTOLOADING OF MASS STORAGE CONTROLLERS.
*         INITIALLY AUTOLOADING IS SELECTED FOR ALL LEVELS OF 
*         DEADSTART.
* 
*         THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. 
  
  
 AUT      DATA   C*AUTOLOAD.* 
          LDN    2
          UJN    GRN1        TOGGLE AUTOLOAD STATUS 
 GRN      SPACE  4,10 
***       GRENADE.
*         TOGGLE SELECTION OF THE GRENADE OPERATION FOR MASS STORAGE
*         CONTROLLERS THAT ARE AUTOLOADED.  INITIALLY THE GRENADE 
*         OPERATION IS NOT SELECTED.
* 
*         THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. 
* 
*         THE GRENADE OPERATION CAN INTERRUPT ACTIVITY ON A DRIVE 
*         WHICH IS BEING ACCESSED FROM ANOTHER CONTROLLER.
  
  
 GRN      DATA   C*GRENADE.*
          LDN    1           TOGGLE GRENADE OPTION BIT
 GRN1     LMM    DSTO 
          STM    DSTO 
          JMP    KBR         RETURN 
 LBC      SPACE  4,10 
***       LBC,AA,C1,C2,...,CN.
* 
*         LOAD CONTROLWARE RECORD TYPE *AA* ON CHANNELS C1 TO CN. 
  
  
 LBC      DATA   C*LBC,*
          LDC    TLBC 
          RJM    SOT         SEARCH TABLE FOR CONTROLWARE OPTION
          STD    T6 
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    LBC3        IF VALID SYNTAX
 LBC2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 LBC3     STD    T3          CLEAR CONCURRENT CHANNEL FLAG
          AOD    KA 
          LDI    KA          CHECK FOR *C* PREFIX 
          SBN    1RC
          NJN    LBC4        IF NOT A CONCURRENT CHANNEL
          LDN    40          SET CONCURRENT CHANNEL FLAG
          STD    T3 
          AOD    KA          ADVANCE PAST *C* 
 LBC4     RJM    AOD         CONVERT DIGITS 
          SBN    TCHSL
          PJN    LBC2        IF INCORRECT CHANNEL 
          LDD    T3          MERGE CCH FLAG WITH CHANNEL NUMBER 
          RAD    AB+4 
          LDD    T6 
          ZJN    LBC5        IF NULL CONTROLWARE
          SBK    CNSD 
          ZJN    LBC4.1      IF SUPPRESSED CONTROLWARE
          ADK    CNSD 
 LBC4.1   LMD    HN 
 LBC5     STM    TCHS,AB+4
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJN    LBC3        IF NOT END OF CHANNELS 
          RJM    SCC         SET CONTROLWARE TABLE IN CM
          JMP    KBR         RETURN 
          SPACE  4,10 
**        TLBC - TABLE OF CONTROLWARE RECORD TYPES TO LOAD. 
  
  
 TLBC     BSS    0
          DUP    MXCLO,1
          CON    6060 
          ORG    TLBC 
 TLBC     INDEX 
          INDEX  CNNC,2RNC   NULL CONTROLWARE 
          INDEX  CLHT,2RHT   LOAD HALF TRACK CONTROLWARE
          INDEX  CNHT,2RNH   NO LOAD HALF TRACK CONTROLWARE 
          INDEX  CLFT,2RFT   LOAD FULL TRACK CONTROLWARE
          INDEX  CNFT,2RNF   NO LOAD FULL TRACK CONTROLWARE 
          INDEX  CLFM,2RFM   LOAD FMD CONTROLWARE 
          INDEX  CNFM,2RNM   NO LOAD FMD CONTROLWARE
          INDEX  CLAD,2RAD   LOAD FSC ADAPTOR CONTROLWARE 
          INDEX  CNAD,2RNA   NO LOAD FSC ADAPTOR CONTROLWARE
          INDEX  CLPH,2RPH   LOAD DEMA/PFMD CONTROLWARE 
          INDEX  CNPH,2RNP   NO LOAD DEMA/PFMD CONTROLWARE
          INDEX  CLID,2RID   LOAD 7255 ADAPTOR CONTROLWARE
          INDEX  CNID,2RNI   NO LOAD 7255 ADAPTOR CONTROLWARE 
          INDEX  CLCC,2RCC   LOAD 7165 ADAPTOR CONTROLWARE
          INDEX  CNCC,2RCN   NO LOAD 7165 ADAPTOR CONTROLWARE 
          INDEX  CNND,2RNN   NO LOAD NAD CONTROLWARE
          INDEX  CLM8,2RM8   LOAD M860 FSC CONTROLWARE
          INDEX  CNM8,2RN8   NO LOAD M860 FSC CONTROLWARE 
          INDEX  CNCX,2RNX   NO LOAD CCC/NIP CONTROLWARE
          INDEX  CNCT,2RNT   NO LOAD CCC/698 CONTROLWARE
          INDEX  CNSD,2RSD   SUPPRESS DEFAULT CONTROLWARE 
          INDEX  MXCLO
          CON    0           END OF TABLE 
 RST      SPACE  4,10 
***       RESET=X1,X2,...,XN. 
* 
*         RESET CHARACTERISTICS FOR EQUIPMENTS X1, X2, ... ,XN. 
*         ONLY THE INFORMATION ENTERED VIA THE *EQXXX=* COMMAND 
*         WILL BE RETAINED. 
* 
*         THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. 
  
  
 RST      DATA   C*RESET=*
          SOD    KA 
 RST1     AOD    KA 
          RJM    AOD         ASSEMBLE EST ORDINAL 
          ZJN    RST2        IF EQUIPMENT ZERO
          SBD    LE 
          PJN    RST2        IF INCORRECT EST ORDINAL 
          LDD    AB+4 
          RJM    STA         SET TABLE ADDRESS
          LDM    EBUT+3 
          ZJN    RST2        IF NULL ENTRY
          LDI    ES 
          SHN    21-3 
          PJN    RST3        IF NOT PSEUDO EQUIPMENT
 RST2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 RST3     SHN    22+21-13+3-21
          PJN    RST4        IF NOT MASS STORAGE DEVICE 
          RJM    RMD         RESET MASS STORAGE DEVICE
          LDN    0           CLEAR *TDDB* INFORMATION 
          STM    TDDB+DVFA
          STM    TDDB+DVDN
          CRM    TDDB+DVPF,ON 
          LDM    TDDB+DVPR
          SCN    3
          STM    TDDB+DVPR
          LDM    EBUT+4      CLEAR EST INFORMATION
          LPN    7
          STM    EBUT+4 
          LDI    ES 
          LPC    4352 
          STI    ES 
 RST4     LDI    ES          RESET *ON* STATUS
          SCN    3
          STI    ES 
          LDM    EBUT+10     CLEAR ACCESS LEVELS
          SCN    77 
          STM    EBUT+10
          RJM    EEB         UPDATE EQUIPMENT ENTRY 
          LDI    KA 
          LMN    1R.
          ZJN    RST5        IF END OF LIST 
          LJM    RST1        PROCESS NEXT ENTRY 
  
 RST5     JMP    KBR         RETURN 
 CCN      SPACE  4,10 
**        CCN - CHECK CHANNEL NUMBERS.
* 
*                (EBUT - EBUT+4) = FIRST UNIT EST ENTRY.
*                (CN+1 - CN+2) = CONTROL MODULE CHANNEL(S). 
* 
*         ERROR  TO *DCM*.
* 
*         USES   T7, CN+1.
  
  
 CCN2     LMD    CN+1        REVERSE CHANNELS 
          LMD    CN+2 
          NJN    CCN1        IF NO CHANNEL MATCH
          LDD    CN+1 
          LMM    EBUT+2 
          NJN    CCN1        IF NO CHANNEL MATCH
  
 CCN      SUBR               ENTRY/EXIT 
          LDM    EBUT+1 
          LMD    CN+1 
          NJN    CCN2        IF NO CHANNEL MATCH
          LDM    EBUT+2 
          LMD    CN+2 
          ZJN    CCNX        IF THE CHANNELS MATCH
 CCN1     LDC    CCNA 
          JMP    DCM         DISPLAY CONVERTED MESSAGE
  
  
 CCNA     DATA   C*EQXXX UNITS SPAN DIFFERENT CHANNELS* 
 DDV      SPACE  4,10 
**        DDV - DOWN ISMD DEVICE. 
* 
*         ENTRY  (EBUT) = EBUF EQUIPMENT ENTRY. 
* 
*         EXIT   DEVICE DOWN AND OFF IF VALID FOR THIS DEVICE.
* 
*         ERROR  TO *DCM*.
* 
*         CALLS  CDD, EEB.
  
  
 DDV2     SHN    11-10
          PJN    DDV1        IF NOT REMOVABLE 
          LDM    EBUT+4 
          SCN    17 
          NJN    DDV1        IF INITIALIZATION REQUESTED
          RJM    CDD
          ZJN    DDV1        IF DEADSTART DEVICE
          LDI    ES 
          SCN    3
          LMN    3           SET DEVICE *OFF* AND *DOWN*
          STI    ES 
          RJM    EEB         ENTER EQUIPMENT ENTRY
  
 DDV      SUBR               ENTRY/EXIT 
          LDI    ES 
          SHN    21-11
          PJN    DDV2        IF NOT SHARED
 DDV1     LDC    DDVA 
          JMP    DCM         DISPLAY CONVERTED MESSAGE
  
  
 DDVA     DATA   C*EQXXX CAN NOT BE DOWNED* 
 VCD      SPACE  4,30 
**        VCD - VALIDATE *CM* AND ISMD ENTRIES. 
* 
*         ENTRY  (ISPF) .LT. 0, IF NOT CYBER 810/815/825/830. 
* 
*         EXIT   (ISPF) = COUNT OF CONTROL MODULES DEFINED. 
*                *CM* AND ISMD TYPE ENTRIES VALIDATED.
*                IF A *CM* DEVICE IS DEFINED AS DOWN, ALL CORRESPONDING 
*                     ISMD DEVICES ARE ALSO DOWNED. 
* 
*         ERROR  TO *DCM* IF ANY OF THE FOLLOWING IS TRUE.
* 
*                     1) NO *CM* ENTRY EXISTS FOR AN ISMD DEVICE. 
*                     2) NO ISMD ENTRY EXISTS FOR A *CM* DEVICE.
*                     3) A MULTI-UNIT ISMD DEVICE SPANS *CM* DEVICES ON 
*                             DIFFERENT CHANNEL(S). 
*                     4) UNIT NUMBERS FOR A GIVEN *CM* ARE NOT UNIQUE.
*                     5) A *CM* DEVICE IS DEFINED AS DOWN BUT A 
*                             CORRESPONDING ISMD DEVICE CAN NOT BE
*                             DOWNED. 
*                     6) AN ISMD DEVICE IS DEFINED WITH AN INCOMPATIBLE 
*                             CONTROL MODULE. 
* 
*         USES   T2, T5.
* 
*         CALLS  SID, VUN.
  
  
 VCD      SUBR               ENTRY/EXIT 
          LDM    ISPF 
          SHN    0-13 
          NJN    VCDX        IF NOT CYBER 810/815/825/830 
          STM    ISPF        CLEAR ISMD PRESENT FLAG
          CRM    TUNB,ON     CLEAR TABLE OF UNIT NUMBERS
          CRM    TUNB+3,ON
          LDC    ATD3        PRESET ERROR RETURN ADDRESS
          STM    AKL
          LCN    0           SEARCH FOR ISMD DEVICE 
 VCD1     RJM    SID
          MJN    VCD3        IF NO MORE FOUND 
          LPN    7           SAVE NUMBER OF UNITS IN THIS DEVICE
          ADN    1
          STD    T5 
          LDC    TDDB+DVUN+3 INITIALIZE UNIT LIST OFFSET
          STD    T2 
 VCD2     LDI    T2          VALIDATE LOWER UNIT NUMBER 
          LPN    77 
          RJM    VUN
          ZJN    VCD1        IF END OF UNIT LIST FOR THIS DEVICE
          LDI    T2          VALIDATE UPPER UNIT NUMBER 
          SHN    -6 
          RJM    VUN
          ZJN    VCD1        IF END OF UNIT LIST FOR THIS DEVICE
          SOD    T2 
          UJN    VCD2        PROCESS NEXT UNIT
  
 VCD3     LDN    8D          CHECK *CM* ENTRIES 
          STD    T2 
 VCD4     SOD    T2 
          MJP    VCDX        IF ALL *CM* ENTRIES CHECKED
          LDM    TENB,T2
          ZJN    VCD4        IF THIS *CM* NOT DEFINED 
          STD    EQ 
          AOM    ISPF 
          LDM    TUNB,T2
          NJN    VCD4        IF AT LEAST ONE DRIVE DEFINED ON THIS *CM* 
          LDC    VCDA 
          JMP    DCM         DISPLAY CONVERTED MESSAGE
  
 VCDA     DATA   C*EQXXX HAS NO DRIVE DEFINED*
 VUN      SPACE  4,20 
**        VUN - VALIDATE UNIT NUMBER. 
* 
*         ENTRY  (A) = UNIT NUMBER. 
*                (T4) = *TFSD* INDEX SET BY *SID*.
*                (T5) = NUMBER OF UNITS LEFT TO PROCESS.
* 
*         EXIT   (T5) DECREMENTED.
*                (A) = (T5).
*                CORRESPONDING *TUNB* ENTRY UPDATED.
*                ISMD DEVICE DOWNED IF *CM* IS DOWN.
* 
*         ERROR  TO *DCM*.
* 
*         USES   T1, T6, CM - CM+4, CN - CN+4.
* 
*         CALLS  CCN, DDV.
  
  
 VUN3     RAM    TUNB,T6
          RJM    CCN         ENSURE CHANNELS OF ALL UNITS MATCH 
          LDD    CN 
          LPN    3
          LMN    3
          NJN    VUN4        IF NOT *DOWN*
          RJM    DDV
 VUN4     SOD    T5          DECREMENT UNIT COUNT 
  
 VUN      SUBR               ENTRY/EXIT 
          SHN    21-2        SAVE *CM* NUMBER 
          STD    T6 
          SHN    2-21        SAVE DRIVE NUMBER
          STD    T1 
          LDM    TENB,T6
          ZJN    VUN1        IF NO *CM* FOR THIS UNIT EXISTS
          SHN    22-5 
          ADD    EB 
          SHN    6
          CRD    CN          FETCH EST ENTRY FOR CONTROL MODULE 
          ADN    EQAE 
          CRD    CM 
          LDD    CM+2 
          LPN    37 
          LMM    VUNB,T4
          ZJN    VUN2        IF *CM* TYPE CORRECT FOR THIS UNIT 
 VUN1     LDC    VUNC 
          JMP    DCM         DISPLAY CONVERTED MESSAGE
  
 VUN2     LDM    TUNB,T6     VERIFY THAT UNIT NUMBER IS UNIQUE
          LMM    VUNA,T1
          SBM    TUNB,T6
          PJP    VUN3        IF UNIQUE UNIT NUMBER FOR THIS *CM*
          LDM    TENB,T6     GET *CM* EST ORDINAL FOR MESSAGE 
          STD    EQ 
          LDC    VUND 
          JMP    DCM         DISPLAY CONVERTED MESSAGE
  
 VUNA     BSS    0           TABLE OF DRIVE NUMBER MASKS
          CON    1
          CON    2
          CON    4
          CON    10 
  
 VUNB     BSS    0
          CON    CMCW 
          CON    C2CW 
  
 VUNC     DATA   C/EQXXX UNIT DEFINED ON WRONG *CM*/
 VUND     DATA   C/EQXXX HAS DUPLICATE UNIT NUMBER/ 
  
  
          QUAL
 VAL$     EQU    1
 SCH$     EQU    1
          QUAL   *
*CALL     COMSMLS 
*CALL     COMPVLC 
 TUNB     SPACE  4,10 
**        TUNB - TABLE OF UNIQUE ISMD UNIT NUMBERS. 
* 
*         ENTRY = 1 WORD. 
  
  
 TUNB     BSS    0
  
          ERRPL  TUNB+10-10001  TABLE WRAPS PP MEMORY 
          SPACE  4,10 
          QUAL   *
  
 EQ3S     EQU    *+4-EQXO    *EQ3* SIZE 
 EQ3L     EQU    EQ3S/5+77   *EQ3* OVERLAY LENGTH 
  
          ERRNG  7777-*-4    OVERFLOW WHEN LOADING *EQ3*
  
.EQXL     MAX    EQ1L/100,EQ2L/100,EQ3L/100  MAXIMUM OVERLAY LENGTH 
 EQXL     EQU    .EQXL
.EQML     MAX    EQ1L-77,EQ2L-77,EQ3L-77  MAXIMUM OVERLAY ACTUAL LENGTH 
 EQML     EQU    .EQML
          TTL    SET/ICM - INITIALIZE CENTRAL MEMORY. 
          TITLE 
          IDENT  ICM,/ICM/ICMX
          QUAL   ICM
          ORG    APRL 
*COMMENT  SET - INITIALIZE CENTRAL MEMORY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        COMMON ROUTINES FOR *ICM* AND *RCM*.
* 
*         THESE MACROS PROVIDE COMMON CODE FOR *ICM* AND *RCM*. 
          SPACE  4,10 
**        IPPSUB - SUBROUTINES COMMON TO PP INITIALIZATION. 
  
  
 IPPSUB   MACRO 
          LIST   G
 APP      SPACE  4,10 
**        APP - ASSIGN PP-S.
* 
*         ENTRY  (NC) = SYSTEM CP NUMBER. 
*                (CN+4) = FWA OF PP COMMUNICATIONS AREA.
* 
*         USES   T5, AB - AB+4, CM - CM+4.
  
  
 APP1     LDM    APPA,AB+2   SET PP PACKAGE NAME
          STD    AB 
          LDM    APPA+1,AB+2
          LMD    NC          ASSIGN TO SYSTEM CP
          STD    AB+1 
          LDM    APPA+2,AB+2 EXTRACT STATUS WORD
          STD    T0 
          LDI    T0 
          ZJN    APP3        IF PROGRAM NOT ACTIVE
          SBN    12 
          MJN    APP2        IF PP IN LOWER BANK
          SBN    20-12
 APP2     ADN    12          ASSIGN *CTI* INITIATED PP
          STI    T5 
          SHN    3
          ADD    CN+4 
          CWD    AB 
          AOM    SPPC        ADJUST PP-S ASSIGNED TO SYSTEM CP
 APP3     AOD    T5 
          LDN    3           ADVANCE INDEX
          RAD    AB+2 
          LMN    APPAL
 APP4     NJN    APP1        IF NOT END OF LIST 
          LDM    .CEL 
          STD    CM+3        SET CRITICAL ERROR LOG STATUS
          LDM    .DSD 
          STD    CM+4        SET DEADSTART CHANNEL
          LDK    DSAL 
          CWD    CM          STORE POINTER WORD 
  
 APP      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    AB 
          CRD    CM 
          LDC    2RDS        SET DEADSTART INDICATOR
          STD    AB+4 
          LDN    CM 
          STD    T5 
          UJN    APP4        ENTER LOOP 
  
  
 APPA     VFD    24/3LAPP,12/.APP 
          VFD    24/3LSCI,12/.DCS 
          VFD    24/3LMDD,12/.MDD 
 APPAL    EQU    *-APPA      LENGTH OF LIST 
 HPP      SPACE  4,10 
**        HPP - HANG PP.
* 
*         ENTRY  (A) = CHANNEL NUMBER.
*                (DH) = DEADSTART CHANNEL.
  
  
 HPP      SUBR               ENTRY/EXIT 
          LMD    DH 
          NJN    HPP1        IF NOT DEADSTART CHANNEL 
          LDD    DH 
          LMN    12          DEADSTART CHANNEL PP ON CHANNEL 12 
 HPP1     LMD    DH 
          LMC    OAMI        SET CHANNEL INSTRUCTIONS 
          STM    HPPA 
          LMC    DCNI&OAMI
          STM    HPPB 
          LDN    2           HANG PP
 HPPA     OAM    HPPC,0 
 HPPB     DCN    0
          UJN    HPPX        RETURN 
  
 HPPC     CON    0
          UJN    *           HANG PP
  
          LIST   *
 IPPSUB   ENDM
          SPACE  4,10 
**        SCSSUB - SUBROUTINE FOR SETTING CPU STATUS WORD.
  
  
 SCSSUB   MACRO 
          LIST   G
 SCS      SPACE  4,10 
**        SCS - SET CPU STATUS. 
* 
*         USES   T1.
  
  
 SCS      SUBR               ENTRY/EXIT 
          LDN    ACPL-1 
          STD    T0 
          LDD    HO          EXTRACT CPU STATUS 
          LPN    3
 SCS1     SHN    21-0        EXTRACT CPU FLAG 
          STD    T1 
          SHN    13-21       POSITION ON/OFF BIT
          STD    ZR 
          AOD    T0          STORE CPU STATUS WORD
          CWD    ZR 
          LDD    T1 
          NJN    SCS1        IF CPU 1 UNAVAILABLE 
          STD    ZR 
          UJN    SCSX        RETURN 
  
          LIST   *
 SCSSUB   ENDM
          SPACE  4,10 
**        COMMON ROUTINES FOR *ICM* AND *ICT*.
* 
*         THESE MACROS PROVIDE COMMON CODE FOR *ICM* AND *ICT*. 
          SPACE  4,10 
**        SPWSUB - SUBROUTINE FOR SETTING UP POINTER WORDS. 
  
  
 SPWSUB   MACRO 
          LIST   G
 SPW      SPACE  4,10 
**        SPW - SET UP POINTER WORD.
* 
*         ENTRY  (A) BITS  0 - 11 = POINTER WORD ADDRESS. 
*                    BITS 12 - 14 = BYTE INDEX. 
*                (CA - CA+1) = CURRENT CM ADDRESS.
* 
*         EXIT   (T5) = POINTER WORD ADDRESS. 
*                (CM - CM+4) = POINTER WORD.
* 
*         USES   T4.
  
  
 SPW      SUBR               ENTRY/EXIT 
          STD    T5          SAVE POINTER WORD ADDRESS
          SHN    -14
          ADN    CM          SET BYTE ADDRESS WITHIN POINTER WORD 
          STD    T4 
          LDD    T5          FETCH POINTER WORD 
          CRD    CM 
          LDD    CA          INSERT TABLE ADDRESS 
          STI    T4 
          LDD    CA+1 
          STM    1,T4 
          LDD    T5          STORE POINTER WORD 
          CWD    CM 
          UJN    SPWX        RETURN 
  
          LIST   *
 SPWSUB   ENDM
          TITLE  MAIN ROUTINE.
 ICM      SPACE  4,10 
**        ICM - INITIALIZE CENTRAL MEMORY.
  
  
 ICM      SUBR               ENTRY/EXIT 
          RJM    PTR         PROCESS POINTERS 
          RJM    IPS         INITIALIZE PPU STATUS
          LDN    50          ALLOCATE PP BREAKPOINT DISPLAY BUFFER
          RJM    CLS
  
*         DEFINE DAYFILE POINTER AREA.
  
          LDN    DFPP        STORE POINTER WORD 
          RJM    SPW
          LDN    EXDF*3 
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          RJM    PMS         PROCESS MS CHANNELS AND SYSTEM 
          UJP    ICMX        RETURN 
          TITLE  SUBROUTINES. 
 IPS      SPACE  4,10 
**        IPS - INITIALIZE PPU STATUS.
* 
*         ENTRY  (NC) = SYSTEM CONTROL POINT NUMBER.
* 
*         EXIT   (CA - CA+1) = NEXT CM ADDRESS. 
* 
*         USES   CA, CA+1, T1, T2, T3, T6, T7, CM - CM+4, CN - CN+4.
* 
*         CALLS  APP, CLS, HPP. 
  
  
 IPS      SUBR               ENTRY/EXIT 
  
*         ALLOCATE PP COMMUNICATION AREAS.
  
          LDN    PPCP        READ PPU COMMUNICATION AREA POINTER
          CRD    CN 
          LDD    NC          SET FWA = SYSTEM CP AREA END 
          ADN    1
          SHN    7
          STD    CN+4 
          STD    CA+1 
          STD    T7 
          SHN    -14
          STD    CA 
          LDM    .PPU        CLEAR PP COMMUNICATIONS AREA 
          STD    T6 
          ADM    .CCHN
          STD    T3 
          ADN    1           ALLOW FOR PSEUDO PP
          SHN    3
          RJM    CLS         CLEAR PP COMMUNICATION AREA
          LDD    CA          SET EXTENDED PP COMMUNICATION AREA FWA 
          STD    CN 
          SHN    14 
          ADD    CA+1 
          STD    CN+1 
          SBD    CN+4 
          SHN    PPXES-PPCES LENGTH OF EXTENDED PP COMMUNICATION AREA 
          RJM    CLS         CLEAR EXTENDED PP COMMUNICATION AREA 
          LDN    PPCP        STORE PPU COMMUNICATION AREA POINTER 
          CWD    CN 
  
*         CHECK FOR DISABLED PP-S.
  
          LDD    NC          INSERT SYSTEM CP INTO DISABLED PP IR 
          RAM    IPSA+1 
          LDD    T3          STORE PSEUDO PP INDICATOR
          SHN    3
          ADD    CN+4 
          CWM    IPSA+2,ON
          LDN    0           CLEAR CHANNEL COUNT
          STD    T1 
          STD    T2          CLEAR CHANNEL STATUS INDEX 
 IPS1     LDM    .PPS,T2     CHECK PP N ON/OFF STATUS 
          LPC    1           (MASK FOR PP N)
 IPSB     EQU    *-1
          STD    T3 
          LDM    .PPL,T2     CHECK PP STATUS RETURNED BY *CTI*
          LPC    1           (MASK FOR PP N)
 IPSC     EQU    *-1
          NJN    IPS3        IF PP DISABLED BY CTI
          LDD    T3 
          ZJN    IPS4        IF PP NOT OFF VIA CMRDECK ENTRY
          RAM    .PPL,T2     UPDATE PP OFF DATA 
          LDD    T2          CALCULATE CHANNEL NUMBER 
          SHN    4
          LMD    T1 
          RJM    HPP         HANG PP
 IPS3     LDD    T7          STORE INPUT REGISTER 
          CWM    IPSA,ON
 IPS4     LDN    10          ADVANCE INPUT REGISTER ADDRESS 
          RAD    T7 
          LDM    IPSB        ADVANCE PP MASK
          RAM    IPSB 
          STM    IPSC 
          AOD    T1          COUNT CHANNEL
          LMN    10D
          NJN    IPS5        IF PPS BANK NOT PROCESSED
          STD    T1 
          AOD    T2          ADVANCE STATUS INDEX 
*         LDN    1           REINITIALIZE MASK
          STM    IPSB 
          STM    IPSC 
          LCN    10D         DECREMENT PPU COUNT
          RAD    T6 
          ZJN    IPS6        IF ALL PP-S CHECKED
 IPS5     LJM    IPS1        PROCESS NEXT PP
  
 IPS6     LDM    .CCHN       CHECK FOR CPP-S
          ZJN    IPS9        IF NO CPP-S
          STD    T3 
 IPS7     LDM    .CPPL
          SHN    21-0        REMOVE CPP STATUS
          STM    .CPPL
          PJN    IPS8        IF CPP ON
          LDD    T7 
          CWM    IPSA,ON     STORE INPUT REGISTER 
 IPS8     LDN    10          ADVANCE INPUT REGISTER ADDRESS 
          RAD    T7 
          SOD    T3 
          NJN    IPS7        IF MORE CPP-S OFF
  
*         ASSIGN *CTI* PP-S AND STORE PP CONFIGURATION. 
  
 IPS9     RJM    APP         ASSIGN PP-S
          LDN    PPUL 
          CRD    CM 
          LDM    .PPN        SET PP COUNT 
          STD    CM+2 
          LDN    PPUL        STORE PPU CONFIGURATION
          CWD    CM 
          LJM    IPSX        RETURN 
  
 IPSA     VFD    18/3R***,6/**,36/
          VFD    24/3RCIO 
 PMS      SPACE  4,10 
**        PMS - PROCESS MASS STORAGE CHANNELS TO LOAD CONTROLWARE 
*         AND VALIDATE SYSTEM DEVICES.
*         PMS WILL ALSO ENSURE THAT AT LEAST ONE CHECKPOINT DEVICE
*         HAS BEEN DEFINED.  IF ONE HAS NOT *PMS* WILL ASSIGN THE 
*         FIRST VALID AVAILABLE DEVICE AS A CHECKPOINT DEVICE.
* 
*         EXIT   (TCHS) = DEFAULT FIRMWARE RECORD TYPES.
* 
*         USES   T0 - T4, EQ, CM - CM+4.
* 
*         CALLS  EEB, SMT, STA. 
  
  
 PMS5     LDD    T1 
          NJN    PMS6        IF SYSTEM DEVICE DEFINED 
          LDM    DFMS 
          RJM    STA
          LDC    2000        SET SYSTEM DEVICE FLAG 
          RAI    ES 
          LDM    EBUT+4      CLEAR ALTERNATE SYSTEM STATUS
          SCN    10 
          STM    EBUT+4 
          RJM    EEB         RETURN EQUIPMENT ENTRIES 
 PMS6     LDD    T3 
          NJN    PMSX        IF CHECKPOINT DEVICE DEFINED 
          LDM    DFMS 
          RJM    STA
          LDN    2           SET DEFAULT RMS AS CHECKPOINT DEVICE 
          RAM    TDDB+DVPR
          RJM    EEB         UPDATE EQUIPMENT STATUS
  
 PMS      SUBR               ENTRY/EXIT 
          LDN    0
          CRD    T0 
          LDN    NOPE-1      INITIALIZE EST SCAN
          STD    EQ 
 PMS1     AOD    EQ 
          LMD    LE 
          ZJP    PMS5        IF ALL EQUIPMENTS PROCESSED
          LDD    EQ 
          RJM    STA         SET TABLE ADDRESSES
          LDI    ES 
          SHN    21-13
          PJN    PMS1        IF NOT MASS STORAGE
          LDN    2
          STD    T4          INITIALIZE CHANNEL INDEX 
 PMS2     LDM    EBUT,T4
          ZJN    PMS3        IF NULL CHANNEL
          LPN    77 
          STD    T2 
          LDM    TDDB+DVAI   DEFAULT CONTROLWARE FOR LOAD 
          SHN    -6 
          SBM    TCHS,T2
          MJN    PMS3        IF OTHER DEFAULT HAS PRIORITY
          RAM    TCHS,T2
 PMS3     SOD    T4 
          NJN    PMS2        IF NOT END OF CHANNELS 
          LDI    ES 
          SHN    -12
          LPN    1
          RAD    T1 
          LDM    TDDB+DVPR
          LPN    2
          RAD    T3          UPDATE CHECKPOINT DEVICE FOUND FLAG
          LJM    PMS1        PROCESS NEXT EQUIPMENT 
 PTR      SPACE  4,10 
**        PTR - PROCESS POINTER AREA. 
* 
*         EXIT   (NC) = SYSTEM CONTROL POINT NUMBER.
* 
*         USES   LD, NC, T1, AB - AB+4, CM - CM+4, CN - CN+4. 
* 
*         CALLS  SEC, SCS, STA. 
  
  
 PTR      SUBR               ENTRY/EXIT 
          LDC    SHNI+73
          ADM    EMSC        ADJUST SHIFT 
          STM    PTRA 
          LDC    SHNI+77
          SBM    EMSC        ADJUST SHIFT 
          STM    PTRC 
          LDN    17 
 PTRA     SHN    -4 
*         SHN    -4+EMSC
          RAM    PTRB 
          RJM    SEC         INITIALIZE *ECRL*
          LDN    DSSL 
          CRD    CM 
          LDM    TTXC+LIBD   SET LIBDECK NUMBER 
          SHN    6
          LMD    RM          APPEND RECOVERY MODE 
          LMN    4
          STD    CM+4 
          LDN    DSSL        STORE DEADSTART STATUS 
          CWD    CM 
          LDN    DSCL        SET MMF *PRESET* COUNTS
          CRD    CM 
          LDN    0
          STD    CM+3 
          STD    CM+4 
          LDM    PRSF 
          ZJN    PTR0        IF *PRESET* NOT ENTERED
          LDD    NS          NUMBER OF SHARED DEVICES 
          STD    CM+3 
          LDM    NSBD        NUMBER OF SHARED BUFFERED DEVICES
          STD    CM+4 
          LDM    MSDC 
          ZJN    PTR0        IF *MAXSHARE* NOT ENTERED
          STD    CM+3        NUMBER OF SHARED DEVICES 
          LDM    MSBD 
          ZJN    PTR0        IF NO SECOND PARAMETER ON *MAXSHARE* 
          STD    CM+4        NUMBER OF SHARED BUFFERED DEVICES
 PTR0     LDN    DSCL        STORE MMF *PRESET* COUNTS
          CWD    CM 
          LDN    ZERL 
          CRD    CM 
          CRD    AB 
          LDC    4000        SET INTERLOCK
          STD    CM 
          LDN    2
          STD    T2 
          LDN    JSNL        STORE INITIAL SEQUENCE NUMBER
          CWM    .JSN,ON
          LDM    C8XX        CHECK MAINFRAME TYPE 
          ZJN    PTR1        IF CYBER 180 
          LDN    TIML        STORE TIME/DATE
          CWM    .TIM,T2
          ERRNZ  TIML+1-DTEL CODE DEPENDS ON VALUE
 PTR1     AOD    CM+4        SET MAINTENANCE LOG MESSAGE LINK 
          LDN    BMLL        STORE MAINTENANCE LOG CONTROL WORD 
          CWD    CM 
          ADN    RTCL-BMLL   STORE REAL TIME CLOCK
          CWM    .RTC,ON
          SOD    CM+4 
          LDN    TAXML/5
          STD    T1 
          LDC    SCRL        SET *1MB* (ERROR LOGGING)
          CWD    CM 
          ADN    DSDL-SCRL   STORE *DSD* BUFFER INTERLOCK 
          CWD    CM 
          ADN    1           STORE *TAXM* IN DSD/1DS BUFFER 
          CWM    TAXM,T1
          LCN    0           INITIALIZE FLAG REGISTER STATUS
          STD    AB+3 
          LDD    LD 
          LPC    777
          ZJN    PTR2        IF NO LINK EQUIPMENT 
          RJM    STA
          LDM    TDDB+DVED
          LPN    30 
          NJN    PTR2        IF CPU PATH PRESENT (NOT UEM)
          LDC    2000        SET LSP MMF FLAG 
          RAD    LD 
          LDM    NSBD 
          ZJN    PTR2        IF NO SHARED BUFFERED DEVICES
          LDD    TH          SET SHARED BUFFERED DEVICES FLAG 
          RAD    LD 
 PTR2     LDN    ZERL 
          CRD    CN 
          ADN    MMFL-ZERL   STORE MMF STATUS 
          CWD    ID 
          ADN    EFRL-MMFL
          CWD    AB 
  
*         ENTER CONFIGURATION.
  
          LDN    NCPL        SET NUMBER OF CONTROL POINTS 
          CRD    CM 
          LDM    .NCP 
          STD    NC 
          SBN    1
          STD    CM+1 
          LDM    .CHN        SET CHANNEL COUNT
          STD    CM 
          ERRNZ  NCPL-NCHL   CODE DEPENDS ON VALUE
          ERRNZ  NCPL-CPPL
          LDM    .CCHN       SET NUMBER OF PHYSICALLY PRESENT CPP-S 
          RAD    CM+3 
          LDN    NCPL 
          CWD    CM 
          ADN    MABL-NCPL
          CRD    CM 
          LDM    UESC        SET USER XM SHIFT COUNT
          SHN    2
          LMM    EMAF        SET EXPANDED ADDRESSING FLAG 
          SHN    2
          LMM    EMSC        SET XM SHIFT COUNT 
          SHN    5
          STD    CN+2 
          LDM    EMFL        SET XM FIELD LENGTH/*EMBS* 
          STD    CN+3 
          LDK    MEFL 
          CWD    CN 
          LDN    ZERL 
          CRD    AB 
          LDD    HO          SET HARDWARE OPTIONS 
          STD    CM+1 
          LDM    UEMZ 
          SHN    14 
          ADM    UEMZ+1 
          ZJN    PTR3        IF UEM NOT PRESENT 
          SHN    -3          UEM FL / 1000B 
 PTRB     ADN    0
*         ADN    (EMBS - 1000B) / 1000B 
 PTRC     SHN    0
*         SHN    -EMSC
          STD    AB+1 
          LDD    FL 
          SHN    14 
          LMD    FL+1 
          SHN    -3          SET UEM BASE ADDRESS/1000B 
          STD    AB 
          SHN    3           ADJUST EXECUTION MEMORY SIZE 
          STD    FL+1 
          SHN    -14
          STD    FL 
          LDN    2
          STD    AB+4        SET UEM PRESENT FLAG 
          LDM    EMTY 
          LMN    4
          NJN    PTR3        IF NO UEM EQUIPMENT
          LDD    EN          SET USER EM EQUIPMENT
          STD    AB+2 
 PTR3     LDD    FL          SET EXECUTION MEMORY SIZE
          STD    CM+2 
          LDD    FL+1 
          STD    CM+3 
          LDC    MABL 
          CWD    CM 
          LDN    EXML 
          CRD    CM 
          LDD    EN 
          STD    CM+4 
          LDN    EXML        STORE EXTENDED MEMORY CONFIGURATION
          CWD    CM 
          LDM    TAXM+2 
          ZJN    PTR4        IF NO USER EXTENDED MEMORY 
          LDM    TAXM+1 
          NJN    PTR4        IF USER EM IN UEM
          LDD    EN          SET USER EM EQUIPMENT
          STD    AB+2 
 PTR4     LDK    UEML        STORE MAINFRAME ATTRIBUTES 
          CWD    AB 
          RJM    SCS         SET CPU STATUS 
          LJM    PTRX        RETURN 
  
  
 .JSN     VFD    12/0,12/0,12/PQFT,24/0LAAAA
 .TIM     VFD    60/10H 00.00.00. 
          VFD    60/10H"DATE" 
 .RTC     VFD    12/0037,12/7777,36/0 
 SEC      SPACE  4,10 
**        SEC - SETUP POINTER WORD *ECRL*.
* 
*         USES   AB - AB+4. 
  
  
 SEC      SUBR               ENTRY/EXIT 
          LDM    EMSC        PRESET SHIFT INSTRUCTIONS
          SBM    UESC 
          LPN    77 
          RAM    SECA 
          LDN    ZERL        INITIALIZE *ECRL*
          CRD    AB 
          LDN    0
          STD    T1 
          LDM    TAXM+2 
          ZJN    SEC1        IF NO USER XM FOR THIS MACHINE 
 SECA     SHN    0
*         SHN    EMSC-UESC
          STD    AB+1 
          LDN    ECSY 
          ADM    C9LM        APPEND LARGE MEMORY OPTION 
          STD    AB+4 
          LDM    TAXM+1 
          ZJN    SEC2        IF NO USER EXTENDED MEMORY 
          LDM    EMTY 
          LMN    4
          ZJN    SEC2        IF UEM EQUIPMENT - HAVE *REC* ALLOCATE 
          LDN    0
          STM    TAXM+2      CLEAR USER EM IN UEM FOR *REC* 
 SEC1     LDN    5
          RAD    T1 
          SBN    TAXML
          PJN    SEC3        IF END OF TABLE
          LDM    TAXM+2,T1   CHECK FOR USER EXTENDED MEMORY 
          ZJN    SEC1        IF NO USER EXTENDED MEMORY 
 SEC2     LDD    EN          SET EXTENDED MEMORY EQUIPMENT FOR *REC*
          STD    AB 
 SEC3     LDN    ECRL        STORE *ECRL* 
          CWD    AB 
          LJM    SECX        RETURN 
          TITLE  COMMON SUBROUTINES.
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          IPPSUB
          SCSSUB
          SPWSUB
          SPACE  4,10 
          QUAL   *
          SPACE  4,10 
          ERRNG  7777-*-4    IF OVERFLOW
          TTL    SET/ICT - INITIALIZE CENTRAL MEMORY TABLES.
          TITLE 
          IDENT  ICT,/ICT/ICTX
          QUAL   ICT
          ORG    APRL 
*COMMENT  SET - INITIALIZE CENTRAL MEMORY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        COMMON - COMMON ROUTINES FOR *ICT* AND *RCT*. 
* 
*         THIS MACRO PROVIDES COMMON CODE FOR *ICT* AND *RCT*.
  
  
          QUAL
 COMMON   MACRO 
          LIST   G
 TCTP     SPACE  4,10 
**        TCTP - TABLE OF CMR TABLE PROCESSORS. 
  
  
 TCTP     BSS    0
          DUP    TSGTE,1
          CON    SIE
          ORG    TCTP 
 TCTP     INDEX 
          INDEX  ESTO,EST    EQUIPMENT STATUS TABLE 
          INDEX  EXPO,EXP    C176 (AND 819) EXCHANGE PACKAGES 
          INDEX  MCTO,MCT    MEMORY CONTROL TABLE 
          INDEX  SCDO,SCD    *SCD* PARAMETER TABLE
          INDEX  RPTO,RPT    RING PORT TABLE
          INDEX  CHTO,CHT    CHANNEL TABLES 
          INDEX  ECBO,ECB    *EICB* TABLES
          INDEX  EMBO,EMB    ERROR MESSAGE BUFFER 
          INDEX  EVTO,EVT    EVENT TABLE
          INDEX  SCTO,SCT    SUBSYSTEM CONTROL TABLES 
          INDEX  SITO,SIT    *SECDED* ID TABLE
          INDEX  SABO,SAB    SYSTEM ATTRIBUTE BLOCK 
          INDEX  JCAO,JCA    JOB CONTROL BLOCK TABLE
          INDEX  MSAO,MSA    MASS STORAGE ALLOCATION AREA 
          INDEX  ODBO,ODB    OPERATOR DISPLAY BUFFER
          INDEX  LDBO,LDB    *L* DISPLAY BUFFER 
          INDEX  PDBO,PDB    PREVIEW DISPLAY BUFFER 
          INDEX  DFBO,DFB    DAYFILE BUFFERS
          INDEX  PSVO,PSV    PP SAVE AREAS
          INDEX  MSTO,MST    MASS STORAGE TABLES
          INDEX  TRTO,TRT    TRACK RESERVATION TABLES 
          INDEX  EXMO,EXM    EXTENDED MEMORY BUFFERS
          INDEX  INBO,INB    INSTALLATION BLOCK 
          INDEX  SDAO,SDA    STATISTICAL DATA AREA
          INDEX  FOTO,FOT    FAMILY ORDINAL TABLE 
          INDEX  FNTO,FNT    FILE NAME TABLE
          INDEX  EJTO,EJT    EXECUTING JOB TABLE
          INDEX  QFTO,QFT    QUEUE FILE TABLE 
          INDEX  CLTO,CLT    COMMON LIBRARIES TABLE 
          INDEX  LIDO,LID    LOGICAL ID TABLE 
          INDEX  OSTO,OST    OPTICAL DISK STATUS TABLES 
          INDEX  ORTO,ORT    OPTICAL DISK REQUEST TABLE 
          INDEX  BSTO,BST    BUFFER STATUS TABLES 
          INDEX  BDTO,BDT    BUFFERED DEVICE CONTROL TABLES 
          INDEX  TSGTE
 CDL      SPACE  4,10 
**        CDL - COMPUTE DEVICE LENGTH.
* 
*         ENTRY  (AB) = BYTE 0 OF EST ENTRY.
*                (CM+2) = TRT LENGTH. 
* 
*         EXIT   (A) = TOTAL LENGTH OF DEVICE TABLES (TRT+MRT+DIT). 
  
  
 CDL      SUBR               ENTRY/EXIT 
          LDD    AB 
          LPC    1020 
          ZJN    CDL2        IF STAND ALONE DEVICE
          LPN    20 
          ZJN    CDL1        IF NOT INDEPENDENT SHARED DEVICE 
*         LDN    DITL        ADD LENGTH OF DIT
          ERRNZ  MMPF-20
 CDL1     STD    T0 
          LDD    CM+2        COMPUTE LENGTH OF MRT
          ADN    7
          SHN    -3 
          ADD    T0 
 CDL2     ADD    CM+2        ADD LENGTH OF TRT
          UJN    CDLX        RETURN 
 PBD      SPACE  4,10 
**        PBD - PROCESS BUFFERED DEVICE CHANNELS. 
* 
*         ENTRY  (AB+1 - AB+2) = CHANNEL BYTES FROM EST ENTRY.
* 
*         EXIT   (KI) = CUMULATIVE 819 COUNT. 
* 
*         USES   T1, T4.
  
  
 PBD2     LDI    T1          SET 819 CHANNEL IN TABLE 
          LPN    37 
          SHN    -1 
          STD    T4 
          RAM    TFMC,T4
          AOD    T1 
          LMN    AB+3 
          NJN    PBD2        IF ANOTHER CHANNEL 
          AOD    KI 
  
 PBD      SUBR
          LDN    AB+1 
          STD    T1 
          LDD    HO 
          SHN    -11
          LMN    7
          ZJN    PBD2        IF C176 SYSTEM 
 PBD1     LDI    T1 
          ZJN    PBDX        IF CHANNEL NOT DEFINED 
          LPN    77 
          STD    T4 
          AOM    KBUF,T4     COUNT CHANNEL USAGE
          AOD    T1 
          LMN    AB+3 
          NJN    PBD1        IF POSSIBLE SECOND CHANNEL 
          UJN    PBDX        RETURN 
 RCA      SPACE  4,10 
**        RCA - ROUND CM ADDRESS TO NEXT MULTIPLE OF 10B. 
* 
*         ENTRY  (CA - CA+1) = CURRENT CM ADDRESS.
* 
*         EXIT   (A) = ROUNDED CM ADDRESS / 10B.
*                (CA - CA+1) = ROUNDED CM ADDRESS.
  
  
 RCA      SUBR               ENTRY/EXIT 
          LDD    CA+1 
          ADN    7
          SCN    7
          STD    CA+1 
          SHN    -14
          RAD    CA 
          SHN    14 
          LMD    CA+1 
          SHN    -3 
          UJN    RCAX        RETURN 
 SBB      SPACE  4,10 
**        SBB - SET BUFFER BIAS.
* 
*         ENTRY  (A) = STARTING BIT VALUE + FUNCTION CODE.
*                (T1) = VALUE TO SET. 
* 
*         USES   T1.
  
  
 SBB      SUBR               ENTRY/EXIT 
          STD    T0          SAVE STARTING VALUE
 SBB1     LDD    T1 
          ZJN    SBBX        IF NO BITS TO SET
          SHN    21 
          STD    T1 
          PJN    SBB2        IF BIAS BIT NOT TO BE SET
          LDD    T0 
          OAN    SC+40
          IAN    SC+40
 SBB2     AOD    T0          ADVANCE BIT NUMBER 
          UJN    SBB1        LOOP 
 SPT      SPACE  4,10 
**        SPT - SETUP *SCD* PARAMETER TABLE.
* 
*         ENTRY  (CM+2 - CM+3) = FWA OF *SCD* PARAMETER TABLE.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS. 
  
  
 SPT1     STM    SPTA+3      CLEAR *SCD* DATA 
          LDN    3           SET PARAMETER TABLE LENGTH 
          SHN    10 
          STM    SPTA+2 
          LDN    3           CLEAR TABLE
          RJM    CLS
          LDM    .MDD        SET POSSIBLE *MDD* PP NUMBER 
          RAM    SPTA+1 
  
*         SET *MDD* INFORMATION.
  
 SPT2     LDM    MDDP 
          SHN    21-3 
          PJN    SPT3        IF *MDD* NOT LOADED
          SHN    -16
          LPN    7           SET *MDD* PORT NUMBER
          LMN    40          SET *MDD* ACTIVE BIT 
          SHN    6
          STM    SPTA+4 
 SPT3     LDD    CM+2        STORE PARAMETER TABLE FIRST WORD 
          SHN    14 
          LMD    CM+3 
          CWM    SPTA,ON
  
 SPT      SUBR               ENTRY/EXIT 
          LDM    .DCS 
          ZJP    SPT1        IF NOT 721 CONSOLE 
  
*         SET *SCD* INFORMATION.
  
          RAM    SPTA+1      SET *SCD* PP NUMBER
          LDM    SCIP 
          RAM    SPTA+3      SET *SCD* PORT NUMBER
          LDD    CM+3 
          ADN    4
          STM    SPTB+4      SET FWA OF DISPLAY BUFFER
          SHN    -14
          ADD    CM+2 
          STM    SPTB+3 
          LDC    SCDCL+4     CLEAR TABLE AND BUFFER 
          RJM    CLS
          LDD    CM+2        STORE DISPLAY BUFFER POINTER 
          SHN    14 
          LMD    CM+3 
          ADN    3
          CWM    SPTB,ON
          UJP    SPT2        SET AND STORE FIRST WORD 
  
  
 SPTA     VFD    12/0,16/140004,4/0,1/1,2/1,3/1,3/1,3/0,16/0
 SPTB     VFD    3/2,9/0,16/SCDCL,32/0
          SSESUB
 SXA      SPACE  4,10 
**        SXA - SET EXCHANGE AREA FOR CYBER 176.
* 
*         ENTRY  (KI) = NUMBER 0F 819 EQUIPMENTS. 
* 
*         USES   T1, T3.
* 
*         CALLS  CLS, SBB.
  
  
 SXA      SUBR               ENTRY/EXIT 
          LDD    CA          RESERVE SPACE FOR 176 EXCHANGE PACKAGES
          SHN    14 
          ADD    CA+1 
          ADC    777         ROUND TO NEXT MULTIPLE OF 1000B
          LPC    17000
          STD    CA+1 
          SHN    -11
          STD    T1 
          STD    T3 
          SHN    -3 
          STD    CA 
          LDC    /SCR/FCSB+/SCR/EXBB  SET EXCHANGE PACKAGE BIAS 
          RJM    SBB
          LDD    HN          ALLOCATE BASIC 176 EXCHANGE PACKAGES 
          RJM    CLS
          LDD    KI 
          ZJN    SXAX        IF NO 819-S DEFINED
          LDC    300         ALLOCATE 819 EXCHANGE PACKAGES 
          RJM    CLS
          LDD    T3          SET CHANNELS 2 - 3 BUFFER BIAS 
          STD    T1 
          LDC    /SCR/FCSB+/SCR/C2BB
          RJM    SBB
          LDC    400         ALLOCATE CHANNELS 2 - 3 BUFFER 
          RJM    CLS
          LDM    TFMC+2 
          ADM    TFMC+3 
          ZJN    SXA1        IF CHANNELS 4 - 7 NOT PRESENT
          AOD    T3          SET CHANNELS 4 - 7 BUFFER BIAS 
          STD    T1 
          LDC    /SCR/FCSB+/SCR/C4BB
          RJM    SBB
          LDC    400         ALLOCATE CHANNELS 4 - 5 BUFFER 
          RJM    CLS
          LDM    TFMC+3 
          ZJN    SXA1        IF CHANNELS 6 - 7 NOT PRESENT
          LDC    400         ALLOCATE CHANNELS 6 - 7 BUFFER 
          RJM    CLS
 SXA1     LJM    SXAX        RETURN 
  
  
 TFMC     EQU    KBUF        FLPP MUX CHANNEL STATUS TABLE
  
          LIST   *
  
          ENDM
          SPACE  4,10 
**        SSESUB - SUBROUTINE TO SEARCH FOR SELECTED EQUIPMENT. 
  
  
 SSESUB   MACRO 
          LIST   G
 SSE      SPACE  4,10 
**        SSE - SEARCH FOR SELECTED EQUIPMENT TYPE. 
* 
*         ENTRY  (A) = 1/1,17/MNEMONIC IF INITIAL ENTRY.
*                    = POSITIVE IF SUBSEQUENT ENTRY.
* 
*         EXIT   (A) = 0 IF EQUIPMENT TYPE FOUND. 
*                (EQ) = EST ORDINAL.
*                (AB - AB+4) = WORD *EQDE* OF EST ENTRY.
* 
*         MACROS SFA. 
  
  
 SSE1     SOD    EQ 
          MJN    SSEX        IF END OF EST
          SFA    EST
          ADK    EQDE 
          CRD    AB 
          LDD    AB+3        CHECK MNEMONIC 
          LMC    0
 SSEA     EQU    *-1
          NJN    SSE1        IF NOT FOUND 
  
 SSE      SUBR               ENTRY/EXIT 
          PJN    SSE1        IF NOT INITIAL ENTRY 
          STM    SSEA 
          LDN    ESTP 
          CRD    AB 
          LDD    AB+2        INITIALIZE EST ORDINAL 
          STD    EQ 
          UJN    SSE1        SEARCH EST 
  
          LIST   *
 SSESUB   ENDM
          QUAL   *
          TITLE  MAIN ROUTINE.
 ICT      SPACE  4
**        ICT - INITIALIZE CENTRAL MEMORY TABLES. 
  
  
 ICT      SUBR               ENTRY/EXIT 
          RJM    INO         INITIALIZE OVERLAY 
  
*         ALLOCATE CMR TABLES AND BUFFERS.
  
          LDN    0
          STD    LA 
 ICT1     LDM    TCTP,LA     SET PROCESSOR ADDRESS
          STD    T1 
          RJM    0,T1        DEFINE TABLE 
          AOD    LA 
          LMN    TSGTE
          NJN    ICT1        IF NOT END OF TABLES 
  
*         COMPLETE TABLES.
  
          LDC    BIOL 
          CRD    CN 
          LDN    CMRL 
          CRD    CM 
          LDD    CA          SET CM ADDRESS 
          STD    CN+3 
          SHN    14 
          LMD    CA+1 
          STD    CN+4 
          ADN    77 
          SHN    -6 
          STD    CM+4 
          LDD    FL 
          SHN    14 
          LMD    FL+1 
          SBK    4001 
          MJN    ICT2        IF EXECUTION MEMORY SIZE .LE. 131K 
          LCN    1
 ICT2     ADC    4001-CPML-PRSL 
          STD    CN          SET LOAD ADDRESS FOR *CPUMLD*
          SBD    CM+4 
          PJN    ICT3        IF NO CMR OVERFLOW 
          LDC    =C*CMR OVERFLOW.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 ICT3     LDC    BIOL        STORE *CPUMTR* LOAD ADDRESS
          CWD    CN 
          LDN    CMRL        STORE CMR LENGTH 
          CWD    CM 
          LJM    ICTX        RETURN 
  
  
 ICTA     VFD    42/0LSYSTEM,6/0,6/LIFT,6/1 
 ICTB     VFD    24/4L"SJSN",36/0 
 ICTC     VFD    6//SCD/SYSC,54/0 
          TITLE  TABLE ALLOCATION PROCESSORS. 
 BDT      SPACE  4,10 
**        BDT - ALLOCATE BUFFERED DEVICE CONTROL TABLES.
* 
*         ENTRY  (EN) = EXTENDED MEMORY EST ORDINAL.
* 
*         USES   T1, T4.
* 
*         CALLS  CLS, SPW.
  
  
 BDT      SUBR               ENTRY/EXIT 
          LDM    .PUTP
          ZJN    BDTX        IF NO BUFFERED DEVICES DEFINED 
          STM    .FTTP
          LDD    EN 
          NJN    BDT1        IF EXTENDED MEMORY DEFINED 
          LDC    BDTB        *XX REQUIRES DE/DP WITH CPU PORT.* 
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 BDT1     LDN    PUTL 
          RAM    .PUTP+2     COUNT DEAD ENTRY ZERO
          SHK    FTTLS-PUTLS
          STM    .FTTP+2
          LDM    EMSC        ACCOUNT FOR XM BLOCK SIZE
          SBN    2
          LPN    77 
          RAM    BDTC 
          LDC    1S12+BIOL
          RJM    SPW
          LDM    TAXM 
          NJN    BDT2        IF XM ALLOCATED FOR THIS MACHINE 
          LDC    =C*XM ENTRY NEEDED.* 
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 BDT2     LDM    TAXM+4      BUFFER SPACE DEFINED FOR THIS MACHINE
          NJN    BDT3        IF SPACE DEFINED 
          LDC    =C*NO IO BUFFERS DEFINED.* 
          JMP    DSE         DISPLAY ERROR AND HANG 
  
*         SET UP *CBTP*.
  
 BDT3     SHN    0           BUFFERS = (SPACE/1000B)/4
 BDTC     EQU    BDT3 
*         SHN    EMSC-2 
          ERRNZ  PSLB-4 
          STM    .CBTP       NUMBER OF CONTROL BUFFER TABLE ENTRIES 
          ADN    1           COUNT DEAD ENTRY ZERO
          SHN    CBTLS
          STM    .CBTP+2     TOTAL CBT LENGTH 
          SHN    -14
          RAM    .CBTP+1
          ADM    .HATP+1
          LPN    77 
          SHN    14 
          ADM    .CBTP+2     COMPUTE TOTAL IO TABLE SPACE 
          ADN    BDTL+IBSL+PLTL 
          ADM    .CCTP+2
          ADM    .PUTP+2
          ADM    .FTTP+2
          ADM    .HATP+2
          RJM    CLS         CLEAR BUFFERED IO TABLE SPACE
          LDN    BDTAL/5
          STD    T1 
          LDD    CM+1        STORE BDT
          SHN    14 
          ADD    CM+2 
          CWM    BDTA,T1
          LJM    BDTX        RETURN 
  
 BDTA     BSS    0           BDT TABLE SKELETON 
 .IBSP    VFD    12/IBSL,6/1,18/IBSL,6/0,18/0 
 .PLTP    VFD    12/PLTL,6/1,18/PLTL,6/0,18/0 
 .CCTP    VFD    12/0,6/CCTL,18/0,6/0,18/0
 .PUTP    VFD    12/0,6/PUTL,18/0,6/0,18/0
 .FTTP    VFD    12/0,6/FTTL,18/0,6/0,18/0
 .HATP    VFD    12/0,6/10,18/0,6/0,18/0
 .CBTP    VFD    12/0,6/CBTL,18/0,6/0,18/0
 .IOSP    VFD    12/0,6/0,18/0,6/0,18/0 
  
 BDTAL    EQU    *-BDTA      BDT LENGTH (BYTES) 
  
 BDTB     DATA   C*XX REQUIRES DE/DP WITH CPU PORT.*
 BST      SPACE  4,10 
**        BST - DEFINE BUFFER STATUS TABLES.
* 
*         EXIT   (A) = 0. 
* 
*         USES   EQ, CM - CM+4. 
* 
*         CALLS  CLS, SME.
  
  
 BST      SUBR               ENTRY/EXIT 
          LDM    NSBD 
          ZJN    BSTX        IF NO SHARED BUFFERED DEVICES
          LDN    NOPE 
          STD    EQ 
  
*         PROCESS NEXT EQUIPMENT. 
  
 BST1     RJM    SME         SEARCH FOR MASS STORAGE EQUIPMENT
          ZJN    BSTX        IF END OF MS EST ENTRIES 
          SHN    21-11-21+13
          PJN    BST1        IF NOT SHARED DEVICE 
          SHN    21-5-21+11 
          PJN    BST1        IF NOT BUFFERED DEVICE 
          LDD    AB+4 
          SHN    3
          ADK    BDLL 
          CRD    CM 
          LDD    CA          SET BST ADDRESS INTO *BDLL*
          STD    CM+1 
          LDD    CA+1 
          STD    CM+2 
          LDD    CM+3        SET *BST/BAT PROCESSING DISABLED* FLAG 
          LPC    3777 
          LMC    4000 
          STD    CM+3 
          LDD    AB+4 
          SHN    3
          ADK    BDLL 
          CWD    CM 
          LDK    BSTL        ALLOCATE AND CLEAR BST 
          RJM    CLS
          UJP    BST1        PROCESS NEXT EQUIPMENT 
 CHT      SPACE  4,10 
**        CHT - DEFINE CHANNEL TABLES.
* 
*         USES   T1.
* 
*         CALLS  CLS, SPW.
  
  
 CHT      SUBR               ENTRY/EXIT 
          LDC    2S12+CHTP
          RJM    SPW
          LDN    CTALL*3     CLEAR TABLE
          RJM    CLS
          LDN    CTALL       SET LENGTH OF SINGLE TABLE 
          STD    T1 
          LDD    CM+2        STORE CHANNEL STATUS TABLE 
          SHN    14 
          LMD    CM+3 
          CWM    TCST,T1
          ADN    CTALL       STORE FIRMWARE LOAD TABLE
          CWM    TCHS,T1
          UJN    CHTX        RETURN 
 CLT      SPACE  4,10 
**        CLT - DEFINE COMMON LIBRARIES TABLE.
* 
*         USES   CM+2.
* 
*         CALLS  CLS, LST, SPW. 
* 
*         MACROS CFI. 
  
  
 CLT      SUBR               ENTRY/EXIT 
          LDC    CLTP 
          RJM    SPW
          LDM    .CLT+MTBL   SET CLT ENTRY COUNT
          STD    CM+2 
          ZJN    CLTX        IF EMPTY TABLE 
          CFI    CLT,,CM+2   CLEAR TABLE
          RJM    CLS
          LDN    CLTE        LINK CLT 
          RJM    LST
          UJN    CLTX        RETURN 
 DFB      SPACE  4,10 
**        DFB - DEFINE DAYFILE BUFFERS. 
* 
*         USES   T3, T6, T7, CM - CM+4. 
* 
*         CALLS  CLS, IDB.
  
  
 DFB      SUBR               ENTRY/EXIT 
          LDN    DFPP        SET FWA OF DAYFILE POINTERS
          CRD    T6 
          LDN    0           SET SYSTEM DAYFILE BUFFER NUMBER 
          STD    T3 
 DFB1     RJM    IDB
          LDN    3           ADVANCE DAYFILE POINTER ADDRESS
          RAD    T7 
          SHN    -14
          RAD    T6 
          AOD    T3          ADVANCE DAYFILE NUMBER 
          LMN    EXDF 
          NJN    DFB1        IF NOT END OF EXCESS DAYFILES
          LDC    2S12+DFPP   STORE POINTER WORD 
          RJM    SPW
          LDN    1           SET PP DUMP BUFFER NOT BUSY
          STD    CM+4 
          LDN    DFPP        STORE POINTER
          CWD    CM 
          LDC    DFDS+3      CLEAR DUMP BUFFER
          RJM    CLS
          LDD    CM 
          SHN    14 
          LMD    CM+1 
          CRD    CM 
          LDD    CM          PASS DAYFILE RESIDENCE OPTIONS TO *RMS*
          SHN    14 
          LMD    CM+1 
          CWM    DFBF,ON
          LJM    DFBX        RETURN 
 ECB      SPACE  4,10 
**        ECB - DEFINE *EICB* TABLES. 
* 
*         ENTRY  (DFTA - DFTA+1) = *DFT* ALLOCATION DATA. 
*                (DFTV) = *DFT* VERSION.
*                (DFSZ) = TOTAL SIZE OF *DFT/OS* BUFFER, IF *DFT* 
*                         VERSION 4 OR ABOVE. 
* 
*         USES   T1, T6.
* 
*         CALLS  CLS, SPW.
  
  
 ECB      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    ECBX        IF NOT LOWER 800 SERIES MAINFRAME
          LDC    3S12+EIBP
          RJM    SPW
  
*         CALCULATE TOTAL SIZE OF *EICB* TABLES.
*         THE *EICB* TABLES INCLUDE THE *EICB*, THE *MLST* AND THE
*         *DFT/OS* BUFFER.  ONE EXTRA WORD IS ALLOCATED TO ALLOW FOR
*         ADJUSTING THE START OF THE *DFT/OS* BUFFER, SINCE IT CANNOT 
*         BEGIN ON THE LAST WORD OF A SECTOR. 
* 
*         FOR *DFT* VERSION 4 AND ABOVE, THE *DFT/OS* BUFFER IS BUILT 
*         BY *DFT*.  THE TOTAL SIZE IS OBTAINED FROM THE *DFT*
*         DESCRIPTOR IN THE *HDT*.  THE NOS REQUEST AREA SIZE (*RQBL* 
*         WORDS) AND THE *PPR* SAVE AREA SIZE (*DFPSL* WORDS) MUST BE 
*         ADDED TO THIS TO DETERMINE THE AMOUNT OF SPACE TO ALLOCATE. 
* 
*         FOR *DFT* VERSION 3, THE *DFT/OS* BUFFER CONSISTS OF THE
*         FOLLOWING.
*         1.  CONTROL WORD AND POINTERS (*DFHL* WORDS). 
*         2.  M/R BUFFER CONTROL WORDS (*NUMR*+1 WORDS).
*         3.  ELEMENT COUNTER BUFFER (*MECB* WORDS).
*         4.  SECDED ID TABLE (*SIDL* WORDS - CORR. MEMORY THRESHOLD).
*         5.  M/R BUFFERS (*NUMR*+1 BUFFERS OF MODEL-DEPENDENT LENGTH). 
*         6.  CYBER 990 BUFFER (*M9DB* WORDS, IF CYBER 990).
*         7.  PP RESIDENT SAVE AREA (*DFPSL* WORDS).
*         8.  NOS REQUEST AREA (*RQBL* WORDS).
  
          LDN    0
          STD    T6 
          LDM    VEFL 
          ZJN    ECB0        IF *VE* ENTRY NOT SPECIFIED
          LDM    DFTA+1 
          LPC    3777 
          ADC    4000        SET DEDICATED *DFT*
          STM    DFTA+1 
          LDM    .MLS+MTBL   ALLOW SPACE FOR *MLST* 
          STD    T6 
          LDM    DCPN 
          ZJN    ECB1        IF *DUALCPU=N* NOT SPECIFIED 
 ECB0     LDM    DCPC 
          ZJN    ECB1        IF NOT DUAL 170-STATE CPUS WITH CACHE
          LDC    2000        SET *CPU1 ON CACHE MACHINE IN C170 MODE* 
          STD    CM 
          LDN    EIBP 
          CWD    CM 
 ECB1     LDK    DSCBL+1     ALLOW PAD FOR *DFT/OS* BUFFER ADJUSTMENT 
          RAD    T6 
          LDK    RQBL+1      ADD NOS REQUEST AREA SIZE
          RAD    T6 
          LDM    DFTA+1 
          SHN    21-13
          MJN    ECB2        IF DEDICATED *DFT* 
          LDK    DFPSL       ADD *PPR* SAVE AREA SIZE 
          RAD    T6 
 ECB2     LDM    DFTV 
          ZJN    ECB3        IF *DFT* VERSION 3 
          LDM    DFSZ        COMPUTE TOTAL *DFT/OS* BUFFER SIZE 
          UJN    ECB5        CLEAR TABLE
  
 ECB3     LDM    DFTA+1 
          SHN    21-12
          PJN    ECB4        IF NOT CYBER 990 
          LDC    M9DB        ADD FOR CYBER 990 BUFFER 
          RAD    T6 
          LDM    .CPU+1      CHECK FOR DUAL CPU 
          LPN    2
          NJN    ECB4        IF CPU-1 *OFF* OR NOT PRESENT
          LDC    M9DB        DOUBLE CYBER 990 BUFFER SIZES
          RAD    T6 
 ECB4     LDM    DFTA+1      ADD M/R BUFFER SIZE
          LPC    1777 
          RAD    T6 
          LDM    DFTA        ADD M/R BUFFER CONTROL WORD SIZE 
          SHN    -6 
          ADK    DFHL+MECB+SIDL  ADD *DFT* HEADER/SECDED/ELEMENT
 ECB5     ADD    T6 
          RJM    CLS         CLEAR TABLE
          LJM    ECBX        RETURN 
 EJT      SPACE  4,10 
**        EJT - DEFINE EXECUTING JOB TABLE. 
* 
*         CALLS  CLS, LST, SPW. 
* 
*         MACROS CFI. 
  
  
 EJT      SUBR               ENTRY/EXIT 
          LDN    EJTP 
          RJM    SPW
          LDM    .EJT+MTBL   SET EJT ENTRY COUNT
          STD    CM+2 
          CFI    EJT,,CM+2   CLEAR TABLE
          RJM    CLS
          LDN    EJTE        LINK EJT 
          RJM    LST
          LDN    EXJS*2 
          STM    ICTB+4 
          LDD    CM          STORE SYSTEM EJT ENTRY 
          SHN    14 
          LMD    CM+1 
          CWM    ICTB,ON
          ADN    SCLE-JSNE-1
          CWM    ICTC,ON
          UJN    EJTX        RETURN 
 EMB      SPACE  4,10 
**        EMB - DEFINE ERROR MESSAGE BUFFER.
* 
*         CALLS  CLS, SPW.
  
  
 EMB      SUBR               ENTRY/EXIT 
          LDC    1S12+EMBP
          RJM    SPW
          LDM    .EMB+MTBL   CLEAR BUFFER 
          RJM    CLS
          LDN    ZERL        SET UP INTERLOCK WORD
          CRD    AB 
          CRD    CN 
          AOD    AB 
          LDM    .EMB+MTBL   ESTABLISH *LIMIT*
          SBN    2           ALLOW FOR HEADER 
          STD    CN+4 
          LDD    CM+1        STORE BUFFER INTERLOCK/*IN* WORD 
          SHN    14 
          LMD    CM+2 
          CWD    AB 
          ADN    1           STORE BUFFER *OUT*/*LIMIT* WORD
          CWD    CN 
          UJN    EMBX        RETURN 
 EST      SPACE  4,10 
**        EST - DEFINE EQUIPMENT STATUS TABLE.
* 
*         EXIT   (KI) = NUMBER OF 819 DEVICES.
* 
*         USES   T1, T2, T5, AB+1 - AB+2, CM - CM+4.
* 
*         CALLS  CKB, PBD, SPW, STA.
* 
*         MACROS CFI, SFA.
  
  
 EST1     RJM    STA         FETCH EST ENTRY
          ZJN    EST5        IF NOT MASS STORAGE
  
*         SET HALF/FULL TRACK FLAGS.
  
          LDN    AB+1 
          STD    T1 
 EST2     LDM    EBUT-AB,T1  EXTRACT CHANNEL
          STI    T1 
          ZJN    EST4        IF SINGLE ACCESS DEVICE
          LPN    77 
          STD    CM 
          LDI    ES          CHECK DEVICE TYPE
          SHN    21-7 
          PJN    EST3        IF NOT *LDAM* DEVICE 
          LPN    2
          LMC    SCNI+77     SET DRIVER INSTRUCTION 
          STM    EBUT+5+2 
          LDM    TCHS,CM
          SBN    CLFT 
          SHN    -21
          SHN    10-0 
          RAM    EBUT-AB,T1 
 EST3     AOD    T1          ADVANCE CHANNEL BYTE INDEX 
          LMN    AB+3 
          NJN    EST2        IF ANOTHER CHANNEL TO PROCESS
 EST4     LDM    TDDB+DVED
          SHN    21-12
 EST5     PJN    EST6        IF NOT BUFFERED DEVICE 
          RJM    PBD         PROCESS BUFFERED DEVICE
 EST6     SFA    EST,T5 
          CWM    EBUT,T2     STORE EST ENTRY
 EST7     SOD    T5 
          PJP    EST1        IF NOT END OF EST
  
*         SET UP CHANNEL TABLE POINTER WORD.
  
          LDN    CTALL*5     INITIALIZE CHANNEL LIST INDEX
          STD    T5 
 EST8     LDM    KBUF,T5
          ZJN    EST9        IF NOT BUFFERED DEVICE 
          AOM    .CCTP
          SHN    2           COUNT USAGE
          STM    .CCTP+2
          ERRNZ  CCTL-4      CODE DEPENDS ON VALUE
 EST9     SOD    T5 
          PJN    EST8        IF MORE CHANNELS TO SCAN 
          LDD    HO          CHECK MAINFRAME TYPE 
          SHN    -11
          SBN    7
          NJN    ESTX        IF NOT CYBER 176 
  
*         SET UP CHANNEL TABLE POINTER FOR CYBER 176/819. 
  
          LDN    4           SET NUMBER OF ENTRIES
          STM    .CCTP
          SHN    CCTLS       SET TABLE LENGTH 
          STM    .CCTP+2
  
 EST      SUBR               ENTRY/EXIT 
          LDN    ESTP 
          RJM    SPW
          LDD    LE          SET LAST EQUIPMENT + 1 
          STD    CM+2 
          STD    T5 
          CFI    EST,,LE     ADVANCE CENTRAL ADDRESS
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          RJM    CKB
          LDN    ESTP        STORE EST POINTER
          CWD    CM 
          LDN    ESTE        SET EST ENTRY LENGTH 
          STD    T2 
          LJM    EST7        PROCESS EST
 EVT      SPACE  4,10 
**        EVT - DEFINE EVENT TABLE. 
* 
*         CALLS  CLS, SPW.
  
  
 EVT      SUBR               ENTRY/EXIT 
          LDC    EVTP 
          RJM    SPW
          LDN    EVTLL       CLEAR TABLE
          RJM    CLS
          UJN    EVTX        RETURN 
 EXM      SPACE  4,10 
**        EXM - DEFINE EXTENDED MEMORY BUFFERS. 
* 
*         ENTRY  (EN) = EXTENDED MEMORY CPU ACCESS EST ORDINAL. 
* 
*         USES   T3, AB - AB+4, CN - CN+4.
* 
*         CALLS  CLS, SPW.
* 
*         MACROS SFA. 
  
  
 EXM      SUBR               ENTRY/EXIT 
          LDK    UEML 
          CRD    AB 
          LDD    AB+4 
          LPN    2
          ADD    EN 
          ADD    LD 
          LPC    777
          ZJN    EXMX        IF NO EXTENDED MEMORY DEFINED
          LDC    EDBP 
          RJM    SPW
          LDN    EDBL        CLEAR DISPLAY BUFFER 
          RJM    CLS
          LDD    EN 
          ZJN    EXMX        IF NO EXTENDED MEMORY EQUIPMENT
          SFA    EST,,EN
          CRD    CN 
          LDM    TAXM+3 
          ZJN    EXM1        IF NO SPACE RESERVED FOR I/O BUFFERS 
          LDM    .PPU 
          SBN    2
          SHN    -1 
 EXM1     STD    T3 
          SHN    -1 
          RAD    T3 
          LDD    CN+3        CHECK EXTENDED MEMORY ACCESS 
          LPN    77 
          LMN    1RP
          ZJN    EXM2        IF DDP 
          AOD    T3 
 EXM2     LDC    3S12+EPBP
          RJM    SPW
          LDD    T3          SET BUFFER COUNT 
          ZJN    EXM4        IF NO I/O BUFFERS DEFINED
          SHN    6
          RAD    CM+3 
          LDD    T5          STORE EXTENDED MEMORY BUFFER POINTER 
          CWD    CM 
 EXM3     LDC    ECBL        CLEAR BUFFER 
          RJM    CLS
          SOD    T3 
          NJN    EXM3        IF ALL BUFFERS NOT ALLOCATED 
 EXM4     LJM    EXMX        RETURN 
 EXP      SPACE  4,10 
**        EXP - DEFINE C176 EXCHANGE PACKAGES.
* 
*         CALLS  SXA. 
  
  
 EXP      SUBR               ENTRY/EXIT 
          LDD    HO 
          SHN    -11
          LMN    7
          NJN    EXPX        IF NOT C176
          RJM    SXA
          UJN    EXPX        RETURN 
 FNT      SPACE  4,10 
**        FNT - DEFINE FILE NAME TABLE. 
* 
*         CALLS  CLS, LST, SPW. 
* 
*         MACROS CFI. 
  
  
 FNT      SUBR               ENTRY/EXIT 
          LDN    FNTP 
          RJM    SPW
          LDM    .FNT+MTBL   SET FNT ENTRY COUNT
          STD    CM+2 
          CFI    FNT,,CM+2   CLEAR TABLE
          RJM    CLS
          LDN    FNTE        LINK FNT 
          RJM    LST
          LDD    CM          STORE SYSTEM FILE FNT ENTRY
          SHN    14 
          LMD    CM+1 
          ERRNZ  SYFO        SYSTEM FILE ORDINAL .NE. 0 
          CWM    ICTA,ON
          UJN    FNTX        RETURN 
 FOT      SPACE  4,10 
**        FOT - DEFINE FAMILY ORDINAL TABLE.
* 
*         CALLS  CLS, LST, SPW. 
  
  
 FOT      SUBR               ENTRY/EXIT 
          LDC    FOTP 
          RJM    SPW
          LDM    .FOT+MTBL   SET FOT ENTRY COUNT
          STD    CM+2 
          RJM    CLS
          LDN    1           LINK FOT 
          RJM    LST
          LDD    CM          STORE SYSTEM FOT ENTRY 
          SHN    14 
          LMD    CM+1 
          CWM    ICTB,ON
          UJN    FOTX        RETURN 
 INB      SPACE  4,10 
**        INB - DEFINE INSTALLATION BLOCK.
* 
*         CALLS  SPW. 
  
  
 INB      SUBR               ENTRY/EXIT 
          LDC    2S12+INBP
          RJM    SPW
          LDM    INBS        SET TABLE LENGTH 
          STD    CM+4 
          RJM    CLS         CLEAR THE BLOCK
          LDD    T5          STORE POINTER WORD 
          CWD    CM 
          UJN    INBX        RETURN 
 JCA      SPACE  4,10 
**        JCA - DEFINE JOB CONTROL BLOCK TABLE (*JCB*). 
* 
*         USES   T1.
* 
*         CALLS  SPW. 
  
  
 JCA      SUBR               ENTRY/EXIT 
          LDK    JBCP 
          RJM    SPW
          LDN    0
          STD    T1 
          LDN    JCBE        SET WORD COUNT 
          STD    T2 
          LDD    CA          INITIALIZE SCT (JCB ORDINAL ZERO)
          SHN    14 
          ADD    CA+1 
          CWM    JCAC,T2
          UJN    JCA2        PROCESS NEXT BLOCK 
  
 JCA1     LDD    CA          STORE JCB ENTRY FOR NEXT SERVICE CLASS 
          SHN    14 
          ADD    CA+1 
          CWM    JCAB,T2
 JCA2     STD    CA+1 
          SHN    -14
          STD    CA 
          AOD    T1          COUNT JCB ENTRY
          SBN    MXJC 
          MJN    JCA1        IF MORE SERVICE CLASSES TO PROCESS 
          UJN    JCAX        RETURN 
  
  
 JCAB     BSS    0           DEFAULT JCB (JCB ORDINAL .GT. 0) 
          CON    0,100,7000,1,0         INPUT FILE CONTROL
          CON    700,100,7000,1,7000    EXECUTING JOB CONTROL 
          CON    0,100,7000,1,0         OUTPUT FILE CONTROL 
          CON    0,4,20,-0,341          SERVICE CONTROL 
          CON    6760,4004,3777,7,7777
          CON    0,0,3777,0,-0
          CON    0,0,0,0,/SCD/DISC
          CON    30,10,20,4,20
          BSS    4*5
  
 .L       SET    *-JCAB 
 JCABL    EQU    .L/5        LENGTH OF ENTRY
          ERRNZ  JCABL-JCBE  ERROR IN LENGTH
  
 JCAC     BSS    0           DEFAULT SCT (JCB ORDINAL 0)
          CON    0,0,0,/SCD/A2MK,/SCD/A1MK+/SCD/SSMK
          CON    0,0,0,0,/SCD/BCMK
          CON    0,0,0,0,/SCD/RBMK
          CON    0,0,0,0,/SCD/DIMK+/SCD/TSMK
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
          CON    0,0,0,0,0
  
 .L       SET    *-JCAC 
 JCACL    EQU    .L/5        LENGTH OF ENTRY
          ERRNZ  JCACL-JCBE  ERROR IN LENGTH
 LDB      SPACE  4,10 
**        LDB - DEFINE *L* DISPLAY BUFFER.
* 
*         CALLS  CLS, SPW.
  
  
 LDB      SUBR               ENTRY/EXIT 
          LDC    2S12+LDSP
          RJM    SPW
          LDC    LDSY+LCOM+5 CLEAR BUFFER 
          RJM    CLS
          UJN    LDBX        RETURN 
 LID      SPACE  4,10 
**        LID - DEFINE LOGICAL ID TABLE.
* 
*         USES   T7.
* 
*         CALLS  CLS, SPW.
  
  
 LID      SUBR               ENTRY/EXIT 
          LDC    LIDP 
          RJM    SPW
          LDM    .LID+MTBL   SET LID ENTRY COUNT
          STD    CM+2 
          RJM    CLS
          LDD    T5          STORE POINTER WORD 
          CWD    CM 
          UJN    LIDX        RETURN 
 MCT      SPACE  4,10 
**        MCT - DEFINE MEMORY CONTROL TABLE.
* 
*         USES   CM+2, T3.
* 
*         CALLS  CLS, SPW.
  
  
 MCT      SUBR               ENTRY/EXIT 
          LDC    MCTP 
          RJM    SPW
          LDM    .NPCP       PSEUDO CONTROL POINT COUNT 
          STD    T3 
          ADD    NC          FORM MCT ENTRY COUNT 
          ADN    1
          STD    CM+2 
          SHN    1           CLEAR TABLE
          RJM    CLS
          LDD    T5          UPDATE POINTER WORD
          CWD    CM 
          LDD    T3 
          ZJN    MCTX        IF NO PCP-S
          LDC    3S12+PCPP
          RJM    SPW
          LDD    T3          CLEAR PCP AREA 
          SHN    7
          RJM    CLS
          UJP    MCTX        RETURN 
 MSA      SPACE  4,10 
**        MSA - DEFINE MASS STORAGE ALLOCATION TABLE. 
* 
*         USES   EQ, T2, T3, T5, CM - CM+4, CN - CN+4.
* 
*         CALLS  CLS, EEB, SME, SPW, STA. 
  
  
 MSA5     LDD    CM          WRITE ALLOCATION WORD
          SHN    14 
          LMD    CM+1 
          ADD    T3 
          CWD    CN 
          LDM    MSAA        ADVANCE ALLOCATION MASK
          RAM    MSAA 
          AOD    T3 
          LMN    MXRS 
          NJN    MSA2        IF NOT END OF ALLOCATION TYPES 
  
 MSA      SUBR               ENTRY/EXIT 
          LDC    MSAP 
          RJM    SPW
          LDN    MXRS        CLEAR TABLE
          RJM    CLS
          LDN    0
          STD    T3 
          STD    T5 
          UJN    MSA2        ENTER LOOP 
  
 MSA1     LDD    T5 
          NJN    MSA5        IF NO DEFAULT TO SET 
          LDM    DFMS 
          RJM    STA
          AOM    TDDB+DVFA   UPDATE EQUIPMENT DEFINITION
          RJM    EEB
  
 MSA2     LDN    NOPE-1      INITIALIZE EQUIPMENT SEARCH LOOP 
          STD    EQ 
          LDN    ZERL 
          CRD    CN 
 MSA3     RJM    SME
          ZJN    MSA1        IF END OF ALLOCATION TYPE
          LDD    EQ 
          STD    T2 
          RJM    STA         FETCH DEVICE DESCRIPTION 
          LDM    TDDB+DVFA
          LPC    1
 MSAA     EQU    *-1
          ZJN    MSA3        IF SELECTION NOT SET FOR THIS EQUIPMENT
          AOD    T5 
          LDN    CN 
          STD    T0 
 MSA4     AOD    T0          DIVIDE BY 12 
          LCN    12D
          RAD    T2 
          PJN    MSA4        IF NOT COMPLETE
          LMC    777777-SHNI
          SBN    1
          STM    MSAB 
          LDN    1
 MSAB     SHN    0
          RAI    T0 
          LDC    2000 
          STD    CN 
          UJN    MSA3        CHECK NEXT EQUIPMENT 
 MST      SPACE  4,10 
**        MST - DEFINE MASS STORAGE TABLES. 
* 
*         EXIT   (LE) = LAST MASS STORAGE EQUIPMENT + 1.
* 
*         USES   EQ, T3, AB - AB+4, CM - CM+4.
* 
*         CALLS  EEB, RMM, SME, SMT, STA. 
* 
*         MACROS SFA. 
  
  
 MST2     RJM    RMM         RECOVER MSTS FROM MS 
  
*         PROCESS NEXT EQUIPMENT. 
  
          LDD    EQ          SET LAST DEVICE
          STD    T3 
          RJM    SME
          ZJN    MST3        IF END OF MS EST ENTRIES 
          LDD    EQ 
          RJM    STA
          NJN    MST2        IF A MASS STORAGE DEVICE 
          LDC    =C*INCORRECT DEVICE TYPE.* 
          JMP    DSE
  
 MST3     SFA    EST,.PFNL+3 CHECK DEFAULT FAMILY EQUIPMENT 
          CRD    AB 
          LDD    AB 
          SHN    21-13
          MJN    MST4        IF DEFINED 
          LDM    DFMS        SET DEFAULT FAMILY 
          STM    .PFNL+3
 MST4     LDN    ESTP 
          CRD    CM 
          AOD    T3          SET LAST MASS STORAGE EQUIPMENT + 1
          STD    CM+3 
          STD    LE 
          LDN    ESTP 
          CWD    CM 
  
 MST      SUBR               ENTRY/EXIT 
          LDD    ID          SET MACHINE ID IN DEFAULT FAMILY NAME
          STM    DEFM+2 
          LDN    RDEQ 
          STD    EQ 
          SFA    EST,,EQ     FETCH EST ENTRY FOR *RD* DEVICE
          CRD    AB 
          LJM    MST2        ENTER LOOP 
 ODB      SPACE  4,10 
**        ODB - DEFINE OPERATOR DISPLAY BUFFER. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS. 
  
  
 ODB      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    CM 
          AOD    CM          SET UP INTERLOCK WORD
          LDD    CA 
          SHN    14 
          LMD    CA+1        STORE INTERLOCK WORD 
          CWD    CM 
          AOD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          RAD    CA 
          LDN    LODS-1      CLEAR BUFFER 
          RJM    CLS
          UJN    ODBX        RETURN 
 ORT      SPACE  4,10 
**        ORT - DEFINE OPTICAL DISK REQUEST TABLE.
* 
*         CALLS  CLS, LST, SPW. 
* 
*         MACROS CFI. 
  
  
 ORT      SUBR               ENTRY/EXIT 
          LDC    ORTP 
          RJM    SPW
          LDM    .ORT+MTBL   SET ORT ENTRY COUNT
          STD    CM+2 
          CFI    ORT,,CM+2   CLEAR TABLE
          RJM    CLS
          LDN    ORTE        LINK ORT 
          RJM    LST
          UJN    ORTX        RETURN 
 OST      SPACE  4,10 
**        OST - DEFINE OPTICAL DISK STATUS TABLES.
* 
*         USES   EQ, T4, T5, AB - AB+4, CM - CM+4.
* 
*         CALLS  CLS, SPW.
* 
*         MACROS SFA. 
  
  
 OST2     LDC    OSTP        SET NUMBER OF ENTRIES IN OST POINTER WORD
          CRD    CM 
          LDD    T4 
          SHN    -2 
          STD    CM+2 
          LDC    OSTP 
          CWD    CM 
          LDD    T4          SET LENGTH OF TABLE
          RJM    CLS
  
 OST      SUBR               ENTRY/EXIT 
          LDC    OSTP 
          RJM    SPW
          LDN    0
          STD    EQ          SET INITIAL EST ORDINAL
          STD    T4          SET INITIAL TABLE INDEX
          LDN    ESTP 
          CRD    CM 
          LDD    CM+2        SET MAXIMUM EST ORDINAL
          STD    T5 
 OST1     AOD    EQ          ADVANCE EST ENTRY
          LMD    T5 
          ZJN    OST2        IF END OF EST
          SFA    EST,EQ      READ EST ENTRY 
          ADK    EQDE 
          CRD    CM 
          LDD    CM+3 
          LMC    2ROD 
          NJN    OST1        IF NOT OPTICAL DISK
          LDN    ZERL 
          CRD    AB 
          LDD    T4 
          SHN    -2          SET OST ENTRY ORDINAL IN EST 
          ERRNZ  OSTE-4      CODE DEPENDS ON VALUE
          STD    AB+2 
          SFA    EST,EQ 
          ADN    EQAE 
          CWD    AB          UPDATE EST ENTRY 
          LDN    OSTE        ADVANCE TABLE ADDRESS
          RAD    T4 
          UJN    OST1        PROCESS NEXT EST ENTRY 
 PDB      SPACE  4,10 
**        PDB - DEFINE PREVIEW DISPLAY BUFFER.
* 
*         USES   CA, CA+1.
* 
*         CALLS  CLS. 
  
  
 PDB      SUBR               ENTRY/EXIT 
          LDD    CA          SET INTERLOCK WORD ADDRESS 
          SHN    14 
          ADD    CA+1 
          CWM    PDBA,ON     INITIALIZE INTERLOCK WORD
          STD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          STD    CA 
          LDC    LPDS-1 
          RJM    CLS         CLEAR PREVIEW DISPLAY BUFFER 
          UJN    PDBX        RETURN 
  
  
 PDBA     VFD    12/7777B,12/0,12/0,12/0,12/0 
 PSV      SPACE 4,10
**        PSV - DEFINE PP SAVE AREAS. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS, SPW.
  
  
 PSV      SUBR               ENTRY/EXIT 
          LDD    LD 
          SHN    0-13 
          ZJN    PSVX        IF NO ISHARED DEVICES
          LDC    2S12+PPSP
          RJM    SPW
          LDM    .PPN        COMPUTE NUMBER OF SAVE AREAS 
          SBN    2
          STD    CM+4 
          SBD    NS 
          MJN    PSV1        IF FEWER PP-S THAN ISHARED DEVICES 
          LDD    NS 
          STD    CM+4 
 PSV1     LDD    T5 
          CWD    CM 
  
*         ALLOCATE SAVE AREAS.
  
 PSV2     SOD    CM+4 
          MJN    PSVX        IF NO MORE TO ALLOCATE 
          LDC    PPSA        CLEAR SAVE AREA
          RJM    CLS
          UJN    PSV2        ALLOCATE NEXT SAVE AREA
 QFT      SPACE  4,10 
**        QFT - DEFINE QUEUE FILE TABLE.
* 
*         CALLS  CLS, LST, SPW. 
* 
*         MACROS CFI. 
  
  
 QFT      SUBR               ENTRY/EXIT 
          LDN    QFTP 
          RJM    SPW
          LDM    .QFT+MTBL   SET QFT ENTRY COUNT
          STD    CM+2 
          CFI    QFT,,CM+2   CLEAR TABLE
          RJM    CLS
          LDN    QFTE        LINK QFT 
          RJM    LST
          LDN    0
          STM    ICTB+4 
          LDD    CM          STORE SYSTEM QFT ENTRY 
          SHN    14 
          LMD    CM+1 
          CWM    ICTB,ON
          ADN    SCLQ-JSNQ-1
          CWM    ICTC,ON
          UJN    QFTX        RETURN 
 RPT      SPACE  4,10 
**        RPT - DEFINE RING PORT TABLE. 
* 
*         ENTRY  (CA - CA+1) = CURRENT CM ADDRESS.
* 
*         USES   T4, EQ, AB - AB+4. 
* 
*         CALLS  CLS, DSE, SSE. 
  
  
 RPT2     LDD    CA          SET ADDRESS INTO EST ENTRY 
          SHN    14 
          LMD    CA+1 
          ADN    1S"RPTSM"-1
          ADD    T4 
          SHN    -RPTAS 
          STD    AB+4 
          SHN    -14
          NJN    RPT1        IF ADDRESS TOO LARGE 
          SFA    EST,EQ 
          ADK    EQDE 
          CWD    AB 
          LDN    RPTL        INCREMENT ADDRESS OFFSET 
          RAD    T4 
 RPT3     RJM    SSE         SEARCH FOR *RP* EQUIPMENT
          ZJN    RPT2        IF FOUND 
          LDD    T4 
          ZJN    RPTX        IF NO TABLE SPACE RESERVED 
          LDD    CA+1 
          LPN    1S"RPTSM"-1
          ADD    T4 
          RJM    CLS         CLEAR STORAGE
  
 RPT      SUBR               ENTRY/EXIT 
          LDN    0
          STD    T4 
          LDC    1S17+2RRP
          UJN    RPT3        SEARCH FOR EQUIPMENT 
  
 RPT1     LDC    =C*RING PORT TABLE OVERFLOW.*
          JMP    DSE         DISPLAY ERROR
 SAB      SPACE  4,10 
**        SAB - DEFINE SYSTEM ATTRIBUTE BLOCK.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS, SPW.
  
  
 SAB      SUBR               ENTRY/EXIT 
          LDC    SABL 
          RJM    SPW         SETUP POINTER WORD 
          LDN    ELDWL
          SBM    C8XX        SET BASE DESCRIPTOR BLOCK LENGTH 
          STD    CM+2 
          LDD    EN 
          ADM    UEMZ 
          ADM    UEMZ+1 
          ZJN    SAB2        IF NO EXTENDED MEMORY DESCRIPTOR REQUIRED
          AOD    CM+2        ADVANCE DESCRIPTOR LENGTH
 SAB2     LDM    .CPU        ADD SECOND CPU DESCRIPTOR
          LMN    2
          ERRNZ  CPDWL-4     CODE DEPENDS ON VALUE
          LPN    2
          SHN    1           LENGTH = 4 WORDS 
          RAD    CM+2 
          LDD    HO          APPEND FLPP DESCRIPTOR WORD
          SHN    0-11 
          LPN    1
          RAD    CM+2        CLEAR ELEMENT DESCRIPTOR BLOCK 
          RJM    CLS
          LDD    T5          STORE POINTER WORD 
          CWD    CM 
          UJP    SABX        RETURN 
 SCD      SPACE  4,10 
**        SCD - DEFINE *SCD* PARAMETER TABLE. 
* 
*         CALLS  CLS, SPT, SPW. 
  
  
 SCD2     LDD    CA          SET SAVE AREA FWA
          STM    SPSA 
          LDD    CA+1 
          STM    SPSA+1 
          LDC    PSAL        CLEAR SAVE AREA
          RJM    CLS
  
 SCD      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    SCDX        IF NOT DUAL STATE MAINFRAME
          LDM    BSPT 
          ZJN    SCD1        IF TABLE SHOULD BE CREATED 
          LDM    .DCS 
          ZJN    SCD2        IF DEADSTART FROM CC545
 SCD1     LDC    2S12+SCDP
          RJM    SPW
          RJM    SPT         SET UP PARAMETER TABLE 
          UJN    SCD2        RESERVE PP RESIDENT SAVE AREA
 SCT      SPACE  4,10 
**        SCT - DEFINE SUBSYSTEM CONTROL TABLE. 
* 
*         CALLS  CLS, SPW.
  
  
 SCT      SUBR               ENTRY/EXIT 
          LDC    2S12+SSCP
          RJM    SPW
          LDN    SSCTL*2     CLEAR TABLE
          RJM    CLS
          UJN    SCTX        RETURN 
 SDA      SPACE  4,10 
**        SDA - DEFINE STATISTICAL DATA AREA. 
* 
*         CALLS  CLS, SPW.
  
  
 SDA      SUBR               ENTRY/EXIT 
          LDC    SDAP        SET STATISTICAL AREA POINTER 
          RJM    SPW
          LDN    SDAL        CLEAR TABLE
          RJM    CLS
          UJN    SDAX        RETURN 
 SIE      SPACE  4,10 
**        SIE - *SET* INTERNAL ERROR. 
* 
*         ENTRY  TABLE VERIFICATION PROCESSOR MISSING.
* 
*         EXIT   TO *DSE*.
  
  
 SIE      CON    0           ENTRY
          LDC    =C+*SET* INTERNAL ERROR IN *ICM*.+ 
          JMP    DSE         DISPLAY ERROR AND HANG 
 SIT      SPACE  4,10 
**        SIT - DEFINE *SECDED* ID TABLE. 
* 
*         CALLS  CLS, SPW.
  
  
 SIT      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          ZJN    SITX        IF LOWER 800 SERIES MAINFRAME
          LDC    SCRL 
          RJM    SPW
          LDC    4000        SET *1MB* (ERROR LOGGING) ACTIVE 
          RAD    CM 
          LDD    T5          STORE POINTER WORD 
          CWD    CM 
          LDK    2*/SCR/UIDL CLEAR TABLE
          RJM    CLS
          UJN    SITX        RETURN 
 TRT      SPACE  4,10 
**        TRT - ALLOCATE TRT SPACE. 
* 
*         USES   EQ, CM - CM+4, CN - CN+4.
* 
*         CALLS  CDL, CLS, SME. 
  
  
 TRT1     LDD    AB+4        FETCH TRT LENGTH 
          SHN    3
          ADK    TDGL 
          CRD    CM 
          ADN    TRLL-TDGL   READ TRT ADDRESS WORD
          CRD    CN 
          LDD    CA          SET TRT ADDRESS
          RAD    CN+3 
          LDD    CA+1 
          STD    CN+4 
          LDD    AB+4        STORE TRT ADDRESS
          SHN    3
          ADN    TRLL 
          CWD    CN 
          RJM    CDL
          RJM    CLS         CLEAR TRT SPACE
 TRT2     RJM    SME
          NJN    TRT1        IF NOT END OF MASS STORAGE EST 
  
 TRT      SUBR               ENTRY/EXIT 
          LDN    NOPE-1 
          STD    EQ 
          UJN    TRT2        BEGIN EST SEARCH 
          TITLE  PRIMARY SUBROUTINES. 
 LST      SPACE  4,10 
**        LST - LINK SYSTEM TABLE.
* 
*         ENTRY  (A) = LENGTH OF TABLE ENTRY. 
*                (T5) = POINTER WORD ADDRESS. 
*                (CM - CM+4) = POINTER WORD.
* 
*         EXIT   (A) .NE. 0 IF RECOVERY DEADSTART.
* 
*         USES   T3, AB - AB+4, CN - CN+4.
  
  
 LST2     LDD    T3          ADVANCE TABLE ADDRESS
          RAD    AB+1 
          SHN    -14
          RAD    AB 
          SHN    14          STORE TABLE LINKAGE
          LMD    AB+1 
          CWD    CN 
 LST3     AOD    CN+4        ADVANCE LINKAGE
          LMD    CM+2 
          NJN    LST2        IF NOT END OF TABLE
  
 LST      SUBR               ENTRY/EXIT 
          STD    T3          SAVE LENGTH OF ENTRY 
          LDD    RS 
          NJN    LST1        IF RECOVERY DEADSTART
          CRD    CN 
          AOD    CN+4        SET FIRST AVAILABLE ORDINAL
          STD    CM+4 
          LDD    CM+2        NUMBER OF FREE ENTRIES 
          SBN    1
          STD    CM+3 
 LST1     LDD    T5          UPDATE POINTER WORD
          CWD    CM 
          CRD    AB 
 LSTA     UJN    LST3        LINK TABLE 
*         UJN    LSTX        (RECOVERY DEADSTART) 
          TITLE  COMMON SUBROUTINES.
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          COMMON
          SPWSUB
          TITLE  SUBROUTINES. 
 IDB      SPACE  4,15 
**        IDB - INITIALIZE DAYFILE BUFFER.
* 
*         ENTRY  (T3) = BUFFER NUMBER.
*                (T6 - T7) = FWA OF DAYFILE POINTERS. 
*                (CA - CA+1) = ADDRESS OF NEXT BUFFER.
* 
*         EXIT   (CA - CA+1) ADVANCED.
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4. 
* 
*         CALLS  CLS. 
  
  
 IDB      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    CM 
          CRD    AB 
          CRD    CN 
          LDD    CA          SET BUFFER ADDRESS 
          STD    CM 
          LDD    CA+1 
          STD    CM+1 
          LDM    .DFB,T3     SET BUFFER LENGTH
          STD    AB+3 
          SCN    77 
          NJN    IDB1        IF NOT ZERO LENGTH BUFFER
          STD    AB+3 
 IDB1     LDD    T3          SET BUFFER INDEX 
          SHN    6
          ADC    103         APPEND NOT BUSY / NOT INTERLOCKED STATUS 
          STD    CN+4 
          LDD    T6          STORE DAYFILE BUFFER POINTERS
          SHN    14 
          LMD    T7 
          CWD    CM 
          ADN    1
          CWD    AB 
          ADN    1           STORE DAYFILE FST
          CWD    CN 
          LDD    AB+3        CLEAR BUFFER 
          RJM    CLS
          LJM    IDBX        RETURN 
 RMM      SPACE  4,10 
**        RMM - RECOVER MST-S FROM MASS STORAGE.
  
  
 RMM      SUBR               ENTRY/EXIT 
          LDD    AB 
          SCN    14 
          STD    AB 
          LDM    TDDB+DVPR
          LPN    2
          SHN    1
          RAD    AB 
          RJM    RCA         SET MST POINTER
          STD    AB+4 
          SHN    -14
          ZJN    RMM1        IF TABLE WITHIN LIMIT
          LDC    =C*MASS STORAGE TABLE OVERFLOW.* 
          LJM    DSE
  
 RMM1     STM    RMMC        CLEAR PARTITION LINK STORAGE 
          SFA    EST,EQ      STORE EST ENTRY
          CWD    AB 
          LDN    MSTXL       CLEAR MST SPACE (INCLUDING EXTENSION)
          RJM    CLS
          LDD    EQ 
          ZJN    RMMX        IF EQUIPMENT ZERO
          LMN    LDEQ 
          NJN    RMM2        IF NOT LINK DEVICE 
          SBM    TAXM+3+5*1 
          SBM    TAXM+3+5*2  SUBTRACT I/O BUFFERS FOR OTHER MACHINES
          SBM    TAXM+3+5*3 
          RAM    TDDB+DVNT
 RMM2     LDD    EN 
          LMD    EQ 
          NJN    RMM3        IF NOT XM EQUIPMENT WITH I/O BUFFERS 
          SBM    TAXM+3 
          RAM    TDDB+DVNT   SUBTRACT I/O BUFFERS FOR THIS MACHINE
  
 RMM3     RJM    SHS         SET *HAT* AND *PUT* TABLE SIZES
  
*         PRESET MASS STORAGE TABLE WORDS.
  
          LDM    TDDB+DVNT   SET NUMBER OF TRACKS 
          STD    CM 
          STD    CM+4 
          ADN    3
          SHN    -2 
          STD    CM+2 
          LDN    0
          STD    CM+1 
          STD    CM+3 
          LDD    AB+4        STORE *TDGL* 
          SHN    3
          ADK    TDGL 
          CWD    CM 
  
*         SDGL - SHARED DEVICE STATUS WORD. 
  
          LDN    ZERL 
          CRD    CM 
          LDD    AB          SET ISD FLAG IN *SDGL* 
          LPN    20 
          SHN    13-4 
          STD    CM 
          LDD    AB+4 
          SHN    3
          ADN    SDGL 
          CWD    CM 
  
*         ACGL - DEVICE GLOBAL INFORMATION WORD.
  
          LDD    AB          SET GLOBAL UNLOAD IF *OFF* OR *DOWN* 
          LPN    2
          SHN    GUNL-GUNL/12D*12D-1
          STD    CM+4 
          LDN    0
          STD    CM 
          LDM    TDDB+DVPR
          LPN    1           APPEND PRESET STATUS FOR ISD 
          SHN    GPRS-GPRS/12D*12D
          RAD    CM+4 
          LDD    AB+4        STORE *ACGL* 
          SHN    3
          ADN    ACGL 
          CWD    CM 
  
*         DALL - DRIVER ACTIVITY WORD.
  
          LDN    ZERL 
          CRD    CM 
          LDD    AB 
          LPN    3
          SHN    11-1 
          STD    CM 
          LDD    AB+4 
          SHN    3
          ADN    DALL 
          CWD    CM 
  
*         DILL - DRIVER INTERLOCK WORD. 
  
          LDM    TDDB+DVFA   SET FILE ALLOCATION STATUS 
          STD    CM 
          LDD    EQ          SET EST ORDINAL
          STD    CM+1 
          LDC    **          SET PRIOR PARTITION EST ORDINAL
 RMMC     EQU    *-1
          STD    CM+2 
          LDM    TDDB+DVED   SET EQUIPMENT PARAMETERS 
          STD    CM+3 
          LDM    TDDB+DVAI   SET ALGORITHM INDEX
          LPN    77 
          STD    CM+4        ALGORITHM INDEX TO BYTE 4
          LDD    AB+4        WRITE *DILL* 
          SHN    3
          ADN    DILL 
          CWD    CM 
  
*         ALGL - DEVICE ALLOCATION INFORMATION WORD.
  
          LDC    TDDB+DVNM
          STD    T3          SET POINTER TO PF DEVICE NAME
          STM    RMMA 
          LDD    RS 
          NJN    RMM7        IF RECOVERY DEADSTART
          CRD    CM 
          LDI    T3 
          NJN    RMM4        IF PF ENTRY PRESENT
          LDD    EQ 
          LMM    DFMS 
          NJN    RMM5        IF NOT DEFAULT EQUIPMENT 
          LDN    1
          UJN    RMM6        SET CATALOG TRACK COUNT TO 1 
  
 RMM4     LDM    TDDB+DVPF
          SHN    -4 
          NJN    RMM6        IF CATALOG TRACK COUNT SPECIFIED 
 RMM5     LDM    TDDB+DVCT   GET DEFAULT CATALOG TRACK COUNT
          LPC    3777 
 RMM6     STD    CM+3        SET CATALOG TRACK COUNT
          LDD    AB+4 
          SHN    3
          ADN    ALGL        STORE *ALGL* 
          CWD    CM 
  
*         MDGL - MASS STORAGE DRIVER WORD.
  
 RMM7     LDM    TDDB+DVSL   SET SINGLE UNIT SECTOR LIMIT 
          STD    CM+1 
          LPC    3777 
          STD    CM+4 
          LDD    AB 
          LPN    40 
          ZJN    RMM7.1      IF NOT A BUFFERED DEVICE 
          LDD    CM+1        REMOVE PARTITION NUMBER
          SCN    17 
          STD    CM+1 
 RMM7.1   LDM    TDDB+DVDI   SET DRIVER INDEX 
          SHN    14 
          STD    CM+3 
          SHN    -14
          LMC    1RD*100
          STD    CM+2 
          LDD    AB+3        CHECK *EST* MNEMONIC 
          LMC    2RDP 
          ZJN    RMM8        IF TYPE *DP* 
          LMK    2RDE&2RDP
          NJN    RMM9        IF NOT TYPE *DE* 
          LDM    TDDB+DVED
          LPN    70 
          LMN    40 
          NJN    RMM8        IF NOT UEM 
          LDC    2RDX        CHANGE DRIVER NAME TO *DX* 
          STD    CM+2 
          LDN    LA6DX       RESET DRIVER INDEX 
          STD    CM+3 
 RMM8     LDM    EBUT+7      UPDATE SECTOR LIMIT TO REFLECT XM SHIFT
          SHN    -6 
          LPN    3
          ADD    TH 
          ERRNZ  SHNI-1000
          STM    RMMB 
          LDN    20          MINIMUM SECTOR LIMIT 
 RMMB     SHN    0
*         SHN    EMSC 
          STD    CM+4 
          ADC    4000        MAINTAIN FULL-TRACK FLAG 
          STD    CM+1 
 RMM9     LDI    ES 
          LPC    404
          SHN    12-2 
          STD    CM          SET AUXILIARY STATUS 
          SHN    13-20
          SCN    77 
          RAD    CM          SET REMOVABLE STATUS 
          LDD    AB+4        STORE DRIVER WORD
          SHN    3
          ADN    MDGL 
          CWD    CM 
  
*         STLL - DEVICE STATUS WORD.
  
          LDN    ZERL 
          CRD    CM 
          LDD    ID          ADD MACHINE ID 
          STD    CM+2 
          AOD    CM+4 
          LDM    EBUT+4      CHECK FOR INITIALIZE REQUEST 
          SCN    17 
          ZJN    RMM11       IF NO INITIALIZE OPTIONS 
          STD    T0 
          LPC    MLFPR+MLIAL
          NJN    RMM10       IF FULL INITIALIZE SPECIFIED 
          LDD    T0 
          SHN    4
          STD    CM+1        SET DAYFILE OPTIONS
          SHN    -6 
          LPC    MLIPF+MLIQF
 RMM10    LMN    MLIRP       ADD INITIALIZE PENDING FLAG
          STD    CM 
 RMM11    STD    T1 
          LDM    EBUT+4      SET ALTERNATE DEVICE STATUS
          SHN    RASD-RASD/12D*12D-3
          LPN    MRASD
          RAD    CM 
          LDD    AB          SET UNLOAD REQUESTED IF *OFF* OR *DOWN*
          LPN    2
          SHN    LUNL-LUNL/12D*12D-1
          STD    T0 
          SHN    LDUL-LUNL   SET LOCAL UNLOAD IF *OFF* OR *DOWN*
          LMD    T0 
          RAD    CM 
          LDD    AB+4        STORE DEVICE STATUS
          SHN    3
          ADN    STLL 
          CWD    CM 
  
*         SCYL - STARTING CYLINDER OF PARTITION.
  
          LDN    ZERL 
          CRD    CM 
          LDM    TDDB+DVCO   SET STARTING CYLINDER
          STD    CM+2 
          LDD    AB+4        STORE STARTING CYLINDER
          SHN    3
          ADN    SCYL 
          CWD    CM 
  
*         DDLL - DEVICE DEFINITION WORD (WITH UNIT LIST). 
  
          LDM    EBUT+4      SET NUMBER OF UNITS
          LPN    7
          STM    TDDB+DVED
          SHN    3
          RAM    TDDB+DVED
          LDM    TDDB+DVPR   SET EQUIPMENT (CONTROLLER) NUMBER
          SHN    -11
          SHN    6
          RAM    TDDB+DVED
          LDD    AB+4        STORE DEVICE DEFINITION
          SHN    3
          ADN    DDLL 
          CWM    TDDB+DVED,ON 
  
*         THLL - DEVICE ERROR THRESHOLD WORD. 
  
          ADN    THLL-DDLL-1 STORE THRESHOLD VALUES 
          CWM    TDDB+DVTH,ON 
          LDD    T1 
          LPC    MLIAL
          ZJP    RMMX        IF FULL INITIALIZE NOT SPECIFIED 
  
*         PUGL - PERMANENT FILE USER DESCRIPTION. 
  
          LDN    0           CLEAR USER DESCRIPTION 
          CRD    CM 
          LDI    T3 
          NJN    RMM14       IF PF DESCRIPTION
          LDD    EQ 
          LMM    DFMS 
          NJN    RMM16       IF NOT DEFAULT EQUIPMENT 
          LDC    177777 
          UJN    RMM15       SET DEFAULT MASKS
  
 RMM14    LDM    TDDB+DVPF   SET MASKS
          LPN    17 
          SHN    14 
          LMM    TDDB+DVPF+1
 RMM15    STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDD    AB+4        STORE *PUGL* 
          SHN    3
          ADN    PUGL 
          CWD    CM 
  
*         PFGL - PERMANENT FILE DESCRIPTION WORD. 
  
 RMM16    LDI    T3 
          NJN    RMM17       IF PF DESCRIPTION
          AOM    DEFN 
          LDC    DEFM 
          STM    RMMA 
          STD    T3 
 RMM17    SFA    EST,EQ      SET DEVICE ACCESS LEVELS IN PFGL 
          ADK    EQAE 
          CRD    CM 
          LDD    CM+3 
          SHN    6
          STM    4,T3 
          LDM    TDDB+DVED   SET UNIT COUNTS IN PFGL
          LPN    77 
          RAM    4,T3 
          LDD    AB+4        STORE PF DESCRIPTOR WORD 
          SHN    3
          ADN    PFGL 
          CWM    **,ON
 RMMA     EQU    *-1
          LJM    RMMX        RETURN 
  
 DEFM     DATA   6LSYSTEM    DEFAULT FAMILY NAME
 DEFN     CON    0           DEFAULT DEVICE NUMBER
          CON    0           UNIT COUNT 
 SHS      SPACE  4,10 
**        SHS - SET HASH TABLE SIZE.
*         UPDATE .HATP AND .PUTP FOR BUFFERED DISKS.
* 
*         ENTRY  EBUT = EST ENTRY BUILT BY *CMR*. 
*                TDDB = MST PARAMETERS FROM *CMR*.
* 
*         USES   T2.
  
  
 SHS      SUBR               ENTRY/EXIT 
          LDM    TDDB+DVED
          SHN    21-12
          PJN    SHSX        IF NOT BUFFERED DEVICE 
          LDD    AB+3        SAVE EQUIPMENT MNEMONIC IN MESSAGE 
          STM    BDTB 
          LDM    EBUT+4 
          LPN    7
          ADN    1
          STD    T2          SAVE UNIT COUNT
          RJM    SPP         SEARCH FOR PRIOR PARTITIONS
          ZJN    SHS1        IF A PRIOR PARTITION WAS FOUND 
          RAM    .PUTP       UPDATE NUMBER OF *PUT* ENTRIES NEEDED
          SHN    PUTLS
          STM    .PUTP+2     ADVANCE TABLE LENGTH 
 SHS1     SOD    T2 
          MJN    SHSX        IF NO MORE UNITS 
          LDK    HATLE/10B
          RAM    .HATP       ACCUMULATE HASH TABLE LENGTHS
          SHN    3
          STM    .HATP+2     UPDATE TOTAL LENGTH
          SHN    -14
          LMD    TH 
          STM    .HATP+1
          LPN    70 
          ZJN    SHS1        IF NO OVERFLOW 
          LDC    =C*HASH TABLE OVERFLOW.* 
          LJM    DSE         ERROR HALT 
 SPP      SPACE  4,10 
**        SPP - SEARCH FOR PRIOR PARTITIONS.
* 
*         ENTRY  (EQ) = CURRENT EST ORDINAL.
*                (T2) = NUMBER OF UNITS.
*                (AB)-(AB+4) = CURRENT EST ENTRY. 
* 
*         EXIT   (A) = NUMBER OF UNITS IF NO PRIOR PARTITION. 
*                (A) = 0 IF PRIOR PARTITION FOUND.
*                (RMMC) = (T1) = EST ORDINAL IF PRIOR PARTITION FOUND.
* 
*         USES   T1, CM - CM+4. 
* 
*         MACROS SFA. 
  
  
 SPP6     STM    RMMC        CLEAR PRIOR PARTITION LINK 
          LDD    T2          GET NUMBER OF UNITS
  
 SPP      SUBR               ENTRY/EXIT 
          LDD    EQ 
          STD    T1 
 SPP1     SOD    T1 
          ZJN    SPP6        IF END OF EST - NO PRIOR PARTITION FOUND 
          SFA    EST,T1 
          CRD    CM          READ EST ENTRY 
          LDD    CM 
          SHN    21-13
          PJN    SPP1        IF NOT MASS STORAGE
          LDD    AB+3 
          LMD    CM+3 
 SPP2     NJN    SPP1        IF NOT THE SAME DEVICE TYPE
          LDN    CM          COMPARE CHANNEL ENTRIES
          STD    CM 
 SPP3     AOD    CM 
          SBN    CM+3 
          ZJN    SPP1        IF ALL PRIOR DEVICE CHANNELS CHECKED 
          LDN    AB 
          STD    T0 
 SPP4     AOD    T0 
          SBN    AB+3 
          ZJN    SPP3        IF ALL CURRENT DEVICE CHANNELS CHECKED 
          LDI    T0          CURRENT CHANNEL
          ZJN    SPP4        IF NO CHANNEL ENTRY
          LMI    CM          PRIOR DEVICE CHANNEL 
          LPC    4277 
          NJN    SPP4        IF CHANNELS ARE NOT THE SAME 
          LDD    CM+4        GET EQUIPMENT/UNIT FROM PRIOR DEVICE MST 
          SHN    3
          ADN    DDLL 
          CRD    CM 
          LDM    TDDB+DVUN+3 COMPARE UNIT NUMBER
          LMD    CM+4 
 SPP5     NJN    SPP2        IF NO MATCH
          LDM    TDDB+DVPR   COMPARE EQUIPMENT NUMBER 
          SHN    -3 
          LMD    CM 
          SHN    -6 
          NJN    SPP5        IF NO MATCH
          LDD    T1          SET LINK TO PRIOR PARTITION
          STM    RMMC 
          LDN    0           INDICATE PRIOR PARTITION FOUND 
          UJP    SPPX        RETURN 
          SPACE  4,10 
          USE    LITERALS    DUMP LITERALS BLOCK
 INO      SPACE  4,10 
**        INO - INITIALIZE OVERLAY. 
  
  
 INO      SUBR               ENTRY/EXIT 
          LDD    RS 
          ZJN    INOX        IF NOT RECOVERY DEADSTART
          LDC    *
          ORG    *-1
          LOC    LSTA 
          UJN    LSTX        RETURN 
          LOC    *O 
          STM    LSTA 
          UJN    INOX        RETURN 
          SPACE  4,10 
          QUAL   *
          SPACE  4,10 
          ERRNG  7777-*-4    IF OVERFLOW
          TTL    SET/APR - AUXILIARY MASS STORAGE PARAMETERS. 
          TITLE 
          IDENT  APR,APRL 
          QUAL   APR
          ORG    APRL 
*COMMENT  SET - AUXILIARY MASS STORAGE PARAMETERS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
**        TBLM - GENERATE TABLE OF MASS STORAGE FLAWING PARAMETERS. 
* 
*         TBLM   EQ 
*                EQ = MASS STORAGE EQUIPMENT MNEMONIC.
  
  
 TBLM     MACRO  EQ 
 MS_EQ     VFD    12/2R_EQ
 .A       IFNE   CYUN_EQ,0
          CON    CYPN_EQ      CYLINDERS/PARTITION 
          CON    PTCY_EQ      PHYSICAL TRACKS/CYLINDER
          CON    PSPT_EQ      PHYSICAL SECTORS/PHYSICAL TRACK 
          CON    CFS_EQ       CONVERSION FACTOR SHIFT COUNT 
 .B       SET    PSPT_EQ*PTCY_EQ-SPSC_EQ
 .C       SET    .B*LSPS_EQ 
 .D       SET    .C/10000 
 .E       SET    .D*10000 
          CON    .D           UPPER LOGICAL SECTORS/CYLINDER
          CON    .C-.E        LOWER LOGICAL SECTORS/CYLINDER
          CON    LSPT_EQ      LOGICAL SECTORS/PHYSICAL TRACK
          CON    SL_EQ+GS_EQ   LOGICAL SECTORS/LOGICAL TRACK
          CON    FRD         FLAW ROTATING MASS STORAGE DEVICE
 .A       ELSE
          BSS    10B         DUMMY TABLE ENTRIES
          CON    FMD         FLAW LARGE MEMORY DEVICE 
 .A       ENDIF 
          ENDM
          SPACE  4,10 
**        ENTRY POINTS. 
  
  
          CON    TSYN-1      ADDRESS OF SYNTAX TABLE
          CON    TSYNA       ADDRESS OF END OF SYNTAX TABLE 
 MSF      SPACE  4,10 
**        MSF - PROCESS MASS STORAGE FLAWS. 
  
  
 MSF1     RJM    PDF         PROCESS DISK FLAWS 
          RJM    PTL         PROCESS TRT LENGTHS
 MSF4     RJM    CMC         CHECK MACHINE CONFIGURATION
          RJM    ECT         DEFINE *EICB* TABLES.
          RJM    BVS         BUILD VARIABLE *SAB* TABLE 
          LDD    DP          SET DISPLAY CONTROL FOR *IPRDECK*
          STD    DS 
  
 MSF      SUBR               ENTRY/EXIT 
          AOD    DI          ADVANCE DECK INDEX 
          LDD    RS 
          NJN    MSF4        IF NOT A LEVEL 0 DEADSTART 
*         LDN    0
          RJM    RTD         LOAD *APRINST* AND *APRD00*
          LMN    1
          ZJN    MSF1        IF TEXT DECK EMPTY 
          LDC    MSFA 
          JMP    DSE         DISPLAY MESSAGE AND HANG 
  
 MSFA     DATA   C+*APRD00* MUST BE EMPTY.+ 
 SMF      SPACE  4,10 
**        SMF - SEARCH MASS STORAGE FLAW TABLE *TMSF*.
* 
*         ENTRY  (A) = EQUIPMENT TYPE (DEVICE MNEMONIC).
* 
*         EXIT   (A) = (T3) = ADDRESS OF ENTRY. 
*                (A) = 0, IF ENTRY NOT FOUND. 
* 
*         USES   T0, T3.
  
  
 SMF1     LDN    TMSFL       ADVANCE TABLE ADDRESS
          RAD    T3 
 SMF2     LDI    T3          CHECK ENTRY
          ZJN    SMFX        IF END OF TABLE
          LMD    T0          COMPARE DEVICE TYPE
          NJN    SMF1        IF NO MATCH
          LDD    T3          EXIT WITH ADDRESS OF ENTRY 
  
 SMF      SUBR               ENTRY/EXIT 
          STD    T0 
          LDC    TMSF        SET TABLE ADDRESS
          STD    T3 
          UJN    SMF2        ENTER LOOP 
 TMSF     SPACE  4,10 
**        TMSF - TABLE OF MASS STORAGE DEVICES. 
* 
*         ENTRY = TMSFL WORDS.
  
*         THE ENTRIES IN *TMSF* ARE REFERENCED WITH THE FOLLOWING TAGS. 
  
  
 TMSF     BSS    0
          LOC    0
  
          BSS    1           DEVICE MNEMONIC
 CYUN     BSS    1           CYLINDERS/UNIT 
 TKCY     BSS    1           PHYSICAL TRACKS/CYLINDER 
 PSPT     BSS    1           PHYSICAL SECTORS/PHYSICAL TRACK
 CVNF     BSS    1           CONVERSION FACTOR
 LSCY     BSS    2           LOGICAL SECTORS/CYLINDER 
 LSPT     BSS    1           LOGICAL SECTORS/PHYSICAL TRACK 
 LSLT     BSS    1           LOGICAL SECTORS/LOGICAL TRACK
 PADR     BSS    1           PROCESSOR ADDRESS
  
 TMSFL    BSS    0           TABLE ENTRY LENGTH 
          ORG    TMSF 
  
          LIST   G
          TBL    "MSEQ" 
          LIST   *
          PURGMAC  TBLM 
  
          CON    0           END OF TABLE 
 TSYN     SPACE  4,10 
**        TSYN - SYNTAX TABLE.
  
  
 TSYN     BSS    0
          CON    SPF         SET PHYSICAL DEVICE FLAW 
          CON    CPF         CLEAR PHYSICAL DEVICE FLAW 
          CON    SLF         SET LOGICAL TRACK FLAW 
          CON    CLF         CLEAR LOGICAL TRACK FLAW 
          CON    CAF         CLEAR ALL DEVICE FLAWS 
  
 TSYNA    CON    0
          CON    NEXT 
          CON    IPR
          CON    0           END OF TABLE 
          TITLE  TRACK FLAWS. 
 CAF      SPACE  4,10 
***       CAF.
*         CLEAR ALL FLAWS PREVIOUSLY SET FOR THIS EQUIPMENT.
  
  
 CAF      DATA   C*CAF.*
          LDD    T7          GET TRT LENGTH 
          SHN    3
          ADK    TDGL 
          CRD    CN 
          ADN    TRLL-TDGL
          CRD    CM 
          LDD    CM+4        SET TRT ADDRESS
          STD    CA+1 
          LDD    CM+3 
          LPN    77 
          STD    CA 
          LDD    CN+2        CLEAR TRT
          RJM    CLS
          LDD    CN          RESET TRACK COUNT
          STD    CN+4 
          LDD    T7 
          SHN    3
          ADK    TDGL 
          CWD    CN 
          JMP    KBR         RETURN 
 CLF      SPACE  4,10 
***       CLF=XXXX. 
*         CLEAR FLAW ON LOGICAL TRACK XXXX. 
  
  
 CLF      DATA   C*CLF=*
          LDN    1           PRESET TO CLEAR FLAW 
          UJN    SLF1        ENTER PROCESSING 
 SLF      SPACE  4,10 
***       SLF=XXXX. 
*         SET FLAW ON LOGICAL TRACK XXXX. 
  
  
 SLF      DATA   C*SLF=*
          LDN    0           PRESET TO SET FLAW 
 SLF1     STD    T4          SET *PTF* OPTION 
          RJM    ASD         ASSEMBLE DIGITS
          RJM    PTF         PROCESS TRACK FLAW 
          JMP    KBR         KEYBOARD RETURN
 CPF      SPACE  4,10 
***       CPF=CAAAA,TBB,SCC.
*         CLEAR FLAW ON CYLINDER AAAA, TRACK BB, AND SECTOR CC. 
* 
*         CPF=AIIIIIII. 
*         CLEAR FLAW ON EXTENDED MEMORY BLOCK STARTING AT 
*         ADDRESS IIIIIII.
* 
*         CPF=AIIIIIII-AJJJJJJJ.
*         CLEAR FLAW ON EXTENDED MEMORY BLOCK FROM ADDRESS IIIIIII
*         THROUGH ADDRESS JJJJJJJ.
  
  
 CPF      DATA   C*CPF=*
          LDN    1
          UJN    SPF1        CLEAR LOGICAL TRACK FLAW 
 SPF      SPACE  4,10 
***       SPF=CAAAA,TBB,SCC.
*         SET FLAW ON CYLINDER AAAA, TRACK BB, AND SECTOR CC. 
* 
*         SPF=AIIIIIIII.
*         SET FLAW ON EXTENDED MEMORY BLOCK STARTING AT 
*         ADDRESS IIIIIIII. 
* 
*         SPF=AIIIIIIII-AJJJJJJJJ.
*         SET FLAW ON EXTENDED MEMORY BLOCK FROM ADDRESS IIIIIIII 
*         THROUGH ADDRESS JJJJJJJJ. 
  
  
 SPF      DATA   C*SPF=*
          LDN    0           PRESET FOR TRACK FLAWING 
 SPF1     STD    T4 
          LDC    **          SEARCH FOR ENTRY IN *TMSF* 
 SPFA     EQU    *-1
          RJM    SMF         SEARCH MASS STORAGE FLAW PROCESSOR TABLE 
          NJN    SPF2        IF ENTRY FOUND 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 SPF2     LDM    PADR,T3     PROCESS ENTRY
          STD    T2 
          LJM    0,T2        ENTER PROCESSOR
 FMD      SPACE  4,10 
**        FMD - SET/CLEAR FLAW ON LARGE MEMORY DEVICE.
  
  
 FMD      LDI    KA          CHECK CHARACTER
          LMN    1RA
          NJN    FMD2        IF NOT *A* 
          AOD    KA          ASSEMBLE ADDRESS 
          RJM    CDR
          RJM    CET         CONVERT ADDRESS TO TRACK 
          STD    T5          SET FIRST TRACK
          LDI    KA          CHECK SEPARATOR
          LMN    1R.
          ZJN    FMD1        IF PERIOD TERMINATOR (NO RANGE)
          LMN    1R-&1R.
          NJN    FMD2        IF INCORRECT SEPARATOR 
          AOD    KA 
          LDI    KA 
          LMN    1RA
          NJN    FMD2        IF NOT AN *A*
          AOD    KA 
          RJM    ASD         ASSEMBLE SECOND ADDRESS
          RJM    CET         CONVERT EXTENDED MEMORY ADDRESS TO TRACK 
 FMD1     LDD    T5 
          STD    AB+4        SET FIRST TRACK TO FLAW
          SBD    T3 
          ZJN    FMD3        IF ONE TRACK (FIRST = LAST)
          MJN    FMD3        IF FIRST .LE. LAST TRACK 
 FMD2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 FMD3     LDM    /EQP/EBUT+7
          LPC    300
          NJN    FMD4        IF NOT DEFAULT TRACK SIZE
          LDD    AB+4 
          LMN    CETK-4000B 
          ZJN    FMD2        IF *CETK*
 FMD4     RJM    PTF         PROCESS TRACK FLAW 
          AOD    AB+4 
          SBD    T3 
          MJN    FMD3        IF MORE TRACKS TO FLAW 
          ZJN    FMD3        IF MORE TRACKS TO FLAW 
          JMP    KBR         RETURN 
 FRD      SPACE  4,10 
**        FRD - SET/CLEAR FLAW ON ROTATING MASS STORAGE DEVICE. 
* 
*         *FRD* CONVERTS A PHYSICAL DISK ADDRESS INTO A LOGICAL TRACK 
*         NUMBER AND THEN SETS OR CLEARS THE FLAW ON THAT TRACK.
* 
*         ENTRY  (T3) = ADDRESS OF DEVICE DESCRIPTOR ENTRIES. 
*                (T4) = 0, IF A FLAW IS TO BE SET.
*                       1, IF A FLAW IS TO BE CLEARED.
  
  
 FRD5     JMP    ILL         PROCESS INCORRECT ENTRY
  
 FRD      LDM    /EQP/TDDB+DVCO  BASE CYLINDER FOR PARTITION
          ADM    CYUN,T3     CHECK FOR VALID CYLINDER ADDRESS 
          SBN    1
          LMC    1LC
          RJM    CTE
          SBM    /EQP/TDDB+DVCO  BASE CYLINDER FOR PARTITION
          MJN    FRD5        IF CYLINDER NOT IN THIS PARTITION
          STD    CM          SAVE RELATIVE CYLINDER 
          LDM    CVNF,T3
          ERRNZ  SHNI-1000   CODE DEPENDS ON VALUE
          LMD    TH 
          STM    FRDA        SET PHYSICAL SECTOR CONVERSION 
          LDC    1LT
          LMM    TKCY,T3     CHECK FOR VALID TRACK ADDRESS
          RJM    CTE
          STD    CM+1        SAVE TRACK 
          LDM    PSPT,T3
          LMC    1LS         CHECK FOR A VALID SECTOR ADDRESS 
          RJM    CTE
 FRDA     SHN    0           CONVERT PHYSICAL TO LOGICAL SECTOR 
          STD    AB+1 
          SHN    -14
          STD    AB 
          LCN    0           INITIALIZE LOGICAL TRACK CALCULATION 
          STD    AB+4 
  
*         MULTIPLY THE TRACK VALUE BY THE NUMBER OF LOGICAL 
*         SECTORS PER PHYSICAL TRACK. 
  
 FRD1     SOD    CM+1 
          MJN    FRD3        IF END OF CONVERSION 
          LDM    LSPT,T3
          RAD    AB+1        ADVANCE LOGICAL SECTOR COUNT 
          SHN    -14
          RAD    AB 
          UJN    FRD1        LOOP ON CONVERSION 
  
*         MULTIPLY THE CYLINDER VALUE BY THE NUMBER OF LOGICAL
*         SECTORS PER CYLINDER. 
  
 FRD2     LDM    LSCY+1,T3   ADVANCE LOGICAL SECTOR COUNT 
          RAD    AB+1 
          SHN    -14
          ADM    LSCY,T3
          RAD    AB 
 FRD3     SOD    CM 
          PJN    FRD2        IF NOT END OF CONVERSION 
  
*         DIVIDE THE ACCUMULATED LOGICAL SECTOR COUNT BY THE
*         SUM OF (LOGICAL + GAP) SECTORS PER LOGICAL TRACK. 
  
 FRD4     AOD    AB+4        ADVANCE LOGICAL TRACK NUMBER 
          LDN    0
          SBM    LSLT,T3     DIVIDE BY ITERATIVE SUBTRACTION
          RAD    AB+1 
          PJN    FRD4        IF NO UNDERFLOW
          AOD    AB+1 
          SOD    AB 
          PJN    FRD4        IF DIVISION INCOMPLETE 
          RJM    PTF         PROCESS TRACK FLAW 
          JMP    KBR         RETURN 
 CTE      SPACE  4,10 
**        CTE - CHECK TRACK ENTRY.
* 
*         ENTRY  (A) 12 - 17 = CHARACTER OF NEXT ENTRY. 
*                (A)  0 - 11 = LIMIT FOR NUMBER.
*                (KA) = NEXT CHARACTER ADDRESS. 
* 
*         CALLS  AOD. 
  
  
 CTE2     AOD    KA          SKIP PREFIX CHARACTER
          RJM    AOD
          LDI    KA          CHECK SEPARATOR
          LMN    1R.
          ZJN    CTE3        IF END OF ENTRY
          AOD    KA 
 CTE3     LDC    *           CHECK ASSEMBLY 
 CTEA     EQU    *-1
          SBD    AB+4 
          MJN    CTE1        IF OUT OF RANGE
          LDD    AB+4        RETURN WITH ASSEMBLY 
  
 CTE      SUBR               ENTRY/EXIT 
          SBN    1           SET LIMIT
          STM    CTEA 
          SHN    -14         CHECK NEXT CHARACTER 
          LMI    KA 
          ZJN    CTE2        IF PROPER CHARACTER
 CTE1     JMP    ILL         PROCESS INCORRECT ENTRY
 AJT      SPACE  4,10 
**        AJT - ADJUST TRT FOR UNUSED TRACKS. 
* 
*         ENTRY  (T7) = MST ADDRESS / 10B.
*                (T4) = 0 (SET FLAW REQUEST FOR *PTF*). 
* 
*         USES   AB+4, CN - CN+4. 
* 
*         CALLS  PTF. 
  
  
 AJT      SUBR               ENTRY/EXIT 
          LDD    T7          READ *TDGL*
          SHN    3
          ADK    TDGL 
          CRD    CN 
          LDD    CN          SET LAST TRACK 
          STD    AB+4 
 AJT1     LPN    3
          ZJN    AJTX        IF END OF TRT
          RJM    PTF         PROCESS TRACK FLAW 
          AOD    CN+4        RESET TRACK COUNT
          LDD    T7          RESTORE *TDGL* 
          SHN    3
          ADK    TDGL 
          CWD    CN 
          AOD    AB+4        ADVANCE TRACK
          UJN    AJT1        LOOP FOR NEXT TRACK
 CET      SPACE  4,10 
**        CET - CONVERT EXTENDED MEMORY ADDRESS TO TRACK NUMBER.
* 
*         ENTRY  (AB+3 - AB+4) = EXTENDED MEMORY ADDRESS. 
* 
*         EXIT   (A) = (T3) = TRACK NUMBER. 
* 
*         USES   T1 - T3. 
  
  
 CET2     JMP    ILL         ADDRESS TOO LARGE
  
 CET      SUBR
          LDD    AB+4 
 CETA     SHN    -3 
*         SHN    -3-EMSC     (EMSC = EXTENDED MEMORY SHIFT COUNT) 
          STD    T2 
          LDD    AB+3        CHECK ASSEMBLY 
 CETB     SHN    -11
*         SHN    -11-EMSC    (EMSC = EXTENDED MEMORY SHIFT COUNT) 
          NJN    CET2        IF OUT OF RANGE
          LDD    AB+3 
 CETC     SHN    17 
*         SHN    17-EMSC     (EMSC = EXTENDED MEMORY SHIFT COUNT) 
          STD    T1 
          SHN    -6 
          RAD    T2 
          LCN    0           CLEAR TRACK
          STD    T3 
 CET1     AOD    T3 
          LDC    -202 
          RAD    T2 
          PJN    CET1        IF TRACK NOT FOUND 
          AOD    T2 
          SOD    T1 
          PJN    CET1        IF TRACK NOT FOUND 
          LDD    T3 
          UJN    CETX        RETURN 
 PDF      SPACE  4,10 
**        PDF - PROCESS DISK FLAWS. 
* 
*         USES   EQ, T5, T7, CM - CM+4, CN - CN+4.
* 
*         CALLS  ATD, IBF, RTD, SME, /EQP/STA.
  
  
 PDF9     LDC    0
 PDFD     EQU    *-1
          ZJN    PDFX        IF NO MORE FLAW DECKS TO PROCESS 
          STM    TTXC+APRD
          RJM    RTD         LOAD NEXT DECK 
          LDN    0
          STM    PDFD 
          UJN    PDF1        FIND EQUIPMENT ENTRY TO MATCH APRDECK
  
 PDF      SUBR               ENTRY/EXIT 
 PDF1     LDN    NOPE-1      INITIALIZE EQUIPMENT SEARCH
          STD    EQ 
 PDF2     RJM    SME
          ZJN    PDF9        IF EST SCAN COMPLETE 
          LDD    AB+4 
          STD    T7 
          SHN    3
          ADN    STLL 
          CRD    CM 
          LDD    CM          CHECK FOR INITIALIZE SET 
          LPC    MLIAL
          ZJN    PDF2        IF NOT INITIALIZED 
  
*         PROCESS EXTENDED MEMORY.
  
          LDD    AB+3 
          LMC    2RDE 
          ZJN    PDF3        IF EXTENDED MEMORY 
          LMK    2RDP&2RDE
          NJP    PDF5        IF NOT EXTENDED MEMORY 
 PDF3     LDD    AB+2 
          SHN    -6 
          LPN    3
          STD    T0 
          LDC    SHNI+77-3
          SBD    T0 
          STM    CETA        PRESET EXTENDED MEMORY SHIFTS
          SBN    6
          STM    CETB 
          ADK    11+17-77 
          STM    CETC 
          LDD    T0 
          NJN    PDF4        IF NOT DEFAULT TRACK SIZE
          LDC    CETK        SET *CETK* TRACK FLAW
          STD    AB+4 
          LDN    0           PROCESS TRACK FLAW 
          STD    T4 
          RJM    PTF
 PDF4     LDK    BIOL        CHECK IF BUFFERED I/O PRESENT
          CRD    CM 
          LDD    CM+1 
          ADD    CM+2 
          ZJN    PDF5        IF NO BUFFERED I/O DEFINED 
          LDD    T7 
          SHN    3
          ADN    DILL 
          CRD    CN 
          LDD    CN+3        CHECK FOR LCME 
          LPN    70 
          LMN    20 
          NJN    PDF5        IF NOT LCME
          LDC    LCTK        RESERVE 176/BUFFERED I/O TRACK 
          STD    AB+4 
          RJM    PTF         PROCESS TRACK FLAW 
 PDF5     LDD    EQ 
          RJM    /EQP/STA    FETCH DEVICE PARAMETERS
          LDM    /EQP/TDDB+DVAP 
          STD    CN+4        SAVE APRDECK NUMBER
          SBM    TTXC+APRD
          NJN    PDF6        IF NOT APRDECK MATCH 
          LDD    EQ 
          STD    T5 
          LDN    RPSF        RESET SECOND BUFFER
          RJM    IBF
          LDD    AB+3        SAVE EQUIPMENT MNEMONIC
          STM    SPFA 
          RJM    ATD         ASSEMBLE TEXT
          UJN    PDF8        CHECK NEXT ORDINAL 
  
 PDF6     MJN    PDF8        IF SMALLER APRDECK NUMBER
          LDM    PDFD 
          ZJN    PDF7        IF FIRST DECK ON THIS EST PASS 
          LDD    CN+4        FIND NEXT LARGEST APRDECK
          SBM    PDFD 
          PJN    PDF8        IF NOT A SMALLER APRDECK NUMBER
 PDF7     LDD    CN+4        SET NEXT DECK NUMBER 
          STM    PDFD 
 PDF8     LJM    PDF2        CHECK NEXT ORDINAL 
 PTF      SPACE  4,10 
**        PTF - PROCESS TRACK FLAW. 
* 
*         ENTRY  (T4) = 0, IF SET FLAW REQUEST. 
*                       1, IF CLEAR FLAW REQUEST. 
*                (T7) = MST ADDRESS / 10B.
*                (AB+4) = TRACK NUMBER. 
* 
*         EXIT   (CA - CA+1) = TRT ADDRESS. 
* 
*         USES   T1 - T2, CM - CM+4, CN - CN+4. 
  
  
 PTF      SUBR               ENTRY/EXIT 
          LDD    AB+4        UNPACK TRACK 
          LPC    3777 
          SHN    21-1        SET WORD INDEX 
          STD    T1 
          SHN    1-21        SET BYTE INDEX 
          ADN    CM 
          STD    T2 
          LMC    SHNI+77-CM  FORM SHIFT INSTRUCTION 
          STM    PTFA 
          STM    PTFB 
          LDD    T7          READ MST TRACK COUNT 
          SHN    3
          ADK    TDGL 
          CRD    CN 
          ADN    TRLL-TDGL
          CRD    CM 
          LDD    CM+3        SET TRT ADDRESS
          LPN    77 
          STD    CA 
          SHN    14          READ TRT WORD
          LMD    CM+4 
          STD    CA+1 
          ADD    T1 
          CRD    CM 
          LDD    CN+2        CHECK TRACK
          SHN    2
          SBD    T1 
          SBN    1
          PJN    PTF1        IF TRACK WITHIN TRT
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 PTF1     LDD    T4 
          ZJN    PTF4        IF SET FLAW OPTION 
          LDI    T2 
          ZJN    PTF3        IF TRACK NOT RESERVED
          AOD    CN+4        INCREMENT AVAILABLE TRACK COUNT
          LDN    10          RESERVE TRACK
 PTFA     SHN    -**
          LMD    CM+4        CLEAR RESERVATION
          STD    CM+4 
          LDN    0           CLEAR BYTE 
 PTF3     STI    T2 
          LDD    T7          UPDATE TRACK COUNT IN MST
          SHN    3
          ADK    TDGL 
          CWD    CN 
          LDD    CA          STORE TRT WORD 
          SHN    14 
          LMD    CA+1 
          ADD    T1 
          CWD    CM 
          LJM    PTFX        RETURN 
  
 PTF4     LDN    10 
 PTFB     SHN    -**
          STD    T0 
          LMC    7777 
          STM    PTFC 
          LDD    CM+4        SET TRACK RESERVATION
          LPC    0
 PTFC     EQU    *-1
          LMD    T0 
          STD    CM+4 
          LDI    T2 
          NJN    PTF5        IF TRACK ALREADY FLAWED
          SOD    CN+4        DECREMENT TRACK COUNT
 PTF5     LDC    3777 
          UJN    PTF3        SET TRACK BYTE 
 PTL      SPACE  4,10 
**        PTL - PROCESS TRT LENGTH. 
* 
*         USES   EQ, T4, T7, CM - CM+4. 
* 
*         CALLS  AJT, SME.
  
  
 PTL1     LDD    AB+4        SET MST POINTER
          STD    T7 
          SHN    3
          ADN    STLL 
          CRD    CM 
          LDD    CM          CHECK FOR INITIALIZE SET 
          LPC    MLIAL
          ZJN    PTL2        IF INITIALIZE NOT SET
          RJM    AJT
 PTL2     RJM    SME
          NJN    PTL1        IF NOT END OF EST
  
 PTL      SUBR               ENTRY/EXIT 
          LDN    0
          STD    T4          SELECT SET FLAW PROCESSING 
          STD    EQ 
          UJN    PTL2        CHECK TRT LENGTHS
          TITLE  SUBROUTINES. 
          AODSUB
          ASDSUB
          CDRSUB
 CMC      SPACE  4,10 
**        CMC - CHECK MACHINE CONFIGURATION.
* 
*         ENTRY  (EP) = EST ADDRESS.
*                (LD) = LINK DEVICE DEFINITION. 
* 
*         USES   AB - AB+4, CM - CM+4, T1 - T7. 
  
  
 CMC      SUBR               ENTRY/EXIT 
          LDD    LD 
          LPC    777
          ZJN    CMCX        IF NOT MMF ENVIRONMENT 
          SFA    EST
          CRD    CM          READ EST ENTRY FOR LINK DEVICE 
          LDN    ZERL 
          CRD    T0 
          CRD    AB 
          LCN    0           INITIALIZE FLAG REGISTER STATUS
          STD    AB+3 
          LDD    CM+4        GET MST STATUS WORD
          SHN    3
          ADN    STLL 
          CRD    CM 
          ADN    TRLL-STLL   FETCH TRT ADDRESS
          CRD    T7-4 
          LDD    CM          EXTRACT INITIALIZE FLAG
          SHN    -6 
          LPN    20 
          RAD    AB+2 
          LDM    PRSF        CHECK PRESET STATUS
          ZJN    CMC7        IF PRESET NOT SPECIFIED
          LDN    40          SET *PRESET* SELECTED
          RAD    AB+2 
          UJN    CMC7        FIND POTENTIAL LABEL TRACK 
  
 CMC4     LDC    =C*LINK DEVICE LABEL TRACK ERROR.* 
          LJM    DSE         GO DISPLAY ERROR 
  
*         LOCATE FIRST AVAILABLE TRACK AS POSSIBLE LABEL TRACK. 
  
 CMC6     AOD    T1          ADVANCE TRT INDEX
          SHN    2
          SBN    LTKL-4000
          PJN    CMC4        IF AT LABEL TRACK LIMIT
 CMC7     LDD    T6 
          LPN    77 
          SHN    14          READ TRT WORD
          LMD    T7 
          ADD    T1 
          CRD    CM 
          LDD    CM+4        CHECK FOR UNASSIGNED TRACK 
          LPN    17 
          LMN    17 
          ZJN    CMC6        IF THESE 4 TRACKS RESERVED 
          LMN    17 
          SHN    13-3 
          STD    T2 
          LDN    0           INITIALIZE BYTE INDEX
          STD    T0 
 CMC8     RAD    T0          ADVANCE BYTE INDEX 
          LDD    T2          CHECK NEXT TRACK 
          SHN    1
          STD    T2 
          SHN    -14
          NJN    CMC8        IF TRACK RESERVED
          LDD    T1          FORM TRACK NUMBER
          LMD    TH 
          SHN    2
          LMD    T0 
 CMC9     STD    AB+4 
          LDC    EFRL        STORE STATUS FOR *CPUMTR*/*MTE*
          CWD    AB 
          LJM    CMCX        RETURN 
 ECT      SPACE  4,10 
**        ECT - DEFINE *EICB* TABLES. 
* 
*         USES   AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4.
* 
*         CALLS  DFO, DML.
  
  
 ECT      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    ECTX        IF NOT LOWER 800 SERIES MAINFRAME
          CRD    CN 
          CRD    AB 
          LDK    EIBP        READ *EICB* POINTER WORD 
          CRD    CM 
          LDM    VEMZ        SET WORD *D7CM*
          LPN    7
          SHN    14 
          ADM    VEMZ+1 
          SHN    -3          FORM BLOCK SIZE/1000B
          STD    CN+4 
          LDM    VEMZ 
          SHN    -3 
          STD    CN+3 
          LDM    /EQP/MCMS   FORM MINCM/1000
          SHN    14 
          LMM    /EQP/MCMS+1
          ADN    7
          SHN    -3 
          STD    CN+2 
          SHN    -14
          STD    CN+1 
          LDD    MZ          SET WORD *D7CM+1*
          LPN    7
          SHN    14 
          LMD    MZ+1 
          ADN    7
          SHN    -3 
          STD    AB+2 
          STD    AB+4 
          SHN    -14
          STD    CM 
          LDD    MZ 
          SHN    -3 
          ADD    CM 
          STD    AB+1 
          STD    AB+3 
          LDD    CM+3        WRITE WORD *D7TY*
          SHN    14 
          LMD    CM+4 
          ADK    D7TY 
          CWM    ECTA,ON
          ADN    D7CM-D7TY-1 WRITE WORD *D7CM 
          CWD    CN 
          ADN    1           WRITE WORD *D7CM+1*
          CWD    AB 
          ADN    DSCBL-D7CM-1  SAVE DFT/OS BUFFER FWA 
          STD    CA+1 
          SHN    -14
          STD    CA 
          RJM    DML         DEFINE *MLST* BUFFER 
          RJM    DFO         DEFINE DFT/OS BUFFER 
          LJM    ECTX        RETURN 
  
 ECTA     BSS    0           WORD *D7TY*
          VFD    6/0         RESERVED 
          VFD    18/DTEL     DATE WORD ADDRESS
  
          VFD    18/TIML     TIME WORD ADDRESS
  
          VFD    6/1         OS TYPE
          VFD    6/5         *EICB* INTERFACE VERSION 
          VFD    6/1         INTERFACE LEVEL
 DML      SPACE 4,10
**        DML - DEFINE *MLST* BUFFER. 
* 
*         ENTRY  (CA - CA+1) = FWA OF *MLST* BUFFER IF VE DEFINED.
*                (CM+3 - CM+4) = *EICB* POINTER.
* 
*         EXIT   (CA - CA+1)  ADVANCED. 
* 
*         USES   CN - CN+4. 
  
  
 DML      SUBR               ENTRY/EXIT 
          LDN    ZERL        CLEAR FOR *MLST* POINTER 
          CRD    CN 
          LDC    4000 
          STD    CN 
          LDM    VEFL 
          ZJN    DML1        IF NOS/VE NOT DEFINED
          LDD    CA 
          SHN    14 
          LMD    CA+1        *MLST* ADDRESS (BITS 35-17 OF *D7ST*)
          SHN    14 
          STD    CN+2 
          LDD    CA+1 
          SHN    6
          LMM    .MLS+MTBL   *MLST* SIZE
          STD    CN+3 
          LPN    77 
          RAD    CA+1        ADVANCE PAST *MLST*
          SHN    -14
          RAD    CA 
 DML1     LDD    CM+3        WRITE STATUS AND *MLST* POINTER
          SHN    14 
          LMD    CM+4 
          ADN    D7ST 
          CWD    CN 
          UJP    DMLX        RETURN 
 DFO      SPACE  4,10 
**        DFO - DEFINE *DFT/OS* BUFFER. 
* 
*         ENTRY  (CA - CA+1) = FWA OF *DFT/OS* BUFFER.
*                (CM+3 - CM+4) = *EICB* POINTER WORD. 
*                (DFTA) = *DFT* ALLOCATION DATA.
* 
*         EXIT   *DFT/OS* BUFFER INITIALIZED. 
* 
*         USES   AB - AB+4, CM - CM+1, CN - CN+4, T1 - T6.
  
  
*         BUILD *DFT/OS* INTERFACE HANDOFF FOR VERSION 4 AND ABOVE. 
* 
*         NOTE - THE *DFT/OS* BUFFER CANNOT START ON THE LAST WORD OF 
*         A SECTOR.  THIS IS TO ENSURE A NON-ZERO VALUE FOR THE 
*         *OFFSET* FIELD OF THE *DFT/OS* BUFFER POINTER WORD IN THE 
*         *EICB*.  THIS POINTER POINTS TO THE *DFT* CONTROL WORD, 
*         WHICH IS THE SECOND WORD OF THE BUFFER. 
  
 DFO10    LDM    DFTV        DETERMINE LOWEST *DFT* LEVEL 
          SBN    DIRL-3      CURRENT OS *DFT* LEVEL 
          MJN    DFO10.1     IF OS IS NOT LOWEST LEVEL
          LDN    0
 DFO10.1  ADN    DIRL        RESTORE LEVEL NUMBER 
          SHN    4
          STD    CN+1        SET LEVEL FOR *DFT*
          LDM    DFSZ        SAVE TOTAL SIZE FROM DESCRIPTOR
          STD    AB+4 
          STD    T3 
          LDM    DFTA+1      SAVE DEDICATED MODE FLAG 
          SHN    0-13 
          LMN    1
          STD    T6 
          ZJN    DFO11       IF DEDICATED *DFT* 
          LDN    24          SET *C* AND *D* FLAGS IN CONTROL WORD
 DFO11    LMN    10          SET *L* FLAG 
          STD    CN+4 
          AOD    CA+1        ENSURE *DFT/OS* BUFFER STARTS ON EVEN WORD 
          SCN    1
          STD    CA+1 
          SHN    -14
          RAD    CA 
          LDD    CA          CONSTRUCT POINTER TO *DFT/OS* BUFFER 
          STD    CM 
          SHN    14 
          LMD    CA+1 
          STD    CM+1 
          CWD    AB          WRITE TOTAL SIZE TO FIRST WORD 
          ADN    1           ADVANCE POINTER TO CONTROL WORD
          CWD    CN          WRITE *DFT* CONTROL WORD 
          STD    T1          SAVE OFFSET
          SHN    -6 
          SHN    4
          STD    AB+3        R-LOWER
          SHN    -14
          STD    AB+2        R-UPPER
          LDD    T1 
          LPN    77 
          STD    AB          OFFSET 
  
*         WRITE THE *PPR* SAVE AREA POINTER AND THE NOS OS REQUEST
*         HEADER POINTER TO THE *DFT/OS* HANDOFF INTERFACE.  ALSO 
*         WRITE THE NOS REQUEST HEADER WORD.
  
          LDN    0           CLEAR *DFT* LEVEL FIELD
          STD    CN+1 
          LDN    2           SET ADDRESS OF POINTER WORD TO WRITE 
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          LDD    T6 
          ZJN    DFO12       IF DEDICATED *DFT* 
          LDK    DFPSL       SIZE OF *PPR* SAVE AREA
          STD    T6 
          STD    CN+4 
 DFO12    RJM    PWP         WRITE *PPR* SAVE AREA POINTER
          LDD    T6          SET OFFSET TO NOS REQUEST HEADER 
          RAD    T3 
          SHN    -14
          RAD    T2 
          LDN    1           SET NUMBER OF NOS REQUEST BUFFERS
          STD    CN+4 
          RJM    PWP         WRITE NOS REQUEST HEADER POINTER 
          LDD    T3          SET ADDRESS OF NOS REQUEST HEADER
          ADD    CM+1 
          STD    CA+1 
          SHN    -14
          ADD    T2 
          ADD    CM 
          STD    CA 
          AOD    T3          SET OFFSET TO NOS REQUEST AREA 
          SHN    -14
          RAD    T2 
          LDN    STIN        SET STATUS = *INACTIVE*
          STD    CN+4 
          LDN    1           INSURE POINTER WRITTEN 
          RJM    PWP         WRITE NOS REQUEST HEADER WORD
  
*         CALCULATE TOTAL SIZE OF THE *DFT/OS* BUFFER.
  
          LDM    DFSZ        GET SIZE FROM DESCRIPTOR 
          ADK    RQBL+1      ADD NOS REQUEST AREA SIZE
          ADD    T6          ADD *PPR* SAVE AREA SIZE 
          STD    AB+4 
          SHN    -14
          RAD    AB+3 
          LDD    CM+3        WRITE *DFT/OS* POINTER WITH TOTAL SIZE 
          SHN    14 
          LMD    CM+4 
          ADK    DSCM+3 
          CWD    AB 
  
*         COPY THE *PPR* SAVE AREA POINTER AND THE NOS REQUEST
*         HEADER POINTER TO THEIR PROPER POSITIONS.  THIS IS REQUIRED 
*         FOR *MTR* PRESET AND *1MB*, WHICH NEED THEM PRIOR TO *DFT*
*         BUILDING THE COMPLETE *DFT/OS* BUFFER.
  
          LDD    CM 
          SHN    14 
          LMD    CM+1 
          ADN    2
          CRD    CN          READ *PPR* SAVE AREA POINTER 
          ADN    1
          CRD    AB          READ NOS REQUEST HEADER POINTER
          ADN    3
          CWD    CN          WRITE *PPR* SAVE AREA POINTER
          ADN    1
          CWD    AB          WRITE NOS REQUEST HEADER POINTER 
  
 DFO      SUBR               ENTRY/EXIT 
          LDN    ZERL        CLEAR ASSEMBLY BUFFER
          CRD    CN 
          CRD    AB 
          CRD    T1 
          LDM    DFTV 
          NJP    DFO10       IF NOT *DFT* VERSION 3 
  
*         CONSTRUCT *DFT/OS* BUFFER FOR *DFT* VERSION 3.
  
          LDD    CA 
          SHN    14 
          LMD    CA+1 
          STD    T1          SAVE OFFSET
          SHN    -6 
          SHN    4
          STD    AB+3        R-LOWER
          SHN    -14
          STD    AB+2        R-UPPER
          LDD    T1 
          LPN    77 
          STD    AB 
          LDN    DFHL        SET NUMBER OF HEADER WORDS 
          SHN    14-4 
          STD    CN 
          LDN    3*20        SET *DFT* REVISION LEVEL TO 3
          STD    CN+1 
          LDM    DFTA        GET MAINTENANCE REGISTER BUFFER DATA 
          STD    T1 
          SHN    -6 
          STD    T5          SAVE NUMBER OF BUFFERS 
          SHN    4
          STD    CN+3        SET *NBUF* IN *DFT* CONTROL WORD 
          LDD    T1 
          LPN    77 
          STD    CN+2        SET *LBUF* IN *DFT* CONTROL WORD 
          STD    T4 
          LDM    DFTA+1      CHECK DEDICATED FLAG 
          STD    T1 
          SHN    -13
          NJN    DFO1        IF DEDICATED DFT 
          LDN    24          SET *C* AND *D* FLAGS IN CONTROL WORD
          STD    CN+4 
 DFO1     LDN    10          SET *L* FLAG 
          RAD    CN+4 
          LDD    CA          WRITE *DFT* CONTROL WORD 
          STD    CM 
          SHN    14 
          LMD    CA+1 
          STD    CM+1 
          CWD    CN 
          AOD    CA+1        ADVANCE ADDRESS
          SHN    -14
          RAD    CA 
          LDN    ZERL        CLEAR ASSEMBLY BUFFER
          CRD    CN 
          LDD    T1 
          SHN    0-12 
          LPN    1
          ZJN    DFO2        IF NOT 990 
          LDM    .CPU+1      CHECK FOR DUAL CPU CYBER 990 
          LPN    2
          ZJN    DFO1.1      IF CPU-1 *OFF* OR NOT PRESENT
          LDC    -M9DB       REDUCE BUFFER FOR SINGLE CPU CYBER 990 
 DFO1.1   ADC    M9DB*2      SET MODEL DEPENDENT BUFFER SIZE
 DFO2     STD    T6 
  
*         WRITE POINTER WORDS.
  
          LDN    SIDL        LENGTH OF SECDED ID TABLE
          STD    CN+4 
          LDN    DFHL+MECB   HEADER + COUNTER BUFFER SIZE 
          ADD    T5          M/R BUFFER COUNT +1
          STD    T3 
          RJM    PWP         WRITE SECDED ID TABLE POINTER
          LDD    T1          LENGTH OF M/R BUFFERS
          LPC    1777 
          STD    T1 
          STD    CN+4 
          LDN    SIDL        OFFSET OF M/R BUFFERS
          RAD    T3 
          RJM    PWP         WRITE M/R BUFFER POINTER 
          LDD    T1          OFFSET OF MODEL DEPENDENT BUFFER 
          RAD    T3 
          LDD    T6          MODEL DEPENDENT BUFFER SIZE
          ZJN    DFO3        IF NOT 990 
          STD    CN+4 
          LDD    T3 
 DFO3     RJM    PWP         WRITE MODEL DEPENDENT BUFFER POINTER 
          LDN    0
          RJM    PWP         WRITE NOS/VE BUFFER POINTER
          LDC    DFPSL       LENGTH OF PP RESIDENT SAVE AREA
          STD    CN+4 
          STD    T7          SAVE LENGTH OF PP RESIDENT SAVE AREA 
          LDD    T6          OFFSET OF NEXT ELEMENT 
          RAD    T3 
          LDM    DFTA+1 
          SHN    21-13
          MJN    DFO4        IF DEDICATED DFT 
          LDD    T3 
          UJN    DFO5        WRITE POINTER
  
 DFO4     LDN    0
          STD    T7          CLEAR LENGTH OF PP RESIDENT SAVE AREA
 DFO5     RJM    PWP         WRITE PP RESIDENT POINTER
          LDD    T7          OFFSET OF NOS REQUEST AREA POINTER 
          RAD    T3 
          LDN    1           NUMBER OF NOS REQUEST BUFFERS
          STD    CN+4 
          RJM    PWP         WRITE NOS REQUEST AREA POINTER 
          AOD    T3 
  
*         CALCULATE TOTAL LENGTH OF DFT/OS BUFFER.
  
          LDK    MECB+SIDL   MAINFRAME ELEMENT COUNTERS, SECDED 
          ADD    T1          M/R BUFFER SIZE
          ADD    T6          MODEL DEPENDENT BUFFER SIZE
          ADD    T7          PP RESIDENT SAVE AREA
          STD    T0          SAVE POINTER OFFSET
          ADD    T5          M/R CONTROL WORDS
          ADN    DFHL+RQBL+1 CONTROL WORD, POINTERS, NOS REQUEST AREA 
          STD    AB+4 
          LDD    CM+3        WRITE DFT/OS POINTER = SIZE
          SHN    14 
          LMD    CM+4 
          ADN    DSCM+3 
          CWD    AB 
  
*         ADD OFFSET FIELD TO BUFFER CONTROL WORDS. 
  
          LDN    ZERL 
          CRD    CN 
 DFO6     SOD    T5 
          ZJN    DFO7        IF NO MORE CONTROL WORDS TO PROCESS
          LDD    T4 
          RAD    CN+4 
          LDD    CA 
          SHN    14 
          LMD    CA+1 
          ADN    1           ADVANCE ADDRESS
          CWD    CN 
          STD    CA+1 
          SHN    -14
          STD    CA 
          UJN    DFO6        PROCESS NEXT ENTRY 
  
*         POST REQUEST TO *DFT* TO UPDATE ERROR THRESHOLDS. 
  
 DFO7     AOD    T0          ADVANCE TO NOS REQUEST HEADER
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          LDM    .CPU        CHECK CPU CONFIGURATION
          LPN    2
          ZJN    DFO8        IF CPU-1 PRESENT 
          LDN    ZERL        CLEAR THRESHOLDS FOR CPU-1 
          CRM    DFOB,ON
 DFO8     LDN    STRY        SET STATUS = *READY* 
          STD    CN+4 
          RJM    PWP         WRITE NOS REQUEST HEADER 
          LDN    DFOAL/5     SET WORD COUNT 
          STD    CN 
          LDD    CA          WRITE THRESHOLD REQUEST TO BUFFER
          SHN    14 
          LMD    CA+1 
          CWM    DFOA,CN
          LJM    DFOX        RETURN 
  
  
*         *DFT* THRESHOLD REQUEST INFORMATION.
  
 DFOA     VFD    4/,8/RQTH,8/0,8/7,8/0,8/0,8/THCI,8/THUE  IOU 
          VFD    4/,8/RQTH,8/0,8/7,8/1,8/0,8/THCM,8/THUE  MEMORY
          VFD    4/,8/RQTH,8/0,8/7,8/2,8/0,8/THCP,8/THUE  CPU-0 
 DFOB     VFD    4/,8/RQTH,8/0,8/7,8/2,8/1,8/THCP,8/THUE  CPU-1 
          VFD    60/0        TERMINATOR 
 DFOAL    EQU    *-DFOA      LENGTH OF THRESHOLD DATA (PP WORDS)
 PWP      SPACE  4,10 
**        PWP - POSITION AND WRITE POINTER. 
* 
*         ENTRY  (A) = 0 IF A ZERO POINTER WORD IS TO BE WRITTEN. 
*                (T2 - T3) = OFFSET FROM FWA OF THE DFT/OS BUFFER OF
*                            THE BUFFER FOR WHICH THE POINTER IS TO 
*                            BE WRITTEN.
*                (CN+4) = LENGTH OF BUFFER FOR WHICH POINTER IS TO
*                         BE WRIITEN. 
*                (CM - CM+1) = FWA OF DFT/OS BUFFER.
*                (CA - CA+1) = ADDRESS TO WRITE.
* 
*         EXIT   (CA - CA+1) ADVANCED.
* 
*         USES   CN - CN+4. 
  
  
 PWP1     LDN    ZERL        CLEAR POINTER
          CRD    CN 
 PWP2     LDD    CA          ADVANCE POINTER WORD 
          SHN    14 
          LMD    CA+1 
          CWD    CN          WRITE POINTER WORD 
          AOD    CA+1        ADVANCE ADDRESS
          SHN    -14
          RAD    CA 
  
 PWP      SUBR               ENTRY/EXIT 
          ZJN    PWP1        IF ZERO WORD TO BE WRITTEN 
          LDD    CM 
          ADD    T2 
          SHN    14 
          LMD    CM+1 
          ADD    T3          ADDRESS OF POINTER WORD
          STD    CN          SAVE OFFSET
          SHN    -6 
          SHN    4
          STD    CN+3        SAVE R-LOWER 
          SHN    -14
          STD    CN+2 
          LDD    CN          OFFSET 
          LPN    77 
          STD    CN 
          UJN    PWP2        WRITE AND ADVANCE POINTER WORD 
          TITLE  BUILD SAB TABLE. 
 BVS      SPACE  4,10 
**        BVS - BUILD VARIABLE SIZE SYSTEM ATTRIBUTE BLOCK. 
* 
*         USES   KB, CM - CM+4, CN - CN+4, T1 - T7. 
* 
*         CALLS  APM, CDS, CMN, GPD, IAF, PRS, SDA. 
* 
*         MACROS CHKAPE.
  
  
 BVS      SUBR               ENTRY/EXIT 
          LDM    .APP        MODIFY *APP* CHANNEL INSTRUCTIONS
          RJM    PRS
          LDK    TSABL       LENGTH OF SAB BLOCK
          STD    T6 
 BVS1     LDN    0           CLEAR SAB BLOCK
          STM    TSAB-1,T6
          SOD    T6 
          NJN    BVS1        IF NOT FINISHED
          LDK    TEABL
          STD    T7 
 BVS2     LDN    0           CLEAR EABL BLOCK 
          STM    TEAB-1,T7
          SOD    T7 
          NJN    BVS2        IF NOT FINISHED
          LDK    SABL 
          CRD    CN 
          LDD    CN+2        SET ELEMENT DESCRIPTOR BLOCK LENGTH
          STM    TEAB+5*MFEI+3
*         LDN    0           INITIALIZE INDICES 
*         STD    T6          *TSAB* INDEX 
*         STD    T7          *EABL* INDEX 
  
*         BUILD MAINFRAME DESCRIPTOR. 
  
          LDC    MEBF+2      FETCH EI SPECIFICATION 
          CRM    DBUF+5,ON
          LDN    MFDS        REQUEST MAINFRAME DESCRIPTOR 
          RJM    IAF
          STM    DBUF+4 
          LDD    HO          SET HARDWARE OPTIONS 
          STM    DBUF+OPTN
          LDN    MFEI*5      SET MAINFRAME DESCRIPTOR ADDRESS 
          RJM    SDA
          LDN    MFDSL       COPY DESCRIPTOR TO SAB 
          RJM    CDS
          LDM    TSAB+HDID
          LPN    77 
          LMC    MFDWL*100B  APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    TSAB+HDID
 BVS3     RJM    CMN         CALCULATE MODEL NUMBERS
  
*         PROCESSOR DESCRIPTOR(S).
  
          LDN    CPEI*5      SET CPU 0 DESCRIPTOR ADDRESS 
          RJM    SDA
          LDN    0           GENERATE CPU 0 DESCRIPTOR
          STD    T5 
          RJM    GPD
          LDM    .CPU        CHECK CPU STATUS 
          LPN    2
          NJN    BVS4        IF CPU 1 NOT PRESENT 
          LCN    5*CPEI+2    SET CPU 1 DESCRIPTOR ADDRESS 
          RJM    SDA
          AOD    T5          GENERATE CPU 1 DESCRIPTOR
          RJM    GPD
  
*         CENTRAL MEMORY DESCRIPTOR.
  
 BVS4     LDN    CMDS        REQUEST CM DESCRIPTOR
          RJM    IAF
          LDN    CMEI*5      SET CM DESCRIPTOR ADDRESS
          RJM    SDA
          LDM    DBUF+MCTC   SET CONNECT CODE 
          STM    TEAB+5*CMEI+3
          LDM    DBUF+HDID
          LPN    77 
          LMC    CMDWL*100B  APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    DBUF+HDID
          LDD    T6 
          ADC    TSAB+2*5-2  LOCATION OF *CTI CM DIRECTORY* POINTER 
          STD    KB 
          LDM    C8XX 
          ZJN    BVS5        IF C180 MAINFRAME
          LDD    CM+2 
          SHN    4           SET MEMORY MODEL NUMBER
          STM    DBUF+HDMN
 BVS5     LDN    CMDSL       COPY DESCRIPTOR TO SAB 
          RJM    CDS
  
*         IOU DESCRIPTOR. 
  
          LDN    IUDS        REQUEST IOU DESCRIPTOR 
          RJM    IAF
          LDM    .PPL        GET CTI/SET PP00 - PP11 OFF DATA 
          STM    DBUF+LPP0   UPDATE *SAB* TABLE 
          LDM    .PPL+1      GET CTI/SET PP20 - PP31 OFF DATA 
          STM    DBUF+LPP1   UPDATE *SAB* TABLE 
          LDM    DBUF+HDID
          LPN    77 
          ADC    IUDWL*100B  APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    DBUF+HDID
          LDM    DBUF+MCTC   SET CONNECT CODE 
          STM    TEAB+5*IOEI+3
          LDN    IOEI*5      SET IOU DESCRIPTOR ADDRESS 
          RJM    SDA
          LDM    C8XX 
          ZJN    BVS6        IF C180 MAINFRAME
          LDD    CM+3 
          SHN    4           SET I/O SUBSYSTEM MODEL NUMBER 
          STM    DBUF+HDMN
 BVS6     LDN    IUDSL       COPY DESCRIPTOR TO SAB 
          RJM    CDS
          LDM    C8XX 
          NJN    BVS7        IF NOT CYBER 800 TYPE MAINFRAME
  
*         CONSOLE DESCRIPTOR. 
  
          LDN    CIDS        REQUEST CONSOLE DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+HDID
          LPN    77 
          LMD    HN          APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    DBUF+HDID
          LCN    5*DCEI+2    SET DISPLAY CONSOLE DESCRIPTOR ADDRESS 
          RJM    SDA
          LDN    CIDSL       COPY DESCRIPTOR TO SAB 
          RJM    CDS
 BVS7     LDD    HO 
          SHN    21-11
          PJN    BVS8        IF NOT CYBER 176 
  
*         FLPP DESCRIPTOR.
  
          LDN    FLPS        REQUEST FLPP DESCRIPTOR
          RJM    IAF
          LDM    DBUF+HDID
          LPN    77 
          LMD    HN          APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    DBUF+HDID
          LDN    FLPSL       COPY DESCRIPTOR TO SAB 
          RJM    CDS
  
*         SET ISD SUBSYSTEM STATUS. 
  
 BVS8     LDN    CFGL 
          CRD    CM 
          LDM    ISPF 
          SHN    21-13
          MJN    BVS9        IF NOT CYBER 810/815/825/830 
          ZJN    BVS9        IF ISD SUBSYSTEM NOT PRESENT 
          LDD    TH          SET ISD SUBSYSTEM PRESENT
          RAD    CM+3 
 BVS9     LDN    CFGL 
          CWD    CM 
  
*         EXTENDED MEMORY DESCRIPTOR. 
  
          LDD    EN 
          NJN    BVS10       IF CPU ACCESS EQUIPMENT DEFINED
          LDM    UEMZ 
          ADM    UEMZ+1 
          ZJP    BVS13       IF NO USER EXTENDED MEMORY DEFINED 
          LDC    440         SET FLAGS / MEMORY TYPE / PATH TYPE
          UJN    BVS12       COMPLETE DESCRIPTOR
  
 BVS10    SFA    EST
          ADK    EQDE 
          CRD    CM 
          LDD    CM+4        GET EM TYPE PARAMETERS 
          SHN    3
          ADN    DILL 
          CRD    CM 
          LDD    CM+3        SET MAINTENANCE MODE FLAG
          SHN    0-11 
          LPN    1
          LMN    1
          SHN    10-0 
          RAM    BVSA 
          LDD    CM+3        SET EXTENDED ADDRESSING FLAG 
          LPN    70 
          LMN    30 
          NJN    BVS11       IF NOT EXTENDED ADDRESSING 
          LDD    HN 
          RAM    BVSA 
 BVS11    LDD    CM+3        SET PP PATH TYPE AND MEMORY TYPE 
          LPN    77 
          LMC    200
 BVSA     EQU    *-1
 BVS12    STM    DBUF+1 
          LDN    ECRL 
          CRD    CM 
          LDM    UESC        PRESET SHIFT INSTRUCTIONS
          RAM    BVSB 
          LDM    EMSC 
          RAM    BVSC 
          LDD    CM+1        SET USER XM / 1000 
 BVSB     SHN    14 
*         SHN    14+UESC
          STM    DBUF+2 
          SHN    -6 
          SCN    7
          STM    DBUF+3 
          LDM    EMFL        SET TOTAL XM / 1000
 BVSC     SHN    0
*         SHN    EMSC 
          STM    DBUF+4 
          SHN    -14
          RAM    DBUF+3 
          LDC    1S6+77      SET LENGTH AND ID
          STM    DBUF+HDID
          LCN    5*CMEI+2    SET EXTENDED MEMORY DESCRIPTOR ADDRESS 
          RJM    SDA
          LDN    5           COPY DESCRIPTOR TO SAB 
          RJM    CDS
  
*         COPY *EABL* INTO PLACE. 
  
 BVS13    LDK    EABLL       LENGTH OF TABLE
          STD    T3 
          LDK    EABL        CM ADDRESS 
          CWM    TEAB,T3
  
*         COPY SAB INTO PLACE.
  
          LDD    CN 
          SHN    14 
          LMD    CN+1 
          CWM    TSAB,CN+2
  
*         SUSPEND ALTERNATE PP. 
  
          LDK    RPCS*10000+DSCL  REMOVE PP FROM CHANNEL
          RJM    APM
          CHKAPE             CHECK ALTERNATE PP ERROR 
  
*         UPDATE *EI* COMMUNICATION BLOCK.
  
          LDC    EIBP        FETCH *EI* BLOCK POINTER 
          CRD    CN 
          ADN    SCDP-EIBP   GET FWA OF *SCDPT* 
          CRD    T4 
          LDN    0
          STD    CM+4 
          CRD    T1 
          LDM    4,KB        GET OFFSET OF *CTI CM DIRECTORY* 
          STD    CM 
          LDM    3,KB        GET R-LOWER
          SHN    4
          STD    CM+3 
          SHN    -14
          SHN    12 
          ADM    2,KB        ADD R-UPPER
          SHN    10 
          STD    CM+2 
          SHN    -14
          STD    CM+1 
          LDD    CN+3 
          SHN    14 
          LMD    CN+4 
          ZJP    BVSX        IF NOT DUAL STATE MAINFRAME
          ADN    D7RS+2 
          CWD    T3 
          ADN    DSCM+2-D7RS-2  WRITE *DSCM+2*
          CWD    CM 
          LDN    0           SET UP WORD *D7RS* 
          CRD    CM 
          LDM    MDDP 
          LPN    10 
          SHN    13-3        SET *MDD* ACTIVE STATUS
          STD    CM+1 
 BVS14    LDM    .DCS 
          ZJN    BVS15       IF NOT 721 CONSOLE 
          LDC    1S10        SET NOS *SCD* ACTIVE 
          RAD    CM+1 
 BVS15    LDC    PSAL        SET PP RESIDENT SAVE LENGTH
          STD    CM+2 
          LDM    SPSA        SET SAVE AREA FWA
          STD    CM+3 
          LDM    SPSA+1 
          STD    CM+4 
          LDD    CN+3        WRITE *D7RS* 
          SHN    14 
          LMD    CN+4 
          ADN    D7RS 
          CWD    CM 
 BVS16    LJM    BVSX        RETURN 
 CDS      SPACE  4,10 
**        CDS - COPY DATA TO SAB BLOCK. 
* 
*         ENTRY  (A) = LENGTH OF DATA.
*                (T6) = CURRENT DATA BYTE INDEX.
*                (T7) = CURRENT DATA WORD INDEX.
* 
*         EXIT   (T6) = (T6) + (A) ON ENTRY, ROUNDED TO WORD BOUNDARY.
*                (T7) = (T6)/5. 
* 
*         USES   T3, T4.
  
  
 CDS      SUBR               ENTRY/EXIT 
          STD    T4          SAVE ENTRY 
          LDN    0           INITIALIZE INDEX 
          STD    T3 
 CDS1     LDM    DBUF,T3     MOVE DATA
          STM    TSAB,T6
          AOD    T6          INCREMENT POINTER
          AOD    T3          INCREMENT INDEX
          SOD    T4          DECREMENT COUNTER
          NJN    CDS1        IF MORE DATA TO MOVE 
 CDS2     AOD    T7          INCREMENT WORD INDEX 
          LCN    5
          RAD    T3 
          ZJN    CDSX        IF ALL DATA ACCOUNTED FOR
          PJN    CDS2        IF MORE DATA 
          LMC    -0          ACCOUNT FOR A PARTIAL LAST WORD
          RAD    T6 
          UJN    CDSX        RETURN 
 CMN      SPACE  4,10 
**        CMN - CALCULATE MODEL NUMBERS (NON C180 MAINFRAMES).
* 
*         ENTRY  (HO) = HARDWARE OPTIONS. 
* 
*         EXIT   (CM) = CPU 0 MODEL NUMBER. 
*                (CM+1) = CPU 1 MODEL NUMBER. 
*                (CM+2) = MEMORY MODEL NUMBER.
*                (CM+3) = I/O SUBSYSTEM MODEL NUMBER. 
* 
*         USES   T1, T2.
  
  
 CMN13    STD    T1          SAVE MODEL INDICES 
          SHN    -10
          STD    T2 
          LDM    PMVT,T2     SET CPU 0 MODEL NUMBER 
          STD    CM 
          LDM    PMVT,CM+1   SET CPU 1 MODEL NUMBER 
          STD    CM+1 
          LDD    T1          EXTRACT MEMORY TYPE INDEX
          SHN    -4 
          LPN    17 
          STD    T2 
          LDM    MMVT,T2     SET MEMORY MODEL NUMBER
          STD    CM+2 
          LDD    T1          EXTRACT I/O SUBSYSTEM TYPE INDEX 
          LPN    17 
          STD    T2 
          LDM    IMVT,T2     SET I/O SUBSYSTEM MODEL NUMBER 
          STD    CM+3 
  
 CMN      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          ZJN    CMNX        IF C180 MAINFRAME
          CRD    CM 
          LDD    HO          CHECK HARDWARE OPTIONS 
          SHN    21-11
          PJN    CMN4        IF NOT C176
  
*         PROCESS CYBER 176 SERIES MAINFRAME. 
  
          LDC    PMVF*400+MMVE*20+IMVD
          JMP    CMN13       SET MODEL INDICES
  
*         PROCESS CYBER 170-865/875 SERIES MAINFRAME. 
  
 CMN1     SHN    13-1 
          MJN    CMN2        IF SECOND CPU NOT PRESENT
          LDN    PMVI 
          STD    CM+1 
 CMN2     LDD    HO          EXTRACT 875 TYPE FLAG
          LPN    4
          SHN    4-2
          ERRNZ  MMVH+1-MMVI CODE DEPENDS ON VALUE
          ADC    PMVI*400+MMVH*20+IMVF
          JMP    CMN13       SET MODEL INDICES
  
*         PROCESS CYBER 700 SERIES MAINFRAME. 
  
 CMN4     SHN    11-10
          MJN    CMN7        IF NOT MODEL D PPS 
          SHN    11+21-13 
          PJN    CMN1        IF C170-865/875
          SHN    13-1 
          MJN    CMN5        IF SECOND CPU NOT PRESENT
          LDN    PMVG 
          STD    CM+1 
 CMN5     LDD    HO          CHECK HARDWARE OPTIONS 
          LPN    20 
          ZJN    CMN6        IF CPU 0 HAS STACK 
          LDC    PMVG*400+MMVF*20-PMVH*400-MMVG*20
 CMN6     ADC    PMVH*400+MMVG*20+IMVE
          JMP    CMN13       SET MODEL INDICES
  
 CMN7     SHN    10-6 
          MJN    CMN9        IF S/C REGISTER NOT PRESENT
  
*         PROCESS CYBER 170 SERIES MAINFRAME. 
  
          SHN    6-1
          MJN    CMN8        IF SECOND CPU NOT PRESENT
          LDN    PMVD 
          STD    CM+1 
 CMN8     LDD    HO          EXTRACT STACK CPU STATUS 
          LPN    20 
          LMN    20 
          SHN    10-4 
          ERRNZ  PMVD+1-PMVE CODE DEPENDS ON VALUE
          ADC    PMVD*400+MMVE*20+IMVD
          JMP    CMN13       SET MODEL INDICES
  
 CMN9     SHN    7+21-7 
          MJN    CMN11       IF I/L REGISTER NOT PRESENT
  
*         PROCESS CYBER 70 SERIES MAINFRAME.
  
          SHN    7-1
          MJN    CMN10       IF SECOND CPU NOT PRESENT
          LDN    PMVA 
          STD    CM+1 
 CMN10    LDD    HO          EXTRACT STACK CPU STATUS 
          LPN    20 
          LMN    20 
          SHN    10-4 
          ERRNZ  PMVA+1-PMVB CODE DEPENDS ON VALUE
          ADC    PMVA*400+MMVC*20+IMVC
          JMP    CMN13       SET MODEL INDICES
  
*         PROCESS 6000 SERIES MAINFRAME.
  
 CMN11    SHN    7-1
          MJN    CMN12       IF SECOND CPU NOT PRESENT
          LDN    PMVA 
          STD    CM+1 
 CMN12    LDD    HO          EXTRACT STACK CPU STATUS 
          LPN    20 
          LMN    20 
          SHN    10-4 
          ERRNZ  PMVA+1-PMVB CODE DEPENDS ON VALUE
          ADC    PMVA*400+MMVA*20+IMVA
          JMP    CMN13       SET MODEL INDICES
  
  
 PMVT     BSS    0           PROCESSOR MODEL TABLE
          LOC    0
          CON    0           UNDEFINED
 PMVA     CON    2           6200, 6400, C71, C72, C73
 PMVB     CON    3           6600, C74
 PMVD     CON    22D         C171ABC, C172ABC, C173ABC, C174ABC 
 PMVE     CON    25D         C175ABC
 PMVF     CON    42D         C176AB 
 PMVG     CON    52D         C720, C730 
 PMVH     CON    54D         C740, C750, C760 
 PMVI     CON    55D         C865, C875 
          LOC    *O 
  
  
 MMVT     BSS    0           MEMORY MODEL TABLE 
          LOC    0
          CON    0           UNDEFINED
 MMVA     CON    102D        6200, 6400, 6600 
 MMVC     CON    113D        C71, C72, C73, C74 
 MMVE     CON    123D        C171ABC - C175ABC, C176AB
 MMVF     CON    152D        C720, C730 
 MMVG     CON    154D        C740, C750, C760 
 MMVH     CON    155D        C865 
 MMVI     CON    156D        C875 
          LOC    *O 
  
  
 IMVT     BSS    0           I/O SUBSYSTEM MODEL TABLE
          LOC    0
          CON    0           UNDEFINED
 IMVA     CON    202D        6200, 6400, 6600 
 IMVC     CON    213D        C71, C72, C73, C74 
 IMVD     CON    223D        C171ABC - C175ABC, C176AB
 IMVE     CON    252D        C720 - C760
 IMVF     CON    255D        C865, C875 
          LOC    *O 
 GPD      SPACE  4,10 
**        GPD - GENERATE PROCESSOR DESCRIPTOR.
* 
*         ENTRY  (A) = (T5) = PROCESSOR NUMBER. 
*                (T6) = TSAB INDEX. 
*                (T7) = SAB INDEX.
* 
*         EXIT   (T6) = INDEX ADVANCED. 
*                (T7) = INDEX ADVANCED. 
* 
*         CALLS  CDS, IAF.
  
  
 GPD      SUBR               ENTRY/EXIT 
          STM    MBUF 
          LDN    CPDS        REQUEST CPU DESCRIPTOR 
          RJM    IAF
          LDM    DBUF+5*1+4  MOVE MICROCODE LOADED FLAG 
          STM    DBUF+5*3+4 
          LDN    0           CLEAR UNUSED BYTES 
          STM    DBUF+5*1+4 
          STM    DBUF+5*2+4 
          LDM    DBUF+MCTC   SET CONNECT CODE 
          STM    TEAB+5*CPEI+3,T5 
          LDM    DBUF+HDID
          LPN    77 
          LMC    CPDWL*100B  APPEND DESCRIPTOR LENGTH TO HEADER 
          STM    DBUF+HDID
          LDM    C8XX 
          ZJN    GPD1        IF C180 MAINFRAME
          LDM    CM,T5
          SHN    4           SET CPU MODEL NUMBER 
          STM    DBUF+HDMN
 GPD1     LDN    4*5         COPY DESCRIPTOR TO SAB 
          RJM    CDS
          UJP    GPDX        RETURN 
 IAF      SPACE  4,10 
**        IAF - ISSUE FUNCTION TO ALTERNATE PP. 
* 
*         ENTRY  (A) = FUNCTION CODE. 
* 
*         EXIT   (A) = 0. 
* 
*         ERROR  TO *DSE* IF ALTERNATE PP ERROR.
* 
*         CALLS  API. 
  
  
 IAF      SUBR               ENTRY/EXIT 
          SHN    14 
          LMC    MBUF        APPEND BUFFER ADDRESS TO REQUEST 
          RJM    API
          ZJN    IAFX        IF NO ERROR
          JMP    DSE         DISPLAY ERROR AND HANG 
 SDA      SPACE  4,10 
**        SDA - SET DESCRIPTOR ADDRESS. 
* 
*         ENTRY  (A) = INDEX INTO TEAB. 
*                  IF (A) .GE. 0, ADDRESS ASSEMBLED INTO (A) + 1. 
*                  IF (A) .LT. 0, ADDRESS ASSEMBLED INTO (A) - 1. 
*                (T7) = CURRENT SAB INDEX.
*                (CN - CN+1) = FWA OF ELEMENT DESCRIPTOR BLOCK. 
* 
*         USES   T3.
  
  
 SDA1     LMC    -0          COMPLEMENT INDEX 
          STD    T3          SAVE ENTRY 
          LDD    CN 
          SHN    14 
          LMD    CN+1 
          ADD    T7          ADD CURRENT SAB INDEX
          STM    TEAB,T3     SET BITS 0-11
          SHN    -14
          RAM    TEAB-1,T3   SET BITS 12-17 
  
 SDA      SUBR               ENTRY/EXIT 
          MJN    SDA1        IF ENTRY .LT. 0
          STD    T3          SAVE ENTRY 
          LDD    CN 
          SHN    14 
          LMD    CN+1 
          ADD    T7          ADD CURRENT SAB INDEX
          SHN    14 
          STM    TEAB,T3     SET BITS 6-17
          SHN    6-14 
          SCN    77 
          RAM    TEAB+1,T3   SET BITS 0-5 
          UJN    SDAX        RETURN 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPCHM 
          QUAL
 PRS$     SET    0           SELECT COMMON DECK PRESET CODE 
          QUAL   *
          LIST   X
*CALL     COMPAPI 
          LIST   *
          SPACE  4,10 
**        BUFFER DEFINITIONS. 
  
  
 TSAB     EQU    .OVL        SAB BLOCK
 TSABL    EQU    SABML*5     BLOCK LENGTH 
  
 TEAB     EQU    TSAB+TSABL  *EABL* BLOCK 
 TEABL    EQU    5*MFEI+5    BLOCK LENGTH 
  
          ERRPL  TEAB+TEABL-MBUF  BUFFER OVERLAP
          SPACE  4,10 
          RSTC               RESTORE I/O INSTRUCTIONS 
          TTL    SET/IPR - PROCESS INSTALLATION PARAMETERS. 
          TITLE 
          IDENT  IPR,OVL
          QUAL   IPR
          ORG    OVL
*COMMENT  SET - INSTALLATION PARAMETERS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MACROS   SPACE  4,10 
**        MACRO DEFINITIONS.
 TBLM     SPACE  4,10 
**        TBLM = GENERATE TABLE OF MASS STORAGE DEVICE TYPES. 
* 
*         TBLM   EQ 
*                EQ = MASS STORAGE EQUIPMENT MNEMONIC.
  
  
 TBLM     MACRO  EQ 
          CON    2R_EQ
          ENDM
          SPACE  4,10 
**        ENTRY POINTS. 
  
  
          CON    TSYN-1      ADDRESS OF SYNTAX TABLE
          CON    TSYNA       ADDRESS OF END OF SYNTAX TABLE 
          SPACE  4,10 
*         INITIALIZE SUBSYSTEM STATUS VALUES IN *SSSL* TO *DISABLED*. 
  
 SSSL.0   SET    -0 
 SSSL.1   SET    -0 
 SSSL.2   SET    -0 
 SSSL.3   SET    -0 
 SSSL.4   SET    -0 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMSMLS 
 SUB$     EQU    1           ASSEMBLE *SUBSYST* MACRO 
*CALL     COMSSSD 
 IPR      SPACE  4
**        IPR - PROCESS INSTALLATION PARAMETERS.
  
  
 IPR      SUBR               ENTRY/EXIT 
          RJM    PMP         PROCESS MICROCODE/EI PARAMTERS 
          RJM    ESS         COPY SUBSYSTEM TABLE TO CMR
          LDN    IPPL        STORE INSTALLATION PAGE PARAMETERS 
          CWM    .IPPL,ON 
          LDN    SSML        STORE SYSTEM SECURITY MODE 
          CWM    .SSML,ON 
          LDN    IPRL        STORE INSTALLATION PARAMETERS
          CWM    .IPRL,ON 
          LDM    VEFL        STORE *VE=* FLAG 
          RAM    .SSTL+3
          LDM    .SSTL+2     ISOLATE *TRACE* STATUS 
          LPN    40 
          NJN    IPR1        IF TRACE DISABLED
          LDM    .SSTL+2     UPDATE *PROBE* STATUS
          LPC    7677 
          STM    .SSTL+2
 IPR1     LDN    SSTL        STORE SYSTEM STATUS FLAGS
          CWM    .SSTL,ON 
          LDN    SSSL        STORE SUBSYSTEM STATUS FLAGS 
          CWM    .SSSL,ON 
          LDN    MSCL        STORE MONITOR SCAN VALUES
          CWM    .MSCL,ON 
          LDN    JSCL        STORE JOB SCHEDULER CONTROL
          CWM    .JSCL,ON 
          ADK    INWL-JSCL-1 STORE SCHEDULER INTERLOCK
          CWM    .INWL,ON 
          ADK    PFNL-INWL-1 STORE PERMANENT FILE PARAMETERS
          CWM    .PFNL,ON 
          UJP    IPRX        RETURN 
 TSYN     SPACE  4
**        TSYN - SYNTAX TABLE.
  
  
 TSYN     BSS    0
          CON    DIS
          CON    ENA
  
          CON    CLA
          CON    CML
          CON    CPM
          CON    CPTT 
          CON    CSM
          CON    DEBUG
          CON    DELAY
          CON    DFPT 
          CON    DSD
          CON    EIN
          CON    KEYPM
          CON    MICRO
          CON    UNL+1       LOCK 
          CON    NIF
          CON    OQS
          CON    PCL
          CON    QUEUE
          CON    SCU
          CON    SSC
          CON    SERVICE
          CON    SPC
          CON    SPD
          CON    SPL
          CON    SPW
          CON    SSR
          CON    TCVM 
          CON    TDEN 
          CON    TDTY 
          CON    UNL         UNLOCK 
          CON    VEB
  
 TSYNA    CON    0
          CON    0           END OF TABLE 
 TCOM     SPACE  4,10 
**        TCOM - TABLE OF ENABLE/DISABLE COMMANDS.
  
  
 TCOM     BSS    0
          DUP    MXSI-LSSI,1
          CON    NOP
          ORG    TCOM 
 TCOM     INDEX 
          LIST   D
 .SUB     HERE
          LIST   *
          INDEX  MXSI-LSSI
  
*         ENABLE/DISABLE NON-SUBSYSTEM ATTRIBUTES.
  
          CON    APS
          CON    ARS
          CON    CPS
          CON    DDP
          CON    DKV
          CON    ENG
          CON    ESP
          CON    FMP
          CON    FOF
          CON    HFI
          CON    LOG
          CON    MCL
          CON    MMA
          CON    MMS
          CON    MSV
          CON    PAM
          CON    PFV
          CON    PRB
          CON    PRM
          CON    REM
          CON    RRM
          CON    SCP
          CON    SCRSIM 
          CON    SPI
          CON    SUBCP
          CON    SUC
          CON    SYD
          CON    TMS
          CON    TPS
          CON    TRA
          CON    UEC
          CON    0           END OF TABLE 
          SPACE  4,10 
****      SYSTEM STATUS AND CONTROL WORDS.
  
  
 .IPPL    BSS    0             INSTALLATION PAGE PARAMETER WORD 
          VFD    12//BIO/PL6L  LINES CHARGED PER PRINT PAGE AT 6 LPI
          VFD    12//BIO/PL8L  LINES CHARGED PER PRINT PAGE AT 8 LPI
          VFD    4/0           RESERVED FOR CDC 
          VFD    4//BIO/PDSD   SYSTEM PRINT DENSITY 
          VFD    8//BIO/PSSD   SYSTEM PAGE LENGTH 
          VFD    8//BIO/PWSD   SYSTEM PRINT WIDTH 
          VFD    12/0          RESERVED 
          SPACE  4,10 
 .IPRL    BSS    0           INSTALLATION PARAMETER WORD
          VFD    6/0         INDEX FOR CPU 1 MULTIPLIER 
          VFD    6/0         INDEX FOR CPU 0 MULTIPLIER 
  
          VFD    12/0        SECONDARY ROLLOUT SECTOR THRESHOLD 
  
          VFD    1/0         KEYPUNCH MODE (O26)
          VFD    10/0        RESERVED 
          VFD    1/1         CHARACTER SET (64) 
  
          VFD    12/2        TAPE CONVERSION MODE (ASCII/USASI) 
  
          VFD    6/4         NINE TRACK TAPE DENSITY (1600 CPI) 
          VFD    2/2         DEFAULT TAPE DEVICE TYPE (9 TRACK) 
          VFD    4/3         SEVEN TRACK TAPE DENSITY (800 BPI) 
  
  
  
  
 .SSTL    BSS    0           SYSTEM STATUS WORD 
          VFD    1/0         AUTORESTART (ENABLED)
          VFD    1/1         MEMORY CLEARING (DISABLED) 
          VFD    1/0         SECURITY LOCK STATUS (LOCKED)
          VFD    1/0         CONSOLE LOCK STATUS (LOCKED) 
          VFD    1/1         MASTER MSS (DISABLED)
          VFD    1/1         CARTRIDGE PF STAGING (DISABLED)
          VFD    1/1         USER EXTENDED MEMORY (DISABLED)
          VFD    1/1         PF VALIDATION (DISABLED) 
          VFD    2/3         MS VALIDATION (DISABLED) 
          VFD    1/1         MSE MASTER MODE (DISABLED) 
          VFD    1/1         SPINDOWN (DISABLED)
  
          VFD    1/0         RESERVED 
          VFD    1/0         FORCED FORMATTING (ENABLED)
          VFD    1/1         ACS TAPE PF STAGING (DISABLED) 
          VFD    1/1         HARDWARE FAULT INJECTION (DISABLED)
          VFD    1/1         TAPE PF STAGING (DISABLED) 
          VFD    1/0         REMOVABLE PACKS (ENABLED)
          VFD    1/0         DISK VALIDATION (ENABLED)
          VFD    1/1         SECONDARY USER COMMANDS (DISABLED) 
          VFD    1/1         SCP FACILITY (DISABLED)
          VFD    3/0         RESERVED 
  
          VFD    1/1         SUB-CONTROL POINTS (DISABLED)
          VFD    4/0         RESERVED 
          VFD    1/1         PROBE (DISABLED) 
          VFD    1/1         TRACE (DISABLED) 
          VFD    4/0         RESERVED 
          VFD    1/1         TMS (DISABLED) 
  
          VFD    1/1         VIRTUAL ENVIRONMENT (DISABLED) 
          VFD    1/0         FLEXIBLE MEMORY PARTITIONS (ENABLED) 
          VFD    1/1         DDP ROLLOUT PATH (DISABLED)
          VFD    1/1         RESIDENT RDF (DISABLED)
          VFD    1/1         PRIVILEGED RDF (DISABLED)
          VFD    1/1         PRIVILEGED ANALYST MODE (DISABLED) 
          VFD    1/1         EXTENDED STACK PURGING (DISABLED)
          VFD    1/1         LOGGING (DISABLED) 
          VFD    1/1         C70 SCR SIMULATION (DISABLED)
          VFD    1/1         ENGINEERING MODE (DISABLED)
          VFD    1/1         SYSTEM DEBUG (DISABLED)
          VFD    1/0         DEBUG SWITCH (OFF) 
  
          VFD    12/0        RESERVED 
 SSSL     SPACE  4,10 
 .SSSL    BSS    0           SUBSYSTEM STATUS WORD
          CON    SSSL.0 
          CON    SSSL.1 
          CON    SSSL.2 
          CON    SSSL.3 
          CON    SSSL.4 
          SPACE  4,10 
 .MSCL    BSS    0           MONITOR SCAN CONTROL 
          VFD    12/0        RECALL DELAY REDUCTION LIMIT 
  
          VFD    12/30       CPU RECALL DELAY 
  
          VFD    12/1000D    PP AUTO RECALL DELAY 
  
          VFD    12/0        RESERVED 
  
          VFD    12/0        MEMORY PAD FOR *RSTM*
          SPACE  4,10 
 .JSCL    BSS    0           JOB SCHEDULER CONTROL
          VFD    1/1         SCHEDULER ACTIVE FLAG
          VFD    11/0        RESERVED 
  
          VFD    12/2        EJT/QFT SCHEDULING INTERVAL
  
          VFD    12/1        SCHEDULER CYCLE INTERVAL 
  
          VFD    24/0        SCHEDULER RECALL TIME
****
          SPACE  4,10 
 .SSCT    INDEX 
          LIST   D
 .SUB2    HERE               DEFAULT .SSCT TABLE
          LIST   *
          INDEX  SSCTL*5
          TITLE  SUBROUTINES. 
 CSB      SPACE  4,10 
**        CSB - CHANGE SYSTEM STATUS BIT. 
* 
*         ENTRY  (A) BITS  0 - 11 = BIT(S) TO CHANGE. 
*                    BITS 12 - 17 = BYTE NUMBER.
*                (NC) = SYSTEM CONTROL POINT NUMBER.
*                (T3) = 0 IF SYSTEM ATTRIBUTE ENABLED.
*                (ST) = COMMAND TABLE ADDRESS.
* 
*         EXIT   TO *KBR*.
* 
*         USES   T5 - T7. 
  
  
 CSB      STD    T7          SAVE BITS
          SHN    -14
          ADC    .SSTL       SET BYTE ADDRESS 
          STD    T6 
          LDI    KA 
          ZJN    CSB1        IF END OF COMMAND
          SBN    1RZ+1
          MJP    AKL6        IF NOT END OF KEYWORD
 CSB1     LDD    ST 
          SBK    TCOM 
          PJN    CSB3        IF POSSIBLE SUBSYSTEM COMMAND
 CSB2     LJM    CSB7        CHANGE SYSTEM STATUS BIT 
  
 CSB3     SBK    MXSI-LSSI
          PJN    CSB2        IF NOT SUBSYSTEM COMMAND 
          STD    T5 
          LDK    .SSSL-.SSTL ADJUST WORD ADDRESS
          RAD    T6 
          LDM    -1,KA
          LMN    1R.
          ZJN    CSB7        IF SYNTAX TERMINATION WITH *.* 
          LDI    KA 
          LMN    1R.
          ZJN    CSB7        IF NO OPTIONAL PARAMETER 
          LMN    1R,&1R.
          NJN    CSB4        IF INVALID SEPARATOR 
          AOD    KA 
          LDI    KA          CHECK CONTROL POINT VALUE
          LMN    1R-
          NJN    CSB5        IF NOT RELATIVE TO SYSTEM CONTROL POINT
          AOD    KA 
          RJM    ASD         ASSEMBLE RELATIVE NUMBER 
          LDD    NC 
          SBD    AB+4        COMPUTE ACTUAL CONTROL POINT 
          STD    AB+4 
          PJN    CSB6        IF VALID CONTROL POINT 
 CSB4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CSB5     RJM    ASD         ASSEMBLE CONTROL POINT NUMBER
 CSB6     SBD    NC 
          PJN    CSB4        IF VALUE TOO LARGE 
          LDD    AB+4        ENTER CP NUMBER IN SUBSYSTEM TABLE 
          STM    .SSCT+MXSI-LSSI,T5 
 CSB7     LCN    0           SET BIT MASK 
          LMD    T7 
          STM    CSBA 
          LDD    T3 
          NJN    CSB8        IF NOT *ENABLE* COMMAND
          STD    T7 
 CSB8     LDI    T6          SET/CLEAR STATUS BIT 
          LPC    *
 CSBA     EQU    *-1
          LMD    T7 
          STI    T6 
          JMP    KBR         RETURN 
 PMP      SPACE  4,10 
**        PMP - PROCESS MICROCODE/EI PARAMETERS.
* 
*         EXIT   SABB BUFFER UPDATED FOR *CSAB* MACRO, IF 
*                CYBER 170-815/825/835/855 MAINFRAME. 
*                TO *KBR* IF MICROCODE OR EI MISMATCHES.
* 
*         USES   KM, T1 - T5. 
  
  
 PMP      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    PMPX        IF NOT CYBER 800 TYPE MAINFRAME
 PMPA     ADN    1
          MJN    PMPX        IF VALID MICRO AND EI ENTRIES FOUND
          LDC    0
 PMPB     EQU    *-1         (FLAGS MICRO/EI ENTRIES) 
          LMN    1
          STM    PMPB 
          ZJN    PMPX        IF MESSAGE TO BE SUPPRESSED
          LDC    0
 PMPD     EQU    *-1         (FLAGS PRESENCE OF MICRO OR EI ENTRY)
          ZJN    PMP1        IF MICRO OR EI ENTRIES ARE NOT SPECIFIED 
          LDC    PMPC        ISSUE MESSAGE
          STD    KM 
          LDN    0
          STD    DS 
          LJM    ATD3        RETURN 
  
 PMP1     LDN    DSSL 
          CRD    T1 
          LDN    10          SET MICROCODE/EI MISMATCH FLAG 
          RAD    T1+4 
          LDN    DSSL 
          CWD    T1 
          UJP    PMPX        RETURN 
  
  
 PMPC     DATA   C*MICROCODE/EI MISMATCH - MAY CAUSE SYSTEM HANG.*
 VMN      SPACE  4,10 
**        VMN - VERIFY MICROCODE/EI NAMES.
* 
*         ENTRY  (A) = 0 IF MICROCODE ENTRY.
*                    = 4 IF EI ENTRY. 
*                (T4) = NUMBER OF CHARACTERS TO ASSEMBLE. 
* 
*         EXIT   TO PROCESSOR IF COMPARISON FOUND.
*                TO *ILL* IF INCORRECT ENTRY. 
*                TO *KBR* IF NO MATCH FOUND OR NOT CYBER
*                170-815/825/835/855 MAINFRAME. 
* 
*         USES   T1, T2, T3, T5, KA, CN - CN+4. 
* 
*         CALLS  ASN. 
  
  
 VMN      SUBR               ENTRY/EXIT 
          STD    T5 
          LDM    C8XX 
          NJN    VMN2        IF NOT CYBER 800 TYPE MAINFRAME
          LDN    6           SET MAXIMUM NUMBER OF ENTRIES PER LINE 
          STM    PMPD        SET MICRO/EI PRESENT FLAG
          STD    T3 
          LDC    MEBF        GET MICROCODE/EI NAMES 
          STM    PMPB 
          CRD    CN 
          SOD    KA 
 VMN1     SOD    T3 
          MJN    VMN2        IF NO MORE ENTRIES MAY BE CHECKED
          LDI    KA 
          LMN    1R.
          NJN    VMN3        IF NOT TERMINATOR
 VMN2     LDD    AM 
          NJN    VMN4        IF KEYBOARD ASSEMBLY 
          JMP    KBR         PROCESS KEYBOARD 
  
 VMN3     LDD    T4 
          RJM    ASN         ASSEMBLE NAME
          ZJN    VMN5        IF VALID ENTRY 
 VMN4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 VMN5     STD    T1          SET LOOP INDICES 
          LDD    T5 
          STD    T2 
 VMN6     LDM    CN,T2       COMPARE VALUES 
          LMM    CM,T1
          NJN    VMN1        IF VALUES DO NOT COMPARE 
          AOD    T2          INCREMENT POINTERS 
          AOD    T1 
          SHN    1
          LMD    T4 
          SHN    -1 
          NJN    VMN6        IF COMPARISON NOT COMPLETE 
          SOM    PMPA 
          LJM    VMNX        RETURN 
          TITLE  SUBROUTINES. 
 TJB      SPACE  4,10 
**        TJB - TOGGLE JOB SCHEDULER BITS.
* 
*         ENTRY  (A) BITS  0 - 11 = BIT(S) TO TOGGLE. 
*                    BITS 12 - 17 = BYTE NUMBER.
* 
*         EXIT   TO *KBR*.
* 
*         USES   T2.
  
  
 TJB      STD    T2          SAVE BITS
          SHN    -14         SET BYTE 
          ADC    .INWL
          UJN    TSB1        TOGGLE SCHEDULER BITS
 TSB      SPACE  4,10 
**        TSB - TOGGLE SYSTEM STATUS BIT. 
* 
*         ENTRY  (A) BITS  0 - 11 = BIT(S) TO TOGGLE. 
*                    BITS 12 - 17 = BYTE NUMBER.
* 
*         EXIT   TO *KBR*.
* 
*         USES   T1, T2.
  
  
 TSB      STD    T2          SAVE BITS
          SHN    -14         SET BYTE NUMBER
          ADC    .SSTL
 TSB1     STD    T1 
          LDI    T1          TOGGLE STATUS BITS 
          LMD    T2          ENTER STATUS 
          STI    T1 
          JMP    KBR         RETURN 
          TITLE  SYNTAX PROCESSORS. 
 ACCOUNT  SPACE  4,10 
***       INSTALLATION PARAMETERS.
* 
*         CERTAIN INSTALLATION PARAMETERS REFER TO THE JOB SERVICE
*         CLASS *SC*.  *SC* MAY BE REPLACED BY THE FOLLOWING -
*                SC          SERVICE CLASS
* 
*                SY          SYSTEM 
*                BC          BATCH
*                RB          REMOTE BATCH 
*                TS          INTERACTIVE
*                DI          DETACHED INTERACTIVE 
*                SS          SUBSYSTEM
*                MA          MAINTENANCE
*                CT          COMMUNICATION TASK 
*                NS          NETWORK
*                I0          INSTALLATION CLASS 0 
*                I1          INSTALLATION CLASS 1 
*                I2          INSTALLATION CLASS 2 
*                I3          INSTALLATION CLASS 3 
 DISABLE  SPACE  4,10 
***       DISABLE,SA. 
***       DISABLE,SA,CP.     (SUBSYSTEMS ONLY)
*         SA = SYSTEM ATTRIBUTE OR FUNCTION.
*         CP = CONTROL POINT NUMBER.
  
  
 DIS      DATA   C*DISABLE,*
 DIS1     LDC    TCOM-1      SET COMMAND TABLE ADDRESS
          STD    ST 
          LDD    KA          SET KEYBOARD BUFFER ADDRESS
          STD    KB 
          LJM    AKL7        RESUME COMMAND CRACKING
 ENABLE   SPACE  4,10 
***       ENABLE,SA.
***       ENABLE,SA,CP.      (SUBSYSTEMS ONLY)
*         SA = SYSTEM ATTRIBUTE OR FUNCTION.
*         CP = CONTROL POINT NUMBER.
  
  
 ENA      DATA   C*ENABLE,* 
          LDN    0           SET *ENABLE* COMMAND PROCESSED 
          STD    T3 
          UJN    DIS1        CONTINUE COMMAND CRACKING
          SPACE  4,10 
          LIST   G
 .SUB1    HERE               CODE FOR *ENABLE/DISABLE* SUBSYSTEMS 
          LIST   *
 APS      SPACE  4,10 
***       ACS TAPE PF STAGING.
*         ENABLE/DISABLE STAGING OF PERMANENT FILES FROM ACS TAPE.
*         DEFAULT = ACS TAPE PF STAGING DISABLED. 
  
  
 APS      DATA   C*ACS TAPE PF STAGING.*
          LDC    11000
          JMP    CSB         CHANGE STATUS BIT
 ARS      SPACE  4,10 
***       AUTORESTART.
*         ENABLE/DISABLE AUTORESTART. 
*         DEFAULT = AUTORESTART ENABLED.
  
  
 ARS      DATA   C*AUTORESTART.*
          LDC    4000 
          JMP    CSB         CHANGE STATUS BIT
 CLA      SPACE  4,10 
***       CLASS,OT,C1,C2,...,CN.
* 
*         SET SERVICE CLASS VALIDATION MASK FOR SPECIFIED ORIGIN TYPE.
* 
*         OT     ORIGIN TYPE.  (BC, EI, IA, RB, TX) 
*         CI     TWO CHARACTER SERVICE CLASS MNEMONIC.
*                *ALL* OR *NUL* ARE ALSO ACCEPTED.
  
  
 CLA      DATA   C*CLASS,*
          LDM    2,KA 
          LMN    1R,
          ZJN    CLA2        IF VALID SEPARATOR 
 CLA1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CLA2     LDC    TJOT+2      SEARCH FOR VALID ORIGIN TYPE 
          RJM    SPT
          SHN    -1 
          ADN    1
          STD    T4 
          LDN    0           READ SCT ENTRY 
          SFA    JCB
          ADD    T4 
          CRD    CN 
          LDM    3,KA        CHECK FOR *ALL* OR *NUL* 
          SHN    6
          LMM    4,KA 
          LMC    2RL. 
          NJN    CLA3        IF NOT *ALL* OR *NUL*
          LDM    1,KA 
          SHN    6
          LMM    2,KA 
          LMC    2RNU 
          ZJP    CLA6        IF *NUL* SELECTED
          LMC    2RAL&2RNU
          ZJP    CLA7        IF *ALL* SELECTED
  
*         PROCESS SERVICE CLASS PARAMETERS. 
  
 CLA3     AOD    KA          SKIP SEPARATOR 
          LDC    TJSC 
          RJM    SPT         SEARCH FOR VALID SERVICE CLASS 
          STD    T2          SAVE SERVICE CLASS VALUE 
          LDM    TSCM,T2     GET SERVICE CLASS VALIDATION BIT 
          ZJP    CLA1        IF INCORRECT SERVICE CLASS 
          STD    T3 
          LDN    CN+5        DETERMINE BYTE NUMBER TO TOGGLE BIT IN 
          STD    T1 
 CLA4     SOD    T1 
          LCN    12D
          RAD    T2 
          PJN    CLA4        IF NOT CORRECT BYTE
          LDI    T1          TOGGLE VALIDATION BIT
          LMD    T3 
          STI    T1 
          LDI    KA 
          LMN    1R,
          ZJN    CLA3        IF NOT END OF ENTRY
          LMN    1R.&1R,
          NJP    CLA1        IF NOT VALID TERMINATOR
 CLA5     LDN    0           STORE SCT ENTRY
          SFA    JCB
          ADD    T4 
          CWD    CN 
          JMP    KBR         RETURN 
  
 CLA6     STD    CN+3 
          UJN    CLA8        CLEAR ALL MASK BITS
  
 CLA7     LDK    /SCD/A2MK   SET ALL MASK BITS
          STD    CN+3 
          LDK    /SCD/A1MK
 CLA8     STD    CN+4 
          UJN    CLA5        STORE SCT ENTRY
 CML      SPACE  4,10 
***       COMLIB,XXXXXXX,YYYYYYY. 
*         COMLIB,XXXXXXX,YYYYYYY,D. 
*         WHERE  XXXXXXX = USER NAME  AND  YYYYYYY = FAMILY.
  
  
 CML      DATA   C*COMLIB,* 
          LDD    RS 
 CMLA     ZJN    CML0        IF LEVEL ZERO DEADSTART
*         ZJN    CML1        (AFTER INITIAL CALL) 
          JMP    KBR         RETURN 
  
 CML0     SFA    CLT         INITIALIZE *COMPGFP* 
          ISTORE CMLA,(ZJN CML1)  BYPASS *SFA* CALL 
 CML1     SOD    KA 
          LDN    10          SET CHARACTER COUNT
          RJM    AUN         ASSEMBLE USER NAME 
          NJN    CML2        IF MORE THAN 7 CHARACTERS
          LDD    CM 
          ZJN    CML2        IF NO USER NAME
          LDI    KA 
          LMN    1R,
          ZJN    CML3        IF *,* 
 CML2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CML3     LDN    IPRL        SAVE USER NAME 
          CWD    CM 
          CRD    AB 
          LDN    10          SET CHARACTER COUNT
          RJM    ASN         ASSEMBLE FAMILY
          NJN    CML2        IF MORE THAN 7 CHARACTERS
          LDD    CM 
          ZJN    CML2        IF NO FAMILY 
          LDI    KA 
          LMN    1R.
          ZJN    CML4        IF ADDING AN ENTRY 
          LMN    1R.&1R,
          NJN    CML2        IF INCORRECT ENTRY 
          AOD    KA 
          LDI    KA 
          LMN    1RD
          NJN    CML2        IF INCORRECT ENTRY 
          AOD    KA          GET TERMINATING CHARACTER
          LDI    KA 
          LMN    1R.
          NJN    CML2        IF INCORRECT ENTRY 
          LDN    1
 CML4     STD    T7          SET ADD/DELETE KEY 
          LDN    0
          STD    CA 
          LDK    CLTP        FETCH COMMON LIBRARIES TABLE POINTER 
          CRD    T2 
          LDD    T4 
          NJN    CML6        IF TABLE DEFINED 
 CML5     LDC    CMLB 
          JMP    ILL1        DISPLAY ERROR MESSAGE
  
 CML6     SBD    T5          SET NUMBER OF ENTRIES IN USE 
          SBN    1
          ZJN    CML8        IF TABLE EMPTY 
          STD    CA+1 
 CML7     AOD    CA          READ TABLE ENTRY 
          SFA    CLT
          CRD    CN 
          LDD    CN 
          ZJN    CML7        IF EMPTY ENTRY 
          LDN    AB          COMPARE WITH USER NAME 
          RJM    CPN
          ZJN    CML10       IF MATCHING USER NAME
          SOD    CA+1 
          NJN    CML7        IF NOT END OF ASSIGNED ENTRIES 
 CML8     LDD    T7 
          NJN    CML11       IF DELETING ENTRY
          SOD    T5 
          MJN    CML5        IF TABLE FULL
          LDD    T6          SET ORDINAL OF EMPTY SLOT
          STD    CA 
          SFA    CLT         FETCH LINK TO NEXT EMPTY SLOT
          CRD    CN 
          LDD    CN+4        SET NEXT AVAILABLE ORDINAL 
          STD    T6 
 CML9     SFA    CLT,CA      STORE/CLEAR USER NAME
          CWD    AB 
          ADN    CLTF-CLTU   STORE/CLEAR FAMILY NAME
          CWD    CM 
          LDK    CLTP        UPDATE POINTER WORD
          CWD    T2 
          JMP    KBR         RETURN 
  
 CML10    LDD    T7 
          NJN    CML12       IF DELETING ENTRY
 CML11    JMP    ILL         PROCESS INCORRECT ENTRY
  
 CML12    SFA    CLT,CA      FETCH FAMILY NAME FROM TABLE 
          ADN    CLTF-CLTU
          CRD    CN 
          LDN    CM          COMPARE WITH ENTERED VALUE 
          RJM    CPN
          NJN    CML11       IF NO MATCH
          CRD    AB 
          CRD    CM 
          CRD    CN 
          LDD    T6          SET UP EMPTY SLOT LINKAGE
          STD    AB+4 
          ZJN    CML13       IF TABLE FULL
          SBD    CA 
          MJN    CML15       IF ENTRY BEYOND NEXT AVAILABLE 
 CML13    LDD    CA 
          STD    T6 
 CML14    AOD    T5 
          LJM    CML9        CLEAR TABLE ENTRY/UPDATE POINTER 
  
 CML15    LDD    AB+4        SAVE LINK ORDINAL
          STD    T1 
          SFA    CLT         PICK UP NEXT LINKED ENTRY
          CRD    AB 
          LDD    AB+4 
          ZJN    CML18       IF LAST ENTRY
          SBD    CA 
          MJN    CML15       IF DELETE BEYOND CURRENT LINK
 CML18    LDD    CA          LINK TO NEW FREE ENTRY 
          STD    CN+4 
          SFA    CLT,T1 
          CWD    CN 
          LDN    0
          STD    CN+4 
          UJN    CML14       UPDATE FREE COUNT
  
  
 CMLB     DATA   C*ENTRY IGNORED--TABLE FULL.*
 CPM      SPACE  4,10 
***       CPM,N=X,N=X.
* 
*         USE XX AS INDEX TO DETERMINE CP TIME MULTIPLIER 
*         FOR CPU N.
* 
*         N      CPU (0 OR 1) 
*         X      TABLE INDEX (1 - 45) 
  
  
 CPM      DATA   C*CPM,*
          SOD    KA 
 CPM1     AOD    KA 
          LDC    TCPM        SEARCH FOR PARAMETER 
          RJM    SPT
          ZJN    CPM2        IF ORDINAL ZERO
          LDC    SHNI+6 
          STM    CPMB 
          ADN    6
          UJN    CPM3 
  
 CPM2     LDC    SHNI 
          STM    CPMB 
 CPM3     STM    CPMA 
          RJM    AOD         ASSEMBLE CHARACTERS OF PARAMETER VALUE 
          ZJN    CPM4        IF ZERO VALUE
          SBN    TIPRL
          MJN    CPM5        IF VALID INDEX VALUE 
 CPM4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 CPM5     LDM    .IPRL
 CPMA     SHN    0
*         SHN    14           IF UPPER HALF OF BYTE (CPU 1) 
          SCN    77 
          LMD    AB+4        INSERT INDEX VALUE 
 CPMB     SHN    0
*         SHN    6           IF UPPER HALF OF BYTE (CPU 1)
          STM    .IPRL
          LDI    KA          CHECK FOR END OF COMMAND 
          LMN    1R,
          NJN    CPM6        IF NO MORE ENTRIES 
          LJM    CPM1 
  
 CPM6     JMP    KBR         RETURN 
 CPS      SPACE  4,10 
***       CARTRIDGE PF STAGING. 
*         ENABLE/DISABLE STAGING OF *MSS*/*MSE* RESIDENT FILES. 
*         DEFAULT = CARTRIGE PF STAGING DISABLED. 
  
  
 CPS      DATA   C*CARTRIDGE PF STAGING.* 
          LDC    100
          JMP    CSB         CHANGE STATUS BIT
 CPTT     SPACE  4,10 
**        CPTT=NNNN.
*         SET CPU TRANSFER THRESHOLD FOR INDIRECT ACCESS FILES. 
  
  
 CPTT     DATA   C*CPTT=* 
          RJM    AOD         ASSEMBLE DIGITS
          LDD    AB+3 
          NJN    CPT1        IF VALUE TOO LARGE 
          LDD    AB+4 
          STM    .PFNL+4
          JMP    KBR         RETURN 
  
 CPT1     JMP    ILL         PROCESS INCORRECT ENTRY
 CSM      SPACE  4,15 
**        CSM=CC. 
*         SET SYSTEM CHARACTER SET MODE ACCORDING TO *CC*.
*         CC     CHARACTER SET. 
* 
*         63     63 CHARACTER SET.
*         64     64 CHARACTER SET.
*         DEFAULT = 64 CHARACTER SET. 
  
  
 CSM      DATA   C*CSM=*
          LDC    TCSM 
          RJM    SPT
          STD    T2 
          LDM    .IPRL+2
          SCN    1
          LMD    T2          NEW CHARACTER SET SETTING
          STM    .IPRL+2
          JMP    KBR         RETURN 
 DDP      SPACE  4,10 
***       DDP ROLLOUT PATH. 
*         ENABLE/DISABLE DDP ROLLOUT PATH.
*         DEFAULT = DDP ROLLOUT PATH DISABLED.
  
  
 DDP      DATA   C*DDP ROLLOUT PATH.* 
          LDC    31000
          JMP    CSB         CHANGE STATUS BIT
 DEBUG    SPACE  4
***       DEBUG.
*         TOGGLE DEBUG SWITCH.
*         DEFAULT = DEBUG SWITCH OFF. 
*         THIS ENTRY IS IGNORED ON A SECURE SYSTEM. 
  
  
 DEBUG    DATA   C*DEBUG.*
          LDM    .SSML
          LPN    7
          ZJN    DEB1        IF NOT SECURE SYSTEM 
          JMP    KBR         RETURN 
  
 DEB1     LDC    30001       TOGGLE DEBUG BIT 
          JMP    TSB         TOGGLE SYSTEM STATUS BIT 
 DELAY    SPACE  4,10 
***       DELAY,T1XXX,T2XXX,...TNXXX. 
*         SET SCAN VALUE *TN* = XXX.
*         TN     DELAY
* 
*         JQ     EJT/QFT SCHEDULING INTERVAL (2**JQ SECONDS)
*         JS     JOB SCHEDULER (SECONDS)
*         RL     RECALL DELAY REDUCTION LIMIT (MILLISECONDS)
*         CR     CPU PROGRAM RECALL (MILLISECONDS)
*         AR     PP AUTO RECALL (MILLISECONDS)
*         MP     MEMORY PAD FOR *RSTM* (100B WORD BLOCKS).
  
  
 DELAY    DATA   C*DELAY,*
          SOD    KA 
 DLY1     AOD    KA          SKIP SEPARATOR 
          LDC    TDLP 
          RJM    SPT         SEARCH DELAY PARAMETERS
          STD    T4 
          LDM    TDLY,T4     SET CONTROL WORD ADDRESS 
          STD    T6 
          RJM    AOD         CONVERT DELAY TIME 
          LJM    DLYA,T4     CHECK FOR VALID DELAY TIME 
  
 DLYA     UJN    DLY4        JQXX 
          UJN    DLY2        JSXXXX 
          UJN    DLY7        RLXX 
          UJN    DLY2        CRXXXX 
          UJN    DLY2        ARXXXX 
          UJN    DLY6        MPXXX
  
 DLY2     ZJN    DLY5        IF INVALID DELAY TIME
 DLY3     LDD    AB+4 
          STI    T6 
          LDI    KA          CHECK SEPARATOR
          LMN    1R.
          NJN    DLY1        IF NOT *.* 
          JMP    KBR
  
 DLY4     SBN    14+1 
          MJN    DLY3        IF VALID SCHEDULING INTERVAL 
 DLY5     JMP    ILL         PROCESS INCORRECT ENTRY
  
 DLY6     SHN    -3          VERIFY MEMORY PAD .LE. 777B
 DLY7     SHN    -6 
          ZJN    DLY3        IF VALID RECALL REDUCTION
          JMP    ILL         PROCESS INCORRECT ENTRY
 TDLY     SPACE  4
**        TDLY - TABLE OF DELAY ENTRY ADDRESSES.
*         ENTRY  = 1 WORD.
*         INDEXED BY INDEX OF *TDLP*. 
* 
*T,       12/  ADDR 
*         ADDR   BYTE ADDRESS IN CONTROL WORD 
  
  
 TDLY     BSS    0
          CON    .JSCL+1     *JQ* 
          CON    .JSCL+2     *JS* 
          CON    .MSCL       *RL* 
          CON    .MSCL+1     *CR* 
          CON    .MSCL+2     *AR* 
          CON    .MSCL+4     *MP* 
 DFPT     SPACE  4,10 
***       DFPT=DTN. 
*         ENTER SYSTEM DEFAULT REMOVABLE PACK TYPE IN *PFNL*. 
*           DT = DEVICE TYPE. 
*           N = NUMBER OF SPINDLES. 
  
  
 DFPT     DATA   C*DFPT=* 
          LDC    TMDT        CHECK DEVICE TYPE
          RJM    SPT         SEARCH PARAMETER TABLE 
          LDI    KA          GET NUMBER OF SPINDLES 
          SBN    1R1
          MJN    DFP1        IF NOT DIGIT (1-8) 
          SBN    1R9-1R1
          PJN    DFP1        IF NOT DIGIT (1-8) 
          LDM    1,KA 
          LMN    1R.
          ZJN    DFP2        IF PROPER TERMINATOR 
 DFP1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 DFP2     LDD    T1          SET DEFAULT PACK TYPE
          STM    .PFNL
          LDI    KA 
          SHN    6
          STD    T1 
          LDM    .PFNL+1
          LPN    77 
          LMD    T1 
          STM    .PFNL+1
          JMP    KBR         RETURN 
 DKV      SPACE  4,10 
***       DISK VALIDATION.
*         ENABLE/DISABLE DISK VALIDATION. 
*         DEFAULT = DISK VALIDATION ENABLED.
  
  
 DKV      DATA   C*DISK VALIDATION.*
          LDC    10040
          JMP    CSB         CHANGE STATUS BIT
 DSD      SPACE  4,15 
***       DSD,X,CCC-CCC 
*         ENTER CCC-CCC AS INITIAL KEYBOARD COMMAND IF RECOVERY 
*         X IS SELECTED.
*         NOTE: LEVEL 3 RECOVERY PROCESSING IS NOT ALLOWED. 
* 
*         MULTIPLE COMMANDS ARE SEPARATED BY EITHER THE CHARACTER FOR 
*         DISPLAY CODE 60 (#) OR DISPLAY CODE 63 (%).  THESE DELIMITER
*         CHARACTERS MAY DISTORT THE *IPRDECK* DISPLAY IF THEY APPEAR 
*         AS THE UPPER SIX BITS IN A BYTE.
  
  
 DSD      DATA   C*DSD,*
          RJM    CDR         ASSEMBLE DIGITS. 
          LMN    1R,
          ZJN    DSD1        IF *,* 
 DSD0     JMP    ILL         PROCESS INCORRECT ENTRY
  
 DSD1     LDD    AB+4        CHECK RECOVERY 
          LMN    3
          ZJN    DSD0        IF LEVEL 3 RECOVERY PROCESSING REQUESTED 
          LMN    3
          LMD    RM 
          NJN    DSD4        IF INCORRECT MODE
          AOD    KA 
          LDN    PPCP        READ PP COMMUNICATION POINTER
          CRD    CM 
          LDD    CM+4        SET WORD ADDRESS 
          ADN    10+2 
          STD    T1 
 DSD2     LDN    CM          SET BYTE ADDRESS 
          STD    T2 
 DSD3     LDI    KA          ASSEMBLE BYTE
          SHN    6
          LMM    1,KA 
          STI    T2 
          LDN    2
          RAD    KA 
          AOD    T2 
          LMN    CM+5 
          NJN    DSD3        LOOP TO END OF WORD
          LDD    T1          STORE WORD 
          CWD    CM 
          LDD    CM+4 
          ZJN    DSD4        IF END OF COMMAND
          AOD    T1          ADVANCE WORD 
          LPN    7
          NJN    DSD2        LOOP 
 DSD4     JMP    KBR         RETURN 
 EIN      SPACE  4,10 
***       EI=NN,NN,...,NN.
*         ENTER NN AS EI REVISION LEVEL.
  
  
 EIN      DATA   C*EI=* 
 EINA     LDN    3           SET NUMBER OF CHARACTERS TO ASSEMBLE 
*         UJN    EIN1        (MATCH ALREADY FOUND)
          STD    T4 
          LDN    4           SET EI PROCESSOR FLAG
          RJM    VMN         VERIFY EI NAME 
          LDC    *
          ORG    *-1
          LOC    EINA 
          UJN    EIN1        DISABLE PROCESSING 
          LOC    *O 
          STM    EINA 
 EIN1     JMP    KBR         RETURN 
          SPACE  4,5
***       ENGR. 
*         TOGGLE ENGINEERING SWITCH.
*         DEFAULT = ENGINEERING SWITCH OFF. 
*         THIS ENTRY IS IGNORED ON A SECURE SYSTEM. 
  
  
 ENG      DATA   C*ENGR.* 
          LDM    .SSML
          LPN    7
          ZJN    ENG1        IF NOT SECURE SYSTEM 
          JMP    KBR         RETURN 
  
 ENG1     LDC    30004
          JMP    CSB         CHANGE STATUS BIT
 ESP      SPACE  4,10 
***       EXTENDED STACK PURGING. 
*         ENABLE/DISABLE EXTENDED STACK PURGING.
*         DEFAULT = STACK PURGING DISABLED. 
  
  
 ESP      DATA   C*EXTENDED STACK PURGING.* 
          LDC    30040
          JMP    CSB         CHANGE STATUS BIT
 FMP      SPACE  4,10 
***       FLEXIBLE PARTITIONS.
*         ENABLE/DISABLE FLEXIBLE MEMORY PARTITIONS.
*         DEFAULT = FLEXIBLE PARTITIONS ENABLED.
  
  
 FMP      DATA   C*FLEXIBLE PARTITIONS.*
          LDC    32000
          JMP    CSB         CHANGE STATUS BIT
 FOF      SPACE  4,10 
***       FORCED FORMATTING.
*         ENABLE/DISABLE FORCED FORMATTING FOR 583X DISKS.
*         DEFAULT = FORCED FORMATTING DISABLED. 
  
  
 FOF      DATA   C*FORCED FORMATTING.*
          LDC    12000
          JMP    CSB         CHANGE STATUS BIT
 HFI      SPACE  4,10 
***       HARDWARE FAULT INJECTION. 
*         ENABLE/DISABLE HARDWARE FAULT INJECTION.
*         DEFAULT = HARDWARE FAULT INJECTION DISABLED.
  
  
 HFI      DATA   C*HARDWARE FAULT INJECTION.* 
          LDK    MABL        CHECK MAINFRAME TYPE 
          CRD    CM 
          LDD    CM+1 
          SHN    21-13
          MJN    HFI1        IF NOT CME MAINFRAME 
          SHN    21-6-21+13 
          PJN    HFI1        IF 865/875 
          LDC    10400
          JMP    CSB         CHANGE STATUS BIT
  
 HFI1     JMP    ILL         PROCESS INCORRECT ENTRY
 KEYPM    SPACE  4,10 
**        KEYPM=CC. 
*         SET ASSUMED KEYPUNCH COMVERSION MODE ACCORDING TO CC. 
*         CC     KEYPUNCH CONVERSION MODE.
* 
*         26     O26 CONVERSION MODE. 
*         29     O29 CONVERSION MODE. 
  
  
 KEYPM    DATA   C*KEYPM=*
          LDC    TKCM 
          RJM    SPT         SEARCH PARAMETER TABLE 
          SHN    13          SET BIT INDICATING DEFAULT KEYPUNCH MODE 
          STD    T2 
          LDM    .IPRL+2
          LPC    3777 
          LMD    T2 
          STM    .IPRL+2
          JMP    KBR         RETURN 
 LOCK     SPACE  4
***       LOCK. 
*         TOGGLE CONSOLE LOCK STATUS. 
*         DEFAULT = CONSOLE UNLOCKED. 
  
  
*LCK      EQU    UNL+1
 LOG      SPACE  4,10 
***       LOGGING.
*         ENABLE/DISABLE LOGGING OF UNNECESSARY DAYFILE MESSAGES. 
*         DEFAULT = LOGGING DISABLED. 
  
  
 LOG      DATA   C*LOGGING.*
          LDC    30020
          JMP    CSB         CHANGE STATUS BIT
 MCL      SPACE  4,10 
***       MEMORY CLEARING.
*         ENABLE/DISABLE THE CLEARING OF CENTRAL AND EXTENDED 
*         MEMORY WHEN RELEASED. 
*         DEFAULT = MEMORY CLEARING DISABLED. 
  
  
 MCL      DATA   C*MEMORY CLEARING.*
          LDC    2000 
          JMP    CSB         CHANGE STATUS BIT
 MICRO    SPACE  4,10 
***       MICRO=NNNNNNN,NNNNNNN,...,NNNNNNN.
*         ENTER SEVEN CHARACTER MICROCODE NAME. 
  
  
 MICRO    DATA   C*MICRO=*
 MICA     LDN    10          SET NUMBER OF CHARACTERS TO ASSEMBLE 
*         UJN    MIC1        (MATCH ALREADY FOUND)
          STD    T4 
          LDN    0           SET MICROCODE PROCESSOR FLAG 
          RJM    VMN         VERIFY MICROCODE NAME
          LDC    *
          ORG    *-1
          LOC    MICA 
          UJN    MIC1        DISABLE PROCESSING 
          LOC    *O 
          STM    MICA 
 MIC1     JMP    KBR         RETURN 
 MMA      SPACE  4,10 
***       MASTER MSE. 
*         ENABLE/DISABLE MSE EXECUTIVE MASTER MODE INITIATION.
*         DEFAULT = MASTER MODE DISABLED. 
  
  
 MMA      DATA   C*MASTER MSE.* 
          LDN    2
          JMP    CSB         CHANGE STATUS BIT
 MMS      SPACE  4,10 
***       MASTER MSS. 
*         ENABLE/DISABLE MSS EXECUTIVE MASTER MODE. 
*         DEFAULT = MASTER MODE DISABLED. 
  
  
 MMS      DATA   C*MASTER MSS.* 
          LDC    200
          JMP    CSB         CHANGE STATUS BIT
 MSV      SPACE  4,5
***       MS VALIDATION.
*         TOGGLE MASS STORAGE VALIDATION. 
*         DEFAULT = MS VALIDATION DISABLED. 
  
  
 MSV      DATA   C*MS VALIDATION.*
          LDN    14 
          JMP    CSB         CHANGE STATUS BIT
 NIF      SPACE  4,10 
***       NAMIAF=NC.
*         SET THE NUMBER OF NETWORK TERMINALS.
* 
*         NC     THE NUMBER OF NETWORK TERMINALS (1-512). 
* 
*         THE VALUE OF NC IS STORED INTO BYTE 4 OF WORD *EQDE*
*         OF THE DUMMY TT EST ENTRY.
  
  
 NIF      DATA   C*NAMIAF=* 
          LDN    TTEQ 
          SFA    EST         READ EQUIPMENT ENTRY 
          ADK    EQDE 
          CRD    CM 
          LDI    KA 
          LMN    1R.
          ZJN    NIF3        IF DEFAULT *NC*
          RJM    ASD         ASSEMBLE NUMBER OF NETWORK TERMINALS 
          NJN    NIF2        IF .NE. 0
 NIF1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 NIF2     STD    CM+4        NUMBER OF NETWORK TERMINALS
          SBN    1
          SHN    -11
          NJN    NIF1        IF INCORRECT NUMBER OF TERMINALS 
          LDN    TTEQ        UPDATE EQUIPMENT ENTRY 
          SFA    EST
          ADK    EQDE 
          CWD    CM 
 NIF3     JMP    KBR         RETURN 
 NOP      SPACE 4,10
***       NOP - NULL SUBSYSTEM ENTRY. 
  
 NOP      DATA   C*NOP.*
          JMP    KBR         RETURN 
 OQS      SPACE  4,10 
***       OQSH=NNNNNNN. 
*         SELECTS OUTPUT SPECIAL HANDLING LEVEL.
*         NNNNNNN  OUTPUT QUEUE SPECIAL HANDLING LEVEL. 
  
  
 OQS      DATA   C*OQSH=* 
          SOD    KA          ASSEMBLE PARAMETER 
          LDN    10 
          RJM    ASN
          NJN    OQS1        IF MORE THAN 7 CHARACTERS
          LDN    CM          SET POINTER TO PARAMETER 
          RJM    VAL         SEARCH TABLE FOR PARAMETER 
          MJN    OQS1        IF NO MATCH FOUND
          SHN    6
          STD    T3 
          LDM    .SSML       SET SPECIAL HANDLING LEVEL 
          LPC    7077 
          LMD    T3 
          STM    .SSML
          JMP    KBR         RETURN 
  
 OQS1     JMP    ILL         PROCESS INCORRECT ENTRY
 PAM      SPACE  4,10 
***       PRIVILEGED ANALYST MODE.
*         ENABLE/DISABLE PRIVILEGED ANALYST MODE. 
*         DEFAULT = PRIVILEGED ANALYST MODE DISABLED. 
  
  
 PAM      DATA   C*PRIVILEGED ANALYST MODE.*
          LDM    .SSML
          LPN    7
          ZJN    PAM1        IF NOT SECURED SYSTEM
          JMP    KBR         RETURN 
  
 PAM1     LDC    30100
          JMP    CSB         CHANGE STATUS BIT
 PCL      SPACE  4,10 
***       PCLASS,P0,P1,...,P7.
* 
*         SET PRIORITY ORDERED SERVICE CLASSES. 
* 
*         EACH PARAMETER SETS THE SERVICE CLASS FOR THE INDICATED 
*         PRIORITY LEVEL.  THE DEFAULT FOR EACH NULL PARAMETER IS 
*         ZERO. 
  
  
 PCL4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 PCL      DATA   C*PCLASS,* 
          LDN    0           INITIALIZE PRIORITY INDEX
          STD    T4 
          CRM    SBUF,TR
          LDI    KA 
          LMN    1R.
          ZJN    PCL3        IF TERMINATOR
 PCL1     LDI    KA 
          LMN    1R,
          ZJN    PCL2        IF NULL PARAMETER
          LDC    TJSC 
          RJM    SPT         SEARCH FOR VALID SERVICE CLASS 
          STD    T2 
          LDM    TSCM,T2
          ZJN    PCL4        IF SERVICE CLASS NOT ALLOWED 
          LDD    T1          SET SERVICE CLASS INTO SCT 
          STM    SBUF,T4
          LDI    KA 
          LMN    1R.
          ZJN    PCL3        IF TERMINATOR
 PCL2     AOD    KA 
          AOD    T4          INCREMENT PRIORITY INDEX 
          SBN    10 
          ZJN    PCL3        IF MAXIMUM NUMBER OF PARAMETERS
          LDI    KA 
          LMN    1R.
          NJN    PCL1        IF NOT END OF ENTRY
 PCL3     LDN    2           SET PRIORITY LEVEL SERVICE CLASSES 
          STD    T1 
          LDN    0
          SFA    JCB
          ADN    PLSC 
          CWM    SBUF,T1
          JMP    KBR         RETURN 
 PFV      SPACE  4,5
***       PF VALIDATION.
*         TOGGLE PRESERVED FILE VALIDATION. 
*         DEFAULT = PF VALIDATION DISABLED. 
  
  
 PFV      DATA   C*PF VALIDATION.*
          LDN    20 
          JMP    CSB         CHANGE STATUS BIT
 PRM      SPACE  4,10 
***       PRIVILEGED RDF. 
*         TOGGLE PRIVILEGED RDF CONTROL.
*         DEFAULT = PRIVILEGED RDF DISABLED.
  
  
 PRM      DATA   C*PRIVILEGED RDF.* 
          LDC    30200
          JMP    CSB         CHANGE STATUS BIT
 PROBE    SPACE  4,10 
***       PROBE.
*         TOGGLE DATA PROBE.
*         DEFAULT = DATA PROBE DISABLED.
  
  
 PRB      DATA   C*PROBE.*
          LDC    20100
          JMP    CSB         CHANGE STATUS BIT
 REM      SPACE  4,10 
***       REMOVABLE PACKS.
*         ENABLE/DISABLE MASS STORAGE LABEL CHECKING. 
*         DEFAULT = LABEL CHECKING ENABLED. 
  
  
 REM      DATA   C*REMOVABLE PACKS.*
          LDC    10100
          JMP    CSB         CHANGE STATUS BIT
 RRM      SPACE  4,10 
***       RESIDENT RDF. 
*         TOGGLE RESIDENT RDF CONTROL.
*         DEFAULT = RESIDENT RDF DISABLED.
  
  
 RRM      DATA   C*RESIDENT RDF.* 
          LDC    30400
          JMP    CSB         CHANGE STATUS BIT
          SPACE  4,10 
***       SCP.
*         TOGGLE SCP (SYSTEM CP) FACILITY.
*         DEFAULT = SCP FACILITY DISABLED.
  
  
 SCP      DATA   C*SCP.*
          LDC    10010       TOGGLE SCP FACILITY STATUS 
          JMP    CSB         CHANGE STATUS BIT
 SCRSIM   SPACE  4,10 
***       SCRSIM. 
*         TOGGLE SELECTION OF SCR SIMULATION USING CYBER 70 
*         INTERLOCK REGISTER. 
*         DEFAULT = SIMULATION DISABLED.
  
  
 SCRSIM   DATA   C*SCRSIM.* 
          LDC    30010       SELECT CYBER 70 SCR SIMULATION 
          JMP    CSB         CHANGE STATUS BIT
 QUEUE    SPACE  4,20 
***       QUEUE,SC,QT,INXXXX,LPXXXX,UPXXXX,WFXX.
*         SET QUEUE PARAMETERS *QN* = XXXX, FOR QUEUE *QT* OF 
*         JOB SERVICE CLASS *SC*. 
*         QT     QUEUE
* 
*         IN     INPUT
*         EX     EXECUTING
*         OT     OUTPUT 
* 
* 
*         QN     PARAMETER
* 
*         IL     LOWER BOUND FOR INITIAL TIME SLICE (QT = EX ONLY)
*         LP     LOWER BOUND FOR PRIORITY AGEING
*         UP     UPPER BOUND FOR PRIORITY AGEING
*         WF     WEIGHTING FACTOR FOR PRIORITY (POWER OF 2) 
*         IP     INITIAL SCHEDULING PRIORITY (QT = EX ONLY) 
  
  
 QUEUE    DATA   C*QUEUE,*
          LDM    2,KA        CHECK SEPARATORS 
          LMN    1R,
          NJN    QUE0        IF NOT *,* 
          LDM    5,KA 
          LMN    1R,
          ZJN    QUE1        IF *,* PRESENT 
 QUE0     JMP    ILL         PROCESS INCORRECT ENTRY
  
 QUE1     LDC    TJSC        SEARCH FOR SERVICE CLASS 
          RJM    SPT
          STD    T7          SAVE INDEX 
          AOD    KA 
          LDC    TQUT        SEARCH FOR QUEUE TYPE
          RJM    SPT
          STD    T6 
          SFA    JCB,T7      READ CONTROL WORD
          ADD    T6 
          CRD    CM 
          STD    CA+1        SAVE WORD ADDRESS
          SHN    -14
          STD    CA 
 QUE2     AOD    KA          SKIP SEPARATOR 
          LDC    TQPN        SEARCH PARAMETER TABLE 
          RJM    SPT
          ADN    CM          SET BYTE ADDRESS 
          STD    T4 
          RJM    AOD         CONVERT DIGITS 
          STI    T4 
          LJM    QUEA-CM,T4  CHECK PARAMETER
  
 QUEA     UJN    QUE3        ILXXXX 
          UJN    QUE8        LPXXXX 
          UJN    QUE8        UPXXXX 
          UJN    QUE5        WFXX 
          UJN    QUE3        IPXXXX 
  
 QUE3     LDD    T6          CHECK QUEUE TYPE 
          LMN    TQUTA-TQUT 
          ZJN    QUE8        IF EXECUTING JOB 
 QUE4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 QUE5     ZJN    QUE4        IF NULL WEIGHTING FACTOR 
          SBN    MXWF+1 
          PJN    QUE4        IF WEIGHTING FACTOR TOO LARGE
          LCN    0
          STI    T4 
 QUE6     AOI    T4          ADVANCE SHIFT COUNT
          LDD    AB+4 
          SHN    21 
          STD    AB+4 
          PJN    QUE6        IF BIT NOT SET 
          LDD    AB+4 
          NJN    QUE4        IF WEIGHTING FACTOR NOT POWER OF 2 
  
 QUE8     LDI    KA          CHECK SEPARATOR
          LMN    1R.
          ZJN    QUE9        IF END OF ENTRY
          LJM    QUE2        LOOP FOR NEXT PARAMETER
  
 QUE9     LDD    CM+1        CHECK AGEING PARAMETERS
          SBD    CM+2 
          PJN    QUE4        IF LOWER BOUND .GE. UPPER BOUND
          LDD    CA          STORE QUEUE CONTROL
          SHN    14 
          LMD    CA+1 
          CWD    CM 
          JMP    KBR         RETURN 
 SSC      SPACE  4,10 
***       SECCATS=NNNNNNN,NNNNNNN,...,NNNNNNN.
*         DETERMINES THE SECURITY ACCESS CATEGORIES THAT WILL 
*         BE ALLOWED IN A SECURE SYSTEM.
*         NNNNNNN  CATEGORY NAME. 
*         DEFAULT = ALL CATEGORIES ALLOWED. 
  
  
***       SECCATS=ALL.
*         SPECIAL CASE OF *SECCATS*.
*         ALLOWS ALL CATEGORIES TO RUN ON A SECURE SYSTEM.
  
  
***       SECCATS=NUL.
*         SPECIAL CASE OF *SECCATS*.
*         CLEARS ALL CATEGORIES PREVIOUSLY ALLOWED
*         ON A SECURE SYSTEM. 
  
  
 SSC      DATA   C*SECCATS=*
          SOD    KA 
          LDN    6           INITIALIZE MAXIMUM PARAMETER COUNT 
          STD    T5 
          LDN    10          ASSEMBLE PARAMETER 
          RJM    ASN
          NJN    SSC4        IF MORE THAN 7 CHARACTERS
          LDD    CM+1 
          LMI    KA 
          LMC    2RL. 
          NJN    SSC5        IF SPECIFIC ACCESS CATEGORY ENTERED
          LDD    CM 
          LMC    2RNU 
          ZJN    SSC1        IF *NUL* SPECIFIED 
          LMC    2RAL&2RNU
          NJN    SSC5        IF NOT *ALL* 
          LCN    0           ENABLE ALL ACCESS CATEGORIES 
 SSC1     RJM    SAC         ENABLE/DISABLE ACCESS CATEGORIES 
 SSC2     JMP    KBR         RETURN 
  
 SSC3     SOD    T5          DECREMENT PARAMETER COUNT
          ZJN    SSC2        IF MAXIMUM NUMBER OF PARAMETERS ENTERED
          LDI    KA 
          LMN    1R.
          ZJN    SSC2        IF END OF PARAMETERS 
          LDN    10          ASSEMBLE PARAMETER 
          RJM    ASN
          ZJN    SSC5        IF .LE. 7 CHARACTERS 
 SSC4     JMP    ILL         PROCESS INCORRECT ENTRY
  
 SSC5     LDN    CM          FWA OF PARAMETER 
          RJM    VAC         SEARCH TABLE FOR PARAMETER 
          MJN    SSC4        IF NO MATCH
          STD    T3 
          LDC    .SSML+5     LWA+1 OF CATEGORY BYTE ADDRESS 
          STD    T1 
 SSCA     LDN    0
*         UJN    SSC6        (FIRST *SECCATS* ENTRY PROCESSED)
          RJM    SAC
          LDC    0           BYPASS SUBSEQUENT CALLS TO *SAC* 
          ORG    *-1
          LOC    SSCA 
          UJN    SSC6        (BYPASS SUBSEQUENT CALLS TO *SAC*) 
          LOC    *O 
          STM    SSCA 
 SSC6     SOD    T1          DECREMENT CATEGORY BYTE ADDRESS
          LCN    14          DECREMENT BIT NUMBER 
          RAD    T3 
          PJN    SSC6        IF BIT NOT IN THIS BYTE
          ADC    SHNI+14     CALCULATE SHIFT COUNT
          STM    SSCB 
          LDN    1
 SSCB     SHN    0
          STD    T0 
          LMC    -0          CREATE BYTE MASK 
          STM    SSCC 
          LDI    T1 
          LPC    0           CLEAR OLD ACCESS CATEGORY BIT
 SSCC     EQU    *-1
          LMD    T0          MERGE NEW ACCESS CATEGORY BIT
          STI    T1 
          LJM    SSC3        PROCESS NEXT ACCESS CATEGORY 
 SCU      SPACE  4,10 
***       SECURES,OT,LA=XXXXXXX,UA=YYYYYYY. 
*         SET THE ORIGIN TYPE ACCESS LEVEL LIMITS.
*         OT     ORIGIN TYPE, TO SET SERVICE LIMITS.
*                *SY*, TO SET SYSTEM AND ALL OTHER ORIGIN TYPE LIMITS.
*         XXXXXXX  LOWER BOUND. 
*         YYYYYYY  UPPER BOUND. 
*         DEFAULT = SYSTEM AND ALL OTHER ORIGIN TYPE LIMITS ARE 0.
  
  
 SCU      DATA   C*SECURES,*
          LDN    3           RESET BOUNDS FLAG
          STD    T6 
          LDN    2           INITIALIZE PARAMETER COUNT 
          STD    CA 
          LDC    TJOT        CHECK ORIGIN TYPE
          RJM    SPT
          SHN    -1 
          STD    T5 
          LDI    KA 
          LMN    1R,
          NJN    SCU2        IF INCORRECT SEPARATOR 
 SCU1     AOD    KA 
          LDC    TBDP        CHECK PREFIX 
          RJM    SPT
          STD    AB 
          LDI    KA 
          LMN    1R=
          NJN    SCU2        IF SEPARATOR NOT AN *=*
          LDN    10 
          RJM    ASN
          NJN    SCU2        IF MORE THAN 7 CHARACTERS
          LDN    CM          SET POINTER TO PARAMETER 
          RJM    VAL         SEARCH TABLE FOR PARAMETER 
          MJN    SCU2        IF NO MATCH FOUND
          STM    CN,AB
          AOD    AB 
          LMD    T6          UPDATE LOWER/UPPER BOUNDS FLAG 
          STD    T6 
          SOD    CA 
          NJN    SCU1        IF MORE PARAMETERS TO PROCESS
          LDI    KA 
          LMN    1R.
          ADD    T6 
 SCU2     NJN    SCU3        IF INCORRECT ENTRY 
          STD    T7 
          LDD    CN+1 
          SBD    CN 
          MJN    SCU3        IF LOWER BOUND .GT. UPPER BOUND
          LDD    T5 
          LMK    SYOT 
          ZJN    SCU4        IF SYSTEM ORIGIN TYPE
          LDN    0           GET SYSTEM BOUNDS
          SFA    JCB
          ADK    SYOT 
          CRD    AB 
          LDD    AB+1 
          LPN    7
          SBD    CN+1 
          MJN    SCU3        IF UPPER BOUND .GT. SYSTEM UPPER BOUND 
          LDD    AB+1 
          SHN    -3 
          LPN    7
          SBD    CN 
          MJN    SCU5        IF LOWER BOUND .GT. SYSTEM LOWER BOUND 
          ZJN    SCU5        IF LOWER BOUND .EQ. SYSTEM LOWER BOUND 
 SCU3     JMP    ILL         PROCESS INCORRECT ENTRY
  
 SCU4     LDN    MXOT-1      SET TO FIX ALL ORIGIN TYPE BOUNDS
          STD    T7 
 SCU5     LDD    CN 
          SHN    3
          RAD    CN+1 
 SCU6     LDN    0           GET SERVICE CONTROL TABLE ADDRESS
          SFA    JCB
          ADD    T5          GET SERVICE CONTROL WORD 
          CRD    AB 
          LDD    AB+1        SET BOUND IN WORD
          SCN    77 
          LMD    CN+1 
          STD    AB+1 
          LDN    0
          SFA    JCB
          ADD    T5          UPDATE SERVICE CONTROL TABLE WORD
          CWD    AB 
          AOD    T5          ADVANCE TO NEXT ORIGIN TYPE
          SOD    T7 
          PJN    SCU6        IF MORE BOUNDS TO SET (OT = *SY* ONLY) 
          JMP    KBR         RETURN 
 SERVICE  SPACE  4,25 
***       SERVICE,SC,P1XXXX,P2XXXX,...,PNXXXX.
*         SET SERVICE LIMITS *PN* FOR JOB SERVICE CLASS *SC*. 
*         PN     SERVICE
* 
*         CT     CONTROL POINT TIME SLICE (SECONDS) 
*         CM     CM TIME SLICE (SECONDS)
*         NJ     MAXIMUM NUMBER OF JOBS 
*         TD     TIME OUT DELAY (SECONDS) FOR SUSPENDED JOBS
*         CP     CONTROL POINT TIME SLICE PRIORITY
*         TP     BASE PRIORITY FOR ON-LINE INTERACTIVE JOBS 
*         FL     MAXIMUM FIELD LENGTH/100 OF ANY JOB
*         AM     MAXIMUM MEMORY/100 ALLOWED TO ALL JOBS 
*         EC     MAXIMUM EXTENDED MEMORY/*UEBS* FOR ANY JOB 
*         EM     MAXIMUM EXTENDED MEMORY/*UEBS* FOR ALL JOBS
*         DT     SERVICE CLASS TO ASSIGN ON A DETACH
*         PR     CPU PRIORITY 
*         IT     SYSTEM I/O CPU THRESHOLD 
*         SE     CPU SLICE EXTENSION
*         RS     RECALL CPU SLICE 
*         US     UNEXTENDED CPU SLICE 
* 
*         THE FOLLOWING ARE INDICES INTO TABLES OF LIMIT VALUES 
*         DEFINED IN *COMSPFM*. 
* 
*         FC     NUMBER OF FILES IN CATALOG (1-7) 
*         CS     CUMULATIVE SIZE FOR INDIRECT ACCESS FILES (1-7)
*         FS     INDIVIDUAL SIZE FOR INDIRECT ACCESS FILES (1-7)
*         DS     INDIVIDUAL SIZE FOR DIRECT ACCESS FILES (1-7)
  
  
 SERVICE  DATA   C*SERVICE,*
          LDM    2,KA        CHECK SEPARATOR
          LMN    1R,
          ZJN    SER1 
          JMP    ILL         PROCESS INCORRECT ENTRY
  
 SER1     LDN    CSAT-SVJT   SET LENGTH OF JOB CONTROL BLOCK
          STD    T7 
          LDC    TJSC        SEARCH FOR SERVICE CLASS 
          RJM    SPT
          SFA    JCB         READ JOB CONTROL WORDS 
          ADN    SVJT 
          CRM    SBUF,T7
          SBD    T7 
          STD    CA+1        SAVE SERVICE BLOCK ADDRESS 
          SHN    -14
          STD    CA 
  
*         PROCESS NEXT PARAMETER. 
  
 SER2     AOD    KA          SKIP SEPARATOR 
          LDC    TSVP        SEARCH PARAMETER TABLE 
          RJM    SPT
          STD    T4          SAVE BYTE NUMBER 
          SBN    TSVPE-TSVP 
          ZJN    SER3        IF *DT* PARAMETER
          LDM    SERD,T4     SET PROCESSOR ADDRESS
          STD    T6 
          RJM    AOD         CONVERT DIGITS 
*         LDD    AB+4 
          LJM    0,T6        EXIT TO PROCESSOR
  
*         PROCESS *DT* PARAMETER. 
  
 SER3     LDC    TJSC 
          RJM    SPT         SEARCH FOR VALID SERVICE CLASS 
          STD    AB+4 
          LDM    TSCM,AB+4
 SER4     NJN    SER7        IF VALID VALUE 
 SER5     JMP    ILL         PROCESS INCORRECT ENTRY
  
*         PROCESS *AM* PARAMETER. 
  
 SER6     LDD    AB+3        ALLOW *AM* UP TO 77777B
          STM    SBUF-1,T4
          SCN    7
          UJN    SER8        CHECK VALUE RANGE
  
*         CHECK VALUE RANGE.
  
 SER7     LDD    AB+3 
 SER8     ADD    AB+2 
          ADD    AB+1 
          ADD    AB 
          NJN    SER5        IF VALUE TOO LARGE 
  
*         STORE VALUE.
  
          LDD    AB+4        STORE VALUE
          STM    SBUF,T4
          LDI    KA          CHECK SEPARATOR
          LMN    1R,
          ZJP    SER2        IF MORE PARAMETERS TO PROCESS
          LDD    CA 
          SHN    14 
          LMD    CA+1        STORE JOB CONTROL BLOCK
          CWM    SBUF,T7
          JMP    KBR         RETURN 
  
*         PROCESS *PR* PARAMETER. 
  
 SER9     SBN    2
          MJN    SER10       IF PRIORITY .LT. 2 
          SBN    100-2
          MJN    SER7        IF PRIORITY .LE. 77B 
 SER10    JMP    ILL         PROCESS INCORRECT ENTRY
  
*         PROCESS *RS* PARAMETER. 
  
 SER11    LDM    SBUF+CSJT*5-SVJT*5+4  EXISTING *US* VALUE
          SBD    AB+4        SPECIFIED *RS* VALUE 
          UJN    SER13       ENSURE *RS* .LE. *US*
  
*         PROCESS *US* PARAMETER. 
  
 SER12    SBM    SBUF+CSJT*5-SVJT*5+3  EXISTING *RS* VALUE
 SER13    MJN    SER10       IF *RS* .GT. *US*
          LDD    AB+4 
          LJM    SER4        ENSURE PARAMETER NONZERO 
  
*         PROCESS INDEX ENTRY.
  
 SER14    LDD    T4          SET FIELD POSITION 
          SBN    TSVPD-TSVP 
          STD    T0          MULTIPLY BY 3
          SHN    1
          ADD    T0 
          LMD    TH          SET SHIFT INSTRUCTION
          STM    SERA 
          STM    SERB 
          LCN    7           SET MASK FIELD 
 SERA     SHN    ** 
          STM    SERC 
          LDD    AB+4        SET NEW INDEX VALUE
          SBN    10 
          PJN    SER10       IF INCORRECT INDEX 
          ADN    10 
 SERB     SHN    ** 
          STD    T3 
          LDN    TSVPD-TSVP  SET SERVICE BLOCK INDEX
          STD    T4 
          LDM    SBUF,T4     INSERT INDEX VALUE IN EXISTING BYTE
          LPC    ** 
 SERC     EQU    *-1
          LMD    T3 
          STD    AB+4 
          LJM    SER7        CHECK VALUE RANGE
  
  
 SERD     BSS    0           SERVICE COMMAND PROCESSORS 
  
          CON    ILL         UNUSED 
          CON    SER7        *CT* PARAMETER 
          CON    SER7        *CM* PARAMETER 
          CON    SER7        *NJ* PARAMETER 
          CON    SER7        *TD* PARAMETER 
  
          CON    SER7        *CP* PARAMETER 
          CON    SER7        *TP* PARAMETER 
          CON    SER7        *FL* PARAMETER 
          CON    ILL         UNUSED 
          CON    SER6        *AM* PARAMETER 
  
          CON    ILL         UNUSED 
          CON    ILL         UNUSED 
          CON    SER7        *EC* PARAMETER 
          CON    ILL         UNUSED 
          CON    SER7        *EM* PARAMETER 
  
          CON    SER14       *FS* PARAMETER 
          CON    SER14       *CS* PARAMETER 
          CON    SER14       *FC* PARAMETER 
          CON    SER14       *DS* PARAMETER 
          CON    SER3        *DT* PARAMETER 
  
          CON    SER9        *PR* PARAMETER 
          CON    SER7        *IT* PARAMETER 
          CON    SER7        *SE* PARAMETER 
          CON    SER11       *RS* PARAMETER 
          CON    SER12       *US* PARAMETER 
 SPC      SPACE  4,10 
***       SPC,N=X,N=X.
*         USE X AS DEFAULT SYSTEM PAGE CHARGE FOR PRINT DENSITY N.
*         N      PRINT DENSITY (6 OR 8 LPI).
*         X      LINES CHARGED PER PRINT PAGE.
*         DEFAULT   6=64,8=85.
  
  
 SPC      DATA   C*SPC,*
          SOD    KA 
 SPC1     AOD    KA 
          LDC    TSPC        SEARCH PARAMETER TABLE 
          RJM    SPT
          STD    T4          SAVE ORDINAL 
          RJM    AOD
          SBK    /BIO/PSLL
          PJN    SPC3        IF .GE. TO LOWER LIMIT 
 SPC2     JMP    ILL         PROCESS INCORRECT ENTRY
  
 SPC3     SBK    /BIO/PSUL+1-/BIO/PSLL
          PJN    SPC2        IF .GT. UPPER LIMIT
          LDD    AB+4 
          STM    .IPPL,T4 
          LDI    KA          CHECK NEXT CHARACTER 
          LMN    1R,
          ZJN    SPC1        IF MORE ENTRIES
          JMP    KBR         RETURN 
 SPD      SPACE  4,10 
***       SPD=N.
*         SET SYSTEM DEFAULT PRINT DENSITY. 
*         N      PRINT DENSITY (6 OR 8 LPI).
*         N      PRINT DENSITY (6 OR 8 LPI ). 
*         DEFAULT = 6.
  
  
 SPD      DATA   C*SPD* 
          LDC    TSPD        TABLE OF PRINT DENSITIES 
          RJM    SPT         SEARCH FOR PARAMETER 
          ADN    3
          SHN    1+4         ORDINAL 0 OR 1 MAKES 6 OR 8 LPI
          STD    T1 
          LDM    .IPPL+2
          LPC    7417 
          LMD    T1          MERGE *PD* 
          STM    .IPPL+2
          JMP    KBR         RETURN 
 SPI      SPACE  4,10 
***       SPINDOWN. 
*         ENABLE/DISABLE SPINDOWN.
*         DEFAULT = SPINDOWN ENABLED. 
  
  
 SPI      DATA   C*SPINDOWN.* 
          LDN    1
          JMP    CSB         CHANGE STATUS BIT
 SPL      SPACE  4,10 
***       SPL=NNN.
*         SET SYSTEM DEFAULT PAGE LENGTH. 
*         NNN    LINES PER PAGE.
*         DEFAULT = 60. 
  
  
 SPL      DATA   C*SPL=*
          RJM    ASD
          SBK    /BIO/PSLL
          PJN    SPL2        IF .GE. LOWER LIMIT
 SPL1     JMP    ILL
  
 SPL2     SBK    /BIO/PSUL+1-/BIO/PSLL
          PJN    SPL1        IF .GT. UPPER LIMIT
          LDM    .IPPL+3
          LPC    377
          SHN    21-7 
          LMD    AB+4        MERGE LOWER PORTION OF *SPS* 
          SHN    14-4 
          STM    .IPPL+3
          LDM    .IPPL+2
          SCN    17          CLEAR UPPER PORTION OF *SPS* 
          SHN    4
          LMD    AB+4        MERGE UPPER PORTION OF *SPS* 
          SHN    22-4 
          STM    .IPPL+2
          JMP    KBR         RETURN 
 SPW      SPACE  4,10 
***       SPW=NNN.
*         SET SYSTEM DEFAULT PRINT WIDTH. 
*         NNN    WIDTH OF PRINT OUTPUT. 
*         DEFAULT = 136.
  
 SPW      DATA   C*SPW=*
          RJM    ASD
          SBK    /BIO/PWLL
          PJN    SPW2        IF .GE. LOWER LIMIT
 SPW1     JMP    ILL
  
 SPW2     SBK    /BIO/PWMX+1-/BIO/PWLL
          PJN    SPW1        IF .GT. UPPER LIMIT
          LDM    .IPPL+3
          LPC    7400 
          LMD    AB+4 
          STM    .IPPL+3     STORE *SPW*
          JMP    KBR         RETURN 
 SRST     SPACE  4,10 
***       SRST=NNNN.
*         SET SECONDARY ROLLOUT SECTOR THRESHOLD. 
*         NNNN   SECTOR COUNT SUCH THAT ALL ROLLOUT FILES SMALLER 
*                THAN NNNN WILL PICK THEIR ROLLOUT DEVICE FROM THE
*                LIST OF SECONDARY ROLLOUT FILE DEVICES SPECIFIED BY
*                THE CMRDECK COMMAND *MSAL,S= *.
*         DEFAULT NNNN = 0. 
  
  
 SSR      DATA   C*SRST=* 
          RJM    AOD
          STM    .IPRL+1
          JMP    KBR         RETURN 
 SUBCP    SPACE  4,10 
***       SUBCP.
*         TOGGLE SUB-CONTROL POINT INITIALIZATION.
*         DEFAULT = SUB-CONTROL POINTS DISABLED.
  
  
 SUBCP    DATA   C*SUBCP.*
          LDC    24000
          JMP    CSB         CHANGE STATUS BIT
 SUC      SPACE  4,10 
***       SECONDARY USER COMMANDS.
*         ENABLE/DISABLE SECONDARY USER COMMANDS. 
*         DEFAULT = SECONDARY USER COMMANDS DISABLED. 
*         THIS ENTRY IS IGNORED ON A SECURE SYSTEM. 
  
  
 SUC      DATA   C*SECONDARY USER COMMANDS.*
          LDM    .SSML
          LPN    7
          ZJN    SUC1        IF NOT SECURE SYSTEM 
          JMP    KBR         RETURN 
  
 SUC1     LDC    10020
          JMP    CSB         CHANGE STATUS BIT
 SYD      SPACE  4,10 
***       SYSTEM DEBUG. 
*         ENABLE/DISABLE SYSTEM DEBUG.
*         DEFAULT = SYSTEM DEBUG DISABLED.
  
  
 SYD      DATA   C*SYSTEM DEBUG.* 
          LDC    30002
          JMP    CSB         CHANGE STATUS BIT
 TCVM     SPACE  4,10 
***       TCVM=CC.
*         SET ASSUMED TAPE CONVERSION MODE ACCORDING TO CC. 
*         CC     CONVERSION MODE
* 
*         AS     ASCII 9 TRACK CONVERSION 
*         US     USASI 9 TRACK CONVERSION 
*         EB     EBCDIC 9 TRACK CONVERSION
  
  
 TCVM     DATA   C*TCVM=* 
          LDC    TTCV        SEARCH PARAMETER TABLE 
          RJM    SPT
          NJN    TCV1        IF CONVERSION NOT *AS* 
          ADN    1
 TCV1     ADN    1
          STM    .IPRL+3
          JMP    KBR         RETURN 
 TDEN     SPACE  4,10 
***       TDEN=CC.
*         SET ASSUMED TAPE DENSITY ACCORDING TO CC. 
*         CC     DENSITY
* 
*         HI     556
*         LO     200
*         HY     800
*         HD     800 CPI
*         PE     1600 CPI 
*         GE     6250 CPI 
  
  
 TDEN     DATA   C*TDEN=* 
          LDC    TTDN        SEARCH PARAMETER TABLE 
          RJM    SPT
          STD    T2 
          SBN    3
          PJN    TDE1        IF NINE TRACK DENSITY
          AOD    T2 
          LDM    .IPRL+4     SET *MT* DENSITY 
          SCN    17 
          LMD    T2 
          UJN    TDE2 
  
 TDE1     LDM    .IPRL+4     SET *NT* DENSITY 
          LPN    77 
          SHN    14 
          LMD    T2 
          SHN    6
 TDE2     STM    .IPRL+4
          JMP    KBR         RETURN 
 TDTY     SPACE  4,10 
***       TDTY=CC.
*         SET DEFAULT TAPE DEVICE TYPE ACCORDING TO CC. 
*         CC     DEFAULT TAPE DEVICE TYPE 
* 
*         MT     SEVEN TRACK TAPE 
*         CT     CARTRIDGE TAPE 
*         NT     NINE TRACK TAPE
*         AT     ACS CARTRIDGE TAPE 
  
  
 TDTY     DATA   C*TDTY=* 
          LDC    TTDT        SEARCH PARAMETER TABLE 
          RJM    SPT
          SHN    4           SET TAPE DEVICE TYPE 
          STD    T2 
          LDM    .IPRL+4
          SCN    60 
          LMD    T2 
          UJN    TDE2        SET DEFAULT TAPE TYPE
 TMS      SPACE  4,10 
***       TMS.
*         ENABLE/DISABLE TAPE MANAGEMENT SYSTEM.
*         DEFAULT = TMS DISABLED. 
  
  
 TMS      DATA   C*TMS.*
          LDC    20001
          JMP    CSB         CHANGE STATUS BIT
 TPS      SPACE  4,10 
***       TAPE PF STAGING.
*         ENABLE/DISABLE STAGING OF PERMANENT FILES FROM NON-ACS TAPE.
*         DEFAULT = TAPE PF STAGING DISABLED. 
  
  
 TPS      DATA   C*TAPE PF STAGING.*
          LDC    10200
          JMP    CSB         CHANGE STATUS BIT
 TRA      SPACE  4,10 
***       TRACE.
*         ENABLE/DISABLE TRACE. 
*         DEFAULT = TRACE DISABLED. 
  
  
 TRA      DATA   C*TRACE.*
          LDC    20040
          JMP    CSB         CHANGE STATUS BIT
 UNL      SPACE  4,10 
***       UNLOCK. 
  
  
 UNL      DATA   C*UNLOCK.* 
          LDI    T3          CHECK FIRST CHARACTER
          LMN    1RL
          STD    T3 
          ZJN    UNL1        IF *LOCK* COMMAND
          LDM    .SSML
          LPN    77 
          ZJN    UNL1        IF UNSECURED SYSTEM
          LDD    TH 
*         LDC    400&1400 
 UNL1     LMC    1400 
          JMP    CSB         CHANGE STATUS BIT
 UEC      SPACE  4,10 
***       USER EXTENDED MEMORY. 
*         ENABLE/DISABLE USER EXTENDED MEMORY.
*         DEFAULT = USER EXTENDED MEMORY DISABLED.
  
  
 UEC      DATA   C*USER EXTENDED MEMORY.* 
          LDN    40 
          JMP    CSB         CHANGE STATUS BIT
          SPACE  4,10 
***       VEBL=NNNN.
*         SET LIMIT FOR NUMBER OF TIMES THAT *CPUMTR* WILL BYPASS 
*         EXCHANGING TO *NOS/VE* WHEN THERE ARE PP EXCHANGES PENDING. 
*         NNNN   MAXIMUM BYPASSES BEFORE EXCHANGE TO *NOS/VE*.
*         DEFAULT = 0.
*         MAXIMUM = 7777B.
  
  
 VEB      DATA   C*VEBL=* 
          LDC    VEBL 
          CRD    CN 
          RJM    ASD         ASSEMBLE BYPASS VALUE
          STD    CN+4 
          LDC    VEBL        SET *VEBL* VALUE INTO CMR
          CWD    CN 
          JMP    KBR         RETURN 
          TITLE  PARAMETER TABLES.
 TBDP     SPACE  4,10 
**        TBDP - TABLE OF BOUNDS PARAMETERS.
  
  
 TBDP     BSS    0
          CON    2RLA 
          CON    2RUA 
          CON    0
 TCPM     SPACE  4,7
**        TCPM - TABLE OF CPUS. 
  
 TCPM     BSS    0
          CON    2R0= 
          CON    2R1= 
          CON    0
 TCSM     SPACE  4,10 
**        TCSM - TABLE OF CHARACTER SET MODES.
  
  
 TCSM     BSS    0
          CON    2R63        63 CHARACTER SET 
          CON    2R64        64 CHARACTER SET 
          CON    0           TERMINATOR 
 TDLP     SPACE  4,10 
**        TDLP - TABLE OF DELAY PARAMETERS. 
  
  
 TDLP     BSS    0
          CON    2RJQ        EJT/QFT SCHEDULING 
          CON    2RJS        JOB SCHEDULER
          CON    2RRL        RECALL DELAY REDUCTION LIMIT 
          CON    2RCR        CPU RECALL 
          CON    2RAR        AUTO RECALL
          CON    2RMP        MEMORY PAD 
          CON    0
 TMDT     SPACE  4,10 
**        TMDT - TABLE OF MASS STORAGE DEVICE TYPES.
  
  
          LIST   G
  
 TMDT     BSS    0
          TBL    "MSEQ" 
          CON    0           END OF TABLE 
  
          LIST   -G 
          PURGMAC  TBLM 
 TJOT     SPACE  4,10 
**        TJOT - TABLE OF JOB ORIGIN TYPES. 
  
  
 TJOT     BSS    0
          CON    2RSY,6060
          CON    2RBC,6060
          CON    2RRB,2REI
          CON    2RIA,2RTX
          CON    0
 TJSC     SPACE  4,10 
**        TJSC - TABLE OF JOB SERVICE CLASSES.
  
  
 TJSC     DATA   H+"NMSC"+
          CON    0
 TKCM     SPACE  4,10 
**        TKCM - TABLE OF KEYPUNCH CONVERSION MODES.
  
  
 TKCM     BSS    0
          CON    2R26        O26 KEYPUNCH CONVERSION MODE 
          CON    2R29        O29 KEYPUNCH CONVERSION MODE 
          CON    0           END OF TABLE 
 TLDA     SPACE  4,10 
**        TLDA - TABLE OF LID ATTRIBUTE PARAMETERS. 
  
  
 TLDA     BSS    0
          CON    2R,H        HOST SYSTEM
          CON    2R,L        LINKED (REMOTE) SYSTEM 
          CON    2R,D        LID IS DISABLED
          CON    2R,V        PRE-VALIDATE USER COMMANDS 
          CON    0
 TQPN     SPACE  4
**        TQPN - TABLE OF QUEUE PARAMETERS. 
  
  
 TQPN     BSS    0
          CON    2RIL        LOWER BOUND FOR INITIAL TIME SLICE 
          CON    2RLP        LOWER PRIORITY RANGE 
          CON    2RUP        UPPER PRIORITY RANGE 
          CON    2RWF        WEIGHTING FACTOR FOR PRIORITY
          CON    2RIP        INITIAL SCHEDULING PRIORITY
          CON    0
 TQUT     SPACE  4
**        TQUT - TABLE OF QUEUE TYPES.
  
  
 TQUT     BSS    0
          CON    2RIN        INPUT QUEUE FILES
 TQUTA    CON    2REX        EXECUTING JOBS 
          CON    2ROT        OUTPUT QUEUE FILES 
          CON    0
 TSPC     SPACE  4,10 
**        TSPC - TABLE OF PRINT DENSITIES.
  
 TSPC     BSS    0
          CON    2R6= 
          CON    2R8= 
          CON    0
 TSPD     SPACE  4,10 
**        TSPD - TABLE OF PRINT DENSITIES.
  
 TSPD     BSS    0
          CON    2R=6 
          CON    2R=8 
          CON    0
 TSCM     SPACE  4,10 
**        TSCM - TABLE OF SERVICE CLASS MASK BITS.
* 
*         THIS TABLE IS INDEXED BY SERVICE CLASS VALUE. 
* 
*         ONLY SERVICE CLASSES DEFINED IN THIS TABLE ARE ALLOWED FOR
*         THE *DT* *SERVICE* PARAMETER AND THE *CLASS* AND *PCLASS* 
*         DIRECTIVES. 
  
  
 TSCM     INDEX 
          LIST   D
 .SCL     HERE
          LIST   *
          INDEX  MXSC 
 TSVP     SPACE  4
**        TSVP - TABLE OF SERVICE PARAMETERS. 
*         VALUES IN SERVICE CONTROL TABLE ARE ORDER DEPENDENT.
  
  
 TSVP     BSS    0
          CON    6060 
          CON    2RCT        CONTROL POINT TIME SLICE 
          CON    2RCM        CM TIME SLICE
          CON    2RNJ        NUMBER OF JOBS 
          CON    2RTD        TIME OUT DELAY (SUSPENDED JOBS)
  
          CON    2RCP        CONTROL POINT SLICE PRIORITY 
          CON    2RTP        BASE PRIORITY FOR INTERACTIVE JOBS 
          CON    2RFL        MAXIMUM FL/JOB 
          CON    6060 
          CON    2RAM        MAXIMUM MEMORY AVAILABLE FOR ALL JOBS
  
          CON    6060 
          CON    6060 
          CON    2REC        MAXIMUM EXTENDED MEMORY/JOB
          CON    6060 
          CON    2REM        MAXIMUM EXTENDED MEMORY FOR ALL JOBS 
  
 TSVPD    CON    2RFS        INDIVIDUAL INDIRECT ACCESS FILE SIZE 
          CON    2RCS        CUMULATIVE INDIRECT ACCESS FILE SIZE 
          CON    2RFC        NUMBER OF FILES IN CATALOG 
          CON    2RDS        INDIVIDUAL DIRECT ACCESS FILE SIZE 
 TSVPE    CON    2RDT        SERVICE CLASS TO ASSIGN ON AN ATTACH 
  
          CON    2RPR        CPU PRIORITY 
          CON    2RIT        SYSTEM I/O CPU THRESHOLD 
          CON    2RSE        CPU SLICE EXTENSION
          CON    2RRS        RECALL CPU SLICE 
          CON    2RUS        UNEXTENDED CPU SLICE 
  
          CON    0
 TTDN     SPACE  4
**        TTDN - TABLE OF TAPE DENSITIES. 
  
  
 TTDN     BSS    0
          CON    2RLO        200
          CON    2RHI        556
          CON    2RHY        800
          CON    2RHD        800
          CON    2RPE        1600 
          CON    2RGE        6250 
          CON    0
 TTDT     SPACE  4,10 
**        TTDT - TABLE OF TAPE DEVICE TYPES.
  
  
 TTDT     BSS    0
          CON    2RMT        SEVEN TRACK TAPE 
          CON    2RCT        CARTRIDGE TAPE 
          CON    2RNT        NINE TRACK TAPE
          CON    2RAT        ACS CARTRIDGE TAPE 
          CON    0           END OF TABLE 
 TTCV     SPACE  4
**        TTCV - TABLE OF TAPE CONVERSION MODES.
  
  
 TTCV     BSS    0
          CON    2RAS        ASCII 9 TRACK CONVERSION 
          CON    2RUS        USASI 9 TRACK CONVERSION 
          CON    2REB        EBCDIC 9 TRACK CONVERSION
          CON    0           END OF TABLE 
 TURE     SPACE  4,10 
          TITLE  SUBROUTINES. 
          AODSUB
          ASDSUB
          ASNSUB
 AUN      SPACE  4,10 
**        AUN - ASSEMBLE USER NAME. 
* 
*         ENTRY  (A) = NUMBER OF CHARACTERS TO ASSEMBLE.
*                (KA) = ADDRESS OF CHARACTER STRING.
* 
*         EXIT   (CM - CM+4) = ASSEMBLED NAME.
*                (A) = 0 IF ASSEMBLY TERMINATED ON *,* OR *.*.
*                (T0) = NUMBER OF CHARACTERS ASSEMBLED. 
* 
*         USES   T0 - T2. 
  
  
 AUN2     AOD    T0          ADVANCE CHARACTER COUNT
          SBN    1
          SHN    21-0        FORM BUFFER ADDRESS
          ADN    CM 
          STD    T1 
          LMD    T1          CLEAR ADDRESS
          LMI    KA          INSERT CHARACTER 
          MJN    AUN3        IF CHARACTER PACKED LOW
          SHN    6           POSITION CHARACTER HIGH
 AUN3     RAI    T1          ASSEMBLE BYTE
          AOD    KA          ADVANCE CHARACTER BUFFER 
          SOD    T2          DECREMENT CHARACTER COUNT
          NJN    AUN1        IF TO END OF ASSEMBLY
          LDD    T0 
  
 AUN      SUBR               ENTRY/EXIT 
          STD    T2          SET CHARACTER COUNT
          LDN    0           CLEAR ASSEMBLY BUFFER
          STD    T0 
          CRD    CM 
          AOD    KA          SKIP SEPARATOR 
 AUN1     LDI    KA          CHECK NEXT CHARACTER 
          SBN    1R9+1
          MJN    AUN2        IF ALPHANUMERIC
          SBN    1R*-1R9-1
          ZJN    AUN2        IF (*) 
          SBN    1R,-1R*
          ZJN    AUNX        IF *,* 
          SBN    1R.-1R,
          ZJN    AUNX        IF *.* 
          JMP    ILL         PROCESS INCORRECT ENTRY
          CDRSUB
 CPN      SPACE  4,10 
**        CPN - COMPARE NAMES.
* 
*         ENTRY  (A) = ADDRESS OF ASSEMBLED NAME. 
*                (CN - CN+4) = NAME FROM COMMON LIBRARIES TABLE.
* 
*         EXIT   (A) = 0 IF MATCH.
* 
*         USES   T1.
  
  
 CPN      SUBR               ENTRY/EXIT 
          STD    T1 
          LDI    T1 
          LMD    CN 
          NJN    CPNX        IF NO MATCH
          LDM    1,T1 
          LMD    CN+1 
          NJN    CPNX        IF NO MATCH
          LDM    2,T1 
          LMD    CN+2 
          NJN    CPNX        IF NO MATCH
          LDM    3,T1 
          LMD    CN+3 
          SCN    77 
          UJN    CPNX        RETURN 
 ESS      SPACE  4,10 
**        ESS - EDIT SUBSYSTEM TABLE. 
* 
*         ENTRY  (NC) = SYSTEM CONTROL POINT NUMBER.
* 
*         EXIT   SUBSYSTEM TABLE COPIED TO CMR. 
* 
*         USES   T1, CM - CM+4. 
  
  
 ESS      SUBR               ENTRY/EXIT 
          LDN    5*SSCTL-1
          STD    T1 
 ESS1     LDM    .SSCT,T1    CHECK SUBSYSTEM ENTRY
          SBD    NC 
          MJN    ESS2        IF NOT RELATIVE CP 
          LDD    NC 
          ADN    1
          RAM    .SSCT,T1    SET ABSOLUTE CP
 ESS2     SOD    T1 
          PJN    ESS1        IF NOT END OF TABLE
          LDC    SSCP        FETCH TABLE POINTER
          CRD    CM 
          LDN    SSCTL       SET TABLE LENGTH 
          STD    T1 
          LDD    CM+2        COPY TABLE TO CMR
          SHN    14 
          LMD    CM+3 
          CWM    .SSCT,T1 
          UJN    ESSX        RETURN 
 SAC      SPACE  4,10 
**        SAC - SET (ENABLE/DISABLE) ALL SECURITY CATEGORIES. 
* 
*         ENTRY  (A) = 0 TO DISABLE ALL CATEGORIES. 
*                    = -0 TO ENABLE ALL CATEGORIES. 
  
  
 SAC      SUBR               ENTRY/EXIT 
          STD    T0 
          NJN    SAC1        IF ENABLING ALL CATEGORIES 
          LDC    LDNI+0 
          STM    SSCA        RESTORE SELECTIVE CATEGORY SPECIFICATION 
 SAC1     LDM    .SSML+2
          SHN    -10
          SHN    14 
          LMD    T0          ENABLE/DISABLE ALL CATEGORIES
          STM    .SSML+3
          STM    .SSML+4
          SHN    -4 
          STM    .SSML+2
          UJN    SACX        RETURN 
 SPT      SPACE  4
**        SPT - SEARCH PARAMETER TABLE. 
* 
*         ENTRY  (A) = FWA OF PARAMETER TABLE.
*                ((KA - KA+1)) = PARAMETER NAME.
* 
*         EXIT   (A) = INDEX OF ENTRY FOUND.
*                (T2) = TABLE ADDRESS OF ENTRY FOUND. 
*                (T1) = ((T2)) = PARAMETER NAME.
*                (KA) = KEYBOARD BUFFER ADDRESS ADVANCED. 
* 
*         USES   T3.
  
  
 SPT2     LDN    2           ADVANCE BUFFER ADDRESS 
          RAD    KA 
          LDD    T2          RETURN WITH INDEX
          SBD    T3 
  
 SPT      SUBR               ENTRY/EXIT 
          STD    T3          SET TABLE FWA
          STD    T2 
          LDI    KA          ASSEMBLE PARAMETER NAME
          SHN    6
          LMM    1,KA 
          STD    T1 
          LDI    T2 
 SPT1     LMD    T1 
          ZJN    SPT2        IF MATCH FOUND 
          AOD    T2          ADVANCE TABLE
          LDI    T2 
          NJN    SPT1        LOOP IF NOT END OF TABLE 
          JMP    ILL         PROCESS INCORRECT ENTRY
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 CLT$     EQU    0           DEFINE *COMPGFP* ACCESS TO CLT 
 JCB$     EQU    0           DEFINE *COMPGFP* ACCESS TO JCB 
*CALL     COMPGFP 
 VAL$     EQU    1
 VAC$     EQU    1
 SCH$     EQU    1
*CALL     COMPVLC 
  
  
 SBUF     EQU    *
          ERRNG  7776-SBUF-5*CSAT+5*SVJT  BUFFER TOO LARGE
          TTL    SET/RCM - RECOVER CENTRAL MEMORY.
          TITLE 
          IDENT  RCM,OVL
          QUAL   RCM
          ORG    OVL
*COMMENT  SET - RECOVER CENTRAL MEMORY. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
 .DSE     SET    0
          SPACE  4,10 
**        MCTSUB - SUBROUTINES COMMON TO MCT PROCESSING.
  
  
          QUAL
 MCTSUB   MACRO 
          LIST   G
 CTE      SPACE  4,10 
**        CTE - CREATE MEMORY CONTROL TABLE ENTRY.
* 
*         ENTRY  (A) = CPA FL CONTROL WORD ADDRESS. 
*                (KA) = CP/PCP NUMBER.
*                (NC) = SYSTEM CP NUMBER. 
*                (CN) = RA/RAX BACKWARD LINK. 
*                (CN+1) = RA/RAX FORWARD LINK.
* 
*         USES   T1, AB - AB+4, CM - CM+4.
* 
*         CALLS  GHA, SCA.
  
  
 CTE      SUBR               ENTRY/EXIT 
          STD    T1 
          LDD    KA          SET CURRENT CPA/PCPA ADDRESS 
          RJM    SCA
          ADD    T1          READ MEMORY CONTROL WORD 
          CRD    CM 
          LDD    CM+4        FORM RA/RAX + FL/FLX 
          RAD    CM+3 
          SHN    -14         NEXT POTENTIAL RA/RAX
          RAD    CM+2 
          LDD    CN+1 
          NJN    CTE1        IF NOT SYSTEM CP 
          STD    CM+2 
          UJN    CTE3        SET NO UNASSIGNED MEMORY 
  
 CTE1     RJM    SCA
          ADD    T1          READ FL CONTROL WORD 
          CRD    AB 
          SHN    -7          CHECK CP/PCP 
          LMD    NC 
          NJN    CTE2        IF NOT SYSTEM CP 
          LDD    T1 
          RJM    GHA         GET HIGHEST ADDRESS
 CTE2     LDD    AB+2 
          SHN    14          RA/RAX OF FORWARD LINK 
          LMD    AB+3 
          SBD    AB          REMOVE NFL 
          SBD    CM+3 
 CTE3     STD    CN+4        SUBTRACT CURRENT RA/RAX + FL/FLX 
          SHN    -14
          SBD    CM+2        SET UNASSIGNED MEMORY
          STD    CN+3 
          LCN    FLSW        CALCULATE MCT OFFSET 
          RAD    T1 
          ERRNZ  FLSW+2-ECSW  CODE DEPENDS ON VALUE 
          SHN    21-1 
          LMD    KA          INSERT CP/PCP NUMBER 
          SHN    1
          ADC    0           APPEND BASE MCT ADDRESS
 CTEA     EQU    *-1
          CWD    CN          STORE MCT WORD 
          LDD    CN+4 
          RAM    .ACML+1,T1 
          SHN    -14         ACCUMULATE UNASSIGNED MEMORY 
          ADD    CN+3 
          RAM    .ACML,T1 
          LJM    CTEX        RETURN 
  
  
 .ACML    BSS    0
          VFD    24/0        AVAILABLE CM (100B WORD BLOCKS)
          VFD    24/0        AVAILABLE USER XM (*UEBS* WORD BLOCKS) 
          VFD    12/0        RESERVED 
 GHA      SPACE  4,10 
**        GHA - GET HIGHEST MEMORY ADDRESS. 
* 
*         ENTRY  (A) = CPA FL CONTROL WORD ADDRESS. 
*                (FL - FL+1) = EXECUTION FIELD LENGTH.
* 
*         EXIT   (A) = 0. 
*                (AB - AB+4) = FL CONTROL WORD IMAGE. 
  
  
 GHA1     LDD    FL+1        SET TOTAL CM FL
          STD    AB+3 
          LDD    FL          CREATE FL CONTROL WORD IMAGE 
 GHA2     STD    AB+2 
          LDN    0           CLEAR UNUSED FIELD 
          STD    AB+1 
          STD    AB          CLEAR NFL + FL ASSIGNED
          STD    AB+4 
  
 GHA      SUBR               ENTRY/EXIT 
          CRD    AB 
          SBN    FLSW 
          ZJN    GHA1        IF PROCESSING CM 
          LDD    AB+1 
          RAD    AB+3        FORM HIGHEST ADDRESS 
          SHN    -14
          UJN    GHA2        CREATE FL CONTROL WORD IMAGE 
 SCA      SPACE  4,10 
**        SCA - SET CP/PCP AREA ADDRESS.
* 
*         ENTRY  (A) = CP/PCP NUMBER. 
*                (NC) = SYSTEM CP NUMBER. 
* 
*         EXIT   (A) = CPA/PCPA ADDRESS.
  
  
 SCA1     ADD    NC          SET REAL CP AREA ADDRESS 
          SHN    7
  
 SCA      SUBR               ENTRY/EXIT 
          SBD    NC 
          MJN    SCA1        IF REAL CP 
          ZJN    SCA1        IF SYSTEM CP 
          SBN    1           SET PCP AREA ORDINAL 
          SHN    7
          ADC    0           ADD BASE PCPA ADDRESS
 SCAA     EQU    *-1
          UJN    SCAX        RETURN 
  
          LIST   *
          ENDM
          SPACE  4,10 
**        MCTPRS - INLINE CODE TO PRESET *MCTSUB* SUBROUTINES.
* 
*         EXIT   (NS) = MCT ENTRY COUNT.
* 
*         USES   CM - CM+4. 
  
  
 MCTPRS   MACRO 
          LIST   G
          LDC    MCTP        FETCH MCT POINTER
          CRD    CM 
          LDD    CM+1        SET FWA OF MCT 
          STM    CTEA 
          LDD    CM 
          RAM    CTEA-1 
          LDD    CM+2        SET NUMBER OF MCT ENTRIES
          STD    NS 
          ERRNZ  MCTP-PCPP   CODE DEPENDS ON VALUE
          LDD    CM+3 
          RAM    SCAA-1 
          LDD    CM+4        SET PCP AREA BASE ADDRESS
          STM    SCAA 
          LIST   *
          ENDM
          QUAL   *
          TITLE  MAIN ROUTINE.
 RCM      SPACE  4,10 
**        RCM - RECOVER CENTRAL MEMORY. 
  
  
 RCM      RJM    INO         INITIALIZE OVERLAY 
          RJM    DCB         DEFINE CM BUFFER SPACE 
          RJM    PTR         PROCESS POINTERS 
          RJM    IPS         INITIALIZE PP STATUS 
          RJM    CEI         CLEAR EST INTERLOCKS 
          RJM    VEM         VERIFY EI LEVEL / MICROCODE NAME 
          LDN    DFPP 
          CRD    CM          FETCH DAYFILE POINTER WORD 
          LDD    CM+1 
          ADN    EXDF*3 
          STD    CA+1        INITIALIZE CENTRAL ADDRESS 
          SHN    -14
          ADD    CM 
          STD    CA 
          RJM    ROV         LOAD AND EXECUTE *RCT* 
  
 RCTL     BSS    0           LOAD ADDRESS FOR *RCT* 
          TITLE  SUBROUTINES. 
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          IPPSUB
          MCTSUB
          SCSSUB
          SSESUB
 CEI      SPACE  4,10 
**        CEI - CLEAR EST INTERLOCKS (FOR SELECTED DEVICES).
* 
*         USES   AB, T1.
* 
*         CALLS  SSE. 
  
  
 CEI3     SOD    T1 
          PJN    CEI1        IF NOT END OF DEVICE TYPES 
  
 CEI      SUBR               ENTRY/EXIT 
          LDN    CEITL-1
          STD    T1          SET DEVICE INDEX 
 CEI1     LDM    CEIT,T1
          LMC    1S17        SEARCH FOR SELECTED EQUIPMENT
 CEI2     RJM    SSE
          NJN    CEI3        IF EQUIPMENT NOT FOUND 
          LDM    CEIM,T1
          STM    CEIA        SET DEVICE MASK
          LDD    AB 
          LPC    **          CLEAR INTERLOCKS 
 CEIA     EQU    *-1
          STD    AB 
          SFA    EST,EQ 
          ADK    EQDE        UPDATE EST ENTRY 
          CWD    AB 
          UJN    CEI2        SEARCH FOR NEXT EQUIPMENT
  
 CEIT     BSS    0           TABLE OF DEVICE TYPES
          CON    2RNC        NAD
          CON    2RND        MDI
 CEITL    EQU    *-CEIT 
  
 CEIM     BSS    0           TABLE OF DEVICE MASKS
          CON    3177        NAD
          CON    6777        MDI
 IPS      SPACE  4,10 
**        IPS - INITIALIZE PP STATUS. 
* 
*         EXIT   (CA - CA+1) = NEXT CM ADDRESS. 
* 
*         USES   T3, T4, T6, T7, CM - CM+4, CN - CN+4, CA - CA+1. 
* 
*         CALLS  APP, CLS, HPP. 
  
  
*         CHECK FOR DISABLED PP-S.
  
 IPS3     LDM    .PPL,T4     CHECK PP STATUS RETURNED BY *CTI*
          SHN    21-0 
          STM    .PPL,T4
          MJN    IPS4        IF PP DISABLED 
          LDD    CM 
          LMC    2R** 
          NJN    IPS5        IF PP NOT OFF ON PREVIOUS DEADSTART
          LDD    T4 
          SHN    4           CALCULATE CHANNEL NUMBER 
          LMD    T3 
          RJM    HPP         HANG PP
 IPS4     LDD    CM 
          NJN    IPS5        IF PP NAME IN PLACE
          LDD    T7 
          CWM    IPSA,ON
 IPS5     LDN    10          ADVANCE INPUT REGISTER ADDRESS 
          RAD    T7 
          CRD    CM 
          AOD    T3          COUNT CHANNEL
          LMN    10D
 IPS6     NJN    IPS3        IF PPS BANK NOT PROCESSED
          STD    T3 
          AOD    T4          ADVANCE STATUS INDEX 
          LCN    10D
          RAD    T6 
          NJN    IPS6        IF ALL PP-S NOT CHECKED
          LDM    .CCHN
          ZJN    IPS9        IF NO CPP-S
          STD    T3 
 IPS7     LDM    .CPPL
          SHN    21-0 
          STM    .CPPL
          PJN    IPS8        IF PP NOT DISABLED 
          LDD    T7 
          CWM    IPSA,ON
 IPS8     LDN    10          ADVANCE INPUT REGISTER ADDRESS 
          RAD    T7 
          SOD    T3 
          NJN    IPS7        IF NOT COMPLETE LOOP 
  
 IPS9     LDD    CA+1        STORE PSEUDO PP INDICATOR
          SBN    10 
          CWM    IPSA+2,ON
  
*         CLEAR EXTENDED PP COMMUNICATION BLOCKS. 
  
          LDD    CN 
          SHN    14 
          ADD    CN+1 
          SBD    CN+4 
          SHN    PPXES-PPCES LENGTH OF EXTENDED PP COMMUNICATION AREA 
          RJM    CLS         CLEAR EXTENDED PP COMMUNICATION AREA 
  
 IPS      SUBR               ENTRY/EXIT 
  
*         CLEAR PP COMMUNICATION AREAS. 
  
          LDN    PPCP 
          CRD    CN 
          LDD    CN+4        SET FWA OF PP COMMUNICATION AREA 
          STD    CA+1 
          STD    T7 
          CRD    CM 
          STD    T3 
          ADN    10 
          STD    T4 
          SHN    -14
          STD    CA 
          LDM    .PPU        SET PP COUNT 
          STD    T6 
          ADM    .CCHN
          SHN    3           SET END OF COMMUNICATIONS AREA SCAN
          RAD    T4 
 IPS1     LDN    10          CLEAR COMMUNICATION AREA 
          RJM    CLS
          LDD    CM 
          LMC    2R** 
          NJN    IPS2        IF PP NOT DISABLED ON PREVIOUS DEADSTART 
          LDD    T3 
          CWD    CM 
 IPS2     LDN    10          ADVANCE INPUT REGISTER ADDRESS 
          RAD    T3 
          CRD    CM          READ INPUT REGISTER
          LMD    T4 
          NJN    IPS1        IF ALL PP-S NOT CHECKED
          STD    T3 
          STD    T4 
          RJM    APP         ASSIGN *CTI* INITIATED PP-S
          LDD    NC          INSERT SYSTEM CP INTO DISABLED PP IR 
          RAM    IPSA+1 
          LJM    IPS3        PROCESS PP COMMUNICATIONS AREA 
  
 IPSA     VFD    18/3R***,6/**,36/
          VFD    24/3RCIO 
 PTR      SPACE  4,10 
**        PTR - PROCESS POINTER AREA. 
* 
*         EXIT   (ID) = MACHINE ID. 
*                (LD) = LINK DEVICE STATUS. 
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T3 - T7, EN.
* 
*         CALLS  SCS. 
* 
*         MACROS SFA. 
  
  
 PTR      SUBR               ENTRY/EXIT 
          LDN    DSSL 
          CRD    CM 
          ADN    PLDP-DSSL   GET PLD POINTER
          CRD    CN 
          LDN    0           DISABLE *SPLM* 
          STD    CN 
          STD    CN+1 
          LDD    CM+4        SET RECOVERY MODE IN CMR 
          SCN    7
          LMD    RM 
          LMN    4           ADD DEADSTART IN PROGRESS FLAG 
          STD    CM+4 
          LDN    DSSL 
          CWD    CM 
          ADN    PLDP-DSSL   STORE LIBRARY LOCKED STATUS
          CWD    CN 
          RJM    SCS         SET CPU STATUS 
          LDN    JSCL 
          CRD    CN 
          ADN    PRBP-JSCL
          CRD    CM 
          LDD    CM          INTERLOCK PROBE TABLES 
          LPC    3777 
          STD    CM 
          LDC    4000        SET SCHEDULER ACTIVE 
          STD    CN 
          LDN    JSCL        STORE SCHEDULER INTERLOCK
          CWD    CN 
          ADN    RDSL-JSCL   CLEAR LABEL CHECK CONTROL
          CWD    ZR 
          ADN    PRBP-RDSL
          CWD    CM 
          SBN    PRBP-SCRL
          CRD    CM 
          LDD    CM          CLEAR EMERGENCY STEP STATUS
          LPC    -5600
          LMC    4000        SET *1MB* (ERROR LOGGING) ACTIVE 
          STD    CM 
          LDN    0           CLEAR *1CK* CALLED STATUS
          STD    CM+2 
          LDN    ZERL 
          CRD    AB 
          ADN    DSDL-ZERL   STORE *DSD* BUFFER INTERLOCK 
          CWD    CN 
          SBN    DSDL-MMFL   PRESERVE MACHINE ID
          CRD    ID+LD* 
          ADN    INWL-MMFL   STORE SCHEDULER INTERLOCK
          CWM    .INWL,ON 
          SBN    INWL+1-SCRL
          CWD    CM 
          LCN    0           INITIALIZE FLAG REGISTER STATUS
          STD    AB+3 
          LDD    LD 
          LPC    777
          ZJN    PTR1        IF NOT MMF ENVIRONMENT 
          SFA    EST
          CRD    CM          READ EST ENTRY FOR LINK DEVICE 
          ADN    EQAE-EQDE
          CRD    T3 
          LDD    T3+2 
          SHN    -6 
          LPN    3
          STM    LDSH        SET SHIFT COUNT FOR LINK DEVICE
          LDD    CM+4 
          SHN    3
          ADN    ALGL        FETCH LABEL TRACK FROM MST 
          CRD    CM 
          LDD    CM+1        SET LABEL TRACK
          STD    AB+4 
 PTR1     LDK    EXML        GET EXTENDED MEMORY PARAMETER
          CRD    CM 
          ADK    MMFL-EXML
          CWD    ID+LD* 
          ADK    MEFL-MMFL
          CRD    CN 
          ADK    EFRL-MEFL
          CWD    AB 
          LDD    CN+3        SET EXTENDED MEMORY PARAMETERS 
          STM    EMFL 
          LDD    CN+2 
          SCN    37 
          SHN    11 
          STM    UESC 
          SHN    2
          SCN    36 
          STM    EMAF 
          SHN    -20
          STM    EMSC 
          LDD    CM+4 
          LPC    777
          STD    EN 
          ZJN    PTR2        IF NO EXTENDED MEMORY EQUIPMENT
          SFA    EST
          ADK    EQDE 
          CRD    CM 
          LDD    CM+4 
          SHN    3
          ADK    DILL 
          CRD    AB 
          LDD    AB+3        SET EXTENDED MEMORY TYPE 
          SHN    -6 
          LPN    7
          STM    EMTY 
 PTR2     LJM    PTRX        RETURN 
 VEM      SPACE  4,10 
**        VEM - VERIFY EI LEVEL AND MICROCODE NAME. 
* 
*         ENTRY  (HO) = HARDWARE OPTIONS. 
* 
*         EXIT   TO *DSE* IF EI LEVEL OR MICROCODE NAME ERROR.
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7.
  
  
 VEM      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    VEMX        IF NOT CYBER 800 TYPE MAINFRAME
          LDC    MEBF 
          CRD    CM          GET MICROCODE/EI NAMES PASSED BY *CTI* 
          SBN    MEBF-SABL
          CRD    T1          GET MAINFRAME DESCRIPTOR ADDRESS 
          ADN    EABL+CPEI-SABL 
          CRD    AB 
          LDD    AB+1        FETCH ORIGINAL MICROCODE NAME
          SCN    77 
          SHN    6
          LMD    AB 
          SHN    6
          ADN    1
          CRD    T3 
          ADN    1
          CRD    CN 
          LDD    T3+2 
          SHN    21-0 
          PJN    VEM1        IF CPU-0 IS ENABLED
          LDD    AB+1 
          LPN    77 
          SHN    14 
          LMD    AB+2        FETCH MICROCODE FROM CPU-1 BLOCK 
          ADN    2
          CRD    CN 
 VEM1     LDN    0           CLEAR MISMATCH FLAG
          STD    T5 
          LDD    T1          GET ORIGINAL EI NAME 
          SHN    14 
          LMD    T1+1 
          ADN    1
          CRD    AB 
          LDN    3           COMPARE MICROCODE NAMES
          STD    T3 
 VEM2     LDM    CN,T3
          STM    VEMA+12,T3 
          LMM    CM,T3
          ZJN    VEM3        IF VALUES MATCH
          STD    T5 
 VEM3     SOD    T3 
          PJN    VEM2        IF COMPARE NOT COMPLETE
          LDD    T5 
          NJN    VEM4        IF MICROCODE ERROR 
          LDD    AB+3 
          STM    VEMB+6      COMPARE EI LEVEL 
          LMD    CM+4 
          NJN    VEM5        IF EI ERROR
          LJM    VEMX        RETURN 
  
 VEM4     LDC    VEMA        *MICROCODE MISMATCH* 
          UJN    VEM6        DISPLAY ERROR AND HANG 
  
 VEM5     LDC    VEMB        *EI MISMATCH*
 VEM6     JMP    DSE         DISPLAY ERROR AND HANG 
  
  
 VEMA     DATA   C*MICROCODE MISMATCH,        * 
 VEMB     DATA   C*EI MISMATCH,  *
          TITLE  MEMORY MANAGEMENT ROUTINES.
 CFC      SPACE  4,10 
**        CFC - CHECK FL CONTROL WORDS. 
* 
*         ENTRY  (T6) = CP/PCP NUMBER.
*                (AB - AB+4) = FL CONTROL WORD FOR *FLSW*.
*                (CN - CN+4) = FL CONTROL WORD FOR *FLSW*+1.
* 
*         CALLS  SCA. 
  
  
 CFC      SUBR               ENTRY/EXIT 
          LDD    AB 
          NJN    CFCX        IF NFL ASSIGNED
          LDD    AB+4 
          ZJN    CFCX        IF NO FL 
          SBD    AB+1 
          STD    AB+4        ADJUST FL
          STD    CN+4 
          LDD    AB+1        RESET NFL
          STD    AB 
          RAD    AB+3        ADJUST RA
          SHN    -14
          RAD    AB+2 
          LDD    AB 
          RAD    CN+3 
          LDN    0           CLEAR ROLLOUT VALUE OF NFL 
          STD    AB+1 
          LDD    T6          SET CP/PCP ADDRESS 
          RJM    SCA
          ADN    FLSW+1 
          CWD    CN          STORE FL CONTROL WORDS 
          SBN    1
          CWD    AB 
          UJN    CFCX        RETURN 
 DCB      SPACE  4,15 
**        DCB - DEFINE CM BUFFER SPACE. 
* 
*         EXIT   (EB) = RA/100 FOR *CPUMLD*.
* 
*         USES   EB, AB - AB+4, CN - CN+4.
* 
*         CALLS  CMA, RFL.
  
  
 DCB      SUBR               ENTRY/EXIT 
          RJM    RFL         RELEASE FIELD LENGTH 
          LDN    ZERL 
          CRD    AB 
          ADN    RPLP-ZERL   FETCH FWA OF RPL 
          CRD    CN 
          LDC    2S12+AB     CHECK AVAILABLE MEMORY 
          RJM    CMA
          LDD    AB+1 
          ZJN    DCB2        IF NO FREE MEMORY
          STD    EB 
          ADC    CPML+PRSL-4001 
          PJN    DCB2        IF REQUIRED FL CROSSES 131K
          LDD    AB+3 
          SBK    CPML+PRSL
 DCB1     PJN    DCBX        IF ENOUGH FL 
 DCB2     LDN    CMRL 
          CRD    AB          GET CMR LENGTH 
          LDD    CN 
          SHN    14          FWA OF RPL 
          LMD    CN+1 
          ADN    77          ROUND RPL ADDRESS
          SHN    -6 
          STD    EB          SET NEW LOAD ADDRESS FOR *CPUMLD*
          LDD    AB+4 
          SBK    CPML+PRSL   CHECK FL NEEDED
          SBD    EB 
          PJN    DCB1        IF REQUIRED FL IN CMR
          LDC    DCBA 
          JMP    DSE         DISPLAY MESSAGE AND HANG 
  
  
 DCBA     DATA   C*LACKING MEMORY FOR CM RECOVERY.* 
 FFL      SPACE  4,20 
**        FFL - FIND FORWARD LINK FOR MCT ENTRY.
* 
*         ENTRY  (KA) = MCT ORDINAL.
*                (NS) = MCT ENTRY COUNT.
*                (T2) = MEMORY TYPE INDICATOR.
*                     = 0 FOR CENTRAL MEMORY. 
*                     = 1 FOR EXTENDED MEMORY.
*                (CA - CA+1) = RA + FL OF CURRENT CP/PCP. 
* 
*         EXIT   (T7) = FL/FLX AT FORWARD LINK CP/PCP.
*                (CN+1) = CP/PCP NUMBER OF FORWARD LINK.
*                (T5 - T6) = RA/RAX AT FORWARD LINK CP/PCP. 
* 
*         ERROR  TO *DSE* IF FL CONTROL WORD ERROR. 
* 
*         USES   T3 - T7, CM. 
* 
*         CALLS  RCW, SCA.
  
  
 FFL7     AOM    CM,T2       SET CP/PCP SELECTED
          LDD    CN+1 
          ZJN    FFL2        IF FORWARD LINK NOT FOUND
          RJM    SCA
          ADN    6           STORE SELECTION STATUS 
          CWD    CM 
  
 FFL      SUBR               ENTRY/EXIT 
          LDN    0
          STD    CN+1        PRESET NO FORWARD LINK 
          CRD    T3 
          LDN    17          INITIALIZE FOR SCAN
          STD    T5 
  
*         FETCH FL CONTROL WORD FROM CP/PCP AREA. 
  
 FFL1     RJM    RCW
          ZJN    FFL7        IF END OF SEARCH 
          LDD    AB+2 
          SBD    CA          VERIFY FL CONTROL WORD 
          SHN    14 
          ADD    AB+3 
          SBD    CA+1        CHECK RA - CURRENT POSITION
          SBD    AB 
          PJN    FFL3        IF NOT INVALID RA OR NFL 
 FFL2     LDC    =C*FL CONTROL WORD ERROR.* 
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 FFL3     LDD    AB+2        COMPARE WITH PREVIOUS DISTANCE 
          SBD    T5 
          SHN    14 
          ADD    AB+3        CHECK RA NEAREST CURRENT POSITION
          SBD    T6 
          NJN    FFL5        IF NOT SAME RA 
          LDD    T3 
          NJN    FFL1        IF PREVIOUS CP/PCP HAD NFL ASSIGNED
          LDD    AB 
          NJN    FFL4        IF THIS CP/PCP HAS NFL ASSIGNED
          LDD    T7 
          NJN    FFL4        IF PREVIOUS CP/PCP HAD FL
          LDD    NC 
          SBD    T4 
 FFL3.1   PJN    FFL1        IF NOT PCP 
          LDD    KA 
          ZJN    FFL1        IF CP00 (CMR)
 FFL4     LDD    AB+4 
          ZJN    FFL6        IF CP/PCP HAS NO FL ASSIGNED 
  
*         COMMON RA-S W/O FL MUST PRECEDE SAME RA WITH FL.
  
 FFL5     PJN    FFL3.1      IF RA FARTHER FROM CURRENT POSITION
          LDD    AB+2 
          STD    T5 
          LDD    AB+3        SET RA CLOSEST TO CURRENT POSITION 
          STD    T6 
          LDD    AB+4        PRESERVE FL
 FFL6     STD    T7 
          LDD    AB          SAVE NFL 
          STD    T3 
          LDD    T4          DEFINE POTENTIAL FORWARD LINK
          STD    CN+1 
          UJN    FFL5        LOOP FOR NEXT CP/PCP 
 MVE      SPACE  4,10 
**        MVE - MOVE NFL. 
* 
*         ENTRY  (CA - CA+1) = RA - NFL OF PREVIOUS CP. 
*                (AB - AB+4) = FL CONTROL WORD. 
*                (CN - CN+4) = FL CONTROL WORD. 
* 
*         USES   AB+2, AB+3, CN+1, CN+2, CM - CM+4. 
  
  
 MVE3     ADD    AB+3        COMPUTE RA + FL
          STD    T0 
          SHN    -14
          ADD    AB+2        COMPARE WITH NEXT RA - NFL 
          SBD    CA 
          NJN    MVE1        IF MOVE REQUIRED 
          LDD    T0 
          LMD    CA+1 
          NJN    MVE1        IF NOT CP-S WITH ADJOINING FL
  
 MVE      SUBR               ENTRY/EXIT 
          LDD    CN+4 
          NJN    MVE3        IF RECOVERED SUBSYSTEM (PRESERVE FL) 
 MVE1     LDD    AB+2 
          SHN    14 
          LMD    AB+3 
          SBD    AB          SET RA - NFL FOR MOVE
          STD    CM+3 
          STD    CM+2 
          SHN    -14
          STD    CM+1 
          LDD    CA          SET RA FOR CP
          SHN    14 
          LMD    CA+1 
          SBD    CN+4 
          STD    AB+3 
          SHN    -14
          STD    AB+2 
          SHN    14 
          LMD    AB+3 
          SBD    AB          SET NEW RA - NFL 
          STD    CM+4 
          STD    CN+2 
          SHN    -14
          STD    CN+1 
          LDD    AB 
          ZJN    MVEX        IF NO NFL
          ADD    CN+4 
          SBN    1
          STD    CM 
          LDD    HO 
          SHN    0-13 
          NJN    MVE2        IF NOT CME MAINFRAME 
          LDC    4000 
          STD    CM+3 
          STD    CM+4 
 MVE2     LRD    CM+1 
          LDD    CM+3        READ BLOCK OF NFL
          ADD    CM 
          SHN    6
          CRM    MBUF,HN
          LRD    CN+1 
          LDD    CM+4        MOVE NFL 
          ADD    CM 
          SHN    6
          CWM    MBUF,HN
          SOD    CM 
          PJN    MVE2        IF NOT END OF MOVE 
          LJM    MVEX        RETURN 
 RCW      SPACE  4,20 
**        RCW - READ FL CONTROL WORD FROM CP/PCP AREA.
* 
*         ENTRY  (T2) = MEMORY TYPE INDICATOR.
*                     = 0 FOR CENTRAL MEMORY. 
*                     = 1 FOR EXTENDED MEMORY.
*                (T4) = PREVIOUS CP/PCP NUMBER. 
*                (KA) = CURRENT CP/PCP NUMBER.
*                (LA) = RELATIVE CONTROL WORD ADDRESS.
*                (NS) = NUMBER OF MCT ENTRIES.
* 
*         EXIT   (A) = 0 IF END OF CP/PCP SCAN. 
*                (T4) = CP/PCP FOR FL CONTROL WORD. 
*                (AB - AB+4) = FL CONTROL WORD. 
*                (CM - CM+4) = CP/PCP *CRCW* WORD.
* 
*         CALLS  GHA, SCA.
  
  
 RCW      SUBR               ENTRY/EXIT 
 RCW1     AOD    T4 
          LMD    NS 
          ZJN    RCWX        IF END OF SEARCH 
          LMD    NS 
          LMD    KA 
          ZJN    RCW1        IF CURRENT CP/PCP
          LDD    T4 
          RJM    SCA         SET CP/PCP AREA ADDRESS
          ADD    LA 
          CRD    AB          READ FL CONTROL WORD 
          SBD    LA 
          ADN    6           GET CP SELECTION STATUS
          CRD    CM 
          LDM    CM,T2
          NJN    RCW1        IF THIS CP/PCP ALREADY FORWARD LINK
          LDD    T4 
 RCW2     LMD    NC 
          NJN    RCWX        IF NOT SYSTEM CP 
          LDD    LA 
          RJM    GHA         GET HIGHEST MEMORY ADDRESS 
*         LDN    0
          UJN    RCW2        RETURN 
 RFL      SPACE  4,15 
**        RFL - RELEASE FIELD LENGTH. 
* 
*         ENTRY  (NC) = SYSTEM CP NUMBER. 
*                (FL - FL+1) = EXECUTION FIELD LENGTH.
* 
*         EXIT   FL OF USER JOBS AT CP-S RELEASED.
*                FL OF NON-RECOVERED SUBSYSTEMS RELEASED. 
* 
*         USES   AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4, T5 - T7. 
* 
*         CALLS  CFC, MVE, SCA, RMT.
  
  
 RFL8     RJM    RMT         REBUILD MEMORY CONTROL TABLE 
          LDN    ACML 
          CWM    .ACML,ON    STORE UNASSIGNED MEMORY
  
 RFL      SUBR               ENTRY/EXIT 
          RJM    RMT
          LDD    FL 
          STD    CN+1        SET EXECUTION MEMORY SIZE
          LDD    FL+1 
          STD    CN+2 
          LDD    NC          START BACKWARDS FROM SYSTEM CP 
          STD    T6 
 RFL1     LDD    CN+1        SAVE RA - NFL
          STD    CA 
          LDD    CN+2 
          STD    CA+1 
          LDD    T6          FORM MCT INDEX 
          SHN    1
          ADC    0           APPEND BASE MCT ADDRESS
 RFLA     EQU    *-1
          CRD    T6          READ MCT ENTRY 
          LDD    T6 
          ZJN    RFL8        IF BACK LINKED TO CP ZERO
          RJM    SCA
          ADN    FLSW        READ FL CONTROL WORDS
          CRD    AB 
          ADN    1
          CRD    CN 
          ADN    JCIW-FLSW-1 READ JOB CONTROL 
          CRD    CM 
          RJM    CFC         CHECK FL CONTROL WORDS 
          LDD    T6 
          SBD    NC 
          PJN    RFL4        IF PSEUDO CONTROL POINT
          LDC    TRSS 
          STD    T5 
          LDI    T5          CHECK SUBSYSTEM ID 
 RFL2     LMD    CM+2 
          ZJN    RFL3        IF RECOVERED SUBSYSTEM 
          AOD    T5 
          LDI    T5 
          NJN    RFL2        IF NOT END OF TABLE
          STD    CN+4 
 RFL3     LDD    T6          CHECK CONTROL POINT
          LMN    1
          ZJN    RFL5        IF FIRST CP (NO MOVE)
 RFL4     RJM    MVE
 RFL5     LDD    CN+4        CLEAR FL ASSIGNMENT
          STD    AB+4 
          LDD    T6          SET CP/PCP ADDRESS 
          RJM    SCA
          ADN    FLSW+1 
          CWD    CN          RESET FL CONTROL WORDS 
          SBN    1
          CWD    AB 
          ADN    ECSW-FLSW   FETCH EXTENDED MEMORY CONTROL WORD 
          CRD    CM 
          ADC    CPAS 
          CRD    AB 
          SHN    -7 
          LMD    NC 
          NJN    RFL6        IF NOT LAST CP 
          LDD    AB+3 
          ADD    AB+4 
          STD    CM+3        SET RAX TO END OF USER XM BLOCK
          SHN    -14
          ADD    AB+2 
          STD    CM+2 
 RFL6     LDD    CN+4 
          NJN    RFL7        IF RECOVERED SUBSYSTEM 
*         LDN    0
          STD    CM+4        CLEAR FLX
          LDD    T6 
          RJM    SCA
          ADN    ECSW        UPDATE CP/PCP AREA 
          CWD    CM 
 RFL7     LJM    RFL1        LOOP FOR NEXT CP 
  
  
 TRSS     BSS    0           TABLE OF RECOVERED SUBSYSTEMS
          CON    IFSI        IAF
          CON    TRSI        TAF
          CON    BISI        BATCHIO
          CON    MTSI        MAGNET 
          CON    SMSI        SMF
          CON    NVSI        NVE
          CON    FZSI        FROZEN JOB 
          CON    0           END OF TABLE 
 RMT      SPACE  4,10 
**        RMT - REBUILD MEMORY CONTROL TABLE. 
* 
*         ENTRY  (NC) = SYSTEM CP NUMBER. 
*                (NS) = NUMBER OF MCT ENTRIES.
* 
*         USES   KA, KB, LA, ST, CA - CA+1, CN - CN+4, T2 - T7. 
* 
*         CALLS  CTE, FFL, SCA. 
  
  
 RMT3     RJM    FFL         FIND FORWARD LINK FOR MCT ENTRY
          LDD    KA 
          NJN    RMT5        IF NOT CP ZERO 
          LDD    CN+1 
          LMN    1
          ZJN    RMT6        IF CORRECT FORWARD LINK
*         LDC    =C*FL CONTROL WORD ERROR.* 
 RMT4     LJM    FFL2        DISPLAY ERROR AND HANG 
  
 RMT5     ADN    1           CHECK CURRENT CP/PCP 
          LMD    NC 
          NJN    RMT6        IF NOT LAST CP 
          LDD    NC 
          LMD    CN+1 
          NJN    RMT4        IF NOT LINKED TO SYSTEM CP 
 RMT6     LDD    LA 
          RJM    CTE         CREATE MCT ENTRY 
 RMT7     LDD    T7 
          ADD    T6          SET RA/RAX + FL/FLX
          STD    CA+1 
          SHN    -14
          ADD    T5          ADJUST CURRENT POSITION
          STD    CA 
          LDD    KA          NEW BACKWARD LINK
          STD    CN 
          LDD    CN+1        SET NEXT CP/PCP
          STD    KA 
          SOD    KB 
          NJN    RMT3        IF NOT END OF CP/PCP-S 
          STD    CN+1 
          LDD    KA          CHECK NEXT CP
          LMD    NC 
          NJN    RMT4        IF NOT SYSTEM CP 
          LDD    LA 
          RJM    CTE         CREATE MCT ENTRY FOR SYSTEM CP 
          SOD    ST 
          LMN    ECRL 
          PJN    RMT2        IF XM YET TO BE PROCESSED
  
 RMT      SUBR               ENTRY/EXIT 
          LDN    1
          STD    T2 
 RMT1     LDD    T2          SET CP/PCP ADDRESS 
          RJM    SCA
          ADN    6           READ *MA* WORD OF EXCHANGE PACKAGE 
          CRD    CM 
          STD    ST          SAVE PARTIAL ADDRESS 
          LMD    ST 
          STD    CM+1        CLEAR MONITOR ADDRESS FIELD
          STD    CM 
          LMD    ST          STORE CP/PCP SELECTION STATUS
          CWD    CM 
          AOD    T2          ADVANCE CP/PCP NUMBER
          LMD    NS 
          NJN    RMT1        IF MORE CP/PCP-S 
*         LDN    0
          CRM    .ACML,ON    CLEAR UNASSIGNED MEMORY ACCUMULATOR
 RMTA     LDN    1
*         LDN    0           (NO USER EXTENDED MEMORY)
          STD    ST 
          LDN    CMRL 
 RMT2     STD    LA          SET FL CONTROL WORD ADDRESS
          CRD    T3 
          SBN    FLSW 
          ERRNZ  FLSW+2-ECSW  CODE DEPENDS ON VALUE 
          SHN    -1 
          STD    T2          SET MEMORY TYPE INDICATOR
          CRD    CN 
          LDN    0           INITIALIZE FOR CP ZERO 
          STD    KA 
          LDD    NS          SET LOOP COUNT 
          STD    KB 
          LJM    RMT7        INITIALIZE CURRENT POSITION
          SPACE  4,10 
**        COMMON DECKS. 
  
  
          LIST   X
*CALL     COMPCMA 
          LIST   *
          SPACE  4,10 
          USE    LITERALS    DUMP LITERALS BLOCK
          SPACE  4,10 
          ERRNG  MBUF-*      OVERFLOW INTO BUFFER 
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          NVECPU
  
 INO      SPACE  4,15 
**        INO - INITIALIZE OVERLAY. 
* 
*         EXIT   (NC) = SYSTEM CP NUMBER. 
*                (NS) = NUMBER OF MCT ENTRIES.
*                (FL - FL+1) = CM EXECUTION FL. 
* 
*         ERROR  TO *DSE* IF CONSOLE TYPE CHANGED BY DEADSTART. 
* 
*         USES   T3, AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4.
* 
*         CALLS  CLS, RPN.
* 
*         MACROS MCTPRS, SFA. 
  
  
 INO      SUBR               ENTRY/EXIT 
          LDC    TCMB 
          STD    T3 
          LDN    0           CLEAR CMR BLOCKS 
          STD    CA 
          LDI    T3          SET CM ADDRESS 
 INO1     STD    CA+1 
          AOD    T3 
          LDI    T3          CALCULATE WORD COUNT 
          SBD    CA+1 
          RJM    CLS         CLEAR CMR
          AOD    T3 
          LDI    T3 
          NJN    INO1        IF ALL BLOCKS NOT CLEARED
          LDN    NCPL 
          CRD    CM          GET CP COUNT 
          ADN    MABL-NCPL
          CRD    CN          READ MEMORY POINTERS 
          ADN    MCTP-MABL
          CRD    AB 
          AOD    CM+1        SET SYSTEM CP NUMBER 
          STD    NC 
          LDD    CN+2        SET EXECUTION MEMORY SIZE
          STD    FL 
          LDD    CN+3 
          STD    FL+1 
          LDD    AB+1        SET MCT BASE ADDRESS 
          STM    RFLA 
          LDD    AB 
          RAM    RFLA-1 
          LDN    ECRL        FETCH EXTENDED MEMORY STATUS 
          CRD    CM 
          LDD    CM+1 
          NJN    INO2        IF USER XM DEFINED 
          SOM    RMTA 
 INO2     MCTPRS             SET UP *MCTSUB* ROUTINES 
          LDN    DSEQ 
          SFA    EST         FETCH EST ENTRY FOR DISPLAY CONSOLE
          ADK    EQAE 
          CRD    CN 
          LDM    .DCS 
          ZJN    INO3        IF DEADSTART INITIATED FROM CC545
          LDN    1
 INO3     LMD    CN+2 
          NJN    INO4        IF CONSOLE TYPE CHANGED
          RJM    RPN
          LJM    INOX        RETURN 
  
 INO4     LDC    INOA 
          LJM    DSE         DISPLAY ERROR AND HANG 
  
  
 INOA     DATA   C*CONSOLE TYPE CHANGED.* 
 TCMB     SPACE  4,10 
**        TCMB - TABLE OF CMR BLOCKS CLEARED FOR RECOVERY.
  
  
 TCMB     CON    0,JSNL 
          CON    CMCL,ZERL
          CON    CPAL,DSDL
          CON    DSCP*CPAS+MS1W,DSCP*CPAS+MS1W+10 
          CON    0           END OF TABLE 
          SPACE  4,10 
          QUAL
 RCM      EQU    /RCM/RCM 
 RCTL     EQU    /RCM/RCTL
  
  
          ERRNG  7777-*-4    IF OVERFLOW OF PP
          TTL    SET/RCT - RECOVER CMR TABLES.
          TITLE 
          IDENT  RCT,RCTL 
          QUAL   RCT
          ORG    RCTL 
*COMMENT  SET - RECOVER CMR TABLES. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
 .DSE     SET    0
 RCT      SPACE  4,10 
**        RCT - RECOVER CMR TABLES. 
  
  
 RCT      BSS    0           ENTRY
          RJM    PRT         PRESET *RCT* 
  
*         VERIFY CMR TABLES.
  
          LDN    0
          STD    LA 
 RCT1     LDM    TCTP,LA     SET PROCESSOR ADDRESS
          STD    T1 
          RJM    0,T1        VERIFY TABLE 
  
*         PROCESSORS RETURN WITH (A) = TABLE LENGTH OR 0. 
  
          RAD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          RAD    CA 
          AOD    LA          INCREMENT TABLE NUMBER 
          LMN    TSGTE
          NJN    RCT1        IF NOT END OF TABLES 
  
*         COMPLETE TABLES.
  
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDC    BIOL 
          CRD    CN 
          LDD    CA          SET CM ADDRESS 
          STD    CN+3 
          SHN    14 
          LMD    CA+1 
          STD    CN+4 
          ADN    77 
          SHN    -6 
          STD    T0 
          LDD    EB          SET LOAD ADDRESS FOR *CPUMLD*
          STD    CN 
          SBD    T0 
          PJN    RCT2        IF NO CMR OVERFLOW 
          LDC    =C*CMR OVERFLOW.*
          JMP    DSE         DISPLAY ERROR AND HANG 
  
 RCT2     LDC    BIOL        STORE CPUMTR LOAD ADDRESS
          CWD    CN 
          ADK    DSCP*CPAS+SNSW-BIOL
          CRD    CM 
          LDD    CM+4        CLEAR *DSD* RECOVERY INTERLOCK 
          SCN    1
          STD    CM+4 
          LDC    DSCP*CPAS+SNSW 
          CWD    CM 
          RJM    DRO         DISPLAY RECOVERY OPTIONS 
          LJM    SET2        COMPLETE RECOVERY
          TITLE  TABLE VERIFICATION PROCESSORS. 
 BDT      SPACE  4,10 
**        BDT - ALLOCATE BUFFERED DEVICE CONTROL TABLES.
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         USES   T1, CN - CN+4. 
* 
*         CALLS  CLS, CTA.
  
  
 BDT      SUBR               ENTRY/EXIT 
          LDC    BIOL 
          CRD    CN 
          LDD    CN+1 
          ADD    CN+2 
          ZJN    BDTX        IF NO BUFFERED DEVICES 
          LDC    1S12+BIOL
          RJM    CTA
          LDN    /ICT/BDTAL/5  ADVANCE CENTRAL ADDRESS
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          LDD    CN+4        COMPUTE LENGTH OF TABLES 
          SBD    CA+1 
          STD    T1 
          PJN    BDT1        IF NO BORROW 
          SOD    CN+3 
          AOD    T1 
 BDT1     LDD    CN+3 
          SBD    CA 
          SHN    14 
          LMD    T1 
          UJN    BDTX        RETURN 
 BST      SPACE  4,10 
**        BST - VERIFY BUFFER STATUS TABLES.
* 
*         EXIT   (A) = 0. 
*                TO *DSE* IF TABLE ADDRESS ERROR. 
* 
*         USES   EQ, CA - CA+1, CM - CM+4.
* 
*         CALLS  SME. 
  
  
 BST      SUBR               ENTRY/EXIT 
          LDK    MMFL 
          CRD    CM 
          LDD    CM+1 
          LPC    1000 
          ZJN    BSTX        IF NO SHARED BUFFERED DEVICES
          LDN    NOPE 
          STD    EQ 
  
*         PROCESS NEXT EQUIPMENT. 
  
 BST1     RJM    SME         SEARCH FOR MASS STORAGE EQUIPMENT
          ZJN    BSTX        IF END OF MS EST ENTRIES 
          SHN    21-11-21+13
          PJN    BST1        IF NOT SHARED DEVICE 
          SHN    21-5-21+11 
          PJN    BST1        IF NOT BUFFERED DEVICE 
          LDD    AB+4        GET BST ADDRESS
          SHN    3
          ADK    BDLL 
          CRD    CM 
          LDD    CA          VERIFY BST ADDRESS 
          LMD    CM+1 
          NJN    BST2        IF ADDRESS DOES NOT MATCH
          LDD    CA+1 
          LMD    CM+2 
          NJN    BST2        IF ADDRESS DOES NOT MATCH
          LDK    BSTL        ADVANCE CM ADDRESS 
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          UJP    BST1        PROCESS NEXT EQUIPMENT 
  
 BST2     LDC    =C*BST POINTER ERROR.* 
          JMP    DSE         DISPLAY MESSAGE AND HANG 
 CHT      SPACE  4,10 
**        CHT - VERIFY CHANNEL TABLES.
* 
*         EXIT   (A) = LENGTH OF CHANNEL TABLES.
* 
*         USES   T1, T2.
* 
*         CALLS  CTA. 
  
  
 CHT      SUBR               ENTRY/EXIT 
          LDC    2S12+CHTP
          RJM    CTA
          LDN    CTALL       SET CONTROLWARE TABLE LENGTH 
          STD    T1 
          LDD    CA          READ CONTROLWARE TABLE 
          SHN    14 
          LMD    CA+1 
          ADN    CTALL*2
          CRM    MBUF,T1
          LDN    5*CTALL-1   EDIT CONTROLWARE TABLE 
          STD    T2 
 CHT1     LDM    MBUF,T2     CLEAR LOAD FLAGS 
          LPC    777
          STM    MBUF,T2
          SOD    T2 
          PJN    CHT1        IF NOT END OF TABLE
          LDD    CA 
          SHN    14 
          LMD    CA+1        STORE CONTROLWARE TABLE
          ADN    CTALL*2
          CWM    MBUF,T1
          LDN    CTALL*3     LENGTH OF CHANNEL TABLES 
          UJN    CHTX        RETURN 
 CLT      SPACE  4,10 
**        CLT - VERIFY COMMON LIBRARIES TABLE.
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
* 
*         MACROS CFI. 
  
  
 CLT      SUBR               ENTRY/EXIT 
          LDC    CLTP 
          RJM    CTA
          CFI    CLT,CM+2    LENGTH OF TABLE
          UJN    CLTX        RETURN 
 DFB      SPACE  4,10 
**        DFB - VERIFY DAYFILE BUFFERS. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   T3, T6, T7, CM - CM+2. 
* 
*         CALLS  CDP, CLS, CTA. 
  
  
 DFB      SUBR               ENTRY/EXIT 
          LDN    DFPP        SET FWA OF DAYFILE POINTERS
          CRD    T6 
          LDN    0           SET SYSTEM DAYFILE BUFFER NUMBER 
          STD    T3 
 DFB1     RJM    CDP
          LDN    3           ADVANCE DAYFILE POINTER ADDRESS
          RAD    T7 
          SHN    -14
          RAD    T6 
          AOD    T3          ADVANCE DAYFILE NUMBER 
          LMN    EXDF 
          NJN    DFB1        IF NOT END OF EXCESS DAYFILES
          LDC    2S12+DFPP
          RJM    CTA
          LDN    1           SET PP DUMP BUFFER NOT BUSY
          STD    CM+4 
          LDN    DFPP        STORE POINTER
          CWD    CM 
          LDC    DFDS+3      CLEAR DUMP BUFFER
          RJM    CLS
          LDN    0
          LJM    DFBX        RETURN 
 ECB      SPACE  4,10 
**        ECB - VERIFY *EICB* TABLES. 
* 
*         EXIT   (A) = LENGTH OF *EICB* TABLES. 
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T3 - T7.
* 
*         CALLS  CTA. 
  
  
 ECB2     ADN    DSCM+3-D7RS READ DFT/OS POINTER
          CRD    CN 
          LDD    AB+3        SAVE SIZE OF *MLST*
          LPN    77 
          STD    T2 
          LDD    CN+2        READ *DFT* CONTROL WORD
          SHN    14 
          LMD    CN+3 
          SHN    -4 
          SHN    6
          LMD    CN 
          CRD    AB 
          ADN    DFRQ        READ NOS REQUEST AREA POINTER
          CRD    T3 
          LDD    T3+2        READ NOS REQUEST HEADER
          SHN    14 
          LMD    T3+3 
          SHN    -4 
          SHN    6
          LMD    T3 
          CRD    CM 
          LDD    AB+4 
          LPC    7426        CLEAR FLAGS (V, R, Z, L, E7) 
          ADN    10          SET LOGGING FLAG 
          STD    AB+4 
  
*         POST REQUEST TO *DFT* TO UPDATE ERROR THRESHOLDS. 
  
          LDM    .CPU        CHECK CPU CONFIGURATION
          LPN    2
          ZJN    ECB3        IF CPU-1 PRESENT 
          LDN    ZERL        CLEAR THRESHOLDS FOR CPU-1 
          CRM    ECBB,ON
 ECB3     LDM    DFTV 
          ZJN    ECB4        IF *DFT* VERSION 3 
          LDK    STIN&STRY   SET STATUS = *INACTIVE*
 ECB4     LMK    STRY        SET STATUS = *READY* 
          STD    CM+4 
          LDD    CN+2        REWRITE *DFT* CONROL WORD
          SHN    14 
          LMD    CN+3 
          SHN    -4 
          SHN    6
          LMD    CN 
          CWD    AB 
          LDN    ECBAL/5     SET WORD COUNT 
          STD    T3+4 
          LDD    T3+2        WRITE NOS REQUEST HEADER 
          SHN    14 
          LMD    T3+3 
          SHN    -4 
          SHN    6
          LMD    T3 
          CWD    CM 
          ADN    1           WRITE THRESHOLD REQUEST TO BUFFER
          CWM    ECBA,T3+4
          LDD    CN+3        GET SIZE OF *DFT/OS* BUFFER
          LPN    17 
          SHN    14 
          LMD    CN+4 
          ADD    T2          ADD SIZE OF *MLST* 
          ADK    DSCBL+1     (A) = LENGTH OF *EICB* TABLES
  
 ECB      SUBR               ENTRY/EXIT 
          LDC    UEML 
          CRD    T3 
          ADK    EIBP-UEML
          CRD    CM 
          LDD    CM+3 
          ADD    CM+4 
          ZJN    ECBX        IF NO *EICB* 
          LDC    3S12+EIBP
          RJM    CTA
  
*         CALCULATE ORIGINAL MACHINE FL.
  
          LDD    CA          FETCH MEMORY ALLOCATION VALUES 
          SHN    14 
          LMD    CA+1 
          ADN    D7ST 
          CRD    AB 
          ADN    D7CM-D7ST
          CRD    CM 
          ADN    1
          CRD    CN 
          LDD    T3+4 
          LPN    2
          NJP    ECB1        IF UEM DEFINED 
          LDD    CN+4        CALCULATE CURRENT NVE FIELD LENGTH 
          SBD    CN+2 
          STD    CM+1 
          PJN    ECB0        IF NO BORROW 
          AOD    CN+1        ADJUST FOR BORROW
          AOD    CM+1 
 ECB0     LDD    CN+3 
          SBD    CN+1 
          STD    CM 
          ADD    CM+1 
          ZJN    ECB1        IF NO NVE FL 
          LDD    CM+1        CHECK IF NVE FL IS WITHIN RESERVED BLOCK 
          SBD    CM+4 
          STD    CM+4 
          PJN    ECB0.1      IF NO BORROW 
          AOD    CM+3        ADJUST FOR BORROW
          AOD    CM+4 
 ECB0.1   LDD    CM 
          SBD    CM+3 
          STD    CM+3 
          MJN    ECB1        IF FL WITHIN RESERVED BLOCK
          ADD    CM+4 
          ZJN    ECB1        IF FL WITHIN RESERVED BLOCK
          LDD    CM+4        CONVERT 1000B-WORD BLOCKS TO WORDS 
          LPN    7
          SHN    11 
          STM    DSFL+1 
          LDD    CM+3 
          LPN    7
          SHN    14 
          LMD    CM+4 
          SHN    -3 
          STM    DSFL 
  
*         CLEAR CHECKPOINT AND STEP FLAGS.
  
 ECB1     LDD    AB 
          LPC    6763 
          STD    AB 
          LDD    CA          UPDATE STATUS WORD 
          SHN    14 
          LMD    CA+1 
          ADN    D7ST 
          CWD    AB 
  
*         PRESERVE NOS *SCD* ACTIVE STATUS AND CLEAR C170 *MDD* FLAG
*         PP RESIDENT SAVE AREA INTERLOCK.
  
          ADN    D7RS-D7ST
          CRD    CN 
          LDD    CN+1 
          LPC    1S10        PRESERVE NOS *SCD* ACTIVE STATUS 
          STD    CN+1 
          LDM    MDDP 
          LPN    10          SET DEDICATED *MDD* STATUS 
          SHN    13-3 
          RAD    CN+1 
          LDD    CA 
          SHN    14 
          LMD    CA+1 
          ADN    D7RS 
          CWD    CN 
          LJM    ECB2        UPDATE *DFT* CONTROL WORD
  
  
*         *DFT* THRESHOLD REQUEST INFORMATION.
  
 ECBA     VFD    4/,8/RQTH,8/0,8/7,8/0,8/0,8/THCI,8/THUE  IOU 
          VFD    4/,8/RQTH,8/0,8/7,8/1,8/0,8/THCM,8/THUE  MEMORY
          VFD    4/,8/RQTH,8/0,8/7,8/2,8/0,8/THCP,8/THUE  CPU-0 
 ECBB     VFD    4/,8/RQTH,8/0,8/7,8/2,8/1,8/THCP,8/THUE  CPU-1 
          VFD    60/0        TERMINATOR 
 ECBAL    EQU    *-ECBA      LENGTH OF THRESHOLD DATA (PP WORDS)
 EJT      SPACE  4,10 
**        EJT - VERIFY EXECUTING JOB TABLE. 
* 
*         EXIT   (A) = EJT LENGTH.
* 
*         CALLS  CTA. 
* 
*         MACROS CFI. 
  
  
 EJT      SUBR               ENTRY/EXIT 
          LDN    EJTP 
          RJM    CTA
          CFI    EJT,CM+2 
          UJN    EJTX        RETURN 
 EMB      SPACE  4,10 
**        EMB - VERIFY ERROR MESSAGE BUFFER.
* 
*         EXIT   (A) = ERROR MESSAGE BUFFER LENGTH. 
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T1 - T1+4.
* 
*         CALLS  CTA. 
  
  
 EMB6     LDN    ZERL 
          CRD    AB 
          CRD    CN 
          AOD    AB 
          STD    AB+1        SET *MESSAGES LOST* FLAG 
          LDC    EMBMN-2     DEFAULT TO MINIMUM BUFFER SIZE 
 EMBA     EQU    *-1         (ACTUAL SIZE IF WITHIN LIMITS) 
          STD    CN+4 
 EMB7     LDD    CM+1        STORE BUFFER INTERLOCK/*IN* WORD 
          SHN    14 
          LMD    CM+2 
          CWD    AB 
          ADN    1           STORE BUFFER *OUT*/*LIMIT* WORD
          CWD    CN 
          LDD    CN+4 
          ADN    2
  
 EMB      SUBR               ENTRY/EXIT 
          LDC    1S12+EMBP
          RJM    CTA
          LDD    CM+1        READ BUFFER INTERLOCK/*IN* WORD
          SHN    14 
          LMD    CM+2 
          CRD    AB 
          ADN    1           READ BUFFER *OUT*/*LIMIT* WORD 
          CRD    CN 
          LDD    CN+4 
          ADC    -EMBMN+2 
          ZJN    EMB1        IF *LIMIT* IS AT MINIMUM 
          MJP    EMB6        IF *LIMIT* IS TOO SMALL
 EMB1     LDD    CN+4        SET BUFFER RECOVERY SIZE 
          STM    EMBA 
          LDN    0
          STD    AB+4        CLEAR INTERLOCK AND *1MD ACTIVE* FLAGS 
          STD    CM+3        SET *IN*.LT.INDEX CORRECT
          LDD    AB+3        *IN* 
          SBD    CN+4        *LIMIT*
          PJP    EMB6        IF *IN*.GE.*LIMIT* 
          LDD    CN+3        *OUT*
          STD    CM+4        SET INITIAL MESSAGE INDEX
 EMB2     SBD    CN+4 
          MJN    EMB4        IF INDEX.LT.*LIMIT*
          NJP    EMB6        IF INDEX.GT.*LIMIT*
 EMB3     STD    CM+4        RESET MESSAGE INDEX
 EMB4     LDD    AB+3        *IN* 
          SBD    CM+4 
          ZJP    EMB7        IF ALL MESSAGE HEADERS CHECKED 
          PJN    EMB5        IF INDEX.LT.*IN* 
          LDD    CM+3 
          NJP    EMB6        IF *IN*.LT.INDEX NOT CORRECT 
 EMB5     STD    CM+3        SET *IN*.LT.INDEX FLAG 
          LDD    CM+1        READ NEXT MESSAGE HEADER 
          SHN    14 
          LMD    CM+2 
          ADD    CM+4 
          ADN    2
          CRD    T1 
          LDD    T1+3        GET MESSAGE LENGTH FROM HEADER 
          ZJN    EMB3        IF BUFFER TERMINATOR 
          RAD    CM+4        INCREMENT BUFFER INDEX 
          UJN    EMB2        CHECK MESSAGE HEADER WORD COUNT
 EST      SPACE  4,10 
**        EST - VERIFY EQUIPMENT STATUS TABLE.
* 
*         EXIT   (A) = EST LENGTH.
*                (LE) = LAST MASS STORAGE EQUIPMENT + 1.
* 
*         CALLS  CTA, SSE.
* 
*         MACROS CFI, SFA.
  
  
 EST2     CFI    EST,CM+2 
  
 EST      SUBR               ENTRY/EXIT 
          LDN    ESTP 
          RJM    CTA
          LDD    CM+3        SET LAST MASS STORAGE EQUIPMENT + 1
          STD    LE 
  
*         CLEAR LOAD FLAGS IN *CM* DEVICE ENTRIES.
  
          LDC    1S17+2RCM   SEARCH FOR *CM* ENTRY
 EST1     RJM    SSE
          NJN    EST2        IF NONE FOUND
          SFA    EST,EQ 
          ADN    EQAE        GET EST ASSIGNMENT WORD
          CRD    AB 
          LDD    AB+2        CLEAR LOAD FLAGS 
          LPC    1777 
          STD    AB+2 
          SFA    EST,EQ      REWRITE EST ENTRY
          ADN    EQAE 
          CWD    AB 
          UJN    EST1        CHECK NEXT ENTRY 
 EVT      SPACE  4,10 
**        EVT - VERIFY EVENT TABLE. 
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         USES   AB - AB+4. 
* 
*         CALLS  CTA. 
  
  
 EVT      SUBR               ENTRY/EXIT 
          LDC    EVTP 
          RJM    CTA
          LDD    CM          CLEAR INTERLOCK
          SHN    14 
          LMD    CM+1 
          CRD    AB 
          LDD    AB+4 
          SCN    1
          STD    AB+4 
          LDD    CM 
          SHN    14 
          LMD    CM+1 
          CWD    AB 
          LDN    EVTLL       TABLE LENGTH 
          UJN    EVTX        RETURN 
 EXM      SPACE  4,15 
**        EXM - VERIFY EXTENDED MEMORY BUFFERS. 
* 
* 
*         ENTRY  (EN) = EXTENDED MEMORY EST ORDINAL IF DEFINED. 
*                (LD) = LINK DEVICE EST ORDINAL IF DEFINED. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   AB - AB+4, CM - CM+4.
* 
*         CALLS  CLS, CTA.
  
  
 EXM      SUBR               ENTRY/EXIT 
          LDK    UEML 
          CRD    AB 
          LDD    AB+4 
          LPN    2
          ADD    LD 
          LPC    777
          ADD    EN 
          ZJN    EXMX        IF NO EXTENDED MEMORY DEFINED
          LDC    EDBP        CHECK DISPLAY BUFFER ADDRESS 
          RJM    CTA
          LDN    EDBL        CLEAR DISPLAY BUFFER 
          RJM    CLS
          LDD    EN 
          ZJN    EXM3        IF NO EXTENDED MEMORY DEFINED
          LDC    EPBP 
          CRD    AB 
          LDD    AB+3 
          SHN    -6 
          STD    AB 
          ZJN    EXM3        IF NO I/O BUFFERS
          LDC    3S12+EPBP
          RJM    CTA
 EXM2     LDC    ECBL        CLEAR BUFFER 
          RJM    CLS
          SOD    AB 
          NJN    EXM2        IF NOT END OF BUFFERS
*         LDN    0
 EXM3     LJM    EXMX        RETURN 
 EXP      SPACE  4,10 
**        EXP - ALLOCATE C176 EXCHANGE PACKAGES.
* 
*         EXIT   (A) = 0. 
* 
*         CALLS  SBD, SXA.
  
  
 EXP      SUBR               ENTRY/EXIT 
          LDD    HO 
          SHN    -11
          LMN    7
          NJN    EXP1        IF NOT C176
          RJM    SBD         SEARCH FOR BUFFERED DEVICES
          RJM    SXA         SETUP EXCHANGE PACKAGES
 EXP1     LDN    0
          UJN    EXPX        RETURN 
 FNT      SPACE  4,10 
**        FNT - VERIFY FILE NAME TABLE. 
* 
*         EXIT   (A) = FNT LENGTH.
* 
*         USES   AB - AB+4. 
* 
*         CALLS  CTA. 
* 
*         MACROS CFI. 
  
  
 FNT      SUBR               ENTRY/EXIT 
          LDN    FNTP 
          RJM    CTA
          LDD    CA          READ SYSTEM FILE FNT ENTRY 
          SHN    14 
          LMD    CA+1 
          ERRNZ  SYFO        SYSTEM FILE FNT ORDINAL .NE. 0 
          CRD    AB 
          LDD    AB+4        SET SYSTEM FILE BUSY 
          SCN    1
          LMN    1
          STD    AB+4 
          LDD    CA          WRITE SYSTEM FILE FNT ENTRY
          SHN    14 
          LMD    CA+1 
          ERRNZ  SYFO        SYSTEM FILE FNT ORDINAL .NE. 0 
          CWD    AB 
          CFI    FNT,CM+2 
          UJN    FNTX        RETURN 
 FOT      SPACE  4,10 
**        FOT - VERIFY FAMILY ORDINAL TABLE.
* 
*         EXIT   (A) = FOT LENGTH.
* 
*         CALLS  CTA. 
  
  
 FOT      SUBR               ENTRY/EXIT 
          LDC    FOTP 
          RJM    CTA
          LDD    CM+2 
          UJN    FOTX        RETURN 
 INB      SPACE  4,10 
**        INB - VERIFY INSTALLATION BLOCK.
* 
*         EXIT   (A) = LENGTH OF BLOCK. 
* 
*         CALLS  CTA. 
  
  
 INB      SUBR               ENTRY/EXIT 
          LDC    2S12+INBP
          RJM    CTA
          LDD    CM+4 
          UJN    INBX        RETURN 
 JCA      SPACE  4,10 
**        JCA - VERIFY JOB CONTROL BUFFER TABLE (*JCB*).
* 
*         EXIT   (A) = LENGTH OF AREA.
* 
*         CALLS  CTA. 
  
  
 JCA      SUBR               ENTRY/EXIT 
          LDK    JBCP 
          RJM    CTA
          LDC    MXJC*JCBE
          UJN    JCAX        RETURN 
 LDB      SPACE  4,10 
**        LDB - ALLOCATE *L* DISPLAY BUFFER.
* 
*         EXIT   (A) = 0. 
* 
*         CALLS  CLS, CTA.
  
  
 LDB      SUBR               ENTRY/EXIT 
          LDC    2S12+LDSP
          RJM    CTA
          LDC    LDSY+LCOM+5  CLEAR BUFFER
          RJM    CLS
          LDN    0
          UJN    LDBX        RETURN 
 LID      SPACE  4,10 
**        LID - VERIFY LOGICAL ID TABLE.
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
  
  
 LID      SUBR               ENTRY/EXIT 
          LDC    LIDP 
          RJM    CTA
          LDD    CM+2 
          UJN    LIDX        RETURN 
 MCT      SPACE  4,10 
**        MCT - VERIFY MEMORY CONTROL TABLE.
* 
*         EXIT   (A) = 0 IF NO PSEUDO CONTROL POINTS. 
*                    = LENGTH OF PSEUDO CONTROL POINT AREAS.
* 
*         USES   T3.
* 
*         CALLS  CTA. 
  
  
 MCT      SUBR               ENTRY/EXIT 
          LDC    MCTP 
          RJM    CTA
          LDD    CM+2        FORM MCT LENGTH
          SHN    1
          RAD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          RAD    CA 
          SOD    CM+2        EXTRACT PCP COUNT
          SBD    NC 
          ZJN    MCTX        IF NO PSEUDO CONTROL POINTS
          STD    T3 
          LDC    3S12+PCPP   VERIFY PCP POINTER 
          RJM    CTA
          LDD    T3          SET LENGTH OF PCP AREAS
          SHN    7
          UJP    MCTX        RETURN 
 MSA      SPACE  4,10 
**        MSA - VERIFY MASS STORAGE ALLOCATION TABLE. 
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
  
  
 MSA      SUBR               ENTRY/EXIT 
          LDC    MSAP 
          RJM    CTA
          LDN    MXRS 
          UJN    MSAX        RETURN 
 MST      SPACE  4,10 
**        MST - VERIFY MASS STORAGE TABLES. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   EQ, AB - AB+4. 
* 
*         CALLS  RMC, SME.
* 
*         MACROS SFA. 
  
  
 MST1     RJM    RMC         RECOVER MST
          RJM    SME
          NJN    MST1        IF NOT END OF EST
  
 MST      SUBR               ENTRY/EXIT 
          LDN    RDEQ 
          STD    EQ 
          SFA    EST,,EQ     FETCH EST ENTRY FOR *RD* DEVICE
          CRD    AB 
          UJN    MST1        RECOVER *RD* DEVICE
 ODB      SPACE  4,10 
**        ODB - ALLOCATE OPERATOR DISPLAY BUFFER. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS. 
  
  
 ODB      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    CM 
          AOD    CM          SET UP INTERLOCK WORD
          LDD    CA 
          SHN    14 
          LMD    CA+1 
          CWD    CM 
          AOD    CA+1 
          SHN    -14
          RAD    CA 
          LDN    LODS-1      CLEAR BUFFER 
          RJM    CLS
          LDN    0
          UJN    ODBX        RETURN 
 ORT      SPACE  4,16 
**        ORT - VERIFY OPTICAL DISK REQUEST TABLE.
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
* 
*         MACROS CFI. 
  
  
 ORT      SUBR               ENTRY/EXIT 
          LDC    ORTP 
          RJM    CTA         CHECK TABLE ADDRESS
          CFI    ORT,CM+2    LENGTH OF TABLE
          UJN    ORTX        RETURN 
 OST      SPACE  4,16 
**        OST - VERIFY OPTICAL DISK STATUS TABLE. 
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         USES   T1.
* 
*         CALLS  CTA, SSE.
  
  
 OST2     LDD    T1          RETURN LENGTH
  
 OST      SUBR               ENTRY/EXIT 
          LDC    OSTP 
          RJM    CTA         CHECK TABLE ADDRESS
          LDN    0
          STD    T1 
          LDC    1S17+2ROD
 OST1     RJM    SSE         SEARCH FOR *OD* EQUIPMENT
          NJN    OST2        IF NO EQUIPMENT FOUND
          LDN    OSTE 
          RAD    T1 
          UJN    OST1        LOOP 
 PDB      SPACE  4,10 
**        PDB - CLEAR PREVIEW DISPLAY BUFFER. 
* 
*         USES   CA, CA+1.
* 
*         CALLS  CLS. 
  
  
 PDB      SUBR               ENTRY/EXIT 
          LDD    CA          SET INTERLOCK WORD ADDRESS 
          SHN    14 
          ADD    CA+1 
          CWM    PDBA,ON     INITIALIZE INTERLOCK WORD
          STD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          STD    CA 
          LDC    LPDS-1 
          RJM    CLS         CLEAR PREVIEW DISPLAY BUFFER 
          LDN    0
          UJN    PDBX        RETURN 
  
  
 PDBA     VFD    12/7777B,12/0,12/0,12/0,12/0 
 PSV      SPACE  4,10 
**        PSV - VERIFY PP SAVE AREAS. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS, CTA.
  
  
 PSV      SUBR               ENTRY/EXIT 
          LDD    LD 
          SHN    0-13 
          ZJN    PSVX        IF NO ISHARED DEVICES
          LDC    2S12+PPSP   READ POINTER WORD
          RJM    CTA         CHECK TABLE ADDRESS
 PSV1     LDC    PPSA        CLEAR SAVE AREA
          RJM    CLS
          SOD    CM+4 
          NJN    PSV1        IF MORE SAVE AREAS 
          UJN    PSVX        RETURN 
 QFT      SPACE  4,10 
**        QFT - VERIFY QUEUE FILE TABLE.
* 
*         EXIT   (A) = QFT LENGTH.
* 
*         CALLS  CTA. 
* 
*         MACROS CFI. 
  
  
 QFT      SUBR               ENTRY/EXIT 
          LDN    QFTP 
          RJM    CTA
          CFI    QFT,CM+2 
          UJN    QFTX        RETURN 
 RPT      SPACE  4,10 
**        RPT - VERIFY RING PORT TABLE. 
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         USES   T4.
* 
*         CALLS  SSE. 
  
  
 RPT1     LDN    RPTL        ADD TABLE LENGTH 
          RAD    T4 
 RPT2     RJM    SSE         SEARCH FOR *RP* EQUIPMENT
          ZJN    RPT1        IF FOUND 
          LDD    T4 
          ZJN    RPTX        IF NO TABLE SPACE RESERVED 
          LDD    CA+1 
          LPN    1S"RPTSM"-1
          ADD    T4 
  
 RPT      SUBR               ENTRY/EXIT 
          LDN    0
          STD    T4 
          LDC    1S17+2RRP
          UJN    RPT2        SEARCH FOR EQUIPMENT 
 SAB      SPACE  4,10 
**        SAB - VERIFY SYSTEM ATTRIBUTE BLOCK.
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
  
  
 SAB      SUBR               ENTRY/EXIT 
          LDK    SABL 
          RJM    CTA
          LDD    CM+2        TABLE LENGTH 
          UJN    SABX        RETURN 
 SCD      SPACE  4,10 
**        SCD - VERIFY *SCD* PARAMETER TABLE. 
* 
*         EXIT   (A) = 0. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CLS, CTA, SPT. 
  
  
 SCD1     LDC    PSAL        CLEAR SAVE AREA
          RJM    CLS
 SCD2     LDN    0
  
 SCD      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          NJN    SCD2        IF NOT 180-CLASS MAINFRAME 
          LDC    SCDP        FETCH PARAMETER TABLE POINTER
          CRD    CM 
          LDD    CM+2 
          ADD    CM+3 
          ZJN    SCD1        IF NO *SCI* PARAMETER TABLE
          LDC    2S12+SCDP
          RJM    CTA
          RJM    SPT         SET UP PARAMETER TABLE 
          UJN    SCD1        RESERVE PP RESIDENT SAVE AREA
 SCT      SPACE  4,10 
**        SCT - VERIFY SUBSYSTEM CONTROL TABLE. 
* 
*         EXIT   (A) = TABLE LENGTH.
* 
*         CALLS  CTA. 
  
  
 SCT      SUBR               ENTRY/EXIT 
          LDC    2S12+SSCP
          RJM    CTA
          LDN    SSCTL*2     TABLE LENGTH 
          UJN    SCTX        RETURN 
 SDA      SPACE  4,10 
**        SDA - VERIFY STATISTICAL DATA AREA. 
* 
*         EXIT   (A) = STATISTICAL DATA AREA LENGTH.
* 
*         CALLS  CTA. 
  
  
 SDA      SUBR               ENTRY/EXIT 
          LDC    SDAP        CHECK STATISTICAL AREA POINTER 
          RJM    CTA
          LDN    SDAL        SET STATISTICAL AREA LENGTH
          UJN    SDAX        RETURN 
 SIE      SPACE  4,10 
**        SIE - *SET* INTERNAL ERROR. 
* 
*         ENTRY  TABLE VERIFICATION PROCESSOR MISSING.
* 
*         EXIT   TO *DSE*.
  
  
 SIE      CON    0           ENTRY
          LDC    =C+*SET* INTERNAL ERROR IN *RCM*.+ 
          JMP    DSE         DISPLAY ERROR AND HANG 
 SIT      SPACE  4,10 
**        SIT - VERIFY *SECDED* ID TABLE. 
* 
*         EXIT   (A) = 0. 
* 
*         CALLS  CLS, CTA.
  
  
 SIT      SUBR               ENTRY/EXIT 
          LDM    C8XX 
          ZJN    SITX        IF LOWER 800 SERIES MAINFRAME
          LDC    SCRL 
          RJM    CTA
          LDN    2*/SCR/UIDL CLEAR *SECDED* ID TABLE
          RJM    CLS
          LDN    0
          UJN    SITX        RETURN 
 TRT      SPACE  4,10 
**        TRT - VERIFY TRACK RESERVATION TABLE POINTERS.
* 
*         EXIT   (A) = 0. 
* 
*         USES   EQ, CM - CM+4, CN - CN+4.
* 
*         CALLS  CDL, SME.
  
  
 TRT2     LDD    AB+4        FETCH TRT LENGTH 
          SHN    3
          ADK    TDGL 
          CRD    CM 
          ADN    TRLL-TDGL   READ TRT ADDRESS 
          CRD    CN 
          LDD    CN+4        CHECK TRT ADDRESS
          LMD    CA+1 
          NJN    TRT1        IF ADDRESS BAD 
          LDD    CN+3 
          LPN    77 
          LMD    CA 
          NJN    TRT1        IF ADDRESS BAD 
          RJM    CDL
          RAD    CA+1        ADVANCE CENTRAL ADDRESS
          SHN    -14
          RAD    CA 
 TRT3     RJM    SME
          NJN    TRT2        IF NOT END OF MS EST 
  
 TRT      SUBR               ENTRY/EXIT 
          LDN    NOPE-1 
          STD    EQ 
          UJN    TRT3        BEGIN EQUIPMENT SEARCH 
  
 TRT1     LDC    =C*TRT ADDRESS ERROR.* 
          JMP    DSE         DISPLAY ERROR AND HANG 
          TITLE  PRIMARY SUBROUTINES. 
 CTA      SPACE  4,10 
**        CTA - CHECK TABLE ADDRESS.
* 
*         ENTRY  (A) BITS  0 - 11 = POINTER WORD ADDRESS. 
*                    BITS 12 - 14 = BYTE INDEX. 
*                (CA - CA+1) = CURRENT CM ADDRESS.
* 
*         EXIT   (A) = 0. 
*                (T5) = POINTER WORD ADDRESS. 
*                (CM - CM+4) = POINTER WORD.
* 
*         USES   T4.
  
  
 CTA2     LDI    T4          CHECK POINTER
          LMD    CA 
          LPN    77 
          NJN    CTA1        IF POINTER WORD ERROR
  
 CTA      SUBR               ENTRY/EXIT 
          STD    T5          SAVE POINTER WORD ADDRESS
          SHN    -14
          ADN    CM          SET BYTE ADDRESS WITHIN POINTER WORD 
          STD    T4 
          LDD    T5          FETCH POINTER WORD 
          CRD    CM 
          LDM    1,T4        CHECK POINTER VALUE
          LMD    CA+1 
          ZJN    CTA2        IF MATCHING ADDRESS
 CTA1     LDC    =C*TABLE ADDRESS ERROR.* 
          JMP    DSE
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          COMMON
          TITLE  SUBROUTINES. 
 CDP      SPACE  4,15 
**        CDP - CHECK DAYFILE POINTERS. 
* 
*         ENTRY  (T3) = BUFFER NUMBER.
*                (T6 - T7) = FWA OF DAYFILE POINTERS. 
*                (CA - CA+1) = ADDRESS OF NEXT BUFFER.
* 
*         EXIT   (CA - CA+1) ADVANCED.
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4. 
  
  
 CDP      SUBR               ENTRY/EXIT 
          LDD    T6          VERIFY BUFFER ADDRESS
          SHN    14 
          LMD    T7 
          CRD    CM          READ FIRST/IN POINTERS 
          ADN    1
          CRD    AB 
          ADN    1           READ DAYFILE FST 
          CRD    CN 
          LDD    CM+1        VERIFY BUFFER POINTER
          LMD    CA+1 
          NJN    CDP1        IF POINTER ERROR 
          LDD    CM 
          LMD    CA 
          ZJN    CDP2        IF POINTER CORRECT 
 CDP1     LJM    CTA1        *TABLE ADDRESS ERROR.* 
  
 CDP2     STD    CM+2        CLEAR UNUSED BYTES 
          STD    CM+3 
          STD    AB 
          STD    AB+1 
          STD    AB+3 
          LDD    T3          SET BUFFER INDEX 
          SHN    6
          ADC    103         APPEND NOT BUSY / NOT INTERLOCKED STATUS 
          STD    CN+4 
          LDD    T6          UPDATE BUFFER POINTERS 
          SHN    14 
          ADD    T7 
          CWD    CM 
          ADN    1
          CWD    AB 
          ADN    1           STORE DAYFILE FST
          CWD    CN 
          LDD    CM+1        SET NEXT BUFFER ADDRESS
          ADD    AB+2 
          STD    CA+1 
          SHN    -14
          ADD    CM 
          STD    CA 
          LJM    CDPX        RETURN 
 RMC      SPACE  4,15 
**        RMC - RECOVER MSTS FROM CMR.
* 
*         ENTRY  (EQ) = EST ORDINAL.
*                (AB - AB+4) = EST ENTRY. 
*                (CA - CA+1) = CURRENT CM ADDRESS.
* 
*         EXIT   (CA - CA+1) = CM ADDRESS ADVANCED. 
*                TO *DSE* IF MST POINTER ERROR. 
* 
*         USES   T1, AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4.
* 
*         CALLS  RCA. 
* 
*         MACROS SFA. 
  
  
 RMC      SUBR               ENTRY/EXIT 
          LDD    AB+4        SAVE MST POINTER 
          STD    T1 
          SHN    3
          ADN    ACGL        GET DEVICE ACTIVITY WORD 
          CRD    CN 
          ADN    SDGL-ACGL
          CRD    AB 
          ADN    STLL-SDGL   READ DEVICE STATUS WORD
          CRD    CM 
          RJM    RCA         CHECK VALID MST POINTER
          LMD    T1 
          ZJN    RMC1        IF VALID ADDRESS 
          LDC    =C*MST POINTER ERROR.* 
          JMP    DSE         DISPLAY MESSAGE AND HANG 
  
 RMC1     LDD    CN+4        CLEAR *ACGL* INTERLOCKS
          LPC    140
          STD    CN+4 
          LDD    CN          CLEAR PARITY DEVICE ACCESS BIT FOR THIS MF 
          SCN    **          (MACHINE MASK) 
 RMCA     EQU    *-1
          STD    CN 
          LDD    AB+3        CHECK DEVICE MNEMONIC
          LMC    2RDE 
          ZJN    RMC1.1      IF *DE* DEVICE 
          LMN    2RDP&2RDE
          ZJN    RMC1.1      IF *DP* DEVICE 
          LDN    0           CLEAR *DAS* OFFLINE UNIT / CYLINDER COUNT
          STD    CN+1 
 RMC1.1   LDD    AB+4        CLEAR MST/TRT INTERLOCK IN *SDGL*
          SCN    77 
          STD    AB+4 
          LDD    CM+1        CLEAR *1MV* ACTIVE FLAG
          LPC    -200 
          STD    CM+1 
          LDD    CM+4        SET DEVICE NOT BUSY
          SCN    3
          LMN    1
          STD    CM+4 
          LDD    T1 
          SHN    3
          ADN    ACGL 
          CWD    CN 
          ADN    SDGL-ACGL
          CWD    AB 
          ADN    STLL-SDGL
          CWD    CM 
          ADN    BDLL-STLL
          CRD    CM 
          LDD    CM          CLEAR 9853/*DAS* FLAGS 
          SCN    16 
          STD    CM 
          LDD    CM+3        CLEAR DAS MMF PARITY DEVICE ACCESS FLAGS 
          LPC    7177 
          STD    CM+3 
          LDD    T1 
          SHN    3
          ADN    BDLL 
          CWD    CM 
          ADK    DALL-BDLL
          CRD    CN 
          ADN    CTLL-DALL
          CRD    AB 
          ADK    MCLL-CTLL
          CWD    ZR 
          LDN    0
          STD    AB+2        CLEAR ACTIVE BUFFER COUNT
          STD    CN+1        CLEAR UNIT INTERLOCKS
          LDD    CN          CLEAR DEVICE ACTIVITY
          SCN    77 
          STD    CN 
          LDD    T1 
          SHN    3
          ADN    DALL 
          CWD    CN 
          ADN    CTLL-DALL
          CWD    AB 
          LDD    EQ 
          NJN    RMC2        IF NOT *RD* DEVICE 
          SFA    EST,,EQ
          CRD    CM 
          LDC    2RRD        RESTORE *RD* DEVICE TYPE 
          STD    CM+3 
          LDN    0
          STD    CM+2 
          SFA    EST,EQ 
          CWD    CM 
 RMC2     LDN    MSTXL       ADVANCE CM ADDRESS 
          RAD    CA+1 
          SHN    -14
          RAD    CA 
          LJM    RMCX        RETURN 
 SBD      SPACE  4,10 
**        SBD - SEARCH FOR BUFFERED DEVICES.
* 
*         EXIT   (KI) = BUFFERED DEVICE COUNT.
* 
*         USES   EQ, CM - CM+4. 
* 
*         CALLS  CKB, PBD, SME. 
  
  
 SBD1     LDD    AB+4        READ MST 
          SHN    3
          ADN    DILL 
          CRD    CM 
          LDD    CM+2 
          ZJN    SBD2        IF NOT BUFFERED DEVICE 
          RJM    PBD
 SBD2     RJM    SME
          NJN    SBD1        IF NOT END OF EST
  
 SBD      SUBR               ENTRY/EXIT 
          LDN    0
          STD    EQ 
          RJM    CKB         CLEAR CHANNEL ACCUMULATOR
          UJN    SBD2        ENTER LOOP 
          TITLE  LEVEL 3 OPTION PROCESSING. 
          SPACE  4,10 
*         LEVEL 3 DEADSTART SYNTAX TABLE. 
  
  
 TSYN     BSS    0
          CON    ABT
          CON    AUT
          CON    DAU
          CON    GRN
          CON    RGO
          CON    UPC
          CON    0           END OF TABLE 
 ABT      SPACE  4,10 
***       ABORT.
*         ABORT,B.
*         ABORTS LEVEL 3 RECOVERY.  CHECKPOINTS ALL DEVICES UNLESS
*         *B* IS SPECIFIED IN WHICH CASE ONLY NON-BUFFERED DEVICES
*         ARE CHECKPOINTED. 
  
  
 ABT      DATA   C*ABORT* 
          LDM    DSTO        SAVE CURRENT ABORT OPTION
          LPN    14 
          STD    T1 
          LDI    KA 
          LMN    1R.
          ZJN    ABT3        IF *.* 
          LMN    1R,&1R.
          NJN    ABT1        IF NOT *,* 
          AOD    KA 
          LDI    KA 
          LMN    1RB
          ZJN    ABT2        IF *B* 
 ABT1     JMP    ILL         PROCESS INCORRECT ENTRY
  
 ABT2     LDN    14 
 ABT3     LMN    4
          STD    T0 
          SBD    T1 
          NJN    ABT4        IF NOT SAME ABORT OPTION 
          STD    T0 
 ABT4     LDM    DSTO        SET ABORT OPTION 
          SCN    14 
          LMD    T0 
          STM    DSTO 
          LPN    4           UPDATE *ABORT.* OPTION LINE
          SHN    21-2 
          ADC    OBUFA
          RJM    UDS
          LDD    T0          UPDATE *ABORT,B.* OPTION LINE
          LPN    10 
          SHN    21-3 
          ADC    OBUFB
 ABT5     RJM    UDS         UPDATE DISPLAY STATUS
          JMP    KBR         RETURN 
 AUT      SPACE  4,10 
***       AUTOLOAD. 
*         TOGGLE SELECTION OF AUTOLOADING OF MASS STORAGE CONTROLLERS.
*         INITIALLY AUTOLOADING IS SELECTED.
  
  
 AUT      DATA   C*AUTOLOAD.* 
          LDN    2           TOGGLE AUTOLOAD OPTION BIT 
          LMM    DSTO 
          STM    DSTO 
          LPN    2
          LMN    2
          SHN    21-1 
          ADC    OBUFC
          JMP    ABT5        UPDATE DISPLAY STATUS
 DAU      SPACE  4,10 
***       AUTO. 
*         TOGGLE THE *DSD* *AUTO* COMMAND SELECTION.
*         INITIALLY *AUTO* IS SELECTED. 
  
  
 DAU      DATA   C*AUTO.* 
          AOM    DAUA        TOGGLE THE SELECT
          LPN    1
          SHN    21-0 
          ADC    OBUFE
          JMP    ABT5        UPDATE DISPLAY STATUS
  
 DAUA     CON    1           DEFAULT STATUS IS *YES*
 GRN      SPACE  4,10 
***       GRENADE.
*         TOGGLE SELECTION OF THE GRENADE OPERATION FOR MASS STORAGE
*         CONTROLLERS THAT ARE AUTOLOADED.  INITIALLY THE GRENADE 
*         OPERATION IS NOT SELECTED.
* 
*         THE GRENADE OPERATION CAN INTERRUPT ACTIVITY ON A DRIVE 
*         WHICH IS BEING ACCESSED FROM ANOTHER CONTROLLER.
  
  
 GRN      DATA   C*GRENADE.*
          LDN    1           TOGGLE GRENADE OPTION BIT
          LMM    DSTO 
          STM    DSTO 
          LPN    1
          SHN    21-0 
          ADC    OBUFD
          JMP    ABT5        UPDATE DISPLAY STATUS
 RGO      SPACE  4,10 
***       GO. 
*         CONTINUE WITH RECOVERY. 
  
  
 RGO      DATA   C*GO.* 
 RGO1     LDN    0           GET CHANNEL WORD 
          RJM    GCW
          LDI    T1 
          LPN    40 
          ZJN    RGO2        IF CHANNEL UP
          LDN    0           SET DISPLAY REQUESTED
          STD    DS 
          LDC    OBUFLA      DISPLAY THE CHANNEL DOWN STATUS
          STM    DRBA 
          LJM    DRO1        UPDATE DISPLAY 
  
 RGO2     LDM    DAUA        CHECK *AUTO* SELECT
          LPN    1
          ZJN    RGO3        IF *AUTO* NOT SELECTED 
          LDK    PPCP        LOCATE *DSD* PP COMMUNICATION AREA 
          CRD    CM 
          LDD    CM+4 
          ADN    10+2 
          CWM    DAU,ON 
 RGO3     LJM    DROX        RETURN 
 UPC      SPACE  4,10 
***       UPCHAN. 
*         CLEAR THE DOWN STATUS OF THE DEADSTART CHANNEL. 
  
  
 UPC      DATA   C*UPCHAN.* 
          LDC    OBUFL       RESET THE DISPLAY
          STM    DRBA 
          LDN    0           GET CHANNEL WORD 
          RJM    GCW
          LDI    T1          CLEAR THE DOWN STATUS
          SCN    40 
          STI    T1 
          LDD    T2          STORE THE CHANNEL WORD 
          SHN    14 
          LMD    T3 
          CWD    CM 
          LDN    CTALL       ACCESS THE EJT ASSIGNMENT TABLE
          RJM    GCW
          LDN    0           CLEAR POSSIBLE EJT ASSIGNMENT
          STI    T1 
          LDD    T2          RESTORE THE WORD 
          SHN    14 
          LMD    T3 
          CWD    CM 
          LDK    ESTP 
          CRD    AB 
 UPC1     SOD    AB+2 
          ZJP    RGO2        IF END OF EST
          SFA    EST
          ADK    EQDE 
          CRD    CM 
          LDN    CM          INITIALIZE CHANNEL INDEX 
          STD    T1 
 UPC2     AOD    T1          ADVANCE CHANNEL BYTE INDEX 
          LMN    CM+3 
          ZJN    UPC1        IF NO MORE CHANNELS
          LDI    T1 
          ZJN    UPC1        IF NULL CHANNEL
          LMD    DH 
          LPN    77 
          NJN    UPC2        IF NOT DEADSTART CHANNEL 
          LDI    T1          CLEAR DOWN STATUS
          LPC    4777 
          STI    T1 
          SFA    EST,AB+2    UPDATE EST ENTRY 
          ADK    EQDE 
          CWD    CM 
          UJN    UPC1        LOOP ON SEARCH 
 DRO      SPACE  4,10 
**        DRO - DISPLAY RECOVERY OPTIONS. 
* 
*         USES   DP.
* 
*         CALLS  AKL, CKB.
* 
*         MACROS CFNC, DFIM.
* 
*         NOTES  EXIT FROM *DRO* IS THRU KEYBOARD ASSEMBLY ON 
*                A *GO.* COMMAND. 
  
  
          DFIM   (CON SDCF),*+1 
 DROX     LDC    DDCF        DESELECT DISPLAY CONTROLLER
          CFNC
          LDD    TH          DELAY
          SBN    1
          NJN    *-1
          DCN.   CH 
  
          LJM    *           ENTRY/EXIT 
 DRO      EQU    *-1
          LDC    DRB
          STM    AKLB 
          LDC    **          SET *IBF* IMMEDIATE RETURN 
          ORG    *-1
          LOC    IBFA 
          UJN    IBFX        RETURN 
          LOC    *O 
          STM    IBFA 
          LDN    DP 
          STD    LA 
          LDC    TSYN-1      SET SYNTAX TABLE ADDRESS 
          STI    LA 
          LDN    1           SET KEYBOARD ASSEMBLY
          STD    AM 
          LDD    DS 
          NJP    RGO1        IF NO DISPLAY REQUESTED
 DRO1     AOM    AKLA 
 DRO2     RJM    AKL         ASSEMBLE KEYBOARD LINE 
          LDD    KI 
          ZJN    DRO2        IF NO INPUT
          RJM    CKB
          UJN    DRO1        GET NEXT LINE
 DRB      SPACE  4,10 
**        DRB - DISPLAY LEVEL 3 RECOVERY BUFFERS. 
* 
*         MACROS CFNC.
  
  
 DRB      SUBR               ENTRY/EXIT 
          CFNC   SLMF        SELECT LEFT SCREEN - MEDIUM CHARACTERS 
          LDC    OBUFL       DISPLAY OPTIONS
*         LDC    OBUFLA      (DEADSTART CHANNEL DOWN) 
 DRBA     EQU    *-1
          OAM    OBUF,CH
          FJM.   *,CH        WAIT TRANSMISSION COMPLETE 
          DCN.   CH 
          CFNC   SRSF        SELECT RIGHT SCREEN - SMALL CHARACTERS 
          LDC    IBUFL       DISPLAY INSTRUCTIONS 
          OAM    IBUF,CH
          STM    AKLA 
          CFNC   THCF        TRANSFER HIDDEN AND CLEAR
          DCN.   CH 
          UJP    DRBX        RETURN 
 GCW      SPACE  4,10 
**        GCW - GET CHANNEL CONTROL WORD. 
* 
*         ENTRY  (A) = CHANNEL TABLE OFFSET.
* 
*         EXIT   (T1) = BYTE ADDRESS. 
*                (T2 - T3) = CM WORD ADDRESS. 
*                (CM - CM+4) = CHANNEL TABLE WORD.
* 
*         USES   CM - CM+4, T1 - T3.
  
  
 GCW      SUBR               ENTRY/EXIT 
          STD    T3          SAVE TABLE OFFSET
          LDD    DH          DEADSTART CHANNEL
          STD    T1 
 GCW1     AOD    T3          INCREMENT WORD INDEX 
          LCN    5           DIVIDE BY 5 LOOP 
          RAD    T1 
          PJN    GCW1        IF NOT END OF DIVIDE 
          ADN    5+CM 
          STD    T1 
          LDK    CHTP        FORM ADDRESS 
          CRD    CM 
          LDD    CM+2 
          SHN    14 
          LMD    CM+3 
          SBN    1
          ADD    T3          ADD WORD INDEX 
          CRD    CM 
          STD    T3 
          SHN    -14
          STD    T2 
          UJN    GCWX        RETURN 
 UDS      SPACE  4,10 
**        UDS - UPDATE DISPLAY STATUS.
* 
*         *UDS* UPDATES THE SELECTION STATUS (YES OR NO) OF A 
*         COMMAND IN THE OPTION DISPLAY BUFFER. 
* 
*         ENTRY  (A) = 1/ST, 5/0, 12/BUF. 
*                      ST = SELECTION STATUS (0=NO, 1=YES). 
*                      BUF = DISPLAY BUFFER ADDRESS.
* 
*         USES   T1, T2.
  
  
 UDS      SUBR               ENTRY/EXIT 
          STD    T1          SAVE DISPLAY BUFFER ADDRESS
          SHN    1-21        SELECTION STATUS * 2 
          ADC    UDSA 
          STD    T2 
          LDI    T2          UPDATE DISPLAY 
          STI    T1 
          LDM    1,T2 
          STM    1,T1 
          UJN    UDSX        RETURN 
  
 UDSA     DATA   H*  NO*
          DATA   H* YES*
          SPACE  4,10 
*         LEVEL 3 OPTION BUFFER (LEFT SCREEN).
  
 OBUF     BSS    0
          DFIM   (CON YCPH) 
          CON    LN03,CH17
          DATA   H*LEVEL 3 OPTIONS* 
          DFIM   (CON LN07) 
          CON    LN13,CH09
          DATA   H*ABORT.*
          CON    CH49 
 OBUFA    DATA   H*  NO*
          DFIM   (CON LN11) 
          CON    LN19,CH09
          DATA   H*ABORT,B.*
          CON    CH49 
 OBUFB    DATA   H*  NO*
          DFIM   (CON LN15) 
          CON    LN25,CH09
          DATA   H*AUTOLOAD.* 
          CON    CH49 
 OBUFC    DATA   H* YES*
          DFIM   (CON LN19) 
          CON    LN31,CH09
          DATA   H*GRENADE.*
          CON    CH49 
 OBUFD    DATA   H*  NO*
          DFIM   (CON LN23) 
          CON    LN37,CH09
          DATA   H*AUTO.* 
          CON    CH49 
 OBUFE    DATA   H* YES*
 OBUFL    EQU    *-OBUF 
          DFIM   (CON LN26) 
          CON    LN43,CH09
          DATA   H*DEADSTART CHANNEL IS DOWN,*
          DFIM   (CON LN27) 
          CON    LN45,CH09
          DATA   H$ENTER *UPCHAN.* TO CONTINUE.$
 OBUFLA   EQU    *-OBUF 
  
*         LEVEL 3 INSTRUCTION BUFFER (RIGHT SCREEN).
  
 IBUF     BSS    0
          CON    YCPH,CH03
          DATA   H*INSTRUCTIONS FOR SELECTING LEVEL 3 RECOVERY OPTIONS.*
          CON    HL03,CH07
          DATA   H*ENTER COMMAND TO TOGGLE SELECTION.*
          CON    HL04,CH07
          DATA   H*ENTER GO. TO CONTINUE RECOVERY.* 
  
          CON    LN07,CH03
          DATA   H*ABORT.*
          CON    LN08,CH07
          DATA   H*CHECKPOINT ALL DEVICES AND ABORT LEVEL 3 RECOVERY.*
          CON    LN09,CH07
          DATA   H+SELECTING *ABORT.* DESELECTS *ABORT,B.*.+
  
          CON    LN11,CH03
          DATA   H*ABORT,B.*
          CON    LN12,CH07
          DATA   H*CHECKPOINT ALL NON-BUFFERED DEVICES AND ABORT LEVEL* 
          CON    LN13,CH07
          DATA   H+3 RECOVERY.  SELECTING *ABORT,B.* DESELECTS *ABORT.*+
  
          CON    LN15,CH03
          DATA   H*AUTOLOAD.* 
          CON    LN16,CH07
          DATA   H*TOGGLE THE SELECTION OF BUFFER CONTROLLER AUTOLOADING
,.* 
  
          CON    LN18,CH03
          DATA   H*GRENADE.*
          CON    LN19,CH07
          DATA   H*TOGGLE THE SELECTION OF THE GRENADE FUNCTION.  THE*
          CON    LN20,CH07
          DATA   H*GRENADE FUNCTION IS ISSUED ONCE THE CONTROLWARE IS*
          CON    LN21,CH07
          DATA   H*LOADED, CAUSING UNIT RESERVATIONS TO BE CLEARED ON*
          CON    LN22,CH07
          DATA   H*ALL 844 UNITS PHYSICALLY CONNECTED TO EACH CONTROLLER
,.* 
  
          CON    LN24,CH03
          DATA   H*AUTO.* 
          CON    LN25,CH07
          DATA   H*TOGGLE THE SELECTION OF THE DSD AUTO COMMAND.* 
 IBUFL    EQU    *-IBUF 
          SPACE  4,10 
          USE    LITERALS    DUMP LITERALS BLOCK
 PRT      SPACE  4,10 
**        PRT - PRESET *RCT*. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MDIN.
  
  
 PRT      SUBR               ENTRY/EXIT 
          LDK    MMFL 
          CRD    CM 
          LDD    CM+3        SET MACHINE MASK 
          RAM    RMCA 
          LDM    .DCS 
          ZJN    PRTX        IF DEADSTART INITIATED FROM CC545
          MDIN               MODIFY DISPLAY GENERATORS
          UJN    PRTX        RETURN 
          SPACE  4,10 
*         INSTRUCTION MODIFICATION BLOCK. 
  
  
          DIMB
  
  
          ERRNG  7777-*-4    IF OVERFLOW OF PP
          TTL    SET/SCP - SETUP CONTROL POINT AREAS. 
          TITLE 
          IDENT  SCP,OVL
          QUAL   SCP
          ORG    OVL
*COMMENT  SET - SETUP CONTROL POINT AREAS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SCP      SPACE  4,10 
**        SCP - SETUP CONTROL POINTS. 
* 
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T1 - T6.
* 
*         CALLS  INO, IRS, SCA, SFL, SMT, SSF, SXP. 
  
  
 SCP      SUBR               ENTRY/EXIT 
          RJM    INO         INITIALIZE OVERLAY 
          LDN    0
          RJM    SSF         SETUP *CMRL*+1 
          LDC    UEML 
          CRD    AB 
          ADN    CPAS-UEML   SET FIRST CONTROL POINT ADDRESS
          STD    T1 
          LDD    HO 
          SHN    21-13
          LMD    AB+4        GET CM COPY FLAG 
          SCN    1
          LMM    EMAF        GET EXPANDED MODE ADDRESSING FLAG
          SHN    10-1 
          LPC    700
          LMD    HN          SET/CLEAR UEM ENABLE FLAG
          STM    SCPG 
 SCP1     RJM    SFL         SETUP CP FIELD LENGTH WORDS
          LDN    ZERL 
          CRD    AB 
          CRD    CM 
          CRD    CN 
          LDD    T1          SET MA 
          STD    CM+1 
          ADN    FLSW        FETCH CM FL CONTROL WORD 
          CRD    T2 
          LDD    T5          SET RA 
          SHN    6
          STD    AB+1 
          LMD    AB+1 
          LMD    T4 
          SHN    6
          STD    AB 
          LDD    T6          SET FL 
          SHN    6
          STD    CN+1 
          SHN    -14
          STD    CN 
          LDD    T1 
          ADN    1           STORE (RA) 
          CWD    AB 
          ADN    2-1         STORE (FL) 
          CWD    CN 
          ADN    3-2         STORE (EM) 
          CWM    SCPG,ON
          ADN    ECSW-4      FETCH EXTENDED MEMORY FL CONTROL WORD
          CRD    T2 
          LDD    T4          SET RAE
          SHN    14 
          ADD    T5 
 SCPA     SHN    21-2 
*         SHN    21-2+UESC
          STD    AB 
          SHN    -6 
          SCN    77 
          STD    AB+1 
          LDD    T6          SET FLE
 SCPB     SHN    21-2 
*         SHN    21-2+UESC
          STD    CN 
          SHN    -6 
          SCN    77 
          STD    CN+1 
          LDM    EMAF 
          ZJN    SCP2        IF NOT EXPANDED MODE 
          LDD    AB          CONVERT RAE TO EXPANDED FORMAT 
          SHN    14 
          STD    AB 
          LMD    AB+1 
          SHN    -6 
          STD    AB+1 
          LDD    CN          CONVERT FLE TO EXPANDED FORMAT 
          SHN    14 
          STD    CN 
          LMD    CN+1 
          SHN    -6 
          STD    CN+1 
 SCP2     LDD    T1 
          ADN    4           STORE (RAE)
          CWD    AB 
          ADN    5-4         STORE (FLE)
          CWD    CN 
          ADN    6-5         STORE (MA) 
          CWD    CM 
          ADN    7-6         STORE (EA) 
          CWD    CM 
          ADN    TFSW-7      FETCH EST ORDINAL
          CRD    T2 
          LDD    T2 
          ZJN    SCP4        IF NO JOB ASSIGNED 
          LDD    T1 
          ADN    STSW        FETCH CP STATUS
          CRD    CM 
          LDN    0           CLEAR PP ACTIVITY
          STD    CM 
 SCP4     RJM    IRS
          ADN    SPCW-STSW   CLEAR SPECIAL PROCESSOR CALL WORD
          CWD    ZR 
          ADC    CRCW-SPCW   CLEAR *X* STATUS CPU RECALL CRITERION
          CWD    ZR 
          LDD    T1          SET UP FLSW+1
          RJM    SSF
          LDC    200         ADVANCE CP ADDRESS 
          RAD    T1 
          SHN    -7 
          SBD    NC 
          MJP    SCP1        IF NOT END OF CP-S 
  
*         SET UP SYSTEM CONTROL POINT.
  
          RJM    SFL         SETUP FIELD LENGTH WORDS 
          RJM    SXP         SETUP *CPUMTR* PRESET EXCHANGE PACKAGE 
          ADN    CWQW-15     STORE CPU SCHEDULING PARAMETERS
          CWM    SCPD,ON
          ADN    FLSW-CWQW-1
          CWD    ZR 
          ADN    JCIW-FLSW   STORE JOB CONTROL
          CWM    SCPH,ON
          ADN    CPTW-JCIW-1
          CWD    ZR 
          CRD    CM 
          ADN    MP3W-CPTW
          CWM    SCPI,ON     DISABLE SRU ACCUMULATION 
          ADN    STLW-MP3W
          CWM    SCPE,ON     SET MAXIMUM LIMITS FOR SRU AND TIME
          ADN    ALMW-STLW-1
          CWM    SCPE,ON
          ADK    ACLW-ALMW-1
          CWM    SCPE,ON
          ADK    AACW-ACLW-1
          CWM    SCPE,ON
          ADN    CPLW-AACW-1
          CWM    SCPF,ON
          LDD    T1          SETUP *FLSW*+1 
          RJM    SSF
          LDM    SPPC        INITIALIZE PP RECALL STACK 
          RJM    IRS
          LDM    .NPCP       SET NUMBER OF PSEUDO CONTROL POINTS
          STD    T2 
          ZJN    SCP6        IF NONE OR CM RECOVERY 
  
*         SET UP PSEUDO CONTROL POINT AREAS.
  
          LDD    NC          INITIALIZE PCP NUMBER
          STD    T1 
          SBN    CPLK        CP LINK TO PCP-S 
          SHN    7
          ADN    FLSW        GET MEMORY CONTROL WORDS 
          CRM    MCWB,TR
 SCP5     AOD    T1          ADVANCE AND SET PCPA ADDRESS 
          RJM    SCA
          ADN    FLSW        STORE MEMORY CONTROL WORDS 
          CWM    MCWB,TR
          SOD    T2 
          NJN    SCP5        IF MORE PCP-S
  
*         BUILD MEMORY CONTROL TABLE. 
  
 SCP6     UJN    SCP7        SKIP TABLE ON CM RECOVERY
 SCPC     EQU    SCP6 
*         PSN                (NON CM RECOVERY)
          RJM    SMC         SET UP MEMORY CONTROL TABLE
          LDN    ACML        STORE UNASSIGNED MEMORY
          CWM    .ACML,ON 
 SCP7     LJM    SCPX        RETURN 
  
  
 SCPD     VFD    2/1,7/MPRS,3/2,12/0,9//SCD/SSSC*JCBE,3/0,24/0
 SCPE     VFD    60/-0
 SCPF     VFD    60/37777777777777777777B 
 SCPG     VFD    60/0        EXCHANGE PACKAGE WORD WITH CM COPY FLAG
 SCPH     VFD    24/0,12/7777,24/0
  
 SCPI     VFD    1/1,59/0 
          TITLE  SUBROUTINES. 
          SPACE  4,10 
**        COMMON SUBROUTINES. 
  
  
          MCTSUB
 IRS      SPACE  4,10 
**        IRS - INITIALIZE PP RECALL STACK. 
* 
*         ENTRY  (T1) = CONTROL POINT ADDRESS.
*                (CM - CM+4) = *STSW* WORD. 
* 
*         EXIT   (A) = ADDRESS OF *STSW* WORD.
*                *STSW* WORD UPDATED IN CONTROL POINT AREA. 
* 
*         USES   T2 - T2+4. 
  
  
 IRS      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    T2 
          LDN    2
          STD    T2+4 
 IRS1     LDD    T1          INITIALIZE RECALL LINKAGE BLOCK
          ADC    RCCW-2 
          ADD    T2+4 
          CWD    T2 
          ADN    RECW-RCCW   CLEAR REQUEST BLOCK
          CWD    ZR 
          AOD    T2+4        ADVANCE LINKAGE
          LMN    LREC+1 
          NJN    IRS1        IF NOT END OF RECALL AREA
          LDD    CM+1 
          LMK    PEET 
          ZJN    IRS2        IF CPU PARITY ERROR
          LDN    0           CLEAR ERROR FLAG 
          STD    CM+1 
 IRS2     LDN    1           SET NEXT AVAILABLE RECALL SLOT 
          STD    CM+4 
          LDD    T1          STORE CONTROL POINT STATUS WORD
          ADN    STSW 
          CWD    CM 
          UJN    IRSX        RETURN 
 SFL      SPACE  4,10 
**        SFL - SET CONTROL POINT FIELD LENGTH WORDS. 
* 
*         ENTRY  (T1) = CP ADDRESS. 
*                (NC) = SYSTEM CONTROL POINT NUMBER.
* 
*         EXIT   *FLSW* WRITTEN TO CP AREA. 
*                *ECSW* WRITTEN TO CP AREA. 
  
  
 SFL1     LDN    SFLE-SFLD   SET *FLSW* FOR REMAINING CP-S
          RAM    SFLB 
          LDN    SFLG-SFLF   SET *ECSW* FOR REMAINING CP-S
 SFL2     RAM    SFLC 
  
 SFL      SUBR               ENTRY/EXIT 
 SFLA     UJN    SFLX        RETURN IF CM RECOVERY
*         PSN                (IF INITIALIZING CM) 
          LDD    T1 
          ADN    FLSW 
          CWM    SFLD,ON     STORE *FLSW* FOR FIRST CP
*         CWM    SFLE,ON     (*FLSW* FOR REMAINING CP-S)
 SFLB     EQU    *-1
          ADK    ECSW-FLSW-1
          CWM    SFLF,ON     STORE *ECSW* FOR FIRST CP
*         CWM    SFLG,ON     (*ECSW* FOR REMAINING CP-S)
*         CWM    SFLH,ON     (*ECSW* FOR SYSTEM CP) 
 SFLC     EQU    *-1
          SHN    -7 
          SBN    1
          ZJN    SFL1        IF FIRST CP
          SBD    NC 
          ADN    2
          NJN    SFLX        IF NOT LAST CP 
          LDN    ZERL 
          CRM    SFLE,ON     SET *FLSW* FOR SYSTEM CP 
          LDN    SFLH-SFLG
          UJN    SFL2        SET *ECSW* FOR SYSTEM CP 
  
  
 SFLD     VFD    60/0        *FLSW* FOR FIRST CONTROL POINT 
 SFLE     VFD    60/0        *FLSW* FOR CONTROL POINTS
 SFLF     VFD    60/0        *ECSW* FOR FIRST CONTROL POINT 
 SFLG     VFD    60/0        *ECSW* FOR CONTROL POINTS
 SFLH     VFD    60/0        *ECSW* FOR SYSTEM CONTROL POINT
 SMC      SPACE  4,10 
**        SMC - SETUP MEMORY CONTROL TABLE. 
* 
*         ENTRY  (NC) = SYSTEM CP NUMBER. 
*                (NS) = MCT ENTRY COUNT.
* 
*         USES   KA, KB, CN - CN+4. 
* 
*         CALLS  CTE. 
  
  
 SMC      SUBR               ENTRY/EXIT 
          LDN    0
          STD    KA          INITIALIZE CP NUMBER 
          CRD    CN 
          LDD    NS          SET MCT ENTRY COUNT
          STD    KB 
 SMC1     LDD    KA 
          STD    CN          SET BACKWARD LINK
          LDD    CN+1 
          STD    KA          CURRENT = PREVIOUS FORWARD LINK
          LMD    NC 
          ZJN    SMC3        IF CREATING ENTRY FOR SYSTEM CP
          AOD    CN+1 
          ADN    CPLK        CHECK NEW FORWARD LINK 
          SBD    NC 
          NJN    SMC2        IF NOT CP TO LINK TO PCP-S 
          LDD    NC 
          ADN    1           SET FIRST PCP NUMBER 
          STD    CN+1 
 SMC2     LDD    CN+1        CHECK NEW FORWARD LINK 
          LMD    NS 
          NJN    SMC4        IF NOT LINKING OUT OF PCP-S
          LDD    NC 
          SBN    CPLK        SET FORWARD LINK TO REAL CP
 SMC3     STD    CN+1 
 SMC4     LDN    FLSW        CREATE TABLE ENTRY FOR CM
          RJM    CTE
 SMCA     UJN    SMC5        (USER XM NOT IN UEM) 
          ORG    SMCA 
          LDN    ECSW        CREATE TABLE ENTRY FOR XM
          RJM    CTE
 SMC5     SOD    KB 
          NJN    SMC1        IF NOT END OF TABLE
          UJP    SMCX        RETURN 
 SSF      SPACE  4,10 
**        SSF - SET SECOND FLSW/CMRL WORD.
* 
*         ENTRY  (A) = CONTROL POINT AREA ADDRESS.
* 
*         USES   AB - AB+4. 
  
  
 SSF      SUBR               ENTRY/EXIT 
          ADN    FLSW 
          CRD    AB 
          STD    T0 
          LDD    AB+2        FORM RA - NFL
          SHN    14 
          ADD    AB+3 
          SBD    AB 
          STD    AB+2 
          SHN    -14
          STD    AB+1 
          LDC    4000        FORM 4000 + NFL
          ADD    AB 
          STD    AB+3 
          LDN    0
          STD    AB 
          AOD    T0          WRITE SECOND WORD
          CWD    AB 
          UJN    SSFX        RETURN 
 SXP      SPACE  4,15 
**        SXP - SETUP *CPUMTR* PRESET EXCHANGE PACKAGE. 
* 
*         ENTRY  (EN) = EXTENDED MEMORY EST ORDINAL.
*                (HO) = HARDWARE OPTIONS. 
*                (NC) = SYSTEM CONTROL POINT NUMBER.
*                (FL - FL+1) = CM FIELD LENGTH. 
* 
*         EXIT   (A) = EXCHANGE PACKAGE ADDRESS OF X5.
*                (T1) = EXCHANGE PACKAGE ADDRESS. 
* 
*         USES   AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7.
  
  
 SXP      SUBR               ENTRY/EXIT 
          LDM    EMSC 
          RAM    SXPA 
          STM    SXPB        PRESET SHIFT INSTRUCTIONS
          LPN    77 
          RAM    SXPC 
          LDN    ZERL 
          CRD    AB 
          CRD    CM 
          CRD    CN 
          ADN    UEML-ZERL   READ UEM PARAMETERS
          CRD    T3 
          LDD    FL+1        SET CM FIELD LENGTH
          SHN    6
          STD    CM+1 
          LDD    FL 
          SHN    14 
          LMD    FL+1 
          SHN    -6 
          STD    CM 
          LDD    HO          SET/CLEAR UEM ENABLE FLAG
          SHN    21-13
          LMD    T3+4        GET CM COPY FLAG 
          SCN    1
          LMM    EMAF        SET/CLEAR EXPANDED MODE ADDRESSING 
          SHN    7-0
          LPC    700
          LMC    100+EEMC&1  APPEND EXIT MODE 
          STD    CN 
          LDM    EMTY 
          ZJN    SXP1        IF NO CPU ACCESS EST ENTRY PRESENT 
          LMN    4
          ZJN    SXP1        IF UEM DEFINED 
          LDD    CN          CLEAR CM COPY FLAG FOR *CPUMTR*
          LPC    -400 
          STD    CN 
 SXP1     LDD    NC 
          SHN    7
          STD    AB+1        SET (MA) 
          STD    T1 
          ADN    1           CLEAR (RA) 
          CWD    ZR 
          ADN    2-1         STORE (FL) 
          CWD    CM 
          ADN    3-2         STORE (EM) 
          CWD    CN 
          ADN    6-3         STORE (MA) 
          CWD    AB 
          ADN    7-6         STORE (EA) 
          CWD    AB 
          LDM    DSFL+1 
          ADD    CM+1 
          STD    AB+1        ADJUST FL FOR DSCB 
          SHN    -14
          ADM    DSFL 
          ADD    CM 
          STD    AB 
          LDN    0           CLEAR DIRECT CELLS 
          STD    CN 
          LDD    EN 
          NJN    SXP2        IF EXTENDED MEMORY EQUIPMENT DEFINED 
          LDD    T7 
          LPN    2
          ZJP    SXP6        IF NO USER XM IN UEM 
          LDD    T4 
          UJN    SXP3        USE XM FIELD LENGTH FROM *UEML*
  
 SXP2     LDM    EMFL 
 SXP3     SHN    0
*         SHN    EMSC 
 SXPA     EQU    *-1
          SHN    17 
          STD    CN 
          SHN    -6 
          SCN    77 
          STD    CN+1 
          LDM    EMAF 
          ZJN    SXP4        IF NOT EXTENDED MODE 
          LDD    CN 
          SHN    14 
          STD    CN          CONVERT FLE TO EXPANDED FORMAT 
          LMD    CN+1 
          SHN    -6 
          STD    CN+1 
          LDD    CM 
          SHN    14 
          STD    CM          CONVERT RAE TO EXPANDED FORMAT 
          LMD    CM+1 
          SHN    -6 
          STD    CM+1 
 SXP4     LDM    EMTY 
          NJN    SXP5        IF XM EQUIPMENT DEFINED
          LDD    T7 
          LPN    2
          NJN    SXP7        IF UEM WITH NO EQUIPMENT 
 SXP5     SBN    3
          ZJN    SXP6        IF LCME
          SBN    4-3
          ZJN    SXP7        IF UEM 
          LDC    4000 
          RAD    CN          ENABLE FLAG REGISTER OPERATIONS
          LDD    T7 
          LPN    2
          ZJN    SXP6        IF NOT SIMULTANEOUS UEM/EXTENDED MEMORY
          LDD    T4 
 SXPB     SHN    0
*         SHN    EMSC        (EMSC = EXTENDED MEMORY SHIFT COUNT) 
          LPN    7
          SHN    11 
          RAD    AB+1        INCREASE FL TO INCLUDE USER XM 
          SHN    -14
          RAD    AB 
          LDD    T4 
 SXPC     SHN    -3 
*         SHN    -3+EMSC
          RAD    AB 
          LDD    T1          UPDATE (FL) IN EXCHANGE PACKAGE
          ADN    2
          CWD    AB 
 SXP6     LDN    ZERL        CLEAR RAE
          CRD    CM 
 SXP7     LDD    T1 
          ADN    4           STORE (RAE)
          CWD    CM 
          ADN    5-4         STORE (FLE)
          CWD    CN 
          ADN    14-5        PASS FL IN X4
          CWD    AB 
          ADN    15-14       PASS FLE IN X5 
          CWD    CN 
          LJM    SXPX        RETURN 
 INO      SPACE  4,10 
**        INO - INTIALIZE OVERLAY.
* 
*         ENTRY  (RS) = RECOVERY STATUS.
*                (NC) = SYSTEM CONTROL POINT NUMBER.
*                (FL - FL+1) = EXECUTION FIELD LENGTH.
* 
*         EXIT   (NS) = NUMBER OF MCT ENTRIES.
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         CALLS  CLS. 
* 
*         MACROS MCTPRS.
  
  
 INO      SUBR               ENTRY/EXIT 
          LDM    UESC 
          RAM    SCPA        PRESET SHIFT INSTRUCTIONS
          STM    SCPB 
          MCTPRS             SET UP *MCTSUB* ROUTINES 
          LDD    RS 
          LPN    SYMK 
          LMN    SYCM 
          ZJN    INOX        IF RECOVERING CENTRAL MEMORY 
          LDN    PSNI 
          STM    SFLA        ENABLE *FLSW*/*ECSW* INITIALIZATION
          STM    SCPC 
          LDC    CPAS 
          STD    CA+1 
          SHN    -14
          STD    CA 
          LDD    NC 
          SHN    7
          RJM    CLS         CLEAR CONTROL POINT AREAS
          LDN    CMRL 
          CRD    CM 
          LDD    CM+4        PRESET *FLSW* FOR FIRST CP 
          STM    SFLD+3 
          LDD    FL          PRESET *FLSW* FOR CONTROL POINTS 
          STM    SFLE+2 
          LDD    FL+1 
          STM    SFLE+3 
          LDN    ECRL 
          CRD    CM 
          ADK    UEML-ECRL
          CRD    CN 
          LDD    CN+4 
          LPN    2
          ZJN    INO1        IF UEM NOT DEFINED 
          LDD    CM 
          NJN    INO1        IF UEM DEFINED AS EXTERNAL EQUIPMENT 
          LDD    CM+4 
          STM    SFLF+3      FIRST CP RAX = CP ZERO FLX 
          LDD    CM+1 
          STM    SFLG+3      CP RAX = TOTAL USER XM FL
          STM    SFLH+4 
          UJN    INO2        RETURN 
  
 INO1     LDC    *           DISABLE XM MCT ENTRIES 
          ORG    *-1
          LOC    SMCA 
          UJN    SMC5        SKIP CREATION OF XM ENTRIES IN MCT 
          LOC    *O 
          STM    SMCA 
 INO2     LJM    INOX        RETURN 
          SPACE  4,10 
 MCWL     EQU    ECRL+1-FLSW  LENGTH OF MEMORY CONTROL WORDS
          ERRNZ  MCWL-3      CODE DEPENDS ON VALUE
 MCWB     EQU    10000-5*MCWL BUFFER FOR MEMORY CONTROL WORDS 
          SPACE  4,10 
          QUAL
 SCP      EQU    /SCP/SCP 
  
  
          ERRNG  7777-*-4    IF PP OVERFLOW 
          TTL    SET - INITIALIZE SYSTEM. 
          SPACE  4
          END 
