IDENT MSI,ORIG
ABS
SST
ENTRY MSI
ENTRY FLAW
ENTRY RFL=
ENTRY SSJ=
ENTRY UTL=
SYSCOM B1
*COMMENT MSI - MASS STORAGE DEVICE INITIALIZATION.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE MSI - MASS STORAGE DEVICE INITIALIZATION.
SPACE 4
*** MSI - MASS STORAGE DEVICE INITIALIZATION.
* D. A. HIVELEY. 72/09/27.
* S.L. BETH. 73/01/23.
SPACE 4
*** MSI - MASS STORAGE DEVICE INITIALIZATION.
*
* THE FOLLOWING PARAMETERS MAY BE ENTERED VIA
* THE K-DISPLAY.
*
* FM = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE).
* PN = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE).
* UN = USER NAME (FOR PRIVATE AUXILIARY PACK ONLY).
* DM = DEVICE MASK.
* SM = SECONDARY MASK.
* NC = NUMBER OF CATALOG TRACKS.
* NP = NUMBER OF PACKS.
* DN = DEVICE NUMBER.
* TY = TYPE
* F = FAMILY DEVICE.
* X = AUXILIARY DEVICE.
* LA = LOWER BOUND ACCESS LEVEL.
* UA = UPPER BOUND ACCESS LEVEL.
*
* ENTER XX=0. TO CLEAR ANY OF THE ENTRIES LISTED ABOVE.
* ENTER XX=NULL. TO CLEAR THE FIELD IN THE MST (UN ONLY).
*
* EQ = EST ORDINAL. THIS OPTION IS ONLY VALID FOR *FLAW*
* PROCESSING.
*
* NOTE IT IS NECESSARY TO USE THE DSD/EQPDECK *INITIALIZE*
* ENTRY TO SELECT DEVICES AND OPTIONS TO BE INITIALIZED.
* DEVICE CHARACTERISTICS CAN ONLY BE CHANGED DURING
* *AL*, *FT*, OR *HT* INITIALIZATION. IF THE *FP*
* OPTION IS SELECTED, INITIALIZATION WAITS FOR THE
* DEVICE TO BE FORMATTED.
*
* THE FOLLOWING FLAW DIRECTIVES CAN ONLY BE ENTERED VIA
* THE K-DISPLAY.
*
* SLF = SET LOGICAL TRACK FLAW ON *EQ*.
* CLF = CLEAR LOGICAL TRACK FLAW ON *EQ*.
* SPF = SET PHYSICAL TRACK FLAW ON *EQ*.
* CPF = CLEAR PHYSICAL TRACK FLAW ON *EQ*.
*
* DEFAULT VALUES ARE -
*
* FM = NO NAME NC = (DEVICE DEPENDENT - SEE *COMSMSP*)
* UN = NO NAME EQ = 0
* DM = 0 NP = 0
* TY = 0 DN = 1
* LA = VALUE CONTAINED IN EST.
* UA = VALUE CONTAINED IN EST.
*
* ********************
*
* IT SHOULD BE NOTED THAT MSI INITIALIZES WITH THE NEW
* PARAMETER INPUT. THEREFORE IF A FAMILY MASK OR DEVICE
* NUMBER IS CHANGED THE RESULTANT EDIT OF THE OTHER DEVICES
* IN THE FAMILY MAY MISS SOME FILES LEAVING THE SPACE
* RESERVED BUT WITH NO CATALOG ENTRIES POINTING TO THE FILES.
* TO AVOID THIS SITUATION, FIRST PERFORM AN INITIALIZE OF THE
* DEVICE WITH ITS OLD PARAMETERS TO CLEAN UP THE FAMILY,
* THEN REINITIALIZE WITH THE NEW PARAMETERS.
*
* ********************
*
*
*
* THE *FM* PARAMETER WILL BE CONSIDERED A PACK NAME IF THE
* DEVICE IS AN AUXILIARY DEVICE (*TY=X*).
*
* BEFORE ENTERING PARAMETERS CHECK THE K DISPLAY FOR
* THE LIST OF EQUIPMENTS TO BE INITIALIZED, IF THE LIST
* IS NOT COMPLETE ENTER THE INITIALIZE REQUESTS FOR THE
* OTHER EQUIPMENTS AND ENTER *RERUN* TO UPDATE MSI.
*
* THE DEVICE WHICH IS TO BE INITIALIZED MUST FULFILL
* CERTAIN REQUIRMENTS. IF THE DEVICE IS AVAILABLE AND/OR
* HAS NO LABEL ERROR STATUS, IT MUST BE THE FIRST EQUIPMENT IN
* THE CHAIN. *MSI* WILL NOT ALLOW A CHAINED EQUIPMENT TO BE
* SPLIT IN THE MIDDLE OF THE CHAIN (SUCH AS INITIALIZING THE
* THIRD UNIT IN A FOUR DEVICE CHAIN). DEVICES WHICH ARE TO BE
* CHAINED TOGETHER AND ARE AVAILABLE AND/OR HAVE RECOVERED
* LABELS, MUST HAVE THE INITIALIZE REQUESTS SET FOR EACH
* EST ORDINAL IN THE CHAIN.
*
* THE INPUT TO THE FLAW ROUTINE IS CONSIDERED OCTAL
* UNLESS THE DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR
* THE RADIX SYMBOL *D* IS APPENDED TO THE NUMBER.
SPACE 4
*** DAYFILE MESSAGES.
*
* * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
*
* * EQXXX, INACTIVE QUEUES INITIALIZED.*
*
* * EQXXX, UNABLE TO INITIALIZE IQFT.*
*
* * USER ACCESS NOT VALID.*
*
* * INTERNAL ERROR IN MSI.*
*
* * IQFT FILE INTERLOCKED.*
*
* * LINK DEVICE CANNOT BE ALTERED.*
*
* * MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.*
*
* * NO INITIALIZE REQUESTS SET FOR MSI.*
*
* * NO IQFT FILE FOUND.*
*
* * UNABLE TO READ IQFT FILE.*
*
* * MSI HUNG.*
SPACE 4
*** OPERATOR MESSAGES.
*
* *ENTER OLD PACK NAME* THIS INPUT MUST MATCH THE
* OLD PACKNAME TO CONTINUE.
*
* *ENTER OLD FAMILY NAME* MUST BE ENTERED TO CONTINUE.
*
* *ENTER OLD USER NAME.* MUST BE ENTERED TO CONTINUE.
*
* *ENTER OLD DEVICE NUMBER* MUST BE ENTERED TO CONTINUE.
*
* *ENTER EST ORDINAL.* ENTER THE EST ORDINAL OF THE DEVICE
* TO BE FLAWED OR INITIALIZED. THIS IS THE ONLY INPUT
* WHICH WILL BE ACCEPTED AT THIS POINT.
*
* *ENTER PARAMETERS* ENTER ANY LEGAL PARAMETERS, THEN
* ENTER *GO* TO PROCESS THE PARAMETERS.
*
* *ENTER FLAWS* ENTER ALL FLAWS FOR THE CURRENT EQUIPMENT,
* ENTER *GO* TO PROCESS THE FLAWS. FLAWS MAY ALSO
* BE ENTERED DURING AN INITIALIZE RUN.
*
* *ENTER IDENTITY OF EQXXX.* THE CURRENT DEVICE IS GOING TO
* BE CHAINED TO ANOTHER DEVICE. TO VERIFY ITS
* AVAILABILITY ENTER ITS (PACKNAME AND USER NAME),
* (PACKNAME), (FAMILY NAME) OR (FAMILY NAME AND
* DEVICE NUMBER) THE ORDER OF ENTRY IS NOT IMPORTANT.
* THE ID ENTRIES MUST BE MADE TO CONTINUE PROCESSING.
*
* *END OF RUN* MSI COMPLETED REQUESTED FUNCTIONS.
*
* *ENTER CLEAR OR RERUN.* MSI WILL ONLY ACCEPT THE COMMANDS
* *CLEAR* AND *RERUN* AT THIS TIME.
*
SPACE 4
*** OPERATOR ERROR MESSAGES.
*
* *UN MUST BE SPECIFIED.* DEVICE IS FLAGGED AS PRIVATE
* THE USER NAME MUST BE SPECIFIED OR THE
* PACK NAME CLEARED.
*
* *NC IS NOT A POWER OF 2.* THE NUMBER OF CATALOG TRACKS
* MUST BE A POWER OF 2. CORRECT AND ENTER *GO*.
*
* *FAMILY MASK NOT EQUAL TO 377.* THE DEVICE MASK FOR THE
* FAMILY DOES NOT EQUAL 377B, CORRECT AND ENTER
* *GO* OR ENTER *GO* TO OVERRIDE. THIS IS THE ONLY
* INPUT ACCEPTED AT THIS TIME.
*
* *EQ OR DN INCORRECT.* EST ORDINAL TOO BIG, DEVICE SPECIFIED
* IS NOT MASS STORAGE, OR DEVICE NUMBER .GT. 77B WAS
* SPECIFIED. CORRECT AND ENTER *GO.*.
*
* *EQXXX, NO FULL TRACK ACCESS.* INDICATES AN ATTEMPT TO
* INITIALIZE WITH *OP=FT* AND NO FULL TRACK ACCESS
* EXISTS. ENTER *CLEAR* TO CLEAR THE INITIALIZE REQUEST
* OR *GO* TO INITIALIZE AS A HALF TRACK DEVICE.
*
* *INCORRECT ENTRY.* INPUT NOT ALLOWED - INCORRECT FORMAT OF
* INPUT LINE OR MODIFICATION OF A TRACK RESERVED FOR
* HARDWARE TESTING WAS ATTEMPTED.
*
* *FM OR PN MUST BE SPECIFIED.* ENTER THE REQUIRED
* PARAMETER AND ENTER *GO*.
*
* *NP GREATER THAN 8.* ENTER CORRECT NUMBER OF PACKS THEN
* ENTER *GO*.
*
* *DUPLICATE PN.* ANOTHER PACK IN THE SYSTEM HAS THE SAME
* NAME. CHANGE THE PACKNAM OR REMOVE THE OTHER
* DEVICE FROM THE SYSTEM (IF THIS IS DONE *CMS* MUST
* RUN TO UPDATE THE MST TABLES).
*
* *NC EXCEEDS 200B.* THE NUMBER OF CATALOG TRACKS EXCEEDS
* 200B. CORRECT AND ENTER *GO*.
*
* *CANNOT ALLOCATE DEVICE.* CANNOT ALLOCATE A MULTI-SPINDLE
* DEVICE, NOT ENOUGH SPARE EQUIPMENT OR SPARES
* NOT UP AND ALLOCATABLE OR AN ATEMPT WAS MADE TO
* ALLOCATE A NONREMOVABLE DEVICE. DECREASE THE PACK
* COUNT AND ENTER *GO* OR ENTER *CLEAR* TO VOID MSI RUN.
*
* *NOT AUXILIARY PACK.* ATTEMPT TO MAKE A PRIVATE PACK OUT
* OF A NONAUXILIARY DEVICE. CORRECT AND ENTER *GO*.
*
* *DUPLICATE DN.* DEVICE NUMBER MATCHES ANOTHER IN THE
* FAMILY CORRECT AND ENTER *GO* OR OVERRIDE BY
* ENTERING *GO*. THIS IS THE ONLY INPUT ACCEPTED AT
* THIS TIME. THE OVERRIDE IS ONLY ALLOWED IF THE
* CONFLICTING DEVICE HAS THE FULL INITIALIZE STATUS SET.
*
* *DEVICE NOT REMOVABLE.* A NONREMOVABLE DEVICE WAS
* SELECTED FOR CHAINING IN A MULTIPACK STRING.
* ENTER *CLEAR* TO VOID THE MSI RUN.
*
* *NP NOT ALLOWED.* THE EQUIPMENT IS NOT A PACK TYPE
* DEVICE. CORRECT AND ENTER *GO*.
*
* *DUPLICATE BITS IN MASK.* THE MASK FOR THE FAMILY HAS
* DUPLICATE BITS SET, THIS DESTROYS THE INTEGRITY OF
* THE PF SYSTEM BY CREATING AN AMBIGUOUS MAPING OF THE
* USER INDEX. CORRECT AND ENTER *GO* OR ENTER *GO* TO
* OVERRIDE. THIS IS THE ONLY INPUT ACCEPTED AT THIS
* TIME. THE OVERRIDE IS ONLY ALLOWED IF THE CONFLICTING
* DEVICE HAS THE FULL INITIALIZE STATUS SET.
*
* *DEVICE NOT FIRST IN CHAIN.* TO PREVENT DESTROYING THE
* INTEGRITY OF A LINKED DEVICE INITIALIZATION WILL ONLY
* TAKE PLACE ON AN AVAILABLE DEVICE IF IT IS THE FIRST
* DEVICE IN THE CHAIN. THE ONLY INPUT ACCEPTED AT THIS
* TIME IS *RERUN* OR *CLEAR*.
*
* *EQXXX, INITIALIZE BIT NOT SET.* EQXXX IS AVAILABLE AND HAS
* A GOOD LABEL, IT CANNOT BE LINKED TO ANOTHER EQUIPMENT
* UNLESS THE TOTAL INITIALIZE REQUEST IS SET. ENTER DSD
* COMMAND *INITIALIZE,AL,XXX.*, THEN ENTER *K.RERUN.* TO
* UPDATE THE STATUS OF MSI, OR ENTER *CLEAR*
* TO VOID THE MSI RUN.
*
* *DN CANNOT BE ZERO.* A (DN = 0) WAS ENTERED TO CLEAR A
* DUPLICATE DEVICE NUMBER ERROR. THE DN CANNOT BE ZERO
* FOR A FAMILY TYPE DEVICE. ENTER A NONZERO VALUE
* TO CONTINUE OR ENTER *GO* TO OVERRIDE THE ERROR.
*
* *EQXXX, FORMAT PENDING.* EQXXX HAS THE FORMAT PENDING BIT
* SET AND CANNOT BE PROCESSED UNTIL FORMATTING IS
* COMPLETE.
*
* *DEADSTART INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS
* FOR A NONREMOVABLE DEVICE WITH ERROR IDLE OR A LABEL
* ERROR STATUS. THIS ERROR STATUS REQUIRES A DEADSTART
* INITIALIZE.
*
* *DEFINED DEVICE ALREADY EXISTS.* THE DEVICE AS DEFINED
* ALREADY EXISTS IN THE MULTI-MAINFRAME ENVIRONMENT.
* IF THIS IS AN AUXILIARY DEVICE CHANGE THE PACKNAME
* OR REMOVE THE OTHER PACK FROM THE COMPLEX. IF A
* FAMILY DEVICE CHANGE THE DEVICE NUMBER TO A UNIQUE
* VALUE FOR THIS FAMILY.
*
* *FULL INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS FOR
* A DEVICE WITH AN ERROR STATUS SET. THIS DEVICE MUST
* BE INITIALIZED WITH A FULL INITIALIZE REQUEST.
*
* *EQXXX, TRACK LIMIT.* INSUFFICIENT SPACE ON THE DEVICE TO
* COMPLETE THE INITIALIZATION. FREE UP SPACE AND ENTER
* *RERUN* OR ENTER *CLEAR*. IF THIS ERROR OCCURS
* DURING DEADSTART, REDEADSTART AND CHECK EQUIPMENT
* USAGE IN THE *CMRDECK*.
*
* *UA NOT WITHIN LIMIT.* THE UPPER BOUND ACCESS LEVEL
* EXCEEDS THAT CONTAINED IN THE EST. CORRECT AND
* ENTER *GO*.
*
* *LA NOT WITHIN LIMIT.* THE LOWER BOUND ACCESS LEVEL
* IS SMALLER THAN THAT CONTAINED IN THE EST. CORRECT
* AND ENTER *GO*.
*
* *LA GREATER THAN UA.* THE LOWER ACCESS LEVEL LIMIT
* IS GREATER THAN THE UPPER LIMIT. CORRECT AND
* ENTER *GO*.
*
* *UNKNOWN ACCESS LEVEL NAME.* THE ACCESS LEVEL NAME
* ENTERED IS INCORRECT. CORRECT AND ENTER *GO*.
*
* TO HALT PROCESSING ON THE CURRENT EQUIPMENT ENTER *CLEAR*
* THE CURRENT INITIALIZE REQUEST WILL BE CLEARED AND MSI WILL
* ADVANCE TO THE NEXT DEVICE WITH AN INITIALIZE REQUEST UP.
*
* TO CLEAR ALL PARAMETER INPUT WITHOUT CLEARING THE INITIALIZE
* REQUEST ENTER *RERUN*.
TITLE MACROS.
*CALL COMCMAC
*CALL COMCDCM
CLEAR SPACE 4
** CLEAR - CLEAR STORAGE.
*
* CLEAR FWA,COUNT,MASK
*
* IF *MASK* IS *X7* IT IS ASSUMED THAT (X7) = 0.
PURGMAC CLEAR
CLEAR MACRO L,C,M
LOCAL A
MACREF CLEAR
IFNE M,X7,1
MX7 0
R= B2,L
R= B3,L+C
A SA7 B2
SB2 B2+B1
NE B2,B3,A
ENDM
ERROR SPACE 4
** ERROR - DISPLAY KEYBOARD ERROR MESSAGE.
*
* ERROR NUMBER
PURGMAC ERROR
ERROR MACRO N
MACREF ERROR
.N MICRO 1,,*N*
SA1 ERROR".N"
RJ MTW
ENDM
SPACE 4
** KEYMES - DISPLAY KEYBOARD MESSAGE.
*
* KEYMES MES
PURGMAC KEYMES
MACREF KEYMES
KEYMES MACRO N
SA1 N
RJ MTW
ENDM
SPACE 4,10
** COMMON DECKS.
*CALL COMSDSL
*CALL COMSDSP
*CALL COMSESS
*CALL COMSIOQ
*CALL COMSLSD
*CALL COMSMLS
LIST X
*CALL COMSMSI
LIST *
*CALL COMSMSP
*CALL COMSMST
*CALL COMSPFM
*CALL COMSPRD
QUAL PFU
*CALL COMSPFU
QUAL *
CTCT EQU /PFU/CTCT
CTCU EQU /PFU/CTCU
CTLM EQU /PFU/CTLM
CTOP EQU /PFU/CTOP
CTSU EQU /PFU/CTSU
FTCA EQU /PFU/FTCA
FTPM EQU /PFU/FTPM
FTSC EQU /PFU/FTSC
*CALL COMSSFM
*CALL COMSSSD
*CALL COMSSSJ
TITLE ASSEMBLY CONSTANTS.
SPACE 4,5
* TABLE AND BUFFER SIZES.
PKLL EQU 10B LENGTH OF PACK LINK TABLE
CATBL EQU 1011B CATALOG BUFFER LENGTH
SCRBL EQU 201B SCRATCH BUFFER LENGTH
PARAML EQU 40B PARAMETER AREA LENGTH
TITLE DISPLAY BUFFER LINE NUMBER TABLES.
SPACE 4
TITLE PARAMETER HOLD AREA.
ORG 106B
ORIG BSS 1 COMMAND NAME (FOR *UPC*)
PAR BSS PARAML PARAMETER AREA
SPACE 4
* OPTION TABLE.
OTBL EQU *
LOC 0
PMFN BSS 1 FAMILY NAME
PMUN BSS 1 USER NAME
PMID BSS 1 ID ENTRY
BSS 1
PMTY BSS 1 TYPE ENTRY
PMLA BSS 1 LOWER ACCESS LEVEL
PMUA BSS 1 UPPER ACCESS LEVEL
NNME EQU *-PMFN
PMDM BSS 1 DEVICE MASK
PMSM BSS 1 SECONDARY MASK
PMNC BSS 1 NUMBER CATALOG TRACKS
PMNP BSS 1 NUMBER OF PACKS
PMDN BSS 1 DEVICE NUMBER
PMEQ BSS 1 EST ORDINAL
PMOP BSS 1 OPTION
PMXX BSS 1 GARBAGE INPUT
NOCT EQU *-PMDM
LOC *O
OTBLL EQU *-OTBL OPTION TABLE LENGTH
ORG OTBL
SPACE 4
* TENP - TABLE OF ENTERED PARAMETERS.
TENP BSS 0
BSS OTBLL
SPACE 4
* PARC - TABLE OF CONVERTED PARAMETERS.
PARC BSS 0 42/FN,18/0
BSSZ OTBLL 42/UI,18/0
42/ID,18/0
42/ID,18/0
06/TY,54/0
42/LA,18/0
42/UA,18/0
52/0,8/DM
52/0,8/SM
57/0,3/NC
57/0,3/NP
54/0,6/DN
54/0,6/EQ
57/0,3/OP
60/TRASH
SPACE 4
* TARG - ARGUMENT TABLE.
TARG BSS 0
FM ARG DARG,(TENP+PMFN),400B
PN ARG DARG,(TENP+PMFN),400B
UN ARG DARG,(TENP+PMUN),400B
TY ARG DARG,(TENP+PMTY),400B
ENLA BSS 0
LA ARG DARG,(TENP+PMLA),400B
ENUA BSS 0
UA ARG DARG,(TENP+PMUA),400B
DM ARG DARG,(TENP+PMDM),400B
SM ARG DARG,(TENP+PMSM),400B
NC ARG DARG,(TENP+PMNC),400B
NP ARG DARG,(TENP+PMNP),400B
DN ARG DARG,(TENP+PMDN),400B
DARG BSSZ 1 DEFAULT ENTRY
ENDP BSS 0
OP ARG DARG,(TENP+PMOP),400B
BSSZ 1
ENEQ BSS 0
EQ ARG DARG,(TENP+PMEQ),400B
BSSZ 1
ENMS BSS 0
DM ARG DARG,(TENP+PMDM),400B
NC ARG DARG,(TENP+PMNC),400B
BSSZ 1
ENDN BSS 0
DN ARG DARG,(TENP+PMDN),400B
BSSZ 1
EIDS BSS 0
FM ARG DARG,(TENP+PMID),400B
PN ARG DARG,(TENP+PMID),400B
UN ARG DARG,(TENP+PMID+1),400B
DN ARG DARG,(TENP+PMID+1),400B
BSSZ 1
HNGP BSS 0
XX ARG DARG,(TENP+PMXX),400B
BSSZ 1
DATB SPACE 4,10
* DATB - DISPLAY ADDRESS TABLE.
DATB BSS 0 DISPLAY ADDRESS TABLE
CON FNDS+1
CON UNDS+1
CON SCRB
CON SCRB
CON TYDS+1
CON LADS+1
CON UADS+1
CON DMDS+1
CON SMDS+1
CON NCDS+1
CON NPDS+1
CON DNDS+1
CON EQDS+1
CON SCRB
CON SCRB
DAST CON LTDS+1 LEFT SCREEN ADDRESS
DASM CON LTDS+3 MATCH ADDRESS FOR TRT
SPACE 4
FETS SPACE 4,10
* FETS.
QFET FILEB CATB,CATBL,EPR,FET=8 *QFM* FET
CATS FILEB CATB,CATBL,FET=10 *PFU* FET
UIFT FILEB 0,0,FET=10 *PFU* UTILITY INTERLOCK FET
OUTPUT FILEC 0,0 *ABT* PROCESSOR OUTPUT FET
FLAGS SPACE 4
* FLAGS (CLEARED BY *PRS*).
FLGS EQU * FWA OF FLAG BLOCK
TEMP BSS 1 TEMPORARY CELL
FLAG BSS 1 FLAGS NO PARAMETER INPUT NEEDED
PVT BSS 1 FLAGS DEVICE IS PRIVATE PACK
DSI BSS 1 FLAG DEADSTART INITIALIZE
TOTL BSS 1 FLAG TOTAL INITIALIZE (NEGATIVE)
PALF BSS 1 PACKS ALLOCATED FLAG 12/EQ NUMBER
CNT BSS 1 PARAMETER COUNT/ CATALOG TRACK COUNT
LCRC BSS 1 LOW CORE READ CONTROL WORD
BUFI BSS 1 INDEX TO MST RECORDS IN BUFFER
ARGP BSS 1 POINTER TO CURRENT ARGUMENT TABLE
PFUF BSS 1 FLAG *PFU* ACTIVE
UIFL BSS 1 UTILITY INTERLOCK FLAG (PFU)
LINK BSS 1 LINK EST ORDINAL
CLF BSS 1 FLAG *CLEAR* REQUEST ENTERED
CLOV BSS 1 *CLEAR* OVERRIDE EST ORDINAL
SSFL BSS 1 SECURE SYSTEM FLAG
SSID CON MSSI SUBSYSTEM ID
FLGSL EQU *-FLGS LENGTH OF FLAG BLOCK
SPACE 4
** TEMPORARY CELLS.
EQ CON 0 EST ORDINAL (DISPLAY CODE)
RQ CON 0 INITIALIZE REQUESTS PROCESSED
* FLAW FLAG.
FLFG CON 0 IF SET, FLAW PROCESSING
TITLE MAIN LOOP.
** MSI - MAIN PROGRAM.
MSI SB1 1
EREXIT ABT1 SET ABORT PROCESSOR ADDRESS
BX6 X6-X6 CLEAR FLAW FLAG
SA6 FLFG
MSI1 RJ PRS PRESET
RJ CIR CHECK INITIALIZATION REQUESTED
SA1 RQ
PL B6,MSI3 IF INITIALIZATION REQUESTED
NZ X1,MSI2 IF AT LEAST ONE REQUEST PROCESSED
MESSAGE MESC * NO INITIALIZE REQUESTS SET FOR MSI.*
MSI2 KEYMES EDRN *END OF RUN.*
SYSTEM IMS,R,,CIT CLEAR *CMS* INTERLOCK
EXCST =C*CMS.* CALL *CMS* TO UPDATE SYSTEM CONFIGURATION
ENDRUN
* IF EQUIPMENT AVAILABLE AND NOT DEADSTART STATUS OR
* IF EQUIPMENT UNAVAILABLE AND IF THE LABEL WAS RECOVERED,
* REQUEST THE VERIFICATION OF THE DEVICES PARAMETERS AND COPY
* THE INFORMATION TO THE K DISPLAY. OTHERWISE GO REQUEST INPUT
* OF THE NEW PARAMETERS.
MSI3 SX6 X1+B1 INCREMENT REQUESTS PROCESSED
SA6 A1
RJ DSP DISPLAY EQUIPMENTS TO BE PROCESSED
RJ DIO DISPLAY INITIALIZE OPTIONS
SA5 PARC+PMEQ
R= X1,ESTE
IX1 X5*X1
SA1 ESTB+X1+EQDE GET EST ENTRY
SX7 TARG
SA4 ESTF+X5
SA7 ARGP
SA3 X4+STLL
MX6 6
LX6 -18
BX7 -X6*X3 CLEAR ERROR STATUS
LX1 59-54
SA7 X4+STLL
BX3 X6*X3
LX7 59-LIAL
SA2 X4+PFGL
NG X7,MSI4.1 IF DEADSTART INITIALIZE
LX3 24
AX2 12
ZR X3,MSI5 IF NO ERROR STATUS
SA4 TOTL
NG X4,MSI4 IF FULL INITIALIZE
ERROR 25 *FULL INITIALIZE REQUIRED.*
EQ MSI6 HALT PROCESSING ON CURRENT DEVICE
MSI4 NZ X2,MSI7 IF RECOVERED LABEL
SX6 X3-STLE
NZ X6,MSI4.1 IF NOT LABEL ERROR
LX1 54-56
PL X1,MSI7.1 IF NOT REMOVABLE DEVICE
RJ SAL SET ACCESS LEVEL DEFAULTS
EQ MSI10 PROCESS KEYBOARD INPUT
MSI4.1 NG X1,MSI5 IF EQUIPMENT UNAVAILABLE
* IF INITIALIZE SET, DEVICE AVAILABLE AND DEADSTART STATUS,
* INITIALIZE AND DO NOT STOP FOR OPERATOR INTERVENTION.
MX6 1
BX7 X7-X7
SA6 DSI FLAG DEADSTART INITIALIZE
EQ MSI9 DEADSTART INITIALIZE (COPY PARAMETERS)
MSI5 SA4 ESTF+X5
SA3 X4+PFGL
MX1 -3
AX3 3
BX1 -X1*X3
BX6 -X5
ZR X1,MSI7 IF ONE OF M
SA6 CLOV SET OVERRIDE *CLEAR* INDICATOR
ERROR 18 *DEVICE NOT FIRST IN CHAIN.*
MSI6 SX6 HNGP
SX7 7777B
SA6 ARGP
SA7 CNT
RJ PKI STOP FURTHER PROCESSING
KEYMES ENCL *ENTER CLEAR OR RERUN.*
EQ MSI6 LOOP
MSI7 SA4 ESTF+X5 CHECK STATUS OF DEVICE
SA1 X4+DULL
SA2 X4+ACGL
SA3 X4+MDGL
SA4 X4+STLL
NG X3,MSI8 IF DEVICE REMOVABLE
LX2 59-4
PL X2,MSI8 IF ERROR IDLE NOT SET
MSI7.1 ERROR 24 *DEADSTART INITIALIZE REQUIRED.*
EQ MSI6 STOP PROCESSING
MSI8 MX3 -12
LX4 -12
BX7 -X3*X4
MX3 -11
BX1 -X3*X1
MX0 18
LX4 59-LIPF+12
BX7 X7+X1
SA2 CLF CHECK *CLEAR* FLAG
ZR X7,MSI9 IF NO ACTIVE FILES/USERS
NZ X2,CLEAR IF *CLEAR* FLAG SET
PL X4,MSI9 IF NOT INITIALIZING PF,S
LX0 -18
SA4 EQ
LX4 42-18
SA1 MESA
BX7 -X0*X1
BX7 X7+X4
SA7 A1
MESSAGE MESA * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
RJ ABT ABORT *MSI*
MSI9 SA7 CLF CLEAR *CLEAR* FLAG
RJ CPY COPY PARAMETERS TO K-DISPLAY
SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE
SA6 CFEB
SA1 DSI
SA2 TOTL
MI X1,MSI12 IF DEADSTART INITIALIZE
PL X2,MSI12 IF NOT TOTAL INITIALIZE
MSI10 SX7 200
SA7 CNT
KEYMES REQPM *ENTER PARAMETERS.*
MSI11 RJ PKI PROCESS KEYBOARD INPUT
MSI12 RJ PPM PROCESS PARAMETERS
ZR X7,MSI11 IF MORE INPUT NEEDED
RJ CRE CHECK REQUIRED ENTRIES
ZR X6,MSI12 IF PARAMETERS TO PROCESS
SA4 TOTL
SA5 PARC+PMEQ
NG X4,MSI12.1 IF TOTAL INITIALIZE
SA4 X5+ESTF
SA4 X4+STLL
LX4 59-LIPF
PL X4,MSI14.1 IF NOT *PF* INITIALIZE
MSI12.1 BSS 0
RJ UMS UPDATE MSTS
ZR X1,MSI13 IF DEVICE ALLOWED
KEYMES ERROR22 *DEFINED DEVICE ALREADY EXISTS.*
EQ MSI11 PROCESS NEW INPUT
MSI13 RJ EDF SEPARATE FAMILY FROM OTHER EQUIPMENTS
SA1 ESTF+B7
SA4 X1+MDGL
LX4 59-58
NG X4,MSI14 IF AUXILIARY DEVICE
RJ CMS CHECK MASKS
MI X7,MSI12 PROCESS NEW PARAMETERS
SA5 PARC+PMEQ
SA1 ESTF+X5
LX1 59-54
NG X1,MSI14 IF DEVICE UNAVAILABLE
RJ ECT EDIT CATALOGS
RJ EDD EDIT DIRECT ACCESS FILES IN FAMILY
MSI14 SA5 PARC+PMEQ
SYSTEM IMS,R,X5,IND INITIALIZE PERMANENT FILES
MSI14.1 RJ ISF INITIALIZE SPECIAL FILES
SA1 FLAI
SX1 X1-TFLA
ZR X1,CLEAR IF NO FLAWS
SA1 TFLA
BX2 X5
LX2 59-35
BX7 X2+X1 SET EQ NUMBER IN FLAW TABLE
SA7 A1 RESET TABLE WITH EQ NUMBER ADDED
SYSTEM IMS,R,TFLA,SFL SET FLAWS
* CHECK FOR MORE DEVICES TO BE INITIALIZED.
CLEAR BSS 0 CLEAR INITIALIZE REQUEST
SA5 PARC+PMEQ
SA4 CLOV CHECK OVERRIDE ON THIS EQUIPMENT
SA2 PKL-1
SA1 ESTF+X5
SA1 X1+STLL
SX6 B1
PL X4,MSI15 IF OVERRIDE NOT SET
IX6 X5+X4 CHECK EQUIPMENT
MSI15 MX3 60-LIRP CLEAR CURRENT INITIALIZE REQUESTS
BX1 -X3*X1
MX3 48-LIMF
LX3 48
BX7 -X3*X1
SA7 A1
SA1 CLF CHECK FOR CLEAR OPERATION
ZR X1,MSI16 IF NOT *CLEAR*
ZR X6,MSI16 IF OVERRIDE SET FOR THIS EST ORDINAL
RJ EDF SEPARATE THE FAMILY FROM OTHER DEVICES
RJ CMS CHECK MASKS
MI X7,MSI PROCESS NEW DATA AS A RERUN
SA2 PKL-1
SA5 PARC+PMEQ
MSI16 ZR X5,MSI17 IF EST ORDINAL ZERO
SB5 X5 SAVE EST ORDINAL
SYSTEM IMS,R,X5,CIN CLEAR CURRENT INITIALIZE REQUEST
SA2 A2+B1
SX5 X2
NZ X5,MSI16 IF LINKED PACKS CLEAR THEIR INITIALIZE
REQUESTS.
SA1 ESTF+B5 CHECK *ISD* INTERLOCK
LX1 59-58
PL X1,MSI17 IF NO INTERLOCK SET
MSI16.1 SA2 PARC+PMEQ
BX6 X2
LX6 48
SA6 CIRB
SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK
SA1 CIRB
PL X1,MSI16.1 IF INTERLOCK NOT CLEAR
MSI17 RJ CDS CLEAR THE DISPLAY
EQ MSI1 LOOP FOR MORE EQUIPMENTS
TITLE AUXILIARY PROCESSORS.
RERUN SPACE 4,10
** RERUN - RERUN *MSI*.
RERUN RJ CDS CLEAR DISPLAY
SA1 RERNA LOAD RERUN ADDRESS
SB2 X1
JP B2 RERUN THE SELECTED OPTION
RERNA VFD 42/0,18/MSI2
TKL SPACE 4,10
** TKL - TRACK LIMIT PROCESSING.
TKL SA1 PARC+PMEQ SET EST ORDINAL IN TRACK LIMIT MESSAGE
RJ COD
SA4 ERROR26
MX7 -18
LX6 48-18
LX7 48-18
BX6 -X7*X6
BX7 X7*X4
BX6 X6+X7
SA6 A4
ERROR 26 *EQXXX, TRACK LIMIT.*
EQ MSI6 STOP PROCESSING
SPACE 4
*** FLAW - ENTER DEVICE FLAWS.
FLAW SX6 FLAW SET RERUN ADDRESS
SA6 RERNA
SB1 1
SX6 B1+ SET FLAW FLAG
SA6 FLFG
RJ PRS
MX6 60 SET OVERRIDE CONTROL
SA6 CLOV
SETRNR NOROLL PREVENT JOB ROLLOUT
SA5 LRDS SET UP DISPLAY CONTROL WORD
BX7 X5
SA7 KDCW
SA5 BLK CLEAR PAGE 2 OF 2 COMMENT
BX7 X5
SA7 LNDS+3
SA5 FLAA
BX7 X5
SA7 LNDS+4
SA5 FLAB
BX7 X5
SA7 L
SA7 R
RJ REQ REQUEST EQUIPMENT
SA1 PARC+PMEQ
BX6 -X1
SA6 CLOV SET OVERRIDE CONTROL FOR THIS EQUIPMENT
RJ COD
SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE
SA6 CFEB
BX6 X4
SA6 INDS+1 SET EST ORDINAL
KEYMES ENFLS *ENTER FLAWS.*
RJ PKI PROCESS KEYBOARD
SA1 PARC+PMEQ
SA2 TFLA
LX1 59-35
BX7 X1+X2 SET EQ NUMBER IN TABLE
SA7 TFLA
SYSTEM IMS,R,A7,SFL
ENDRUN
FLAA DATA 1L
FLAB VFD 18/0,18/KDTA,24/0 DISPLAY CONTROL WORD
FLAI CON TFLA
SPACE 4,10
** FLAW TABLE FOR *IMS* CALL.
*
*T WORD1 12/ TYPE, 12/ 0, 12/ EQ, 12/ 0, 12/ TRACK
*T,WORD2-N 12/ TYPE, 12/ 0, 12/ 0, 12/ 0, 12/ TRACK
*
* EQ = EST ORDINAL
* TYPE = 0 - END TABLE
* 1 - SET FLAW
* 2 - CLEAR FLAW
* TRACK = LOGICAL TRACK TO FLAW
TFLA BSSZ PNFE FLAW TABLE
TITLE MAJOR PROCESSORS.
REQ SPACE 4,10
** REQ - REQUEST EST ORDINAL.
*
* EXIT (PARC+PMEQ) = EST ORDINAL.
*
* USES X - 1, 2, 4, 5, 6, 7.
* A - 1, 2, 4, 5, 6, 7.
*
* CALLS PKI, COD.
*
* MACROS ERROR, KEYMES.
REQ3 SA1 X4+ESTF
SA1 X1+STLL
MX2 1
MI X1,REQ2 IF FORMAT PENDING
LX2 LIAL-59
BX7 X1+X2 SET INITIALIZE REQUEST IN MST IMAGE
LX2 LIRP-LIAL
BX7 X7+X2
SA7 A1
REQ SUBR ENTRY/EXIT
SX6 ENEQ
SA6 ARGP
KEYMES REQEQ *ENTER EST ORDINAL.*
REQ1 SX7 B1+
SA7 CNT
RJ PKI REQUEST EQUIPMENT
SA4 PARC+PMEQ
R= X5,ESTE
IX5 X4*X5
SA5 ESTB+X5+EQDE GET EST ENTRY
MI X5,REQ3 IF EQ IS MASS STORAGE DEVICE
ERROR 5 *EQ OR DN INCORRECT.*
EQ REQ1 SEND ERROR MESSAGE AND WAIT ON CORRECTION
REQ2 BX1 X4
RJ COD
MX7 -18 SET EST ORDINAL IN FORMAT PENDING MESSAGE
LX6 30
SA4 ERROR21
LX7 30
BX6 -X7*X6
BX7 X7*X4
BX6 X6+X7
SA6 A4
ERROR 21 *EQXXX, FORMAT PENDING.*
EQ REQ1 WAIT ON NEW INPUT
DSP SPACE 4,10
** DSP - DISPLAY EST ORDINALS.
*
* USES X - 1, 2, 3, 4, 5, 7.
* A - 1, 2, 7.
* B - 2, 3, 4, 5, 6, 7.
*
* MACROS CLEAR.
DSP SUBR ENTRY/EXIT
SB4 OPDS+1
SA1 BLK CLEAR THE EQUIPMENT LIST
BX7 X1
CLEAR B4,4,X7
CLEAR INDSA+1,4,X7
SB2 B0
SB5 B0
MX4 -3
SB7 B0
DSP1 SA1 ESTF+B2
SB2 B2+B1
SB3 B2-ESMX
ZR B3,DSPX IF END OF EQUIPMENTS
ZR X1,DSP1 IF EMPTY LINK
SA2 X1+STLL
MI X2,DSP1 IF FORMAT PENDING
LX2 59-LIRP
SX3 B2-B1
PL X2,DSP1 IF NO INITIALIZE REQUESTS
SB5 B5+B1
BX5 -X4*X3
AX3 3
BX7 -X4*X3
LX7 6
BX3 X4*X3
LX3 9
IX7 X3+X7
SA3 DSPA
IX7 X7+X5
IX7 X7+X3
SA1 B4+B7 MERGE EQUIPMENT IN DISPLAY
LX7 42
EQ B5,B1,DSP2 IF FIRST EQUIPMENT IN WORD
LX7 -30
SB5 B0
SX2 B7-3
SB7 B7+B1 NEXT WORD
NZ X2,DSP2 IF NOT OVERFLOW TO SECOND LINE
SB6 INDSA+1
EQ B4,B6,DSPX IF OVERFLOW SECOND LINE
SB4 B6
SB7 B0
DSP2 IX7 X7+X1 SET EST ORDINAL IN MESSAGE
SA7 A1
EQ DSP1 LOOP
DSPA CON 3R000-3R
CPY SPACE 4,10
** CPY - COPY MST PARAMETERS TO DISPLAY BLOCK.
*
* USES ALL REGISTERS.
*
* CALLS PKI, COD.
*
* MACROS KEYMES.
CPY SUBR ENTRY/EXIT
SA1 DSI
SA5 PARC+PMEQ
MX7 1
SA7 FLAG FLAG NO PARAMETER INPUT NEEDED
SA4 ESTF+X5 ADDRESS OF MST
MI X1,CPY6 IF DEADSTART INITIALIZE
SA1 X4+PUGL
MX6 42
BX1 X6*X1
BX6 X4
SA6 TEMP SAVE THE MST POINTER
MX7 1
ZR X1,CPY2 IF NOT PRIVATE PACK
SA7 PVT SET PRIVATE PACK FLAG
CPY1 KEYMES ENOUN *ENTER OLD USER NAME.*
SX7 01
SA7 CNT
RJ PKI PROCESS KEYBOARD INPUT
SA4 TEMP
SA2 PARC+PMUN
SA3 X4+PUGL
BX1 X2-X3
AX1 18
NZ X1,CPY1 IF USER NAMES DO NOT MATCH
CPY2 SA1 X4+MDGL
LX1 59-58
PL X1,CPY4 IF NOT AN AUXILIARY DEVICE
CPY3 KEYMES ENOPN *ENTER OLD PACK NAME.*
SX7 1
SA7 CNT
RJ PKI PROCESS KEYBOARD
SA4 TEMP
SA2 PARC+PMFN
SA3 X4+PFGL
BX1 X2-X3
AX1 18
NZ X1,CPY3 IF PACKNAMES DO NOT MATCH
EQ CPY6 GO TO NEXT PARAMETER
CPY4 SA1 X4+PFGL
MX0 42
BX1 X0*X1
ZR X1,CPY6 IF NO FAMILY NAME
CPY5 KEYMES ENOFN *ENTER OLD FAMILY NAME.*
SX7 1
SA7 CNT
RJ PKI PROCESS KEYBOARD INPUT
SA4 TEMP
SA2 PARC+PMFN
SA3 X4+PFGL
MX0 42
BX1 X2-X3
BX1 X0*X1 TEST FAMILY NAME
NZ X1,CPY5 IF FN DO NOT MATCH
CPY6 SB5 X4 SET MST POINTER
RJ PTY PROCESS TYPE
MX0 -18
SA1 PARC+PMEQ
SX1 X1+1000B ENSURE LEADING ZEROES
RJ COD
SA2 =7L
BX6 -X0*X6
BX6 X6+X2
LX6 -18
SA6 EQDS+1 SET EST ORDINAL
SA1 B5+ALGL
MX6 -12
LX1 59-11
BX1 -X6*X1
RJ COD CONVERT NUMBER OF CATALOG TRACKS
BX6 X4
SA6 NCDS+1
RJ SAL SET ACCESS LEVEL DEFAULTS
SA4 B5+DDLL GET PACK COUNT
MX6 -3
LX4 12
BX1 -X6*X4
SX1 X1+B1 ADJUST COUNT
RJ DTY CHECK FOR PACK TYPE DEVICE
PL X3,CPY7 IF NOT PACK DEVICE
BX6 X1
SA6 PARC+PMNP SET PACK COUNT IN PARM LIST
+ RJ COD CONVERT NUMBER OF PACKS
BX6 X4
SA6 NPDS+1
CPY7 SA1 B5+MDGL
SA2 DSI
LX1 59-58
MI X1,CPY9 IF AUXILIARY PACK
SX7 B5
SA7 TEMP
SA3 B5+PFGL
MX6 -6
LX3 59-11
BX6 -X6*X3
BX7 X7-X7
SA6 PARC+PMDN SET DEVICE NUMBER IN PARAMETER BLOCK
MI X2,CPY9 IF DEADSTART INITIALIZE
ZR X6,CPY10 IF DN EQUALS ZERO
SA7 A6+ CLEAR THE DEVICE NUMBER
CPY8 KEYMES ENODN *ENTER OLD DEVICE NUMBER.*
SX7 1
SA7 CNT
RJ PKI PROCESS KEYBOARD
SA4 TEMP
SA2 PARC+PMDN
SA3 X4+PFGL
MX6 -6
LX3 59-11
BX1 -X6*X3 MASK OFF OLD DN
BX1 X1-X2
NZ X1,CPY8 IF DEVICE NUMBERS DO NOT MATCH
SB5 X4 SAVE MST ADDRESS
EQ CPY10 CLEAR *ID* AND *NC*
CPY9 SA1 B5+PFGL
MX6 -6
LX1 59-11
BX1 -X6*X1
RJ COD CONVERT DEVICE NUMBER
BX6 X4
SA6 DNDS+1
CPY10 BX7 X7-X7
SA7 PARC+PMID ID
SA7 A7+B1
SA7 PARC+PMNC NC
EQ CPYX RETURN
PPM SPACE 4,10
** PPM - PROCESS PARAMETERS.
*
* EXIT (X7) = ZERO IF MORE PARAMETERS NEEDED.
* (B5) = MST POINTER.
*
* USES ALL REGISTERS.
*
* CALLS CPN, DTY, MTW, PTY, VLC.
*
* MACROS ERROR, KEYMES.
PPM SUBR ENTRY/EXIT
SB4 PARC
SB6 B0
SB3 PMEQ
SA1 PARC+PMEQ
SA1 X1+ESTF
SB5 X1 MST POINTER
PPM1 SA5 B4+B6 CHECK PARAMETER LIST
NZ X5,PPM2 IF PARAMETER ENTERED
SB6 B6+B1
NE B3,B6,PPM1 IF NOT END OF PARAMETERS
KEYMES REQPM *ENTER PARAMETERS.*
SA1 FLAG
BX7 X1
EQ PPMX EXIT PARAMETER ENTRY NEEDED
PPM2 RJ CMC CHECK MODE CHANGE
ZR X7,PPM23 IF NO FULL TRACK ACCESS
SA1 PARC+PMDM PROCESS MASKS
SA2 PARC+PMSM
SA3 B5+PUGL
MX0 -16
LX2 8
BX3 X0*X3 CLEAR OLD MASKS
BX6 X1+X2
BX6 X6+X3
SA6 A3
RJ PTY PROCESS TYPE
PPM3 SA1 PVT
SA2 PARC+PMFN
MX7 42
BX3 X2
SA4 PARC+PMUN
MI X1,PPM5 IF PRIVATE PACK (PVT SET)
NZ X4,PPM5 IF PRIVATE PACK (UN DEFINED)
ZR X2,PPM10 IF NO FAMILY NAME DEFINED
* PROCESS FAMILY NAME.
SA1 B5+PFGL
BX6 -X7*X1
BX6 X2+X6
SA6 A1
BX6 X6-X6
SA6 PVT CLEAR PRIVATE PACK FLAG
EQ PPM10 GO TO NEXT PARAMETER
* PROCESS PACK NAME AND USER NAME.
PPM5 SA5 B5+MDGL
SA1 B5+PFGL
SA2 B5+PUGL
BX6 X5
MX5 42
BX0 -X5*X1
LX6 59-58
BX1 X5*X1 OLD PACK NAME
BX7 -X5*X2
ZR X4,PPM7 IF NO NEW UN USE OLD ONE
SA5 NULL
BX5 X5-X4 TEST FOR *NULL*
NZ X5,PPM6 IF NOT NULL
MX6 0 CLEAR PVT
SA7 B5+PUGL
SA6 PVT
SA6 PARC+PMUN
EQ PPM3 LOOP
PPM6 PL X6,PPM21 IF NOT AUXILIARY DEVICE
MX6 1
BX7 X7+X4 SET NEW USER NAME
SA6 PVT
SA7 A2 UPDATE MST
LX6 1
SA6 PARC+PMNC FORCE NC TO 1
EQ PPM8 CONTINUE
PPM7 BX7 X5*X2 CHECK FOR OLD UN
ZR X7,PPM22 IF NO OLD UN
PPM8 NZ X3,PPM9 IF PACKNAM DEFINED
NZ X1,PPM10 GO TO NEXT PARAMETER
ERROR 7 *FN OR PN MUST BE SPECIFIED.*
MX7 0
SA7 PVT
EQ PPMX ERROR EXIT
PPM9 BX6 X3+X0 SET NEW PACK NAME
SA6 A1
PPM10 RJ CPN CHECK FOR DUPLICATE PACK NAME
ZR X7,PPMX IF ERROR
* PROCESS NUMBER OF CATALOG TRACKS.
SA4 B5+ALGL
MX0 -12
LX4 -12
SA3 B5+PUGL
MX1 -8
BX3 -X1*X3
BX6 X0*X4
LX6 12
ZR X3,PPM13 IF NO MASK SET - NO CATALOGS NEEDED
SA3 PARC+PMNC
SA5 PARC+PMEQ
NZ X3,PPM11 IF NC SPECIFIED
BX3 -X0*X4 DEFAULT COUNT FROM MST
PPM11 NZ X3,PPM12 IF NOT USING EQUIPMENT DEFAULT
RJ DTY GET DEFAULT FOR DEVICE
PPM12 BX1 -X0*X3 VALIDATE NC
CX6 X1
SB4 X1-201B
BX4 X0*X4 CLEAR OLD COUNT
SB6 X6
PL B4,PPM20 IF NC TOO LARGE
BX6 X4+X1 SET NEW COUNT
NE B6,B1,PPM19 IF NC NOT POWER OF 2
LX6 12
* PROCESS NUMBER OF PACKS.
PPM13 SA6 A4
SA1 PARC+PMNP
ZR X1,PPM14 IF NUMBER OF PACKS NOT SPECIFIED
SA2 B5+DDLL
MX7 -57
MX0 -3
SX1 X1-1
BX6 X0*X1
LX7 -9
BX7 -X7*X2 CLEAR CURRENT UNIT COUNT
NZ X6,PPM18 IF NP .GT. 7
LX1 -12 POSITION PACK COUNT
BX7 X7+X1
LX1 12
SA7 A2
RJ DTY
AX3 59
BX3 -X3*X1
NZ X3,PPM17 IF NOT PACK TYPE DEVICE AND NP .NE. 1
RJ ALP ALLOCATE PACKS
BX7 X7-X7
MX0 -3
PL X5,PPMX IF UNABLE TO ALLOCATE PACKS
PPM14 SA2 PARC+PMEQ RESTORE EST POINTER
SA2 X2+ESTF
SA1 X2+DDLL GET NUMBER OF PACKS
SB5 X2
LX1 12
SA2 B5+MDGL SET SECTOR LIMITS
BX1 -X0*X1
BX5 X1 SAVE PACK COUNT
SX1 X1+B1
MX0 -11
BX2 X0*X2
LX2 -36
BX6 -X0*X2
LX2 36
IX6 X1*X6
BX6 X2+X6
SA6 A2
* PROCESS DEVICE NUMBER.
SA1 PARC+PMDN
SA2 B5+PFGL
SA3 B5+MDGL
MX0 -6
BX2 X0*X2 CLEAR OLD N/M
BX2 X2+X5 SET NEW N/M
BX4 X0*X1
LX0 59-47
LX3 59-58
LX1 12
AX3 59
MX7 1
NZ X1,PPM15 IF DN SPECIFIED
BX1 -X0*X2
NZ X1,PPM15 IF OLD DN SET
SX1 10000B SET DEFAULT TO *1*
PPM15 NZ X4,PPM16 IF *DN* TOO LARGE
BX2 X0*X2 CLEAR OLD DN
BX1 -X3*X1 CLEAR DN FOR AUXILIARY DEVICE
BX6 X2+X1 ADD IN NEW DN
SA6 A2 UPDATE PFGL
* PROCESS DEVICE ACCESS LEVEL LIMITS. VERIFY THAT ACCESS
* LEVEL VALUES ENTERED ARE VALID ENTRIES. WHEN RUNNING IN
* UNSECURED MODE, NO VALIDATION AGAINST THE EQUIPMENT-S
* DEFAULT LIMITS (IN THE EST) IS MADE, SINCE THESE DEFAULT
* VALUES WILL ALWAYS BE ZERO.
SA1 PARC+PMUA DETERMINE IF KNOWN UPPER LEVEL ENTERED
SB2 B0
RJ VLC VERIFY UPPER ACCESS LEVEL
NG X2,PPM27 IF UNKNOWN VALUE ENTERED
SB4 X2 STORE VALUE
SA1 PARC+PMLA DETERMINE IF KNOWN LOWER LEVEL ENTERED
RJ VLC VERIFY LOWER ACCESS LEVEL
NG X2,PPM27 IF UNKNOWN VALUE ENTERED
SB3 X2+ STORE VALUE
SA1 SSFL
GT B3,B4,PPM26 IF LA .GT. UA
ZR X1,PPM15.1 IF UNSECURED SYSTEM
SA1 PARC+PMEQ GET DEFAULT LIMITS FROM EST
R= X4,ESTE
IX4 X1*X4
SA4 ESTB+1+X4
LX4 -12 GET UPPER LIMIT
MX0 -3
BX2 -X0*X4
SB7 X2 (B7) = UPPER LIMIT
LX4 -3 GET LOWER LIMIT
BX2 -X0*X4
SB6 X2+ (B6) = UPPER LIMIT
GT B4,B7,PPM24 IF VALUE SPECIFIED .GT. LIMIT
LT B3,B6,PPM25 IF VALUE SPECIFIED .LT. LOWER LIMIT
PPM15.1 SA1 B5+PFGL SET VALUES INTO MST
MX0 -6
LX0 6
BX2 X0*X1
SX3 B3 POSITION LOWER LEVEL
LX3 9
SX4 B4 POSITION UPPER LEVEL
LX4 6
BX3 X3+X4 SET INTO *PFGL*
BX6 X2+X3
SA6 A1
EQ PPMX RETURN
PPM16 ERROR 5 *EQ OR DN INCORRECT.*
MX7 0
EQ PPMX RETURN
PPM17 ERROR 16 *NP NOT ALLOWED.*
MX7 0
EQ PPMX RETURN
PPM18 ERROR 8 *NP GREATER THAN 8.*
MX7 0
EQ PPMX RETURN
PPM19 ERROR 2 *NC IS NOT A POWER OF 2.*
MX7 0
EQ PPMX RETURN
PPM20 ERROR 10 *NC EXCEEDS 200B.*
MX7 0
EQ PPMX RETURN
PPM21 ERROR 12 *NOT AUXILIARY PACK.*
MX7 0
EQ PPMX RETURN
PPM22 ERROR 1 *UN MUST BE SPECIFIED.*
MX7 0
SA7 PVT
EQ PPMX RETURN
PPM23 ERROR 23 * EQXXX, NO FULL TRACK ACCESS.*
BX7 X7-X7
EQ PPMX RETURN
PPM24 ERROR 27 *UA NOT WITHIN LIMIT.*
MX7 0
EQ PPMX RETURN
PPM25 ERROR 28 *LA NOT WITHIN LIMIT.*
MX7 0
EQ PPMX RETURN
PPM26 ERROR 29 *LA GREATER THAN UA.*
MX7 0
EQ PPMX RETURN
PPM27 ERROR 30 *UNKNOWN ACCESS LEVEL NAME.*
MX7 0
EQ PPMX RETURN
NULL DATA 4LNULL
CPN SPACE 4,10
** CPN - CHECK PACKNAMES.
*
* ENTRY (B5) = MST POINTER OF CURRENT EQUIPMENT.
*
* EXIT (X7) = 0 IF DUPLICATES OCCURED.
*
* USES X - 1, 2, 3,4, 5, 6, 7.
* A - 1, 2, 3, 4, 5, 7.
* B - 7.
*
* MACROS ERROR.
CPN SUBR ENTRY/EXIT
SA1 B5+MDGL
SA2 ESTF-1
SA4 B5+PFGL
LX1 59-58
BX7 X1
SA7 CPNB
MX7 42
BX4 X7*X4 CURRENT PACKNAME
CPN1 SA2 A2+B1
SB7 A2-ESTF-ESMX-1
ZR B7,CPNX IF END OF EQUIPMENTS
ZR X2,CPN1 IF EMPTY LINK
SA3 X2+PFGL
BX1 X3-X4 TEST NAME
SX6 B5
BX1 X7*X1
IX6 X2-X6
NZ X1,CPN1 IF NO MATCH
ZR X6,CPN1 IF CURRENT EQUIPMENT
SA5 X2+MDGL
LX5 59-58
SA1 CPNB
NG X1,CPN2 IF CURRENT DEVICE IS AUXILIARY
PL X5,CPN1 IF PART OF SAME FAMILY
CPN2 AX3 3
SA1 CPNA
MX6 -3
SA5 X2+STLL
BX6 -X6*X3
BX5 X1*X5 CHECK ERROR STATUS AND INITIALIZE
NZ X6,CPN1 IF NOT 1 OF M PACKS
NZ X5,CPN1 IF ERROR STATUS OR INITIALIZE
ERROR 9 *DUPLICATE PN.*
MX7 0
EQ CPNX ERROR EXIT
CPNA VFD 12/3600B,12/77B,36/0 INITIALIZE/STATUS MASK
CPNB CON 0 STATUS OF CURRENT DEVICE
ALP SPACE 4,10
** ALP - ALLOCATE PACKS.
*
* ENTRY (X1) = NUMBER OF UNITS-1 TO ALLOCATE.
*
* EXIT (X5) .LT. 0 IF ABLE TO ALLOCATE.
* TO *ABT* IF ACTIVE FILES ON LINKED EQUIPMENT.
*
* USES X - ALL.
* A - 1, 2, 3, 4, 5, 6, 7.
* B - 2.
*
* CALLS ALD, COD.
*
* MARCOS ERROR, MESSAGE.
ALP6 MX6 1 SET PACK ALLOCATED FLAG
BX7 X7-X7 SET END OF PACK EQUIPMENT LIST
SA6 A5
SA7 B2
ALP SUBR ENTRY/EXIT
SB2 PKL PACK EQUIPMENT LIST ADDRESS
SA5 PALF PACK ALLOCATION FLAG
NG X5,ALPX IF ALREADY ALLOCATED
SA2 PARC+PMEQ FIRST EQUIPMENT OF PACK
SA4 ESTF+X2 MST ADDRESS
R= X3,ESTE
IX3 X2*X3
SA3 ESTB+X3+EQDE GET EST ENTRY
SA4 X4+DDLL
MX0 -3
LX3 59-55
AX4 51
BX6 -X0*X4 SET ORIGINAL UNIT COUNT
SX7 X6+B1
IX5 X1-X7 UNIT COUNT-1 REMAINING TO ALLOCATE
NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE
PL X3,ALP1 IF NOT *LDAM* DEVICE
RJ ALD ALLOCATE *LDAM* DEVICE
PL X5,ALP4 IF DEVICE NOT ALLOCATED
EQ ALP6 RETURN
ALP1 SA3 A3+ GET EST ENTRY
SA1 ALPA STATUS MASK
BX2 X1*X3 DESIRED EQUIPMENT STATUS
LX3 59-56
PL X3,ALP3 IF DEVICE NOT REMOVABLE
ALP2 SA4 ESTF+X2 READ *STLL* WORD OF MST
SA4 X4+STLL
AX4 3 POSITION EST LINK
MX6 -9
BX6 -X6*X4
LX7 39
ZR X6,ALP4 IF END OF CHAINABLE DEVICE
SA6 ALPB
R= X3,ESTE
IX3 X4*X3
SA3 ESTB+X3+EQDE GET EST ENTRY
BX6 X2-X3
SA4 ESTF+X4 MST ADDRESS
BX3 X1*X6
NZ X3,ALP4 IF STATUS NOT CORRECT
SA3 ALPB GET EST ORDINAL
BX6 X7+X3
SA6 B2 PUT IN PACK EQUIPMENT LIST
MX6 1
BX6 X6+X4
SA6 A4 FLAG EQUIPMENT AS LINKED DEVICE
MX6 -12
SA3 X4+DDLL
SA4 X4+STLL
LX4 -12
BX6 -X6*X4
NZ X6,ALP5 IF ACTIVE USERS
AX3 51
BX7 -X0*X3 SET ORIGINAL UNIT COUNT
SB2 B2+1 ADVANCE PACK EQUIPMENT LIST ADDRESS
SX7 X7+B1
IX5 X5-X7 UNIT COUNT - 1 REMAINING TO ALLOCATE
NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE
EQ ALP2 PROCESS NEXT EQUIPMENT
ALP3 ERROR 15 *DEVICE NOT REMOVABLE.*
BX5 X5-X5
EQ ALPX ERROR EXIT
ALP4 ERROR 11 *CANNOT ALLOCATE DEVICE.*
BX6 X6-X6
SX5 B0
SA6 PKL CLEAR PACK EQUIPMENT LIST
EQ ALPX ERROR EXIT
ALP5 SA1 ALPB GET EST ORDINAL
RJ COD CONVERT EST ORDINAL TO DISPLAY CODE
MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE
LX6 30
SA4 MESA
LX7 30
BX6 -X7*X6
BX7 X7*X4
BX6 X6+X7
SA6 A4
MESSAGE A4 * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
RJ ABT ABORT *MSI*
ALPA VFD 6/4,6/0,12/0,3/7,9/0,12/7777B,12/0
ALPB BSS 1 EST ORDINAL
UMS SPACE 4,10
** UMS - UPDATE MASS STORAGE.
*
* ENTRY INTERNAL EST,S AND MST,S REFLECT NEW DEVICE PARAMETERS.
* (PKL) = LIST OF EQUIPMENT MST,S TO BE MODIFIED.
*
* EXIT (X1) .NE. 0 IF DUPLICATE DAT ENTRY.
*
* USES X - ALL.
* A - ALL.
*
* CALLS COD, PKI, BPT.
*
* MACROS ERROR, KEYMES, MESSAGE, SYSTEM.
UMS11 MESSAGE MESJ *LINK DEVICE CANNOT BE ALTERED.*
BX1 X1-X1
UMS SUBR ENTRY/EXIT
SA1 PARC+PMEQ EQUIPMENT
SA5 PKL
RJ BPT BUILD MST UPDATING PARAMETER TABLE
SA4 LINK
SA3 DSI
BX4 X4-X1
SA1 PKL CHECK FOR LINKED DEVICE
NG X3,UMS1 IF DEADSTART INITIALIZE
ZR X4,UMS11 IF LINK DEVICE
UMS1 NZ X1,UMS2 IF CHAINED DEVICE
RJ DTY
SA4 DTYA
SX5 X4-2RDE
SX4 X4-2RDP
MX0 -2
IX4 X4*X5
NZ X4,UMS1.1 IF NOT EXTENDED MEMORY DEVICE
SA4 PARC+PMEQ EXTRACT XM SHIFT
R= X5,ESTE
IX5 X4*X5
SA5 ESTB+X5+EQAE
LX5 -30
BX2 -X0*X5
SB2 X2
MX0 -11
SX5 20B
SA4 TUMS+3 CLEAR OLD SECTOR LIMITS
LX5 B2
BX6 X0*X4
LX0 36
BX6 X0*X6
BX6 X6+X5 MERGE NEW SECTOR LIMITS
LX5 36
BX6 X6+X5
SA6 A4
UMS1.1 SYSTEM IMS,R,TUMS,MMS
SA1 TUMS+6 CHECK REPLY
EQ UMSX RETURN
* IF THE EQUIPMENT IN THE LINK LIST IS AVAILABLE AND HAS
* A GOOD LABEL, THE PACKNAME AND USER NAME OR FAMILY NAME
* AND DEVICE NUMBER OR JUST THE FAMILY NAME MUST BE
* VERIFIED TO INSURE THE CORRECT PACK IS BEING INITIALIZED.
UMS2 SA2 ESTF+X1
R= X3,ESTE
IX3 X1*X3
SA3 ESTB+X3+EQDE GET EST ENTRY
SA4 X2+STLL
MX0 -6
LX4 24
LX3 59-54
BX5 -X0*X4
SX6 A1
SA6 TEMP SAVE PKL INDEX
PL X3,UMS4 IF AVAILABLE
ZR X5,UMS4 IF NO LABEL ERRORS
SA3 ELST CHECK LABEL ERROR FOR NONRECOVERABLE TYPE
UMS3 BX6 X3-X5
SA3 A3+B1
ZR X6,UMS9 IF NONRECOVERABLE ERROR
NZ X3,UMS3 IF NOT END LIST
UMS4 SA3 X2+PFGL
SA4 X2+PUGL
SA5 X2+STLL
MX0 42
BX6 X0*X3 PACKNAME OR FAMILY NAME
LX5 59-LIRP
BX7 X0*X4 USER NAME
SX1 X1+
NG X5,UMS6 IF INITIALIZE SET
RJ COD CONVERT EST ORDINAL TO DISPLAY CODE
MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE
LX6 30
SA4 ERROR19
LX7 30
BX6 -X7*X6
BX7 X7*X4
BX6 X6+X7
SA6 A4
UMS5 ERROR 19 * EQXXX, INITIALIZE BIT NOT SET.*
SX6 7777B
SX7 HNGP
SA6 CNT
SA7 ARGP
RJ PKI
EQ UMS5 LOOP
UMS6 NZ X7,UMS7 IF USER NAME SET
LX3 -12
MX0 -6
BX7 -X0*X3 DEVICE NUMBER
MX0 -3
ZR X7,UMS7 IF DEVICE NUMBER EQ ZERO
BX2 -X0*X7
AX7 3
SX2 X2+2R00
LX7 6
IX7 X2+X7
LX7 59-11
UMS7 SA6 SPN
SA7 SUN
SX1 X1 CLEAR PACK COUNT
MX0 1
RJ COD CONVERT EQ NUMBER
LX0 -22
BX6 X0+X4 ADD TRAILING PERIOD
SA6 ENID+2
UMS8 SX7 B1
SX6 EIDS
SA6 ARGP
SA7 CNT
KEYMES ENID *ENTER IDENTITY OF EQXXX.*
RJ PKI PROCESS KEYBOARD
SA1 PARC+PMID
SA5 PARC+PMID+1
SA2 SPN
SA3 SUN
BX4 X1-X2
BX5 X5-X3
NZ X4,UMS8 IF FN OR PN DO NOT MATCH
ZR X5,UMS9 IF UN OR DN MATCH
SA1 PARC+PMID+1
LX3 6
SX2 1R0
BX5 X3-X2
BX1 X5-X1
NZ X1,UMS8 IF NO MATCH ON DN
UMS9 SA2 TEMP
SA1 X2+B1 NEXT ENTRY IN PKL
NZ X1,UMS2 IF NOT END OF LIST
SA5 PKL START OF EQUIPMENTS
* UPDATE MST,S AND LINK EQUIPMENTS.
UMS10 BX4 X5 SAVE LINKED PACK COUNT
AX4 36
SYSTEM IMS,R,TUMS,MMS UPDATE MST
SA1 TUMS+6 CHECK REPLY
NZ X1,UMSX IF DUPLICATE DAT ENTRY
BX1 X5 SET EQUIPMENT
SA5 A5+B1 READ NEXT EQUIPMENT
ZR X4,UMSX IF END OF LIST
R= X2,ESTE
IX2 X1*X2
SA2 ESTB+X2+EQDE GET EST ENTRY
MX0 1
LX0 54-59
BX6 X0+X2
SA6 A2
SA2 ESTF+X1 SET DEVICE IN USE IN CHAIN
SA2 X2+STLL
SA3 TUMS+1 UPDATE N/M
SX4 X4
LX0 2-54
BX6 X2+X0
IX7 X4+X3 INCREMENT N/M
SA7 A2-STLL+PFGL
SA6 A2
RJ BPT BUILD PARAMETER TABLE
EQ UMS10 LOOP FOR NEXT ENTRY
SPN CON 0
SUN CON 0
ELST CON STLE LABEL ERROR
CON STNR NOT READY
CON 0
TUMS SPACE 4,15
** TUMS - TABLE OF MST UPDATING PARAMETERS.
*
*T, TUMS 60/ EST ENTRY
*T, 60/ PFGL MST WORD
*T, 60/ PUGL MST WORD
*T, 60/ MDGL MST WORD
*T, 12/ NC,12/ EQ,12/ AI,12/ CI,12/ NE
*T, 12/ NP, 48/ UNIT LIST (*LDAM* DEVICES)
*T, 60/ REPLY WORD
* NC NUMBER OF CATALOG TRACKS.
* EQ EST ORDINAL.
* AI ALGORITHM INDEX.
* CI CLEAR IN USE AS CHAINED DEVICE.
* NE NEXT EQUIPMENT IN LINKED DEVICE.
TUMS BSSZ 7
EDF SPACE 4,10
** EDF - SEPARATE FAMILY FROM OTHER MASS STORAGE.
*
* EXIT (B7) = EST ORDINAL.
*
* USES X - ALL.
* A - 1, 2, 4, 7.
* B - 2, 3, 7.
EDF SUBR ENTRY/EXIT
SA1 PARC+PMEQ
SB7 X1 SAVE EST ORDINAL
SA1 ESTF+X1
SA1 X1+PFGL
MX0 42
BX5 X0*X1 FAMILY NAME
SA1 ESTF-1
EDF1 SA1 A1+B1
MX3 42
MI X1,EDF5 IF LINKED EQUIPMENT
ZR X1,EDF2 IF EMPTY LINK
SA4 X1+PFGL
BX3 X0*X4
BX3 X3-X5 TEST FAMILY NAME
BX2 X1
EDF2 SB3 A1-ESTF-ESMX
ZR B3,EDFX IF END OF EST
ZR X3,EDF4 IF MATCH ON FAMILY
EDF3 MX7 0
SA7 A1 CLEAR NON FAMILY LINK
EQ EDF1 LOOP ON SEARCH
EDF4 SB2 A1-ESTF
EQ B2,B7,EDF1 IF CURRENT EQUIPMENT
SX4 B2
R= X3,ESTE
IX3 X4*X3
SA4 X2+STLL
SA3 ESTB+X3+EQDE GET EST ENTRY
SA2 X2+MDGL CHECK FOR AUXILIARY DEVICE
LX4 59-LDIU
LX3 59-54
LX2 59-58
NG X4,EDF3 IF DEVICE IN USE
MI X2,EDF3 IF AUXILIARY DEVICE CLEAR ENTRY
PL X3,EDF1 IF EQUIPMENT AVAILABLE LOOP FOR NEXT EQ
EQ EDF3 IF NOT AVAILABLE CLEAR LINK
EDF5 SA3 X1+STLL
MX6 60-LIRP
BX3 -X6*X3
MX6 48-LIMF
LX6 48
BX6 -X6*X3 CLEAR INITIALIZE REQUEST IN LINKED EQ
SA6 A3
EQ EDF3 GO CLEAR LINK
CMS SPACE 4,10
** CMS - CHECK MASK AND DEVICE NUMBER.
*
* ENTRY (B7) = EQ NUMBER.
*
* EXIT (B6) = DEVICE NUMBER.
* (B7) = EQ NUMBER.
* (X7) .LT. 0 IF NEW PARAMETERS TO PROCESS.
*
* USES ALL REGISTERS.
*
* CALLS PKI.
*
* MACROS ERROR.
CMS11 SA1 PARC+PMEQ SET EQUIPMENT
BX7 X7-X7
SB7 X1
SA1 ESTF+X1 SET DEVICE NUMBER
SA1 X1+PFGL
MX0 -6
AX1 12
BX1 -X0*X1
SB6 X1
CMS SUBR ENTRY/EXIT
CMS1 SA1 ESTF-1
MX6 0
SA5 ESTF+B7
SA5 X5+PFGL
MX0 -6
AX5 12
BX4 -X0*X5
SB6 X4 SAVE DN
CMS2 SA1 A1+B1
ZR X1,CMS5 IF EMPTY LINK
MX5 -8
SA2 X1+PUGL
BX3 X6*X2
BX2 -X5*X2
IX6 X6+X2
SA2 X1+PFGL
MX7 60-LIFD
SA5 X1+STLL CHECK INITIALIZE STATUS
AX2 12
BX2 -X0*X2 DEVICE NUMBER
BX5 X7*X5 EXTRACT FULL INITIALIZE FLAGS
IX2 X2-X4 CHECK AGAINST CURRENT DEVICE NUMBER
CX5 X5
MX7 1 ALLOW *GO* IF FULL INITIALIZE SET
LX5 59
BX7 X7-X5
SA7 CMSA
ZR X2,CMS8 IF DN MATCH
CMS3 ZR X3,CMS5 IF NO DUPLICATION OF BITS IN MASK
SB3 A1-ESTF
SX7 B3-B7
NZ X7,CMS4 IF NOT CURRENT DEVICE
MX7 1
SA7 CMSA INDICATE *GO* NOT ALLOWED
CMS4 ERROR 17 *DUPLICATE BITS IN MASK.*
EQ CMS6 DISPLAY ERROR
CMS5 SB3 A1-ESTF-ESMX
NZ B3,CMS2 IF NOT END OF FAMILY
SX7 377B
ZR X6,CMSX IF NO MASK BITS SET
BX6 X7-X6 TEST MASK
BX7 X7*X6
ZR X7,CMSX EXIT MASK OK
* PROCESS MASK OVER FLOW.
ERROR 3 *FAMILY MASK NOT EQUAL 377.*
SX7 0
SA7 CMSA INDICATE *GO* ALLOWED FOR THIS ERROR
CMS6 MX7 1
SX6 B1
SA7 PARC+PMDM CLEAR DEVICE MASK
SA6 CNT
SX7 ENMS
SA7 ARGP
RJ PKI PROCESS MASK ERROR
SA1 PARC+PMDM
SA5 CMSA CHECK IF *GO* ALLOWED
MX7 1
PL X1,CMSX IF NOT *GO*
CMS7 ZR X5,CMS11 IF *GO* ALLOWED
EQ CMS1 LOOP
* PROCESS DUPLICATE DEVICE NUMBER.
CMS8 SB3 A1-ESTF
EQ B3,B7,CMS3 IF SAME EQUIPMENT
ERROR 13 *DUPLICATE DN.*
CMS9 MX7 1
SA7 PARC+PMDN CLEAR DEVICE NUMBER
SX6 B1
SX7 ENDN
SA6 CNT
SA7 ARGP
RJ PKI PROCESS DN ERROR
SA1 PARC+PMDN
SA5 CMSA CHECK IF *GO* ALLOWED
MI X1,CMS7 IF *GO* ENTERED
NZ X1,CMS10 IF DN NOT ZERO
ERROR 20 *DN CANNOT BE ZERO.*
EQ CMS9 PROCESS ERROR
CMS10 MX7 1
EQ CMSX GO PROCESS NEW DN
CMSA CON 0 INDICATOR FOR ALLOWING *GO* ENTRY
CRE SPACE 4,15
** CRE - CHECK REQUIRED ENTRIES.
*
* ENTRY (B5) = ADDRESS OF MST FOR EQUIPMENT.
*
* EXIT (X6) = 0 IF NEW PARAMETERS TO PROCESS.
* (B5) = ADDRESS OF MST FOR EQUIPMENT.
*
* USES X - 0, 1, 2, 4, 6, 7.
* A - 1, 2, 4, 6, 7.
* B - 5.
*
* CALLS PKI.
*
* MACROS KEYMES.
CRE SUBR ENTRY/EXIT
MX0 42
SA1 B5+PFGL CHECK FAMILY/PACK NAME
BX6 X0*X1
NZ X6,CREX IF FAMILY/PACK NAME SPECIFIED
SX6 B5+ SAVE MST POINTER
SA6 TEMP
CRE1 KEYMES ENNFN *ENTER NEW FAMILY/PACK NAME.*
SX7 B1+
SA7 CNT
RJ PKI PROCESS KEYBOARD INPUT
SA2 PARC+PMFN
ZR X2,CRE1 IF FAMILY/PACK NAME NOT ENTERED
SA4 TEMP RESTORE MST POINTER
SB5 X4
MX6 0 NEW PARAMETERS TO PROCESS
EQ CREX RETURN
EDD SPACE 4,10
** EDD - EDIT DEVICE TRTS.
*
* ENTRY (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL OF INITIALIZED EQUIPMENT.
*
* EXIT B6,B7 NOT CHANGED.
*
* USES X - 0, 1, 2, 4, 5, 6.
* A - 1, 2, 4, 6.
* B - 3, 4.
*
* MACROS SYSTEM.
EDD SUBR ENTRY/EXIT
SA1 ESTF+B7 SET IMS PARAMETER WORD
MX0 -8
SB3 -B1
SA4 X1+PUGL
BX0 -X0*X4 EXTRACT DEVICE MASK
LX0 59-11
ZR X0,EDDX IF NOT MASTER DEVICE
SB0 0
EDD1 SB3 B3+B1
SB4 ESMX
SX5 B3
EQ B3,B4,EDDX IF END OF EQUIPMENTS
SA1 ESTF+B3
ZR X1,EDD1 IF NO ENTRY
EQ B3,B7,EDD1 IF EQUIPMENT BEING INITIALIZED
LX5 47-11
SA2 X1+STLL
MX4 60-LIPF
BX2 X4*X2
BX6 X0+X5
NZ X2,EDD1 IF FULL OR *PF* INITIALIZE SET
SA6 EDPA
SYSTEM IMS,R,EDPA,EDT EDIT TRT ON DEVICE
EQ EDD1 LOOP FOR NEXT EQUIPMENT
EDPA CON 0 12/MASK, 12/EQ, 36/0
ECT SPACE 4,10
** ECT - EDIT CATALOGS.
*
* ENTRY (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
*
* EXIT (B6) (B7) UNCHANGED.
*
* USES ALL BUT B6 AND B7
*
* CALLS OPC, RDC, SCT, SFF, WTC.
*
* MACROS CALLPFU, MESSAGE, RECALL, RETURN, SYSTEM.
ECT SUBR ENTRY/EXIT
RETURN CATS,R
SB5 ESTF-1
NZ B6,ECT1 IN DEVICE NUMBER .NE. 0
MESSAGE MESD * INTERNAL ERROR IN MSI.*
RJ ABT ABORT *MSI*
ECT1 SB4 B5-ESTF-ESMX+1
ZR B4,ECTX IF END FAMILY
SA1 B5+B1
SB5 B5+B1
ZR X1,ECT1 IF EMPTY LINK
SA3 X1+ALGL
SA5 X1+PUGL
MX0 -8
MX2 -12
SA4 X1+STLL
LX3 -12
BX7 -X0*X5 DEVICE MASK
MX0 60-LIPF
BX6 -X2*X3 MASK CATALOG TRACK COUNT
ZR X7,ECT1 IF NOT MASTER DEVICE
SA6 CNT SAVE CATALOG TRACK COUNT
BX4 X0*X4
SA5 X1+PFGL
NZ X4,ECT1 IF FULL OR *PF* INITIALIZE SET
RJ OCT OPEN CATALOG
ECT2 RJ RDC READ CATALOG ENTRIES
RJ SFF SEARCH FOR FILES AND DELETE
ZR X6,ECT3 IF NO FILES DELETED
RJ WTC REWRITE UPDATED CATALOG
ECT3 PL X7,ECT2 IF NOT END OF CATALOG TRACK
RJ ACT ADVANCE TO NEXT CATALOG TRACK
PL X7,ECT2 IF NOT END OF CATALOG TRACKS
SA1 CATS DROP *PFU*
SX7 10B
MX0 42
BX6 X0*X1
BX7 X7+X6 SET FUNCTION TO DROP *PFU*
SA7 A1
RECALL A1 WAIT FOR PFU TO COMPLETE
CALLPFU UIFT,CTCU,R CLEAR UTILITY INTERLOCK
RETURN CATS
EQ ECT1 LOOP FOR NEXT EQUIPMENT
ABT SPACE 4,10
** ABT - ABORT JOB.
*
* USES X - 0, 1, 2, 6, 7.
* A - 1, 2, 6, 7.
* B - 3, 5.
*
* MACROS ABORT, CALLPFU, MESSAGE, RECALL, ROUTE, SYSTEM.
ABT SUBR ENTRY
ABT1 SA1 SSID
SX1 X1-DSSI
NZ X1,ABT2 IF NOT DEADSTART SEQUENCING
MESSAGE MESL
+ EQ * HANG
ABT2 SYSTEM IMS,R,B1,CIT CLEAR *CMS* INTERLOCK
SB3 0
SB5 ESMX
ABT3 SA2 ESTF+B3 CHECK FOR ISD INTERLOCK
LX2 59-58
PL X2,ABT4 IF EQUIPMENT NOT INTERLOCKED
SX6 B3
LX6 48 SET EST ORDINAL
SA6 CIRB
SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK
SA1 CIRB
PL X1,ABT3 IF INTERLOCK NOT CLEARED
ABT4 SB3 B3+1
LT B3,B5,ABT3 IF NOT END OF EQUIPMENTS
SA2 PFUF
SA1 CATS CHECK *PFU* ACTIVITY
SX7 10B
MX0 42
ZR X2,ABT5 IF *PFU* NOT ACTIVE
BX6 X0*X1
BX7 X7+X6
SA7 A1
RECALL A1 WAIT FOR PFU TO COMPLETE
ABT5 SA1 UIFL
ZR X1,ABT6 IF UTILITY INTERLOCK NOT SET
SA1 UIFT
SX2 B1 FORCE FET COMPLETE
BX6 X1+X2
SA6 A1
CALLPFU A1,CTCU,R CLEAR UTILITY INTERLOCK
ABT6 MESSAGE MESB * MSI ABORTED INITIALIZE MAY NOT BE
* COMPLETE.*
SYSTEM DMD,R,RFL=
SETFS OUTPUT,0 CHANGE FILE STATUS FOR SSJ= OUTPUT
ROUTE ABTA,R
ABORT ABORT *MSI*
* ROUTE BLOCK FOR MEMORY DUMP.
ABTA VFD 42/0LOUTPUT,18/0
VFD 24/0,12/2HLP,6/0,18/FRCS+FRDC
BSS DPBL-2
OCT SPACE 4,10
** OCT - OPEN CATALOG.
*
* ENTRY (B5) = ESTF POINTER.
* (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
* (X5) = *PFGL* WORD OF MST.
* (X7) = DEVICE MASK.
*
* EXIT B5, B6, B7, NOT CHANGED.
* CATALOG OPENED AND *PFU* ACTIVE.
* CATS FET NOT BUSY.
*
* USES ALL BUT B5, B6, B7.
*
* MACROS CALLPFU, RECALL.
OCT SUBR ENTRY/EXIT
MX0 -6
AX5 12
BX3 -X0*X5
SB2 X3 SAVE DN OF THIS EQIPMENT
LX5 12
SB4 7
LX7 59-7
OCT1 MI X7,OCT2 IF MASK BIT SET
LX7 1
SB4 B4-B1
EQ OCT1 FORM USER NAME FOR THIS DEVICE
OCT2 MX0 42
SX7 B5-ESTF EQ NUMBER
SA7 SCRB PF DESCRIPTION (42/0, 6/, 12/ EST ORDINAL)
SX6 B4 SAVE USER INDEX
SA6 A7+B1
SX1 A7 SET ADDRESS OF PF DESCRIPTION
SX2 A6 SET ADDRESS OF USER INDEX
LX1 18
BX7 X1+X2
SA7 CATS+FTPM
CALLPFU CATS,CTCT,R GET CATALOG TRACK PARAMETERS
* OPEN CATALOG FILE.
SX2 5 FILE STATUS
SA1 CATS+FTPM GET CATALOG TRACK PARAMETERS
MX0 -24
BX1 -X0*X1 SET EST ORDINAL AND FIRST TRACK
MX0 -12
BX6 -X0*X1 SET CURRENT TRACK
LX1 36
BX2 X2+X1 BUILD CATALOG TRACK FST ENTRY
LX6 24
BX7 X2+X6
SA7 A1
BX6 X6-X6 CLEAR SECTOR COUNT
SA6 CATS+FTSC
CALLPFU CATS,CTOP,R OPEN CATALOG FILE
* SET UTILITY INTERLOCK ON DEVICE.
SX7 B5-ESTF SET EQUIPMENT TO INTERLOCK
SX2 UIFL SET INTERLOCK FLAG ADDRESS
LX7 48
BX6 X7+X2
SA6 UIFT+FTPM
CALLPFU UIFT,CTSU,R SET PF UTILITY INTERLOCK
* ACTIVATE PFU LOAD PROCESSOR.
SA1 CATS CLEAR CATS FET STATUS
SX7 B2 SET MASTER DEVICE NUMBER
MX2 42
SX3 PFUF SET ADDRESS OF PFU ACTIVE FLAG
LX7 54
BX6 X7+X3
SA6 CATS+FTPM
BX1 X2*X1
SX2 B1 SET CATS FET COMPLETE
BX7 X1+X2
SA7 A1
* IT IS NECESSARY TO DO A SEPARATE RECALL ON CATS RATHER THAN
* CALLING THE CTLM PROCESSOR OF PFU WITH AUTO RECALL SINCE PFU
* STAYS AT THE CONTROL POINT AFTER INITIALIZING THE CTLM
* PROCESSOR AND SETTING THE FET COMPLETE BUT DOES NOT RESTART
* THE CPU.
CALLPFU CATS,CTLM ACTIVATE PFU LOAD PROCESSOR
RECALL CATS WAIT FOR PFU TO INITIALIZE
EQ OCTX EXIT
ACT SPACE 4,10
** ACT - ADVANCE CATALOG TRACK.
*
* ENTRY (B5) = ESTF POINTER.
* (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
* CATS FET NOT BUSY.
*
* EXIT B5,B6,B7 UNCHANGED.
* (X7) = 0 CATALOG TRACK ADVANCED.
* (X7) .LT. 0 END OF CATALOG TRACKS.
* CATS FET NOT BUSY.
*
* USES X - 0, 1, 2, 3, 6, 7.
* A - 1, 2, 6, 7.
*
* MACROS RECALL.
ACT SUBR ENTRY/EXIT
SA1 CNT
SX6 X1-1
SA6 A1
* ADVANCE TO NEXT CATALOG TRACK
ACT1 SA2 SCRB+1 18/UI
SX7 X2+10B
SA7 A2 18/NEXT UI
SX0 A7-B1
SX7 A7
LX0 18
BX7 X0+X7 18/SCR,18/SCR+1
SA1 CATS+1 REWIND BUFFER
SA2 A1-B1 SET POSITION FUNCTION CODE IN FET
SA7 CATS+FTCA
MX3 42
SX6 X1
BX7 X7-X7 CLEAR SECTOR COUNTER
SA6 A1+B1
SA7 CATS+FTSC
BX7 X3*X2
SA6 A6+B1
SA7 A2 ISSUE FILE POSITION REQUEST
RECALL A2 WAIT FOR *PFU* TO PROCESS REQUEST
SA1 CNT CHECK IF END OF CATALOG TRACKS
MX7 1
ZR X1,ACTX IF END OF CATALOG TRACKS
MX7 0
EQ ACTX RETURN
RDC SPACE 4,10
** RDC - READ CATALOG.
*
* ENTRY (B5) = ESTF POINTER.
* (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
*
* EXIT B5,B6,B7 UNCHANGED.
* CATALOGS READ INTO CATS BUFFER.
* CATS FET NOT BUSY.
*
* USES X - 0, 1, 2, 3, 6, 7.
* A - 1, 3, 6, 7.
*
* MACROS RECALL.
RDC SUBR ENTRY/EXIT
SA1 CATS
MX0 42
BX6 X0*X1
SX2 4 READ FUNCTION
BX6 X6+X2
SA3 A1+B1 GET FIRST
BX7 -X0*X3
SA7 A3+B1 RESET IN AND OUT
SA7 A7+B1
SA6 A1 SET FUNCTION
RECALL CATS
MX7 0
SA7 CATS+FTSC CLEAR SECTOR COUNT
EQ RDCX RETURN
SFF SPACE 4,20
** SFF - SEARCH FOR FILES.
*
* ENTRY (B5) = ESTF POINTER.
* (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
*
* EXIT B5,B6,B7 UNCHANGED.
* (X6) = 0 IF CATALOG NOT CHANGED.
* (X7) .LT. 0 IF EOI ENCOUNTERED.
* CATALOG ENTRIES (PFC-S) THAT POINT TO FILES ON
* SPECIFIED DEVICE ARE CHANGED AS FOLLOWS.
* 1. IF PFC HAS VALID ALTERNATE STORAGE ADDRESS (ASA),
* THE DISK ADDRESS IS CLEARED.
* 2. IF THE PFC HAS NO ASA, THEN THE PFC IS DELETED
* BY CLEARING THE USER INDEX.
*
* USES X - 0, 1, 2, 4, 6, 7.
* A - 1, 2, 4, 7.
* B - 3, 4.
SFF SUBR ENTRY/EXIT
SX7 B0
SX6 B0
SA1 CATS+2 IN
SA2 CATS+1 FIRST
SX0 177B
SA2 X2
BX0 X0*X2 CHECK FOR EMPTY SECTOR
NZ X0,SFF1 IF NOT EMPTY
MX7 1
EQ SFFX EXIT
SFF1 SB4 CATB+1
SB3 X0 WORDS IN SECTOR
MX0 -6
SX1 B1 SET WRITE WITHOUT EOI FLAG
LX1 53-0
BX7 X1+X2
SA7 A2
SFF2 SA1 B4+FCEO CHECK DEVICE NUMBER
SX4 B6
LX1 59-35
BX1 -X0*X1 MASK OFF DN
IX4 X1-X4
NZ X4,SFF4 IF DN-S DO NOT MATCH
* CHECK ALTERNATE STORAGE COPIES OF FILE DATA. IF THE FILE
* DATA RESIDES ON TAPE OR CARTRIDGE ALTERNATE STORAGE, THE
* DISK ADDRESS AND THE DEVICE NUMBER IN THE CATALOG ENTRY
* WILL BE CLEARED TO FORCE A RESTAGE OF THE FILE ON THE NEXT
* *ATTACH*. OTHERWISE, THE CATALOG ENTRY WILL BE DELETED.
SA1 B4+FCTV
MX2 -24
BX7 -X2*X1
NZ X7,SFF2.1 IF TAPE ALTERNATE STORAGE COPY EXISTS
SA1 B4+FCAA
MX2 -36
BX7 -X2*X1
ZR X7,SFF3 IF NO CARTRIDGE ALTERNATE STORAGE COPY
LX1 59-48
NG X1,SFF3 IF CARTRIDGE COPY OBSOLETE
SFF2.1 SA2 B4+FCBT CLEAR DISK ADDRESS OF FILE
MX7 48
LX7 12
BX7 X7*X2
SA7 A2
SA2 B4+FCDN CLEAR DEVICE NUMBER
MX7 54
LX7 36
BX7 X7*X2
SA7 A2
SX6 B1 FORCE CATALOG UPDATE
EQ SFF4 CHECK NEXT CATALOG ENTRY
SFF3 SA1 B4+FCUI CLEAR USER INDEX OF FILE
MX2 42
BX7 X2*X1 CLEAR USER INDEX
SA7 A1
SX6 B1 FORCE CATALOG UPDATE
* PROCESS NEXT CATALOG ENTRY.
SFF4 SB4 B4+NWCE
SB3 B3-NWCE
NZ B3,SFF2 IF MORE ENTRIES IN THIS SECTOR
SA1 CATS+2 GET IN
SA2 CATS+FTSC
SA4 CATS+4 GET LIMIT
SB3 B0
SX7 X2+B1 BUMP SECTOR COUNT
SX2 B4+B1
IX2 X1-X2 IN - BUFFER POINTER
SA7 A2
IX4 X4-X1 LIMIT - IN
MI X2,SFFX IF POINTER .EQ. IN
SA1 B4 READ NEXT CONTROL WORD
MX2 -24
SX7 177B
BX2 -X2*X1
BX7 X7*X1
SB4 B4+B1 SET TO NEXT CATALOG ENTRY
SB3 X7 WORDS IN SECTOR
MX7 1 SET WRITE WITHOUT EOI FLAG
LX7 53-59
BX7 X7+X1
SA7 A1
NZ X2,SFF2 IF MORE DATA
MX7 1 FLAG EOI ENCOUNTERED
EQ SFFX RETURN
WTC SPACE 4,10
** WTC - WRITE CATALOG BUFFER TO DISK.
*
* ENTRY (B5) = ESTF POINTER.
* (B6) = DEVICE NUMBER.
* (B7) = EST ORDINAL.
*
* EXIT B5,B6,B7 UNCHANGED.
* CATALOGS WRITTEN FROM CATS BUFFER.
* CATS FET NOT BUSY.
*
* USES X - 0, 1, 2, 6.
* A - 1, 6.
*
* MACROS RECALL.
WTC SUBR ENTRY/EXIT
SA1 CATS
MX0 42
SX2 2 WRITE FUNCTION
BX6 X0*X1
BX6 X6+X2
SA6 CATS WRITE CATALOG
RECALL CATS
EQ WTCX RETURN
TITLE SUBROUTINES.
ALD SPACE 4,15
** ALD - ALLOCATE *LDAM* DEVICES.
*
* ENTRY (A3) = EST ENTRY ADDRESS.
* (A5) = *PALF* ADDRESS.
* (X2) = EST ORDINAL.
* (X5) = UNIT COUNT-1 REMAINING TO ALLOCATE.
* (X7) = ORIGINAL UNIT COUNT.
* (B2) = *PKL* INDEX.
*
* EXIT (A5) = *PALF* ADDRESS.
* (B2) = *PKL* INDEX.
* (X5) = .LT. 0 IF DEVICE ALLOCATED.
*
* USES X - ALL.
* A - 1, 2, 3, 4, 6, 7.
* B - 2, 3, 4, 5.
*
* CALLS AUL.
ALD SUBR ENTRY/EXIT
SA3 A3 GET EST ENTRY
SB3 X2 SAVE EST ORDINAL
SA1 ALDA GET ALLOCATION MASK
SB4 X2 SET SEARCH INDEX
BX0 X1
BX1 X0*X3 MATCH CRITERIA
LX3 59-56
PL X3,ALDX IF DEVICE NOT REMOVABLE
ALD1 SB4 B4+B1 INCREMENT EST ORDINAL
SX3 B4
R= X2,ESTE
IX2 X3*X2
SA2 ESTB+X2+EQDE GET EST ENTRY
SA3 B4+ESTF
SX4 B4-ESMX
PL X4,ALDX IF END OF EST ENTRIES
BX6 X0*X2 CHECK DEVICE FOR MATCH
BX6 X1-X6
SA4 X3+STLL
NZ X6,ALD1 IF NO DEVICE MATCH
* THE CHANNELS OF THE FIRST DEVICE ARE COMPARED WITH
* THE CHANNELS OF THE LINK CANDIDATES TO INSURE THAT ALL
* ITS CHANNELS ARE CONTAINED IN THE LINK DEVICES CHANNELS.
SB5 B0 INITIALIZE CHANNEL COMPARE
LX2 24 POSITION CHANNELS (B * * * * * * * A)
MX3 -12
BX6 -X3*X2 CHANNEL *A*
SA6 ALDB
LX2 12
BX6 -X3*X2 CHANNEL *B*
SA6 A6+B1
SX3 B3
R= X2,ESTE
IX3 X3*X2
SA3 ESTB+X3+EQDE GET EST ENTRY OF FIRST EQUIPMENT
LX3 24
SA2 ALDB
ALD2 MX6 -12 CHECK CHANNEL WITH LIST
BX6 -X6*X3
ZR X6,ALD3 IF CHANNEL .EQ. 0
BX2 X2-X6
ZR X2,ALD4 IF CHANNELS COMPARE
SA2 A2+B1
NZ X2,ALD2 IF MORE CHANNELS TO CHECK
EQ ALD1 LOOP FOR NEXT EQUIPMENT
ALD3 NZ B5,ALD4 IF NOT CHANNEL *A*
NZ X2,ALD1 IF LIST CHANNEL *A* .NE. 0
ALD4 LX3 12 TEST NEXT CHANNEL
SB5 B5+B1
SA2 ALDB
SX6 B5-2 *** TWO CHANNEL SUPPORT
NZ X6,ALD2 IF NOT END OF CHANNELS
MX6 12 CHECK FOR ACTIVE USES
SX2 B4
MX3 60-LIFD
LX6 24
BX6 X6*X4
BX3 X3*X4
NZ X6,ALD1 IF ACTIVE USERS
ZR X3,ALD1 IF TOTAL INITIALIZE NOT SET
LX7 39
LX4 0-3
BX7 X7+X2 FORM *PKL* ENTRY
MX6 -3
SA7 B2
BX7 -X6*X4
SB2 B2+B1 INCREMENT *PKL* INDEX
SX7 X7+B1 ADJUST UNIT COUNT
IX5 X5-X7
PL X5,ALD1 IF MORE UNITS TO ALLOCATE
RJ AUL ASSEMBLE UNIT LIST
EQ ALDX RETURN
ALDA VFD 12/5600B *MS*, SHARED, REMOVABLE, *LDAM*
VFD 24/0
VFD 12/7777B 0N/OFF AND TYPE
VFD 12/0
ALDB BSS 3 CHANNEL LIST FOR DEVICE MATCH
AUL SPACE 4,10
** AUL - ASSEMBLE UNIT LIST.
*
* ENTRY (B3) = EST ORDINAL.
*
* EXIT *DDLL* LIST BUILT.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* A - 1, 2, 3, 4, 7.
* B - 3, 4, 5, 6, 7.
AUL3 SA2 B3+ESTF FORM *DDLL*
MX0 -48
LX7 B5,X7
SA1 X2+DDLL
BX4 -X0*X7
BX1 X0*X1
BX7 X1+X4
SA7 X2+DDLL SET *DDLL* IMAGE IN MST
AUL SUBR ENTRY/EXIT
SB4 PKL INITIALIZE INDEX
SX1 B3
MX0 -6
SA4 PARC+PMNP GET UNIT COUNT
SB5 B0 INITIALIZE SHIFT INDEX
SB6 X4
AUL1 SA1 X1+ESTF
SA3 X1+DDLL
BX2 X3
MX6 -3 GET ORIGINAL UNIT COUNT
LX2 -51
SB7 6
BX6 -X6*X2
AUL2 BX4 -X0*X3 MASK UNIT
BX7 X0*X7
BX7 X4+X7 MERGE NEXT UNIT
SX6 X6-1
SB6 B6-B1
LX7 -6
AX3 6
SB5 B5+B7
ZR B6,AUL3 IF END OF ASSEMBLY
PL X6,AUL2 IF MORE UNITS TO MERGE
SA1 B4 GET NEXT EQUIPMENT
SB4 B4+B1
EQ AUL1 LOOP TO ASSEMBLE NEXT UNIT
BPT SPACE 4,10
** BPT - BUILD MST UPDATING PARAMETER TABLE.
*
* ENTRY (X1) = EST ORDINAL.
* INTERNAL EST AND MST REFLECT NEW PARAMETERS.
* (X5) = *PKL* LIST ENTRY.
*
* EXIT *TUMS* BUILT FOR IMS FUNCTION 6.
* (X5) = UNCHANGED.
*
* USES X - 0, 2, 3, 4, 6, 7.
* A - 2, 3, 4, 6, 7.
BPT SUBR ENTRY/EXIT
SA2 X1+ESTF MST ADDRESS
R= X3,ESTE
IX3 X1*X3
SA3 ESTB+X3+EQDE GET NEW EST ENTRY
SA4 X2+PFGL GET NEW MST WORDS
BX6 X3
LX7 X4
SA3 X2+PUGL
SA6 TUMS
MX0 1 SET 16-WORD PFC FLAG
SA4 X2+MDGL
LX0 57-59
SA7 A6+B1 TUMS + 1
LX6 X3
BX7 X0+X4
SA6 A7+B1 TUMS + 2
SA7 A6+B1 TUMS + 3
MX0 -12
SA3 X2+ALGL CATALOG COUNT
AX3 12
BX6 -X0*X3
SA4 X2+DILL ALGORITHM INDEX
SA3 X2+STLL
LX6 12
MX7 LIHD-LIFD+1
BX6 X6+X1 NC, EQ
LX7 LIHD-59
BX4 -X0*X4
LX6 12
BX7 X7*X3
ZR X7,BPT1 IF NOT CHANGING ALGORITHM INDEX
BX6 X6+X4 NC, EQ, AI
BPT1 LX3 59-LDIU
LX6 24
LX0 12
BX6 -X0+X6 NC, EQ, AI, CI
SA4 X2+DDLL GET NEW DEVICES UNIT LIST
PL X3,BPT2 IF CLEARING DEVICE IN USE IN CHAIN
SA4 X2+STLL GET CURRENT UNIT COUNT
SA3 X2+DDLL GET CURRENT UNIT LIST
BX6 X0*X6
MX0 -48
LX4 59-14
MX2 3
BX7 -X0*X3
LX2 -9
BX4 X2*X4
BX4 X4+X7
BPT2 SX3 X5 SET NEXT EQUIPMENT IN CHAIN
BX6 X6+X3
SA6 A7+B1 TUMS+4
BX7 X4
MX6 0
SA7 A6+B1 TUMS+5
SA6 A7+B1 TUMS+6 = CLEAR REPLY WORD
EQ BPTX RETURN
CIR SPACE 4,10
** CIR - CHECK INITIALIZATION REQUESTED.
*
* EXIT (B6) .LT. 0 IF NO EQUIPMENT FOUND.
* (B6) = FIRST EQUIPMENT FOUND.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* A - 1, 2, 3, 4, 6.
* B - 4, 5, 6.
*
* MACROS SYSTEM.
CIR SUBR ENTRY/EXIT
SB3 NOPE INITIALIZE EST ORDINAL FOR SEARCH
SB6 -B1
SB5 ESMX
CIR1 EQ B3,B5,CIRX IF END OF EQUIPMENTS
SA2 ESTF+B3
SB3 B3+B1
ZR X2,CIR1 IF EMPTY LINK
SX6 B3-B1 EST ORDINAL
R= X1,ESTE
IX1 X6*X1
SA1 ESTB+X1+EQDE GET EST ENTRY
SA4 X2+STLL
NG X4,CIR2 IF FORMAT PENDING
MX3 60-LIPF
BX7 X3*X4
LX4 59-LIRP
PL X4,CIR1 IF NO INITIALIZE REQUESTS PENDING
BX3 X1
LX4 LIRP-LUNL
MI X4,CIR1 IF DEVICE UNLOADED
LX1 59-57
BX4 X3
LX4 59-49
LX3 59-52
BX1 X3+X1
LX6 48
NG X4,CIR2 IF DEVICE OFF OR DOWN
PL X1,CIR3 IF NOT SHARED DEVICE
ZR X7,CIR3 IF NOT GLOBAL INITIALIZE
SA6 CIRA
PL X3,CIR1.1 IF NOT AN ISD DEVICE
SX7 B1
BX6 X6+X7
SA6 CIRB
SYSTEM IMS,R,CIRB,ISD INTERLOCK DEVICE
SA1 CIRB
PL X1,CIR2 IF DEVICE NOT INTERLOCKED
SA2 B3+ESTF-1 SET DEVICE INTERLOCKED FLAG
MX7 1
LX7 -1
BX7 X7+X2
SA7 A2
CIR1.1 SYSTEM IMS,R,CIRA,CSD CHECK DEVICE STATUS
SA1 CIRA CHECK REPLY
NG X1,CIR3 IF DEVICE UNLOADED IN OTHER MACHINES
CIR2 SA4 A4 CLEAR INITIALIZE REQUESTS
MX3 60-LIRP
BX4 -X3*X4
MX3 48-LIMF
LX3 48
BX6 -X3*X4
SA6 A4+
EQ CIR1 LOOP ON SEARCH
CIR3 PL B6,CIR1 IF EQUIPMENT ALREADY FOUND
SB6 B3-B1
SX7 B3-B1 SET EQUIPMENT TO PROCESS
SX1 B3+1000B-1 ENSURE LEADING ZEROES IN CONVERSION
MX0 -18
SA7 PARC+PMEQ
RJ COD
SA2 =7L
BX6 -X0*X6
SA6 EQ
BX7 X6+X2
LX7 -18
SA7 EQDS+1 SET EST ORDINAL IN K-DISPLAY
EQ CIR1 LOOP ON SEARCH
CIRA CON 0 IMS REQUEST/REPLY AREA
CIRB CON 0 ISD INTERLOCK STATUS
CMC SPACE 4,10
** CMC - CHECK MODE CHANGE.
*
* ENTRY (PARC+PMEQ) = EQUIPMENT TO CHECK FOR MODE CHANGE.
* (B5) = MST ADDRESS OF EQUIPMENT.
*
* EXIT (X7) = 0 IF NO FULL TRACK ACCESS WHEN REQUIRED.
* TO *ABT* IF INTERNAL ERROR DETECTED.
*
* USES X - ALL.
* A - 1, 2, 3, 4, 6, 7.
* B - 3, 6.
*
* CALLS PMC.
CMC4 SX6 -B3 SET *CLEAR* OVERRIDE
SA6 CLOV
MX0 18
SA4 EQ
SA1 ERROR23 FORM MESSAGE
LX0 -12
BX6 -X0*X1
LX4 48-18
BX6 X6+X4
SA6 A1 *EQXXX, NO FULL TRACK ACCESS.*
BX7 X7-X7
CMC SUBR ENTRY/EXIT
SA4 PARC+PMEQ
SX7 B1
SB3 X4
SA3 B5+STLL
LX3 59-LIHD
SB6 B0 INDICATE HALF TRACK
NG X3,CMC1 IF HALF TRACK MODE
LX3 LIHD-LIFD
PL X3,CMCX IF NO MODE CHANGE
BX3 X3-X3
CMC1 RJ PMC PROCESS MODE CHANGE
NG X5,CMC4 IF NO FULL TRACK ACCESS
SB3 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
CMC2 SB3 B3+B1 ADVANCE EST ORDINAL
SX7 B1
SB4 B3-ESMX
ZR B4,CMCX IF END OF EST
SA2 B3+ESTF
SB4 X2
EQ B4,B5,CMC2 IF CURRENT EQUIPMENT
SA3 B4+STLL
LX3 59-LIHD
SB6 B0 SET HALF TRACK MODE
NG X3,CMC3 IF HALF TRACK MODE
LX3 LIHD-LIFD
PL X3,CMC2 IF NO MODE CHANGE
BX3 X3-X3
CMC3 RJ PMC PROCESS MODE CHANGE
EQ CMC2 LOOP
DIO SPACE 4,10
** DIO - DISPLAY INITIALIZE OPTIONS.
*
* EXIT DISPLAY UPDATED.
* (TOTL) = 0 IF NOT TOTAL INITIALIZE.
*
* USES X - 0, 2, 3, 5, 6, 7.
* A - 2, 3, 5, 6, 7.
* B - 2, 3, 4.
* DISABLE ACCESS LEVEL PARAMETER ENTRIES ON ANYTHING
* OTHER THAN A TOTAL INITIALIZE.
DIO2 MX7 1
SA7 ENLA DISABLE *LA* PARAMETER ENTRY
SA7 A7+B1 DISABLE *UA* PARAMETER ENTRY
ERRNZ ENUA-ENLA-1 ERROR IF WORDS NOT CONTIGUOUS
MX0 LIPF-LIQF+1 EXTRACT *PF* AND *QF* OPTIONS
LX5 LIFD-LIPF
BX3 X0*X5
MX0 48-LIMF EXTRACT DAYFILE OPTIONS
LX5 LIPF-LIDF
BX2 X0*X5
LX2 LIQF-LIFD MERGE PARTIAL INITIALIZE OPTIONS
BX5 X3+X2
SB4 TPDS+2
SA3 BLK
SB3 42
SA2 DIOB
BX7 X3
SX0 77B
DIO3 PL X5,DIO4 IF OPTION NOT SET
BX3 X0*X2
LX3 6
SX3 X3+1RF&1R
LX6 X3,B3
BX7 X6-X7
SB3 B3-18
PL B3,DIO4 IF DISPLAY WORD NOT FILLED
SA7 B4+1
SX6 A7-TPDS-4
ZR X6,DIOX IF DISPLAY LINE LIMIT
SA3 BLK
SB4 A7
BX7 X3
SB3 48 RESET SHIFT COUNT
DIO4 AX2 6
LX5 1
NZ X2,DIO3 IF ALL OPTIONS NOT CHECKED
BX6 X6-X6
SA7 B4+B1
SA6 TOTL CLEAR TOTAL INITIALIZE STATUS
DIO SUBR ENTRY/EXIT
SA3 PARC+PMEQ GET EST ORDINAL
SA4 ESTF+X3 GET MST ADDRESS
SA5 X4+STLL
SB2 B0
LX5 59-LIAL
NG X5,DIO1 IF INITIALIZE *AL*
SB2 B2+B1
LX5 LIAL-LIHD
NG X5,DIO1 IF INITIALIZE *HT*
SB2 B2+B1
LX5 LIHD-LIFD
DIO1 PL X5,DIO2 IF NOT INITIALIZE *FT*
SA2 B2+DIOA SET VALUE FOR INITIALIZE REQUEST
MX7 1
SA3 BLK
BX6 X2
SA7 TOTL SET TOTAL INITIALIZE INDICATOR
SA6 TPDS+3
BX7 X3
SA7 A6+B1
EQ DIOX RETURN
DIOA DATA H$ *TOTAL*$
DATA H$*TOTAL/HT*$
DATA H$*TOTAL/FT*$
DIOB VFD 24/0,36/6RMEADQP&6R
DTY SPACE 4,10
** DTY - GET PARAMETERS FOR DEVICE TYPE.
*
* ENTRY PARC+PMEQ = EST ORDINAL.
*
* EXIT (X3) = TDTY ENTRY FOR DEVICE TYPE.
* (X3) = 0 IF EQUIPMENT NOT FOUND.
* (X5) = EST ORDINAL.
*
* USES X - 2, 3, 5, 6.
* A - 3, 5.
DTY SUBR ENTRY/EXIT
MX2 11
SA5 PARC+PMEQ GET EQUIPMENT
LX2 -1
R= X3,ESTE
IX3 X5*X3
SA3 ESTB+X3+EQDE GET EST ENTRY
LX3 36
BX2 X2*X3 DEVICE TYPE
BX6 X2 SAVE DEVICE TYPE
LX6 12
SA6 DTYA
SA3 TDTY-1
DTY1 SA3 A3+B1
BX6 X2-X3
LX6 1
AX6 48+1
ZR X6,DTYX IF DEVICE TYPE FOUND
NZ X3,DTY1 IF MORE ENTRIES
EQ DTYX RETURN
DTYA CON 0 DEVICE TYPE
ISF SPACE 4,15
** ISF - INITIALIZE SPECIAL FILES.
*
* USES X - 0, 1, 2, 3, 4, 5, 6.
* A - 1, 2, 3, 4, 6.
*
* MACROS MESSAGE, QCALL, SYSTEM.
ISF SUBR ENTRY/EXIT
SA1 PARC+PMEQ GET MST POINTER
SA1 X1+ESTF
SB5 X1
SA3 TOTL
SA4 B5+STLL
AX3 59
BX4 X3+X4
MX5 -4
LX4 59-LIQF CHECK QUEUE FILE INITIALIZATION
PL X4,ISF5 IF NOT SELECTED
* INITIALIZE INACTIVE QUEUED FILES.
SA3 QFET
SA2 PARC+PMEQ
LX5 10
BX6 X5*X3 CLEAR ERROR CODE
LX2 48-0
SA6 A3 RESET FET+0
BX6 X2
SA6 A3+7 SET EST ORDINAL FOR *QFM*
QCALL IIQF,QFET INITIALIZE QUEUED FILES
SA1 QFET
BX5 -X5*X1 ISOLATE ERROR CODE
AX5 10D SET ERROR CODE LOWER
SA1 PARC+PMEQ
SA3 MESI * EQXXX, INACTIVE QUEUES INITIALIZED.*
SA2 TOTL
ZR X5,ISF1 IF QUEUES INITIALIZED
SA3 MESE * EQXXX, UNABLE TO INITIALIZE IQFT.*
NG X2,ISF5 IF TOTAL INITIALIZE
ISF1 SA1 EQ SET EST ORDINAL IN MESSAGE
MX0 42
LX1 42-18
LX0 42-18
BX3 X0*X3
BX6 X3+X1
SA6 A3
SX0 A3 SET MESSAGE ADDRESS
ZR X5,ISF4 IF FILE INITIALIZED
SX2 X5-FAIE
NZ X2,ISF2 IF NOT INTERLOCK ERROR
MESSAGE MESF,,R * IQFT FILE INTERLOCKED.*
EQ ISF4 SET UNABLE TO INITIALIZE IQFT FILE
ISF2 SX2 X5-FNFE
NZ X2,ISF3 IF FILE FOUND
MESSAGE MESG,,R * NO IQFT FILE FOUND.*
ISF3 SX2 X5-RMSE
NZ X2,ISF4 IF NOT RMS ERROR
MESSAGE MESH,,R * UNABLE TO READ IQFT FILE.*
ISF4 MESSAGE X0,,R ISSUE INITIALIZATION STATUS MESSAGE
* MESSAGE MESE,,R * EQXXX, UNABLE TO INITIALIZE IQFT.*
* MESSAGE MESI,,R * EQXXX, INACTIVE QUEUES INITIALIZED.*
ISF5 SA5 DSI
SA4 B5+STLL
NG X5,ISFX IF DEADSTART INITIALIZE
SA3 TOTL
AX3 59
SA5 PARC+PMEQ
BX4 X3+X4
LX4 59-LIDF
PL X4,ISF6 IF NOT DAYFILE INITIALIZATON
* INITIALIZE SYSTEM DAYFILE.
SYSTEM IMS,R,X5,IDF
ISF6 LX4 LIDF-LIAF
PL X4,ISF7 IF NOT ACCOUNT FILE INITIALIZATION
* INITIALIZE ACCOUNT FILE.
SYSTEM IMS,R,X5,IDF+1
ISF7 LX4 LIAF-LIEF
PL X4,ISF8 IF NOT ERRLOG INITIALIZATION
* INITIALIZE ERRLOG.
SYSTEM IMS,R,X5,IDF+2
ISF8 LX4 LIEF-LIMF
PL X4,ISF9 IF NOT MAINTENANCE LOG INITIALIZATION
* INITIALIZE MAINTENANCE LOG.
SYSTEM IMS,R,X5,IDF+3
ISF9 PL X3,ISFX IF NOT TOTAL INITIALIZE
SA1 B5+ACGL CHECK FOR LOCAL AREA SECTOR
LX1 59-GLAP
PL X1,ISFX IF LOCAL AREA SECTOR NOT DEFINED
SYSTEM IMS,R,X5,ILA INITIALIZE LOCAL AREAS
EQ ISFX RETURN
MTW SPACE 4,10
** MTW - MOVE THREE WORDS TO DISPLAY LINE.
*
* ENTRY (A1) = MESSAGE ADDRESS.
*
* USES X - 1, 2, 5, 6, 7.
* A - 1, 2, 5, 6, 7.
* B - 2.
MTW SUBR ENTRY/EXIT
SA2 A1+B1
BX6 X1
SA1 A2+B1
LX7 X2
SA2 FLFG
NZ X2,MTW2 IF FLAW PROCESSING
SA5 PAGA
LX5 30
SB2 X5
GT B2,B1,MTW2 IF CURRENT LEFT SCREEN INDEX IS 2
SA6 MSDS1+1
MTW1 BX6 X1
SA7 A6+1
SA6 A7+B1
SA1 BLK
BX6 X1
EQ B1,B2,MTW3 IF CURRENT LEFT SCREEN INDEX IS 1
SA2 MSDS1+1
MTW1.1 SA6 A2
SA6 A2+1
SA6 A6+B1
EQ MTWX RETURN
MTW2 SA6 MSDS2+1 DISPLAY FLAW MESSAGE
EQ MTW1 CONTINUE
MTW3 SA2 MSDS2+1
EQ MTW1.1 CONTINUE
PMC SPACE 4,15
** PMC - PROCESS MODE CHANGE.
*
* ENTRY (B3) = EST ORDINAL.
* (X3) = .LT. 0, IF HALF TRACK ACCESS.
* (B6) = 0, IF HALF TRACK MODE.
*
* EXIT (X5) .LT. 0, IF NO FULL TRACK ACCESS.
*
* USES X - ALL.
* A - 2, 4, 5, 7.
* B - 4, 6.
*
* CALLS DTY.
*
* MACROS MESSAGE.
PMC SUBR ENTRY/EXIT
MX0 -12
MX1 0
NG X3,PMC3 IF HALF TRACK ACCESS
MX1 60
SB6 12 SET FULL TRACK SHIFT COUNT
* ASSEMBLE EST IMAGE.
PMC3 SX7 B3
R= X4,ESTE
IX7 X7*X4
SA4 ESTB+X7+EQDE READ EST ENTRY
LX4 -12
BX5 -X0*X4 CURRENT DEVICE TYPE
SA2 PMCB-1
PMC4 SA2 A2+B1 READ NEXT LIST WORD
BX7 -X0*X2
ZR X2,PMC4.0 IF END OF LIST
BX6 X5-X7
NZ X6,PMC4 IF NO MATCH
AX2 12
AX2 X2,B6 POSITION NEW DEVICE TYPE
BX5 -X0*X2 NEW DEVICE TYPE
PMC4.0 BX4 X0*X4
BX7 X4+X5 MERGE NEW DEVICE TYPE
SX0 10001B SET CHANNEL ACCESS FLAGS
LX7 12
LX0 24+8
BX2 X0*X7 CHANNEL MODE FLAGS
BX2 X1-X2 SELECT MODE OF OPERATION
BX2 X0*X2 NEW CHANNEL ACCESS FLAGS
MX5 1
ZR X1,PMC4.1 IF HALF TRACK INITIALIZE
ZR X2,PMCX IF NO CHANNELS FOR ACCESS
PMC4.1 SA7 A4
RJ DTY SET SINGLE UNIT SECTOR LIMIT
MX0 12
LX0 -12
SA1 X5+ESTF
SA2 X1+MDGL
BX7 X0*X3
BX2 -X0*X2
AX3 12
BX7 X2+X7
MX0 -6
SA7 A2
SA4 X1+DILL CHANGE ALGORITHM INDEX
BX2 -X0*X3
BX4 X0*X4
BX7 X2+X4
SA7 A4
EQ PMCX RETURN
** DEVICE CONVERSION TABLES.
*T PMCB 24/,12/ *FT* TYPE, 12/ *HT* TYPE, 12/OLD TYPE
PMCB VFD 24/,12/2RDK,12/2RDI,12/2RDI
VFD 24/,12/2RDL,12/2RDJ,12/2RDJ
VFD 24/,12/2RDK,12/2RDI,12/2RDK
VFD 24/,12/2RDL,12/2RDJ,12/2RDL
VFD 24/,12/2RDQ,12/2RDM,12/2RDM
VFD 24/,12/2RDQ,12/2RDM,12/2RDQ
CON 0 END OF TABLE
PTY SPACE 4,10
** PTY - PROCESS TYPE.
*
* ENTRY (B5) = MST POINTER.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* A - 1, 2, 3.
*
* CALLS COD.
PTY SUBR ENTRY/EXIT
SA1 PARC+PMTY
SA2 B5+MDGL
LX1 6
SA3 B5+PUGL
LX2 59-58
PTY1 MX0 -16
ZR X1,PTY3 IF TYPE NOT ENTERED
BX6 -X0 DEFAULT MASK FOR AUXILIARY DEVICES
MX7 1 SET AUXILIARY BIT
SX4 X1-1RX
BX2 -X7*X2
ZR X4,PTY2 IF AUXILIARY TYPE
MX7 0 CLEAR AUXILIARY BIT
BX6 -X0*X3 DEFAULT MASKS FOR FAMILY TYPE
SX1 1RF SET TO FAMILY DEVICE
PTY2 BX3 X0*X3 SET DEFAULT MASKS
BX6 X3+X6
BX7 X7+X2 MERGE NEW AUXILIARY BIT
SA6 A3
LX7 58-59
SA7 A2
LX1 -6
BX6 X1
SA6 A1 RESET TYPE
SA6 TYDS+1
SA1 B5+PUGL SET INDIRECT FILE MASK
MX0 -8
BX7 -X0*X1
BX1 -X0*X1
SA7 PARC+PMDM
RJ COD
SA1 B5+PUGL SET DIRECT ACCESS MASK
BX6 X4
AX1 8
SA6 DMDS+1
BX7 -X0*X1
BX1 -X0*X1
SA7 PARC+PMSM
RJ COD
BX6 X4
SA6 SMDS+1
EQ PTYX RETURN
PTY3 SX1 1RX
NG X2,PTY1 IF AUXILIARY DEVICE
SX1 1RF SET TO FAMILY DEVICE
EQ PTY1 LOOP
SAL SPACE 4,15
** SAL - SET ACCESS LEVEL DEFAULTS.
*
* EXIT DEFAULTS SET IN THE PARAMETER LIST AND THE K-DISPLAY.
* IF THE INITIALIZE IS TOTAL, THE DEFAULTS WILL BE
* SET TO THE LOWER EQUIPMENT ACCESS LIMIT FROM THE
* EST ENTRY.
* THE DEFAULTS WILL BE SET FROM THE MST FOR DEADSTART
* INITIALIZE, AS WELL AS FOR A NON-TOTAL INITIALIZE.
*
* USES X - 0, 1, 2, 5, 6.
* A - 1, 5, 6.
* B - 3, 4.
SAL SUBR ENTRY/EXIT
SA1 TOTL
SA5 B5+PFGL READ ACCESS LEVELS FROM LABEL
SB4 51 SET SHIFT COUNTS
SB3 3
MX0 -3
PL X1,SAL1 IF NOT TOTAL INITIALIZE
SA1 DSI
NG X1,SAL1 IF DEADSTART INITIALIZE
SA5 PARC+PMEQ
R= X1,ESTE
IX1 X5*X1
SA5 ESTB+X1+EQAE READ ACCESS LEVELS FROM EST
SB4 45 SET SHIFT COUNTS
SB3 B0+
SAL1 LX5 B4 POSITION ACCESS LEVELS
BX1 -X0*X5 PROCESS LOWER ACCESS LEVEL
SA1 X1+TALV
MX2 42
BX6 X2*X1
SA6 PARC+PMLA SET LOWER LIMIT IN PARAMETER LIST
SA6 LADS+1 SET LOWER LIMIT IN DISPLAY
LX5 B3 PROCESS UPPER ACCESS LEVEL
BX1 -X0*X5
SA1 X1+TALV
BX6 X2*X1
SA6 PARC+PMUA SET UPPER LIMIT IN PARAMETER LIST
SA6 UADS+1 SET UPPER LIMIT IN DISPLAY
EQ SALX RETURN
PRS SPACE 4,15
** PRS - PRESET PROGRAM.
*
* EXIT EST AND MST TABLE READ INTO BUFFERS.
*
* USES X - ALL.
* A - 1, 2, 5, 6, 7.
* B - 7.
*
* CALLS PRK.
*
* MACROS CLEAR, GETSSM, MESSAGE, SYSTEM.
PRS SUBR ENTRY/EXIT
SA5 JOPR CHECK JOB ORIGIN
MX0 -12
LX5 -24
BX5 -X0*X5
SB7 X5-SYOT
NZ B7,PRS3 IF NOT SYSTEM ORIGIN
SX3 KYCT
RJ PRK PRESET *K* DISPLAY
SX7 TFLA SET FLAW INDEX
SA7 FLAI
CLEAR ESTB,BUF-ESTB CLEAR *ESTB*, *ESTF*, AND *PKL*
CLEAR FLGS,FLGSL,X7 CLEAR FLAGS
CLEAR PARC+PMFN,OTBLL,X7
SA7 PREQ
SA7 CFEB PREVENT SETTING FLAWS FOR SPECIFIED DEVICE
SA1 PRSA READ EST POINTER WORD
MX6 1
BX7 X1
SA6 ESTB SET LOW CORE READ
SA7 LCRC
SYSTEM RSB,R,LCRC
SA2 ESTB SET *COMCRSB* ENTRY CONDITIONS
MX3 -12
SX1 A2 SET ADDRESS TO TRANSFER TO
AX2 12
BX7 -X3*X2
AX2 24 SET ADDRESS TO TRANSFER FROM
SA7 PRSB SAVE LAST EST ORDINAL + 1
R= X6,ESTE
IX3 X7*X6 SET WORD COUNT
SX4 B0 SET SUBSYSTEM (= *CMR*)
MX6 1
SA6 X1
RJ RSB= READ EST
GETSSID SSID GET SUBSYSTEM ID
GETSSM SSFL GET SYSTEM SECURITY MODE
SA1 PRSC READ MMFL WORD
MX6 1
BX7 X1
SA6 SCRB
SA7 LCRC
SYSTEM RSB,R,LCRC
SA1 SCRB SET LINK DEVICE
MX6 -9
LX1 59-35
BX6 -X6*X1
NZ X6,PRS1 IF LINK DEVICE DEFINED
R= X6,NEEQ
PRS1 SA6 LINK
SX6 BUF READ MST,S FOR ALL MASS STORAGE
SA6 BUFI
SX6 NOPE INITIALIZE EST ORDINAL FOR SEARCH
SA6 TEMP
PRS2 SA5 TEMP
SX7 X5+B1
SA7 A5
SA1 PRSB CHECK ORDINAL
IX6 X5-X1
R= X0,ESTE
IX7 X5*X0
SA1 ESTB+X7+EQDE GET EST ENTRY
ZR X6,PRSX IF END OF EST
PL X1,PRS2 IF NOT MASS STORAGE
MX0 -12
SX6 MSTL
SA2 BUFI
IX7 X2+X6 INCREMENT BUFFER POINTER
LX6 36
BX1 -X0*X1
SA7 A2
LX1 18+3 MST ADDRESS
BX6 X6+X2
IX6 X6+X1
SA6 LCRC
BX7 X2
MX6 1
SA7 ESTF+X5 SET MST ADDRESS IN ESTF
SA6 X2 FLAG LOW CORE READ
SYSTEM RSB,R,LCRC READ MST
EQ PRS2 LOOP FOR NEXT DEVICE
PRS3 MESSAGE MESK * USER ACCESS NOT VALID.*
ABORT
PRSA VFD 24/1,18/ESTP,18/ESTB
PRSB CON ** LAST MASS STORAGE ORDINAL + 1
PRSC VFD 24/1,18/MMFL,18/SCRB
TITLE K DISPLAY KEYBOARD MESSAGES
SPACE 4
* K-DISPLAY KEYBOARD ERROR MESSAGES.
ERRF BSS 1
ERROR1 DATA 30HUN MUST BE SPECIFIED.
ERROR2 DATA 30HNC IS NOT A POWER OF 2.
ERROR3 DATA 30HFAMILY MASK NOT EQUAL TO 377.
ERROR5 DATA 30HEQ OR DN INCORRECT.
ERROR6 DATA 30HINCORRECT ENTRY.
ERROR7 DATA 30HFM OR PN MUST BE SPECIFIED.
ERROR8 DATA 30HNP GREATER THAN 8.
ERROR9 DATA 30HDUPLICATE PN.
ERROR10 DATA 30HNC EXCEEDS 200B.
ERROR11 DATA 30HCANNOT ALLOCATE DEVICE.
ERROR12 DATA 30HNOT AUXILIARY PACK.
ERROR13 DATA 30HDUPLICATE DN.
ERROR15 DATA 30HDEVICE NOT REMOVABLE.
ERROR16 DATA 30HNP NOT ALLOWED.
ERROR17 DATA 30HDUPLICATE BITS IN MASK.
ERROR18 DATA 30HDEVICE NOT FIRST IN CHAIN.
ERROR19 DATA 30HEQXXX, INITIALIZE BIT NOT SET.
ERROR20 DATA 30HDN CANNOT BE ZERO.
ERROR21 DATA 30HEQXXX, FORMAT PENDING.
ERROR22 DATA 30HDEFINED DEVICE ALREADY EXISTS.
ERROR23 DATA 30HEQXXX, NO FULL TRACK ACCESS.
ERROR24 DATA 30HDEADSTART INITIALIZE REQUIRED.
ERROR25 DATA 30HFULL INITIALIZE REQUIRED.
ERROR26 DATA 30HEQXXX, TRACK LIMIT.
ERROR27 DATA 30HUA NOT WITHIN LIMIT.
ERROR28 DATA 30HLA NOT WITHIN LIMIT.
ERROR29 DATA 30HLA GREATER THAN UA.
ERROR30 DATA 30HUNKNOWN ACCESS LEVEL NAME.
* K-DISPLAY KEYBOARD INFORMATIVE MESSAGES.
REQOP DATA 30HENTER OPTION.
REQEQ DATA 30HENTER EST ORDINAL.
REQPM DATA 30HENTER PARAMETERS.
ENOFN DATA 30HENTER OLD FAMILY NAME.
ENOPN DATA 30HENTER OLD PACK NAME.
ENOUN DATA 30HENTER OLD USER NAME.
ENODN DATA 30HENTER OLD DEVICE NUMBER.
ENNFN DATA 30HENTER NEW FAMILY/PACK NAME.
ENFLS DATA 30HENTER FLAWS.
ENID DATA 30HENTER IDENTITY OF EQXXX.
EDRN DATA 30HEND OF RUN.
ENCL DATA 30HENTER CLEAR OR RERUN.
* DAYFILE MESSAGES.
MESA DATA C* EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
MESB DATA C* MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.*
MESC DATA C* NO INITIALIZE REQUESTS SET FOR MSI.*
MESD DATA C* INTERNAL ERROR IN MSI.*
MESE DATA C* EQXXX, UNABLE TO INITIALIZE IQFT.*
MESF DATA C* IQFT FILE INTERLOCKED.*
MESG DATA C* NO IQFT FILE FOUND.*
MESH DATA C* UNABLE TO READ IQFT FILE.*
MESI DATA C* EQXXX, INACTIVE QUEUES INITIALIZED.*
MESJ DATA C* LINK DEVICE CANNOT BE ALTERED.*
MESK DATA C* USER ACCESS NOT VALID.*
MESL DATA C* MSI HUNG.*
TITLE KEYBOARD INPUT PROCESSOR.
PKI SPACE 4,10
** PKI - PROCESS KEYBOARD INPUT.
*
* USES X - 1, 2, 3, 4, 5, 6, 7.
* A - 0, 1, 2, 4, 5, 6, 7.
* B - 2, 3, 4, 5, 7.
*
* CALLS ARG, CFE, DTY, DXB, RPT, SPT.
PKI SUBR ENTRY/EXIT
PKI1 EQ KIP KEYBOARD INPUT PROCESSOR
PKI2 ZR B6,PKI3 IF NO PARAMETERS ENTERED
KEYMES BLK BLANK MESSAGE LINE
SB4 PAR
RJ CFE CHECK FOR FLAW ENTRY
NZ X4,PKI3 IF ERROR
ZR X2,PKI1 IF FLAW ENTRY
SA4 PAR
SA2 ARGP
SB4 B6
SB5 X2
RJ ARG
ZR X1,PKI4 IF NO ARGUMENT ERRORS
PKI3 ERROR 6 *INCORRECT ENTRY.*
EQ PKI1 LOOP FOR NEW DATA
PKI4 BX6 X6-X6 CLEAR ERROR FLAG
SA6 ERRF
SB2 TENP SET INITIAL REGISTERS
SB4 PARC
SA0 DATB
* PROCESS NAMES.
SB3 NNME SET NUMBER OF NAMES TO PROCESS
PKI5 SA2 B2 GET NAME
ZR X2,PKI7 IF NAME NOT ENTERED
BX7 X2 SAVE CONVERTED PARAMETER
SA1 A0 DISPLAY ENTERED PARAMETER
SA7 X1
SA1 =1L0
BX1 X7-X1
NZ X1,PKI6 IF NOT *0*
BX7 X7-X7
PKI6 SA7 B4 STORE PARAMETER
PKI7 SB2 B2+B1 INCREMENT POINTERS
SB3 B3-B1
SB4 B4+B1
SA0 A0+B1
NZ B3,PKI5 IF MORE NAMES TO PROCESS
* PROCESS OCTAL PARAMETERS.
SB3 NOCT SET NUMBER OF OCTAL PARAMETERS
SB7 B0
PKI8 SA5 B2 GET OCTAL PARAMETER
ZR X5,PKI10 IF PARAMETER NOT ENTERED
RJ SPT SAVE POINTERS
RJ DXB CONVERT PARAMETER
RJ RPT RESTORE POINTERS
ZR X4,PKI9 IF NO ERROR IN CONVERSION
SX6 B1 SET ERROR FLAG
SA6 ERRF
EQ PKI10 INCREMENT POINTERS
PKI9 SA6 B4 SAVE CONVERTED VALUE
SA1 B2 DISPLAY ENTERED PARAMETER
BX6 X1
SA1 A0
SA6 X1
PKI10 SB2 B2+B1 INCREMENT POINTERS
SB3 B3-B1
SB4 B4+B1
SA0 A0+B1
NZ B3,PKI8 IF MORE OCTAL PARAMETERS TO PROCESS
* CLEAR OUT ENTRY AREA.
SB3 OTBLL-1 SET PARAMETER AREA LENGTH
SB2 PARE
BX6 X6-X6
PKI11 SA6 B2+B3
SB3 B3-B1
PL B3,PKI11 IF MORE TO CLEAR
RJ DTY GET FLAW PROCESSOR
AX3 18
SX6 X3
SA6 DFPR
* CHECK FOR ERROR CONDITION.
SA1 ERRF CHECK FOR ERROR IN CONVERSION
SA2 CNT
NZ X1,PKI3 DISPLAY ERROR MESSAGE
SX7 X2-1
SA7 CNT
ZR X7,PKIX IF END OF EXPECTED PARAMETERS
EQ PKI1 GO FOR NEXT PARAMETER
RPT SPACE 4,10
** RPT - RESTORE POINTERS.
*
* ENTRY SPTA = ENTERED PARAMETER ADDRESS.
* SPTA+1 = NUMBER OF PARAMETERS TO PROCESS.
* SPTA+2 = CONVERTED PARAMETER ADDRESS.
*
* EXIT (B2), (B3) AND (B4) RESTORED.
*
* USES X - 1, 2.
* A - 1, 2.
* B - 2, 3, 4.
RPT SUBR ENTRY/EXIT
SA1 SPTA
SA2 A1+B1
SB2 X1
SB3 X2
SA1 A2+B1
SB4 X1
EQ RPTX EXIT
SPT SPACE 4,10
** SPT - SAVE POINTERS.
*
* ENTRY (B2) = ENTERED PARAMETER ADDRESS.
* (B3) = NUMBER OF PARAMETERS LEFT TO PROCESS.
* (B4) = CONVERTED PARAMETER ADDRESS.
*
* EXIT (SPTA - SPTA+1) = (B2), (B3) AND (B4).
*
* USES X - 6, 7.
* A - 6, 7.
* B - NONE.
SPT SUBR ENTRY/EXIT
SX6 B2
SX7 B3
SA6 SPTA
SA7 A6+B1
SX6 B4
SA6 A7+B1
EQ SPTX EXIT
SPTA BSS 1 ADDRESS OF ENTERED PARAMETER
BSS 1 NUMBER OF PARAMETERS LEFT TO PROCESS
BSS 1 ADDRESS OF CONVERTED PARAMETERS
TITLE PROCESS FLAW ENTRIES
** CFE - CHECK FOR FLAW ENTRY.
*
* ENTRY (B4) = ADDRESS OF PARAMETER.
* (B6) = PARAMETER COUNT.
*
* EXIT (X2) = 0, IF FLAW ENTRY.
* (X4) = 0, IF NO ERROR.
*
* USES X - ALL.
* A - 0, 1, 2, 3, 4, 6, 7.
* B - 2, 3, 4, 6.
*
* CALLS COD, FMD, FRD, RPA, SFN.
CFE SUBR ENTRY/EXIT
SX7 B1 SELECT *SET FLAW* AS DEFAULT
SA7 CFEA
SA1 B4
MX0 18
SX3 1R=
BX4 -X0*X1
SX2 B1
IX3 X3-X4
BX4 X4-X4
NZ X3,CFEX IF NOT EQUIVALENCED
SA3 CFEB
ZR X3,CFEX IF FLAWS NOT ALLOWED YET
SA3 =0LCPF
BX6 X0*X1
BX2 X6-X3
ZR X2,CFE2 IF CLEARING PHYSICAL FLAW
SA3 =0LSPF
BX2 X6-X3
ZR X2,CFE2.1 IF SETTING PHYSICAL FLAW
SA3 =0LSLF
BX2 X6-X3
ZR X2,CFE1 IF SETTING LOGICAL FLAW
SA3 =0LCLF
BX2 X6-X3
NZ X2,CFEX IF NOT CLEARING LOGICAL FLAW
* PROCESS *CLF* ENTRY.
SX7 B1+B1 SELECT *CLEAR FLAW* OPTION
SA7 CFEA
* PROCESS *SLF* ENTRY.
CFE1 SX4 B1 PRESET RESPONSE
SB6 B6-B1
NE B6,B1,CFEX IF INCORRECT ENTRY
SB4 B4+B1
SX1 B0
SX2 7777B LIMIT
RJ RPA RETRIEVE PARAMETER
NZ X4,CFEX IF ERROR
EQ CFER STORE ENTRY
* PROCESS *CPF* ENTRY.
CFE2 SX7 B1+B1 SELECT *CLEAR FLAW* OPTION
SA7 CFEA
* PROCESS *SPF* ENTRY.
CFE2.1 SB4 B4+B1
SB6 B6-B1
SA1 DFPR
ZR X1,FMD IF LARGE MEMORY DEVICE
SA0 X1 SET PHYSICAL DESCRIPTOR ENTRY ADDRESS
EQ FRD FLAW ROTATING MASS STORAGE DEVICE
CFER NZ X4,CFEX IF ERROR
SA1 FLAI
SX3 X1-TFLA-PNFE
SX4 B1 PRESET ERROR
SX7 X1+B1 INCREMENT POINTER
PL X3,CFEX IF LIMIT EXCEEDED
SA2 CFEA
SA7 A1
LX2 48
BX6 X6+X2
SA6 X1
MX0 -12 FORM MASK FOR LOGICAL ENTRY
BX1 -X0*X6 MASK OFF
BX5 X6 SAVE X6
RJ COD CONVERT TO DISPLAY CODE
SA1 DASM
SA0 X1 SAVE LAST ADDRESS
SX7 X1+6
SA7 A1
SA6 X1
SA4 DAST GET DISPLAY ADDRESS
SX7 X4+6
SA1 I DISPLAY ENTRY
SA7 A4
BX0 X4 SAVE (X4)
RJ SFN
SA6 X4
SA1 A1+B1
RJ SFN
SA6 X0+B1
SB3 A0 LAST ADDRESS OF LOGICAL TRACK
SB2 LTDS+3
SA4 STAR PRESET STAR
BX6 X4
CFE3 EQ B2,B3,CFE5 IF END OF LOOP - EXIT
SA3 B3 MORE ENTRIES
SA2 B2
IX5 X3-X2
NZ X5,CFE4 IF NOT EQUAL GO TO NEXT ENTRY
SA6 B3+2 WRITE STAR TO BOTH ENTRIES
SA6 B2+2
CFE4 SB2 B2+6 INCREMENT TO NEXT ENTRY
EQ CFE3 LOOP
CFE5 BX4 X4-X4 CLEAR X4
BX2 X2-X2
EQ CFEX RETURN
CFEA BSSZ 1 FLAW TYPE INDICATOR
CFEB CON 0 *FLAWS ALLOWED* FLAG
STAR DIS 1, *
LRDS VFD 24/I,18/R,18/L FLAW K-DISPLAY CONTROL WORD
* FLAW PROCESSOR TABLE.
DFPR CON 0
RPA SPACE 4,10
** RPA - RETRIEVE PARAMETERS.
*
* ENTRY (B4) = ADDRESS OF PARAMETER.
* (X1) = 0, IF NO PARAMETER CHECK REQUIRED.
* (X1) = RIGHT JUSTIFIED CHARACTER TO CHECK FOR.
* (X2) = MAXIMUM VALUE.
*
* EXIT (X4) = 0, IF NO ERROR.
* (X6) = PARAMETER.
* (B4) = ADDRESS OF NEXT PARAMETER.
*
* USES X - 0, 1, 2, 4, 5, 6.
* A - 1, 5, 6.
* B - 4, 7.
*
* CALLS DXB.
RPA SUBR ENTRY/EXIT
SB7 B0 SET OCTAL BASE
SX6 B1
LX1 54
IX6 X2-X6 ADJUST MAXIMUM COUNT
SA5 B4 GET PARAMETER
SA6 RPAA SAVE MAXIMUM VALUE
ZR X1,RPA1 IF NO CHARACTER TO CHECK
MX0 6
BX2 X0*X5
BX4 X2-X1
NZ X4,RPAX IF INCORRECT ENTRY
LX5 6
RPA1 MX0 36 MASK OFF VALUE
BX5 X0*X5
SX6 B4 SAVE PARAMETER ADDRESS
SA6 RPAB
RJ DXB CONVERT TO OCTAL
SA1 RPAB RESTORE PARAMETER ADDRESS
SB4 X1+B1
NZ X4,RPAX RETURN - IF ERROR
SA1 RPAA
IX4 X1-X6
NG X4,RPAX IF MAXIMUM VALUE EXCEEDED
BX4 X4-X4
EQ RPAX RETURN
RPAA BSSZ 1 HOLD FOR MAXIMUM VALUE
RPAB BSSZ 1 HOLD FOR PARAMETER ADDRESS
SPACE 4
** FLAW ROUTINES.
*
* ENTRY (B4) = PARAMETER ADDRESS.
* (B6) = PARAMETER COUNT.
*
* EXIT (X4) = 0, IF NO ERROR.
* = 1, IF ERROR.
* (X6) = LOGICAL TRACK TO FLAW.
*
* USES X - ALL.
* A - 0, 1, 2, 3, 5, 6.
* B - ALL.
*
* CALLS RPA.
FMD SPACE 4,10
** FMD - FLAW LARGE MEMORY DEVICES.
FMD SX4 B6-B1
R= X1,1RA
NZ X4,CFER IF ERROR
SA2 =100000000
RJ RPA RETRIEVE ADDRESS
NZ X4,CFER IF ERROR
SX1 202B CONVERT TRACK ADDRESS
SA4 PARC+PMEQ EXTRACT XM SHIFT
R= X5,ESTE
IX5 X4*X5
SA5 ESTB+X5+EQAE
MX0 -2
LX5 -30
BX5 -X0*X5
SB7 X5
LX1 B7
IX6 X6/X1
NZ X5,FMD1 IF NOT DEFAULT TRACK SIZE
SX4 CETK-4000B
IX4 X6-X4
NZ X4,FMD1 IF NOT CETK
SX4 B1
EQ CFER
FMD1 BX4 X4-X4 SET NO ERROR RESPONSE
EQ CFER RETURN
FRD SPACE 4,10
** FRD - FLAW ROTATING MASS STORAGE DEVICES.
* GET AND VERIFY THE CYLINDER, TRACK AND SECTOR VALUES GIVEN
* BY THE USER. FOR BUFFERED MASS STORAGE DEVICES, THE SECTOR
* NUMBER VALUE ENTERED BY THE USER MUST BE CONVERTED TO THE
* MAPPING USED BY THE OPERATING SYSTEM.
FRD SX4 B6-3
NZ X4,CFER IF TOO MANY PARAMETERS
SX1 1RC
SA2 A0 GET CYLINDER LIMIT FOR THIS DEVICE
MX0 -12
AX2 48
BX2 -X0*X2
RJ RPA GET CYLINDER SPECIFIED BY USER
NZ X4,CFER IF INCORRECT CYLINDER VALUE GIVEN
SA6 FRDA SAVE CYLINDER NUMBER
SX1 1RT
SA2 A0 GET TRACK LIMIT FOR THIS DEVICE
MX0 -6
AX2 42
BX2 -X0*X2
RJ RPA GET TRACK SPECIFIED BY USER
NZ X4,CFER IF INCORRECT TRACK VALUE GIVEN
SA6 FRDB SAVE TRACK NUMBER
SX1 1RS
SA2 A0 GET SECTOR LIMIT FOR THIS DEVICE
MX0 -6
AX2 36
BX2 -X0*X2
RJ RPA GET SECTOR SPECIFIED BY USER
NZ X4,CFER IF INCORRECT SECTOR VALUE GIVEN
SA3 A0
MX0 -3
LX3 -33 POSITION CONVERSION FACTOR
BX2 -X0*X3
SB7 X2
LX6 B7 CONVERT PHYSICAL TO LOGICAL SECTOR
* MULTIPLY THE TRACK VALUE BY THE NUMBER OF LOGICAL
* SECTORS PER PHYSICAL TRACK.
MX0 -6 MASK FOR PHYSICAL SECTORS/PHYSICAL TRACK
LX3 33-36
SA1 FRDB FETCH TRACK VALUE
BX2 -X0*X3
LX2 B7 CONVERT TO LOGICAL SECTORS/PHYSICAL TRACK
IX1 X2*X1 CONVERT TRACK VALUE TO LOGICAL SECTORS
LX3 36-12
IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT
* MULTIPLY THE CYLINDER VALUE BY THE NUMBER OF LOGICAL
* SECTORS PER CYLINDER.
SA1 FRDA FETCH CYLINDER VALUE
MX0 -12
BX2 -X0*X3 EXTRACT PHYSICAL SECTORS/CYLINDER
LX2 B7 CONVERT TO LOGICAL SECTORS/CYLINDER
IX1 X2*X1
LX3 12
IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT
BX3 -X0*X3
* DIVIDE THE ACCUMULATED LOGICAL SECTOR COUNT BY THE
* SUM OF (LOGICAL + GAP) SECTORS PER LOGICAL TRACK.
PX3 X3
PX6 X6
NX3 X3
FX6 X6/X3 QUOTIENT = LOGICAL TRACK NUMBER
UX6,B7 X6
LX6 B7
EQ CFER RETURN
FRDA BSS 1 CYLINDER NUMBER
FRDB BSS 1 TRACK NUMBER
TDTY SPACE 4,10
** TDTY - TABLE OF DEVICE TYPE PARAMETERS.
*
*T, TDTY 1/ PK,11/ MN,1/ TT,11/ SL,18/ FP,6/ AI,12/ CT
*
* PK = PACK TYPE DEVICE FLAG.
* MN = DEVICE MNEMONIC.
* TT = TRACK TYPE, 0 = FULL TRACK, 1 = HALF TRACK.
* SL = SINGLE UNIT SECTOR LIMIT.
* FP = PHYSICAL DESCRIPTOR TABLE ENTRY.
* AI = *LDAM* ALGORITHM INDEX.
* CT = DEFAULT NUMBER OF CATALOG TRACKS.
PURGMAC TBLM
TBLM MACRO EQ
.A IFNE CYUN_EQ,0
VFD 1/1 SET ROTATING MASS STORAGE DEVICE
.A ELSE
VFD 1/0 SET LARGE MEMORY STORAGE DEVICE
.A ENDIF
VFD 11/2R_EQ,1/TT_EQ,11/SL_EQ
.B IFNE CYUN_EQ,0
VFD 18/PHY_EQ PHYSICAL DESCRIPTOR TABLE ENTRY
.B ELSE
VFD 18/0
.B ENDIF
VFD 6/AI_EQ,12/CT_EQ
ENDM
LIST G
TDTY TBL "MSEQ"
LIST -G
CON 0 END OF TABLE
TPHY SPACE 4,10
** TPHY - PHYSICAL DESCRIPTOR TABLE.
*
*T, TPHY 12/CYPN, 6/PTCY, 6/PSPT, 3/CF, 9/UNUSED, 12/PSCY, 12/LSLT
*
* CYPN = CYLINDERS PER PARTITION.
* PTCY = PHYSICAL TRACKS PER CYLINDER.
* PSPT = PHYSICAL SECTORS PER PHYSICAL TRACK.
* CF = CONVERSION FACTOR.
* PSCY = PHYSICAL SECTORS PER CYLINDER.
* LSLT = LOGICAL SECTORS PER LOGICAL TRACK, INCLUDING
* GAP SECTORS.
PURGMAC TBLM
TBLM MACRO EQ
IFNE CYUN_EQ,0
PHY_EQ VFD 12/CYPN_EQ
VFD 6/PTCY_EQ
VFD 6/PSPT_EQ
VFD 3/CFS_EQ
VFD 9/0 UNUSED
VFD 12/PSPT_EQ*PTCY_EQ-SPSC_EQ
VFD 12/SL_EQ+GS_EQ
ENDIF
ENDM
LIST G
TPHY TBL "MSEQ"
LIST -G
TITLE COMMON DECKS.
SPACE 4
* COMMON DECKS.
*CALL COMCARG
*CALL COMCDCP
*CALL COMCDXB
*CALL COMCMVE
*CALL COMCSFN
*CALL COMCUPC
*CALL COMCCOD
*CALL COMCVLC
* COMMON DECKS WHICH MAKE SYSTEM REQUESTS.
QUAL SYSREQ
QUAL$ EQU 1
*CALL COMCCIO
*CALL COMCCPM
*CALL COMCLFM
*CALL COMCPFU
*CALL COMCQFM
*CALL COMCRSB
*CALL COMCSYS
QUAL *
CIO= EQU /SYSREQ/CIO=
CPM= EQU /SYSREQ/CPM=
LFM= EQU /SYSREQ/LFM=
PFU EQU /SYSREQ/PFU
QFM EQU /SYSREQ/QFM
MSG= EQU /SYSREQ/MSG=
RCL= EQU /SYSREQ/RCL=
RSB= EQU /SYSREQ/RSB=
WNB= EQU /SYSREQ/WNB=
SYS= SPACE 4,15
** SYS= - PROCESS SYSTEM REQUEST.
*
* ENTRY (X6) = SYSTEM REQUEST.
*
* USES X - 1, 6, 7.
* A - 1, 7.
* B - 2.
*
* CALLS /SYSREQ/SYS=.
SYS= SUBR ENTRY/EXIT
RJ /SYSREQ/SYS=
SA1 PREQ
ZR X1,SYS=X IF NO PP REQUEST
BX7 X7-X7 CLEAR REQUEST WORD
SX6 X1-TPPRL-1 VERIFY REQUEST
SA7 A1
PL X6,SYS=X IF INCORRECT REQUEST
SB2 X1+TPPR-1
JP B2 EXIT TO REQUEST PROCESSOR
* TABLE OF PP REQUESTS.
TPPR BSS 0
+ EQ CLEAR CLEAR INITIALIZATION FLAGS
+ EQ RERUN PROCESS RERUN
+ EQ TKL PROCESS TRACK LIMIT
BSS 0
TPPRL EQU *-TPPR
TITLE KEYBOARD PROCESSOR.
KIP SPACE 4,10
** KIP - KEYBOARD PROCESSOR.
* *PKI* UNPACKS INPUT PARAMETERS FOR *MSI* FUNCTIONS.
*
* EXIT TO PKI2 IF NO INCORRECT FUNCTIONS ENCOUNTERED.
* TO PKIX IF *GO* ENTERED.
* TO PKI1 IF PAGING OCCURED.
* TO *CLEAR* OR *RERUN* IF APPROPRIATE COMMAND ENTERED.
* (B6) = NUMBER OF ARGUMENTS ENTERED.
* (X6) = 0 IF NO ERRORS IN UNPACKING OF ARGUMENTS.
*
* USES X - ALL.
* A - 1, 2, 3, 5, 6, 7.
* B - 2, 3, 6, 7.
*
* CALLS PGD, UPC.
*
* MACROS CONSOLE, MOVE, RECALL.
KIP BX6 X6-X6 CLEAR PARAMETER AREA
SB3 PARAML-1
KIP1 SA6 PAR+B3
SB3 B3-B1 DECREMENT COUNT
NZ B3,KIP1 IF MORE WORDS TO CLEAR
SA6 I CLEAR INPUT BUFFER
SA6 A6+B1
CONSOLE KDCW
KIP2 RECALL
SA1 I
ZR X1,KIP2 IF INPUT NOT READY
MX0 6
BX3 X1*X0 SET ENTRY CONDITIONS FOR *PGD*
SX2 PAGA
SA5 FLFG
ZR X5,KIP2.1 IF INITIALIZE PROCESSING
SX2 PAGB
KIP2.1 BX4 X4-X4
SX1 KDCW
RJ PGD PAGE DISPLAY
ZR X4,PKI1 IF PAGING OCCURRED
MOVE 4,BLK,KBDS1+1
MOVE 4,BLK,KBDS2+1
SA1 I
BX0 X1
LX0 18
SA3 FADD FLAW KEYBOARD INPUT ADDRESS
SA5 FLFG
NZ X5,KIP3 IF FLAW PROCESSING
SA5 PAGA
LX5 30
SB2 X5
NE B2,B1,KIP3 IF CURRENT LEFT SCREEN INDEX IS 2
SA3 IADD
KIP3 SX5 X0-3RGO.
NZ X5,KIP3.1 IF NOT *GO*
SA1 BLK
KIP3.1 MOVE 4,I,X3
ZR X5,PKIX IF *GO* ENTERED
SA1 CLRM
LX0 -18
BX2 X1-X0
SA1 RERN
AX2 30
SX7 B1
ZR X2,KIP4 IF *CLEAR*
BX2 X1-X0
AX2 30
ZR X2,RERUN IF *RERUN*
SA5 CARD PROCESS COMMAND
SB7 PAR-1
RJ UPC UNPACK COMMAND
SB6 B6-B1 SKIP FIRST ARGUMENT
EQ PKI2 GO PROCESS ENTRY
KIP4 SA7 CLF
EQ CLEAR ENTER CLEAR ROUTINE
CARD DATA H*MSI,* COMMAND IMAGE
I BSSZ 8 KEYBOARD INPUT BUFFER
KDCW VFD 24/I,18/R,18/O K DISPLAY CONTROL WORD
FADD VFD 42/0,18/KBDS2+1 DISPLAY ADDRESS FOR FLAWING
IADD VFD 42/0,18/KBDS1+1 DISPLAY ADDRESS FOR INITIALIZING
BLK DIS 4,
CLRM DATA 5LCLEAR
RERN DATA 5LRERUN
SPACE 4,10
* INITIALIZE PAGE TABLE.
PAGA PAGT O,MSDS1,KBDS1 LEFT SCREEN PAGE 1
PAGT L,MSDS2,KBDS2 LEFT SCREEN PAGE 2
PAGT
PAGT R RIGHT SCREEN
PAGT *
* FLAW PAGE TABLE.
PAGB PAGT L,MSDS2,KBDS2 LEFT SCREEN
PAGT
PAGT R RIGHT SCREEN
PAGT *
PGD HERE REMOTE BLOCK FROM *COMCDCP*
CDS SPACE 4,10
** CDC - CLEAR K-DISPLAY ENTRIES.
*
* USES X - 0, 1, 6, 7.
* A - 1, 6, 7.
* B - 2, 3.
CDS SUBR ENTRY/EXIT
SX7 LTDS+1 RESTORE *DAST*
SA7 DAST
SX7 LTDS+3 RESTORE *DASM*
SA7 DASM
SA1 BLK
SX7 1R0-1R
SB2 20B
LX7 -6
IX7 X1+X7
BX6 X1
SA1 DATB
CDS1 SA7 X1 CLEAR DISPLAY AREA
SA1 A1+B1
SB3 A1-DAST
NZ B3,CDS1 IF NOT END OF OPTIONS
SB3 X1 SAVE ADDRESS OF FLAW DISPLAY
BX7 X6
CDS2 SA6 B3
SA7 A6+B1
SB2 B2-B1
SB3 B3+6
NZ B2,CDS2 IF NOT END OF FLAW DISPLAY
SB2 20B
SB3 LTDS+1 BLANK OUT LEFT SCREEN
CDS3 SA6 B3
SA7 A6+B1
SA7 A7+B1
SA7 A7+B1
SB2 B2-B1
SB3 B3+6 INCREMENT TO NEXT LINE
NZ B2,CDS3 IF NOT LAST LINE
EQ CDSX RETURN
TITLE K-DISPLAY LINE NUMBERS.
SPACE 4
SPACE 4,10
* K-DISPLAY FOR THE LEFT SCREEN WHEN INITIALIZING DEVICES.
* THERE IS NO RIGHT SCREEN.
* EST ORDINALS THAT ARE SITE DEPENDENT.
LVAL OCTMIC NOPE EST ORDINAL MINIMUM VALUE
UVAL OCTMIC ESMX-1 EST ORDINAL MAXIMUM VALUE
FVAL DECMIC PNFE FLAW ENTRIES MAXIMUM VALUE
O VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
KDL 1,T,(MASS STORAGE DEVICE INITIALIZATION )
KDL 54,T,(PAGE 1 OF 2)
KDL 1,K,(INITIALIZE EQUIPMENT)
OPDS KDL 1,K,( )
INDSA KDL 1,K,( )
TPDS KDL 1,H,(INITIALIZE REQUEST )
KDL 1,H,( OPTION DESCRIPTION)
EQDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE ("LVAL"-"UVAL")
,.)
FNDS KDL 1,K,( FM = 0 FAMILY NAME OR PACK NAME IF TY=X (1-7
, CHAR).)
DNDS KDL 1,K,( DN = 0 DEVICE NUMBER (1-77).)
UNDS KDL 1,K,( UN = 0 PRIVATE AUXILIARY DEVICE USER NAME (1
,-7 CHAR).)
TYDS KDL 1,K,( TY = 0 ACCESS TYPE (F OR X).)
LADS KDL 1,K,( LA = 0 LOWER ACCESS LEVEL (1-7 CHAR).)
UADS KDL 1,K,( UA = 0 UPPER ACCESS LEVEL (1-7 CHAR).)
DMDS KDL 1,K,( DM = 0 DEVICE MASK (0-377).)
SMDS KDL 1,K,( SM = 0 SECONDARY MASK (0-377).)
NCDS KDL 1,K,( NC = 0 CATALOG TRACKS (0-200).)
NPDS KDL 1,K,( NP = 0 NUMBER OF PACKS (1-7).)
MSDS1 KDL 1,M,( )
KBDS1 KDL 1,I,( )
CON 0 END OF DISPLAY
SPACE 4,10
* K-DISPLAY FOR THE LEFT SCREEN WHEN FLAWING DEVICES.
* THERE IS A RIGHT SCREEN.
L VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
LNDS KDL 1,T,(CURRENT FLAW ENTRIES )
KDL 54,T,(PAGE 2 OF 2)
INDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE. )
KDL 1,H,( NUM VALUES ENTERED TRT OCTAL VALUES * = DUPLICAT
,E)
LTDS KDL 1,K,( 1 )
KDL 1,K,( 2 )
KDL 1,K,( 3 )
KDL 1,K,( 4 )
KDL 1,K,( 5 )
KDL 1,K,( 6 )
KDL 1,K,( 7 )
KDL 1,K,( 8 )
KDL 1,K,( 9 )
KDL 1,K,( 10 )
KDL 1,K,( 11 )
KDL 1,K,( 12 )
KDL 1,K,( 13 )
KDL 1,K,( 14 )
KDL 1,K,( )
MSDS2 KDL 1,M,( )
KBDS2 KDL 1,I,( )
CON 0 END OF DISPLAY
SPACE 4,10
* K-DISPLAY FOR THE RIGHT SCREEN WHEN FLAWING DEVICES.
* THERE IS A LEFT SCREEN.
R VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
KDL 1,T,(MASS STORAGE DEVICE FLAWING)
KDL 1,H,(SLF, CLF, SPF AND CPF ENTRIES)
RTDS KDL 1,K,( )
KDL 1,K,( SLF = NNNN SET LOGICAL TRACK FLAW.)
KDL 1,K,( CLF = NNNN CLEAR LOGICAL TRACK FLAW.)
KDL 1,K,( SPF = XX SET PHYSICAL TRACK FLAW.)
KDL 1,H,( CPF = XX CLEAR PHYSICAL TRACK FLAW.)
KDL 1,K,( WHERE)
KDL 1,K,( NNNN = VALID LOGICAL TRACK NUMBER.)
KDL 1,K,( XX = C000,T00,S00 (CYLINDER,TRACK,SECTOR.)
KDL 1,H,( = A0000000 (ADDR/10B, FOR DE/DP ONLY.))
KDL 1,K,( NUMERIC VALUES ARE CONSIDERED OCTAL UNLESS THE)
KDL 1,K,( DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR A *D* IS)
KDL 1,H,( APPENDED TO THE NUMBER.)
KDL 1,K,(SEE LEFT SCREEN FOR CURRENT ENTRIES,)
KDL 1,H,(UP TO "FVAL" ENTRIES ALLOWED.)
CON 0 END OF DISPLAY
* Y - COORDINATE TABLE.
KYCT KDL *
PRK HERE ASSEMBLE REMOTE BLOCK FROM COMCDCP HERE
KDTA DATA C*FLAW.* K-DISPLAY TITLE
KDTB DATA C*INITIALIZE.* K-DISPLAY TITLE
TITLE BUFFERS AND FLAGS
SPACE 4
** TABLES AND BUFFERS.
USE BUFFERS
UTL= BSS 0 SYSTEM UTILITY SPECIAL ENTRY POINT
SSJ= BSSZ SSJL
ESTB EQU * EST TABLE
ESTF EQU ESTB+ESMX*ESTE EST MST LINK TABLE
PKL EQU ESTF+ESMX PACK LINK TABLE
BUF EQU PKL+PKLL MST BUFFER
CATB EQU BUF+ESMX*MSTL BUFFER FOR CATALOG READS
SCRB EQU CATB+CATBL SCRATCH BUFFER
RFL= EQU SCRB+SCRBL
SPACE 4
END