cdc:nos2.source:opl871:msm
Table of Contents
MSM
Table Of Contents
- [00008] MSM/CMS - MASS STORAGE MANAGER.
- [00100] MACRO DEFINITIONS.
- [00104] COMMON - COMMON CODE FOR *CMS* AND *RMS.
- [00124] LRA - LOAD REFERENCE ADDRESS.
- [00153] PTA - PRESET FIRST WORD ADDRESS OF TRT.
- [00175] STA - SET FIRST WORD ADDRESS OF TRT.
- [00187] UJMF - GENERATE LIST OF INSTRUCTIONS TO BE MODIFIED
- [00202] MMTE - GENERATE MACHINE MASK TABLE ENTRY.
- [00216] DIRECT LOCATION ASSIGNMENTS.
- [00315] COMMON WORKING STORAGE AND SUBROUTINES.
- [00324] MAIN ROUTINE.
- [00325] CMS - MAIN PROGRAM.
- [00388] SUBROUTINES.
- [00390] RPF - RELEASE DIRECT ACCESS INTERLOCKS.
- [00438] CIR - CHECK FOR INITIALIZE REQUESTS.
- [00562] GDT - GET DEVICE ACCESS TABLE.
- [00600] RCL - RECALL PP.
- [00626] IAM - ISSUE ACCOUNTING MESSAGE.
- [00693] RCD - RECOVER DEVICES.
- [00761] RQS - REQUEST STORAGE.
- [00777] UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
- [00800] PRESET.
- [00802] PRS - PRESET.
- [00947] IET - INITIALIZE TABLES.
- [01000] TRCO - TABLE OF RECOVERY OPTIONS.
- [01088] COMMON WORKING STORAGE AND SUBROUTINES.
- [01097] MAIN ROUTINE.
- [01098] RMS - MAIN PROGRAM.
- [01151] CM RECOVERY ROUTINES.
- [01153] CAD - CHECK ACTIVE DEVICES (CM RECOVERY).
- [01225] HNG - DISPLAY ERROR AND HANG PP.
- [01247] SEM - SET EQUIPMENT MESSAGE.
- [01278] NON - CM RECOVERY ROUTINES.
- [01280] CDS - CHECK DEVICE STATUS (LEVEL 0, 1, 2 RECOVERY).
- [01387] CSE - CHECK SYSTEM EQUIPMENT.
- [01416] RCD - RECOVER DEVICE.
- [01478] RDY - RECOVER DAYFILES.
- [01504] REM - RESTORE UEM FROM CHECKPOINT FILE IF LEVEL 1 OR 2
- [01525] RLD - RECOVER LINK DEVICE.
- [01610] UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
- [01641] PRESET PROGRAM.
- [01643] PRS - PRESET.
- [01842] CRE - CHECK RECOVERY.
- [01934] CUR - CHECK FOR UEM RECOVERY REQUIRED.
- [01975] IET - INITIALIZE EQUIPMENT TABLE.
- [02059] LCM - LOCATE CM FOR RECOVERY.
- [02369] MAIN LOOP.
- [02371] RDA - MAIN ROUTINE.
- [02575] SUBROUTINES.
- [02577] CFL - CHANGE FILE LENGTH.
- [02614] CPS - CHECK PFC SIZE.
- [02640] CQF - CREATE QUEUED FILE ENTRY.
- [02744] CUS - CLEAR UNAVAILABLE STATUS.
- [02821] IEM - ISSUE ERROR LOG MESSAGE.
- [02847] IQF - INITIALIZE *IQFT*.
- [02904] PTA - PRESET FIRST WORD ADDRESS OF TRT.
- [02935] SFT - SET FILE TYPE.
- [02967] SPF - SEARCH FOR PRESERVED FILE.
- [03026] TQF - TERMINATE *IQFT*.
- [03104] VFR - VERIFY FILE FOR RECOVERY DEADSTART.
- [03128] VTC - VERIFY TRACK CHAIN.
- [03151] WQF - WRITE QUEUED FILE SECTOR.
- [03213] IDM - ISSUE DAYFILE MESSAGES FOR FILES PROCESSED.
- [03292] IRM - ISSUE RECOVERY MESSAGES.
- [03408] LSN - LIST PACK SERIAL NUMBERS.
- [03480] PFE - PERMANENT FILE ERROR.
- [03579] CTU - CLEAR TOTAL USER COUNTS.
- [03610] GDE - GET DAT ENTRY.
- [03686] WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
- [03717] WSR - WRITE SYSTEM SECTOR WITH REWRITE.
- [03774] PRESET.
- [03776] PRS - PRESET.
- [03924] MRL - MAIN RECOVERY LOOP.
- [03973] COMMON DECKS.
- [03989] COMMON SUBROUTINES.
- [03991] ADE - ACCESS DAT ENTRY.
- [04030] ATC - ADJUST TRACK COUNT.
- [04088] CDA - CHECK DEVICE AVAILABILITY.
- [04122] CDI - CLEAR ISD INTERLOCKS.
- [04179] CLR - CLEAR RESIDENT TRT.
- [04288] CLT - CHECK LABEL TRACK.
- [04316] CMT - CLEAR MST.
- [04428] IES - INITIALIZE EQUIPMENT STATUS.
- [04511] SSL - SET SECTOR LIMITS.
- [04558] LABEL PROCESSING ROUTINES.
- [04560] CAM - CHANGE ACCESS MODE.
- [04632] CCS - CHECK CHANNEL STATUS.
- [04662] CLE - CHECK LABEL ERROR.
- [04683] CME - CHECK MASS STORAGE ERROR.
- [04731] CUC - COMPARE UPDATE COUNTS.
- [04786] CUD - CHECK UNAVAILABLE DEVICE.
- [04822] GAS - GET ALTERNATE LABEL SECTOR.
- [04852] PUE - PROCESS UNSECURED SYSTEM SECURITY ERROR.
- [04887] RUC - RETRIEVE UPDATE COUNT FROM TRT.
- [04930] SDU - SET DEVICE UNLOADED.
- [04952] SFT - SET FULL TRACK MODE.
- [04998] SHT - SET HALF TRACK MODE.
- [05040] SOM - SET EST ORDINAL IN MESSAGE.
- [05068] RDL - READ DEVICE LABEL.
- [05172] RLM - READ LOCAL MST BLOCK.
- [05255] RLS - READ LABEL SECTOR.
- [05515] CMI - CHECK MST INTERLOCKS.
- [05555] SDT - SEARCH DEVICE INFORMATION TABLE.
- [05601] SLT - SEARCH FOR LABEL TRACK.
- [05638] VAL - VERIFY ACCESS LEVEL LIMITS.
- [05705] WMT - ENTER MST TO CM TABLE.
- [05823] WOC - WAIT ON OPERATOR COMMAND.
- [05861] PRESET.
- [05863] PRS - PRESET.
- [05936] EMF - ENABLE MMF RECOVERY.
- [06009] MAIN ROUTINE.
- [06059] PRIMARY SUBROUTINES.
- [06061] SDF - SET DEFAULT FAMILY NAME.
- [06083] VPF - VERIFY PF SYSTEM FOR CONFLICTS IN -
- [06167] SUBROUTINES.
- [06169] CFN - COMPARE FAMILY/PACK NAMES.
- [06192] CFR - CHECK FAMILY DEVICE RECOVERED.
- [06215] ERR - PROCESS ERROR CONDITIONS.
- [06319] GNE - GET NEXT ENTRY.
- [06396] MMF ROUTINES.
- [06398] ABD - ALLOCATE BAT FOR DEVICE.
- [06452] CDE - CHECK DAT ENTRY.
- [06491] CSD - CHECK SHARED DEVICE STATUS.
- [06586] EBP - ENABLE BST/BAT PROCESSING FOR SHARED BUFFERED DEVICE.
- [06657] LDT - LOAD DEVICE ACCESS TABLE.
- [06751] RDE - READ DAT ENTRY.
- [06785] SDT - SEARCH DEVICE ACCESS TABLE.
- [06852] SNT - SET NEXT TRACK IN EXTENDED MEMORY TRACK CHAIN.
- [06881] UDT - UPDATE DEVICE ACCESS TABLE.
- [06981] WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
- [07002] VERIFY LABEL PARAMETERS.
- [07004] CCE - CHECK CHAINED EQUIPMENT.
- [07055] CEP - COMPARE EQUIPMENT PARAMETERS.
- [07083] CLP - CHECK LABEL PARAMETERS.
- [07122] VDP - VERIFY DEVICE PARAMETERS.
- [07159] VLP - VERIFY LABEL PARAMETERS.
- [07341] *CMS* DEVICE VERIFICATION - COMMON ROUTINES.
- [07343] CUS - CHECK UNLOAD STATUS.
- [07377] RIL - READ INDEPENDENT SHARED DEVICE LABEL.
- [07414] *CMS* ACTIVE/INACTIVE DEVICE ROUTINES.
- [07416] CAD - CHECK ACTIVE DEVICES.
- [07493] CID - CHECK INACTIVE DEVICES.
- [07579] *CMS* ACTIVE/INACTIVE DEVICE SUBROUTINES.
- [07581] CBF - CHECK FOR BUFFERS TO FLUSH.
- [07659] CDD - CLEAR DEVICE DESCRIPTION.
- [07710] CDS - CHECK DEVICE STATUS.
- [07744] ILK - INTERLOCK *PFM* FROM ACCESSING DEVICE DURING UNLOAD.
- [07840] RGM - READ GLOBAL MST WORDS.
- [07903] UIS - UPDATE INDEPENDENT SHARED DEVICE TABLES.
- [07936] UMS - UPDATE MASS STORAGE TABLES.
- [07979] POV - MODIFY INSTRUCTIONS AS REQUIRED FOR CM/MMF RECOVERY.
- [08078] CHECK UNAVAILABLE DEVICE.
- [08080] CUD - CHECK UNAVAILABLE DEVICES.
- [08152] SUBROUTINES.
- [08154] CGU - CHECK GLOBAL UNLOAD.
- [08216] CIU - CHECK INDEPENDENT SHARED DEVICE UNLOADED.
- [08285] UPDATE DAT POINTER WORD.
- [08287] EDT - EDIT DAT POINTER WORD.
- [08349] UER - UPDATE EXTENDED MEMORY RESIDENT.
- [08385] UIS - UPDATE ISD MRT TABLES.
- [08410] CRT - CLEAR MRTS.
- [08462] ERT - EDIT MRT.
- [08561] SMT - STORE MST + TRT IN EXTENDED MEMORY.
- [08659] COPY MST/TRT TO DISK.
- [08661] CTD - COPY TABLES TO DISK.
- [08755] RMR - READ MRT.
- [08829] COPY TRT.
- [08831] CTT - COPY TRT.
- [08866] EMT - ENTER MST PARAMETERS FROM LABEL.
- [08976] ETT - EDIT TRACK TABLE.
- [09054] RTC - RESERVE TRACK CHAIN.
- [09120] RTT - RECOVER TRACK RESERVATION TABLE.
- [09207] STF - SET TRACK FLAW IN TRT.
- [09244] SET EQUIPMENT CONFIGURATION.
- [09246] AUL - ASSEMBLE UNIT LIST.
- [09313] SEC - SET EQUIPMENT CONFIGURATION.
- [09395] PRESET.
- [09397] PRS - PRESET OVERLAY.
- [09468] MAIN INITIALIZATION ROUTINE.
- [09470] IMS - INITIALIZE MASS STORAGE.
- [09520] SUBROUTINES.
- [09522] CFR - CHECK FOR FORMAT REQUEST.
- [09557] CTF - CHECK TRACK FLAWED IN TRT.
- [09581] FBT - FLAW BLOCK OF TRACKS IN TRT.
- [09612] IDS - INITIALIZE DEVICE.
- [09722] IFM - INTERPRET FLAW MAP.
- [09791] PFT - PREWRITE FLAWED TRACK.
- [09811] RCS - RESERVE *CTI* SPACE.
- [09919] SNC - SELECT AVAILABLE NIO CHANNEL.
- [09954] POV - PRESET OVERLAY.
- [10022] PROCESS FORMAT REQUEST.
- [10024] PFR - PROCESS FORMAT REQUEST.
- [10124] SUBROUTINES.
- [10126] F8D - FORMAT 895 DEVICE.
- [10180] WNB - WAIT NOT BUSY.
- [10240] CDC - CHASE DAYFILE CHAIN.
- [10305] CDR - CHECK DAYFILE RECOVERY.
- [10370] CDT - CHECK LAST UPDATE DATE AND TIME.
- [10424] CFL - CHECK FILE LENGTH.
- [10453] TDF - TRUNCATE DAYFILE.
- [10481] ULA - UPDATE SECTOR OF LOCAL AREAS.
- [10528] VEI - VERIFY END OF INFORMATION SECTOR.
- [10607] CUA - CALCULATE UEM ADDRESS.
- [10649] GCD - GET CHECKPOINT DEVICE.
- [10701] GSP - GET UEM SECTOR POINTER.
- [10726] RUE - RECOVER UEM.
Source Code
- MSM.txt
- IDENT CMS,OBOV-2
- PERIPH
- BASE M
- SST
- QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
- *COMMENT MSM - ON LINE MASS STORAGE MANAGER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE MSM/CMS - MASS STORAGE MANAGER.
- CMS SPACE 4
- ***** MSM - MASS STORAGE MANAGER.
- *
- * J. L. WARDELL. 73/02/15.
- * P. D. HAAS. 74/09/09.
- * S. L. BETH. 74/12/20.
- * R. M. DESSEL 82/12/15.
- * P. C. SMITH. 94/03/21.
- SPACE 4,10
- *** *CMS* SURVEYS ALL MASS STORAGE DEVICES AND VERIFIES
- * THAT THE PROPER PHYSICAL DEVICES ARE MOUNTED OR MAKES THEM
- * AVAILABLE FOR USER ACCESS IF POSSIBLE.
- *
- * ON LINE VERIFICATION OCCURS EVERY 60D SCHEDULER
- * CYCLES. TO ENABLE/DISABLE THIS USE *DSD* COMMAND
- * *ENABLE/DISABLE REMOVABLE PACKS*.
- SPACE 4,10
- ** PROGRAMMING NOTE.
- * DIRECT CELLS *LA* AND *EE* (*RG* AND *RG+1*)
- * ARE USED DURING LEVEL 3 RECOVERY IN OVERLAY *4DB* IF
- * EXECUTING ON A CENTRAL MEMORY EXTENSION MAINFRAME.
- SPACE 4
- ** CALL.
- *
- *T, 18/ CMS,6/,12/ R,24/
- *
- * R = POSITION IN EQUIPMENTS FOR UNLOAD INTERLOCK.
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- * SEE *4DA* DOCUMENTATION.
- SPACE 4
- *** ERROR LOG MESSAGES.
- *
- * *ETXXX, UYY,PS=ZZZZZZ.* = A NEW DEVICE HAS BEEN INTRODUCED ON
- * EST ORDINAL *XXX* OF TYPE *ET*. UNIT *YY* OF THE DEVICE HAS
- * A PACK SERIAL NUMBER OF *ZZZZZZ*.
- *
- * SEE *4DB* DOCUMENTATION FOR ADDITIONAL MESSAGES.
- SPACE 4
- *** ACCOUNT FILE MESSAGES.
- *
- * *ADDU, XXX, FFFFFFF, DD.* = EST ORDINAL XXX WITH FAMILY NAME
- * FFFFFFF AND DEVICE NUMBER DD HAS BEEN UNLOADED.
- *
- * *ADPD, XXX, PPPPPPP, UUUUUUU.* = EST ORDINAL XXX WITH
- * PACKNAME PPPPPPP HAS BEEN DISMOUNTED. IF PRESENT, UUUUUUU
- * INDICATES THAT THE PACK WAS A PRIVATE PACK BELONGING TO
- * THAT USER.
- *
- * SEE *4DA* DOCUMENTATION FOR ADDITIONAL MESSAGES.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- * *ERROR ON ACTIVE DEVICES.* = LABEL CHECKING HAS DETECTED
- * A DEVICE WITH ACTIVE FILES AS HAVING SOME TYPE OF ERROR (SEE
- * E,M DISPLAY FOR ERROR TYPE ). THIS IS AN ABNORMAL SITUATION
- * AND SHOULD BE CORRECTED IMMEDIATELY.
- *
- * SEE E,M DISPLAY (DSD DOCUMENTATION) FOR ERROR TYPES POSSIBLE.
- *
- * SEE *4DB* DOCUMENTATION FOR ADDITIONAL MESSAGES.
- SPACE 4
- ** ROUTINES CALLED.
- *
- * 0PI - LIST PACK SERIAL NUMBERS.
- * 5ME - FORMAT ERROR MESSAGES.
- SPACE 4
- *CALL COMPMAC
- *CALL COMSACC
- *CALL COMSCPS
- *CALL COMSDSL
- *CALL COMSEVT
- *CALL COMSHIO
- *CALL COMSIOQ
- *CALL COMSLSD
- *CALL COMSMLS
- MMF$ EQU 1 INITIALIZE COMSMMF DIRECT CELLS
- *CALL COMSMMF
- *CALL COMSMSC
- *CALL COMSMSP
- *CALL COMSPFM
- *CALL COMSPIM
- *CALL COMSSSD
- *CALL COMSWEI
- *CALL COMSZOL
- SPACE 4,10
- LIST X
- *CALL COMSMST
- SPACE 4,10
- LIST *
- TITLE MACRO DEFINITIONS.
- SPACE 4
- ** MACRO DEFINITIONS.
- COMMON SPACE 4,10
- ** COMMON - COMMON CODE FOR *CMS* AND *RMS.
- *
- * THIS MACRO PROVIDES IDENTICAL CODE FOR *CMS* AND *RMS*
- * WHICH MAY BE CALLED BY THE OVERLAYS COMMON TO THESE TWO
- * ROUTINES.
- COMMON MACRO
- QUAL
- SPACE 4,10
- * COMMON WORKING STORAGE.
- ECLT CON 0 EXTENDED MEMORY LABEL TRACK
- LDMP CON 0 LINK DEVICE MST POINTER
- SPACE 4,10
- *CALL COMPC2D
- *CALL COMPIFR
- *CALL COMPTGB
- LRA SPACE 4,15
- ** LRA - LOAD REFERENCE ADDRESS.
- *
- * ENTRY (LRAB) = RA/100 OF FREE AREA.
- * (TA) = RA/100 OF FREE AREA FOR NON-CME.
- * = 4000 IF CME PRESENT.
- * (LRAA) = MODIFIED FOR DESIRED OPERATION.
- * (LRAC) = MODIFIED FOR DESIRED OPERATION.
- *
- * EXIT (A) = REFERENCE ADDRESS.
- * *R* REGISTER LOADED IF NECESSARY.
- *
- * USES RG, RG+1.
- LRA1 LDC 0 LOAD RA INTO *R* REGISTER
- LRAB EQU *-1
- STD RG+1
- SHN -14
- STD RG
- LRD RG
- LRA2 LDD RA SET RA
- LRAC EQU *-1
- * LDD TA
- SHN 6
- LRA SUBR ENTRY/EXIT
- LRAA UJN LRA2 SET RA
- * UJN LRA1 (CME PRESENT)
- PTA SPACE 4,10
- ** PTA - PRESET FIRST WORD ADDRESS OF TRT.
- *
- * ENTRY (FN - FN+4) = EST ENTRY OF DEVICE.
- *
- * EXIT (STAA) = FWA OF TRT.
- *
- * USES CM - CM+4.
- PTA SUBR ENTRY/EXIT
- LDD FN+4 GET FWA OF TRT
- SHN 3
- ADN TRLL
- CRD CM
- LDD CM+3 SET FWA OF TRT
- LPN 77
- LMC LDCI
- STM STAA-1
- LDD CM+4
- STM STAA
- UJN PTAX RETURN
- STA SPACE 4,10
- ** STA - SET FIRST WORD ADDRESS OF TRT.
- *
- * ENTRY (STAA) = FWA OF TRT.
- STA SUBR ENTRY/EXIT
- LDC 0
- STAA EQU *-1 (FWA TRT)
- UJN STAX RETURN
- QUAL *
- ENDM
- SPACE 4
- ** UJMF - GENERATE LIST OF INSTRUCTIONS TO BE MODIFIED
- * IF RECOVERING MMF SYSTEM.
- *
- * UJMF TAG
- UJMF MACRO TAG
- LOCAL A
- MACREF UJMF
- A UJN TAG
- L"QUAL" RMT
- CON A
- RMT
- UJMF ENDM
- SPACE 4
- ** MMTE - GENERATE MACHINE MASK TABLE ENTRY.
- *
- * MMTE ADDR
- * ADDR = INSTRUCTION ADDRESS.
- MMTE MACRO L
- LOCAL B
- MACREF MMTE
- B EQU L
- T"QUAL" RMT
- CON B
- RMT
- MMTE ENDM
- TITLE DIRECT LOCATION ASSIGNMENTS.
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- RG EQU 15 - 16 *R* REGISTER LOADING TEMP CELLS
- RI EQU 16 - 17 RANDOM INDEX FOR *CRA*
- T8 EQU 16 SCRATCH
- T9 EQU 17 SCRATCH
- QF EQU 17 FIRST TRACK OF INACTIVE QUEUE FILE
- SN EQU 17 SECTOR NUMBER DURING LABEL PROCESSING
- FS EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
- TA EQU 25 REFERENCE ADDRESS (LEVEL 3 RECOVERY)
- CD EQU 25 CHECKPOINT DEVICE (4DA, 4DK)
- TW EQU 26 CONSTANT TWO
- QT EQU 27 QUEUED FILE TRACK (4DA)
- CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
- QS EQU 35 QUEUED FILE SECTOR (4DA)
- QI EQU 36 QUEUE INDEX (4DA)
- EC EQU 37 ERROR CODE
- CR EQU 37 CM BUFFER ADDRESS (4DA)
- FN EQU 40 - 44 EST ENTRY
- RD EQU FN+3 - FN+7 DEVICE RECOVERY STATUS INFORMATION
- TS EQU FN+5 MST TRACKS FOR MMF SHARED DEVICES
- RE EQU FN+6 EQUIPMENT RECOVERY STATUS INFORMATION
- AL EQU FN+7 CM ADDRESS FOR MST LABEL DATA
- EQ EQU IR+3 EST ORDINAL
- RS EQU IR+4 RECOVERY STATUS
- AM EQU 57 ACCESS MODE FLAG
- RC EQU 60 DEVICE RECOVERY COUNT
- CF EQU 60 CONTROL POINT FOR MESSAGES (*1RF*/*4DA*)
- LO EQU 61 LAST MASS STORAGE ORDINAL + 1
- UC EQU 62 UNIT COUNT
- DI EQU 62 DAT INDEX
- ET EQU 62 EOI TRACK
- ES EQU 63 EOI SECTOR
- SL EQU 63 SECTOR LIMIT
- EF EQU 63 ERROR FLAG
- CA EQU 64 - 65 CENTRAL ADDRESS
- P1 EQU 66 SCRATCH
- P2 EQU 67 SCRATCH
- ****
- SPACE 4,10
- * DEFINE QUAL BLOCK ORDER.
- QUAL CMS
- QUAL RMS
- QUAL RDA
- QUAL ISD
- QUAL RDC
- QUAL RDD
- QUAL RDG
- QUAL RDI
- QUAL
- SPACE 4
- ** CONSTANTS.
- FLRC EQU 1100 FIELD LENGTH FOR TRT RECOVERY
- SPACE 4
- ** INTERNAL BUFFERS AND TABLES.
- BAEI EQU PPFW *BAET* IMAGE
- DLPB EQU BAEI+5 LABEL PARAMETER BLOCK (PFGL + PUGL)
- OBOV EQU DLPB+5*2 BASE OVERLAY ORIGIN
- SPACE 4,10
- ** DEVICE RECOVERY STATUS TABLE.
- *
- * THE DEVICE RECOVERY TABLE IS CONTAINED IN *MSM-S*
- * FL. IT CONSISTS OF ONE WORD ENTRIES FOR EACH MASS
- * STORAGE EQUIPMENT. THE FORMAT IS AS FOLLOWS -
- *T, 12/ DT,12/ MT,12/ TS,12/ RE,12/ AL
- *
- * DT = DEVICE TYPE.
- * MT = MST/10B.
- * TS = MST TRACKS FOR MMF SHARED DEVICES.
- * RE = EQUIPMENT RECOVERY STATUS INFORMATION.
- * WHERE RE IS DEFINED AS:
- * 1/M,1/S,1/V,1/R,1/C,1/U,1/D,1/I,1/A,1/T,1/E,1/L
- * M = MASS STORAGE DEVICE.
- * S = SYSTEM/ASL/LINK DEVICE.
- * V = SHARED DEVICE.
- * R = REMOVABLE DEVICE.
- * C = DEVICE CLEARED FOR RECOVERY.
- * U = UNAVAILABLE DEVICE.
- * D = INCORRECT FULL TRACK ACCESS.
- * I = DEVICE INITIALIZATION SELECTED.
- * A = ACCESSED PREVIOUSLY (DAP) BY THIS MF (SHARED
- * DEVICES).
- * T = ECS TRACK FOR MST/TRT REQUIRED (MMF SHARED
- * DEVICES).
- * E = DEVICE ACCESSED PREVIOUSLY (DAP) BY SOME MF
- * (SHARED DEVICES ONLY).
- * L = LABEL STATUS (0 = LABEL IMAGE PRESENT).
- * AL = CM ADDRESSES FOR MST LABEL DATA.
- TITLE COMMON WORKING STORAGE AND SUBROUTINES.
- CMS SPACE 4
- QUAL CMS
- ORG OBOV-2
- LJM PRS PRESET *CMS*
- SPACE 4,10
- LIST M
- COMMON
- LIST *
- TITLE MAIN ROUTINE.
- ** CMS - MAIN PROGRAM.
- CMS EXECUTE 4DB
- LDC LCMS ENABLE MMF RECOVERY ROUTINES
- RJM EMF
- CMS1 LDC RDL READ LABELS
- RJM MRL
- CMS2 LDD RC
- ZJN CMS3 IF NO REDEFINITION REQUESTS
- LJM CIR1 PROCESS DEVICE REDEFINITION
- CMS3 EXECUTE 4DD LOAD VERIFICATION ROUTINES
- LDC CAD VERIFY ACTIVE DEVICES
- RJM MRL
- CMSB LDC CID CHECK INACTIVE DEVICES
- * UJN CMS4 (DEADSTART SEQUENCING IN EFFECT)
- RJM MRL
- CMS4 LDN 0 CLEAR RECOVERY COUNT
- STD RC
- EXECUTE 4DE LOAD UNAVAILABLE DEVICE ROUTINES
- LDC CUD CHECK UNAVAILABLE DEVICES
- RJM MRL
- LDD RC
- ZJN CMS7 IF NO EQUIPMENT TO RECOVER
- UJMF CMS5
- RJM GDT LOAD DEVICE ACCESS TABLE
- CMS5 EXECUTE 4DG LOAD RECOVERY ROUTINES
- LDD HN DO NOT CLEAR UNAVAILABLE
- RAM /RDG/EMTB
- LDC RCD RECOVER DEVICES
- RJM MRL
- UJMF CMS6
- RJM UMT UPDATE MMF TABLES
- CMS6 EXECUTE 4DC VERIFY PF SYSTEM
- RJM RPF RELEASE DA INTERLOCKS
- CMS7 RJM CIR CHECK FOR INITIALIZE REQUESTS
- CMSD LDN 0
- ZJN DPP IF NO ACTIVE DEVICE ERRORS
- LDN NCPL
- CRD CM
- AOD CM+1 DISPLAY MESSAGE AT SYSTEM CP
- SHN 7
- ADN MS2W
- CWM CMSE,TR
- * DROP PP.
- DPP UJN DPP1 DEADSTART SEQUENCING NOT IN EFFECT
- * LDN CIRD-CIRB (DEADSTART SEQUENCING)
- * LDN CIRE-CIRB (DEADSTART SEQUENCING- RECOVERY DEADSTART)
- DPPB EQU *-1
- RAM CIRA
- LDN CIRF NUMBER OF COMMANDS
- * LDN CIRF-1 (RECOVERY DEADSTART)
- DPPC EQU *-1
- LJM CIR5 WRITE COMMAND BUFFER
- DPP1 MONITOR DPPM
- LJM PPR
- CMSE DATA C* ERROR ON ACTIVE DEVICES.*
- TITLE SUBROUTINES.
- RPF SPACE 4
- ** RPF - RELEASE DIRECT ACCESS INTERLOCKS.
- *
- * ENTRY (RE) SET FOR DEVICES RECOVERED.
- *
- * EXIT INTERLOCKS FOR DA FILES ON DEVICES RECOVERED, CLEARED.
- * *IQFT* BUILT IF QUEUED FILES FOUND.
- * PACK SERIAL NUMBERS LISTED FOR DEVICES RECOVERED.
- *
- * USES T5, EQ, CR, FN - FN+4.
- *
- * CALLS IFR, LSN, 4DA.
- *
- * MACROS EXECUTE, SFA, UJMF.
- RPF1 LDD RA
- SHN 6
- ADD T5
- CRD RD
- LDD RE DETERMINE IF DEVICE RECOVERED
- SHN 21-7
- PJN RPF2 IF DEVICE NOT RECOVERED
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- RJM /RDA/LSN LIST PACK SERIAL NUMBERS
- LDN 0 INDICATE NO INITIALIZE
- RJM /RDA/RDA RECOVER PRESERVED FILES
- RPF2 AOD EQ ADVANCE TO NEXT EQUIPMENT
- RPF3 STD T5
- LMD LO
- NJN RPF1 IF NOT END OF MS ENTRIES
- RPF4 UJMF RPFX
- RPFB LDN 0
- NJN RPFX IF DATI SET FOR INITIALIZATION
- LCN DATI CLEAR FLAG REGISTER INTERLOCK
- RJM IFR
- RPF SUBR ENTRY/EXIT
- LDD RC
- ZJN RPF4 IF NO EQUIPMENT RECOVERED
- EXECUTE 4DA LOAD DA INTERLOCK ROUTINES
- LDD CA+1 SET *IQFT* BUFFER ADDRESS
- STD CR
- LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
- STD EQ
- UJN RPF3
- CIR SPACE 4
- ** CIR - CHECK FOR INITIALIZE REQUESTS.
- *
- * EXIT *MSI* CALLED IF ANY INITIALIZE REQUESTS FOUND.
- *
- * USES EQ, P2, RC, FS - FS+4, FN - FN+4, CN - CN+4.
- *
- * CALLS IFR.
- *
- * MACROS NFA, SFA, UJMF.
- CIR6 LDD FN
- SHN 0-13
- ZJN CIR7 IF NOT MASS STORAGE
- LDD FN
- LPN 2
- NJN CIR10 IF DEVICE OFF OR DOWN
- LDD FN+4 READ *STLL*
- SHN 3
- ADN STLL
- CRD FS
- SBN STLL-DULL
- CRD CM
- LDD FS+1
- LMN STNR
- LPN 77
- CIR7 ZJN CIR10 IF EQUIPMENT NOT READY
- LDD FS
- LPC MLFPR+MLUNL+MLIRP
- LMN MLIRP
- NJN CIR10 IF INITIALIZE NOT TO BE PROCESSED
- LDD FS
- SHN -7
- ZJN CIR9 IF PERMANENT FILES NOT INVOLVED
- LPN MLIAL/1S7
- NJN CIR8 IF DEADSTART INITIALIZE
- LDD CM+4 CHECK ACTIVITY
- LPC 3777
- ADD CM+1
- ADD FS+3
- NJN CIR10 IF ACTIVE FILES ON DEVICE
- CIR8 AOD RC INCREMENT RECOVERY COUNT
- CIR9 AOD P2 ADVANCE INITIALIZATION COUNT
- CIR10 AOD EQ ADVANCE TO NEXT EQUIPMENT
- LMD LO
- ZJN CIR11 IF END OF MASS STORAGE DEVICES
- SFA EST,EQ
- ADK EQDE
- CRD FN
- LJM CIR6
- CIR11 LDD P2 CHECK INITIALIZE STATUS
- NJN CIR2 IF INITIALIZE REQUESTS PRESENT
- CIR SUBR ENTRY/EXIT
- LDN 0 PRESET EQUIPMENT INDEX
- STD RC CLEAR INITIALIZE COUNT
- STD P2
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD EQ
- UJN CIR10 ENTER LOOP
- * ENTERED HERE EXTERNALLY.
- CIR1 LDN CIRC-CIRB CHANGE COMMAND CALL TO *CONFIG.*
- RAM CIRA
- CIR2 UJMF CIR4
- LDD RC
- ZJN CIR4 IF NO REQUESTS INVOLVING PF DESCRIPTION
- LDC MMFL READ MMF STATUS WORD
- CRD CN
- LDD CN+2 CHECK DATI STATUS
- LMC 4000
- ZJN CIR3 IF DAT INTERLOCKED
- STD CN+2 SET DAT INTERLOCKED
- SHN 0-13
- ZJN CIR4 IF INTERLOCKED BY THIS MACHINE
- LDN DATI GET FLAG REGISTER INTERLOCK
- RJM IFR
- ZJN CIR3 IF DAT INTERLOCKED
- LJM GDT1 RECALL *CMS*
- CIR3 LDD RC SET INITIALIZATION COUNT
- RAD CN+2
- LDC MMFL
- CWD CN
- * SET UP COMMAND TO INITIATE *MSI*.
- CIR4 LDN 1
- * ENTERED HERE FROM *DPP*.
- * (A) = NUMBER OF COMMAND WORDS.
- CIR5 STD T1 NUMBER OF COMMAND WORDS
- LDD CP READ COMMAND POINTER WORD
- ADN CSPW
- CRD CM
- LDC CSBN SET FWA OF COMMANDS
- STD CM+3
- SBD T1 SET LIMIT OF COMMANDS
- STD CM+4
- LDD CP WRITE *CSPW*
- ADN CSPW
- CWD CM
- NFA CSBN STORE COMMANDS
- CWM CIRB,T1
- CIRA EQU *-1
- LJM DPP1 DROP PPU
- CIRB VFD 60/0LMSI.
- CIRC VFD 60/0LCONFIG.
- CIRD BSS 0
- DATA C*CLDT.*
- CON 0
- CIRE DATA C*$ISF(FM=0,SJ,SP)*
- * DATA C*$ISF(FM=0,SJ)* (RECOVERY DEADSTART)
- CON 0
- CIRF2 EQU *-CIRD
- CIRF EQU CIRF2/5 CM LENGTH OF COMMANDS
- ERRNG 40-CIRF COMMAND BUFFER OVERFLOW
- GDT SPACE 4
- ** GDT - GET DEVICE ACCESS TABLE.
- *
- * EXIT DEVICE ACCESS TABLE LOADED.
- * TO *RCL* IF DAT BUSY.
- *
- * USES P2, CN - CN+4.
- *
- * CALLS CLK, IFR, LDT.
- *
- * MACROS EXECUTE.
- GDT3 RJM LDT LOAD DEVICE ACCESS TABLE
- LDD P2 SET *DATI* STATUS FOR *RPF*
- RAM RPFB
- GDT SUBR ENTRY/EXIT
- LDC MMFL READ MMF STATUS WORD
- CRD CN
- LDD CN+2 CHECK DATI STATUS
- SHN -6
- STD P2
- LMN 40
- ZJN GDT3 IF DAT INTERLOCKED
- LDN DATI GET DAT INTERLOCK
- RJM IFR
- ZJN GDT3 IF INTERLOCK SET
- * ENTERED HERE EXTERNALLY.
- GDT1 LDD CP
- ADN MS2W
- CWM GDTA,TR
- LDN FIRR FLAG REGISTER INTERLOCK REJECT
- LJM RCL RECALL CMS
- GDTA DATA C*$WAITING - RECOVERY INTERLOCK.*
- RCL SPACE 4,10
- ** RCL - RECALL PP.
- *
- * ENTRY (A) = RECALL STACK REASON CODE.
- *
- * EXIT TO *PPR*.
- *
- * USES LA, CM - CM+4.
- *
- * MACROS MONITOR.
- RCL STD CM SET REASON CODE
- LDK ZERL
- CRD CM+1
- LDD MA ENTER PP RECALL REQUEST
- CWM RCLA,ON
- CWD CM
- MONITOR RECM
- LJM PPR EXIT TO PP RESIDENT
- RCLA VFD 60/0LCMS
- * CODE BEYOND THIS POINT MAY BE OVERLAID.
- SDVR EQU *
- IAM SPACE 4
- ** IAM - ISSUE ACCOUNTING MESSAGE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT MESSAGE ISSUED TO ACCOUNTING DAYFILE.
- *
- * USES T1, CM - CM+4, CN - CN+4.
- *
- * CALLS ACS, C2D, DFM.
- IAM SUBR ENTRY/EXIT
- LDC IAMB SET ADDRESS OF ASSEMBLY BUFFER
- STD T1
- LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
- SHN -3
- RJM C2D
- STD CM
- LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
- LPN 7
- ADN 1R0
- SHN 6
- STD CM+1
- LDN CM ADD EST ORDINAL TO MESSAGE
- RJM ACS
- LDC =C*, * ADD SEPARATOR TO MESSAGE
- RJM ACS
- LDD FN+4 GET DEVICE DESCRIPTION
- SHN 3
- ADN PFGL
- CRD CM
- ADN PUGL-PFGL READ USER NAME
- CRD CN
- LDD CM+3 EXTRACT DEVICE NUMBER
- LPN 77
- ZJN IAM1 IF AUXILIARY DEVICE
- RJM C2D CONVERT TO DISPLAY CODE
- STD CN
- LDD CM+3 SET END OF FAMILY NAME
- SCN 77
- STD CM+3
- LDC 2RDU&2RPD
- IAM1 LMC 2RPD SET MESSAGE PREFIX
- STM IAMA+1
- LDN CM ADD FAMILY/PACKNAME TO MESSAGE
- RJM ACS
- LDD CN
- ZJN IAM2 IF NO USER/DEVICE NUMBER
- LDC =C*, *
- RJM ACS
- LDD CN+3 SET END OF USER NAME
- SCN 77
- STD CN+3
- LDN CN ADD USER/DEVICE NUMBER TO MESSAGE
- RJM ACS
- IAM2 LDC =C*.* SET MESSAGE TERMINATOR
- RJM ACS
- LDC IAMA+ACFN ISSUE MESSAGE TO ACCOUNT FILE
- RJM DFM
- * LDN 0 CLEAR ASSEMBLY BUFFER
- STM IAMB
- LJM IAMX RETURN
- IAMA DATA 6HADPD,
- IAMB BSSZ 15 ASSEMBLY BUFFER
- RCD SPACE 4
- ** RCD - RECOVER DEVICES.
- *
- * ENTRY (RE) = EQUIPMENT TO RECOVER.
- * (AL) = CM ADDRESS CONTAINING LABEL MST.
- * (RC) = RECOVERY COUNT.
- * (EQ) = (T5) = EST ORDINAL.
- * (CA+1) = CM ADDRESS OF TRT BUFFER.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT DEVICES RECOVERED OR SET UNAVAILABLE.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES CA, EC, T1, CN - CN+4.
- *
- * CALLS CSD, DFM, IES, SEC, UDT.
- *
- * MACROS SMSTF, UJMF.
- RCD9 SCN 2 CLEAR INTERNAL SHARED STATUS
- SHN 7+1
- STD RE
- RCD SUBR ENTRY/EXIT
- SHN 21-7
- PJN RCD9 IF DEVICE NOT BEING RECOVERED
- SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
- RJM SEC SET PROPER EQUIPMENT CONFIGURATION
- UJMF RCD3 NON MMF TRANSFER
- LDD RA GET DEVICE NAME FROM LABEL MST
- SHN 6
- ADD AL
- ADN PFGL
- CRD CN
- RJM CSD CHECK SHARED DEVICE STATUS
- NJN RCD1 IF *DAT* CONFLICT
- LDD RS
- NJN RCD2 IF CONTINUATION OF RECOVERY DEADSTART
- LDD RE
- LPN 10
- ZJN RCD2 IF NOT ACCESSED BY THIS MACHINE
- LDC CSDC
- RCD1 RJM DFM ISSUE MESSAGE TO DAYFILE
- LDN STCE SET CONFIGURATION ERROR
- UJN RCD5 ENTER ERROR STATUS
- RCD2 RJM UDT UPDATE DEVICE ACCESS TABLE
- NJN RCD1 IF MST/TRT TRACK UNAVAILABLE
- RCD3 LDD RE CHECK STATUS OF LABEL READ
- LPN 40
- ZJN RCD4 IF VALID ACCESS MODE
- LDN STLE SET LABEL ERROR
- UJN RCD5 ENTER ERROR STATUS
- * READ AND EDIT TRT.
- RCD4 RJM RTT
- ZJN RCD6 IF RECOVERY COMPLETE
- * ERROR IN RECOVERY OF DEVICE.
- RCD5 STD EC SET ERROR STATUS
- SOD RC DECREMENT RECOVERY COUNT
- RJM IES INITIALIZE EQUIPMENT STATUS
- * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
- RCD6 LJM RCDX RETURN
- RQS SPACE 4
- ** RQS - REQUEST STORAGE.
- *
- * ENTRY (A) = STORAGE REQUIRED.
- *
- * EXIT STORAGE ASSIGNED.
- * TO *RCL* IF REQUEST PENDING.
- *
- * CALLS RSI.
- RQS SUBR ENTRY/EXIT
- RJM RSI REQUEST STORAGE INCREASE
- ZJN RQSX IF ASSIGNED
- LDN CFIR CM FL INCREASE PENDING
- LJM RCL RECALL *CMS*
- UMT SPACE 4
- ** UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
- *
- * ENTRY (RC) = NUMBER OF EQUIPMENTS RECOVERED.
- *
- * CALLS *4DF*, MRL.
- UMT SUBR ENTRY/EXIT
- LDD RC
- ZJN UMTX IF NO EQUIPMENT RECOVERED
- EXECUTE 4DF
- LDC UER UPDATE EXTENDED MEMORY RESIDENT
- RJM MRL
- UJN UMTX RETURN
- SPACE 4
- ** COMMON DECKS.
- *CALL COMPACS
- *CALL COMPRSI
- USE LITERALS
- TITLE PRESET.
- PRS SPACE 4
- ** PRS - PRESET.
- *
- * EXIT DEVICE STATUS TABLE IN *MSM-S* FL SET WITH
- * RECOVERY STATUS INFORMATION AND CM ADDRESSES
- * FOR MST LABEL DATA.
- PRS BSS 0
- LDD CP CHECK ORIGIN OF CALL
- ADN JCIW
- CRD CM
- ADN SNSW-JCIW
- CRD CN
- LDD CM+2
- LMC MSSI
- ZJP PRS2 IF VALID SUBSYSTEM CALL
- LMN DSSI&MSSI
- NJP PRS3 IF NOT DEADSTART SEQUENCING PRIORITY
- ISTORE CMSB,(UJN CMS4) SET DEADSTART SEQUENCING STATUS
- ISTORE DPPB,(LDN CIRD-CIRB)
- LDD CP SET SYSTEM USER NAME/INDEX
- ADN UIDW
- CWM PRSA,ON
- LDN DSSL SET RECOVERY LEVEL
- CRD CM
- LDD CM+4 SET RECOVERY STATUS
- LPN 3
- STD T1
- ZJN PRS1 IF NOT RECOVERY DEADSTART
- LDC 100*1R) PREVENT *SYSPROC* CALL
- STM CIRE+6
- LDN 0
- STM CIRE+7
- SOM DPPC PREVENT *CLDT* CALL
- LDN CIRE-CIRD
- RAM DPPB
- PRS1 LDM TRCO,T1
- PRS2 UJN PRS5 SET RECOVERY STATUS
- PRS3 LDC PRSB ISSUE * INCORRECT CMS CALL.*
- RJM DFM
- PRS4 LDC MMFL READ MMF STATUS WORD
- CRD CN
- LDD CN+2 CHECK RECOVERY INTERLOCK
- SHN 0-13
- ZJN ABT IF DAT NOT INTERLOCKED
- LCN DATI RELEASE RECOVERY INTERLOCK
- RJM IFR
- STD CN+2 CLEAR INTERLOCK STATUS
- LDC MMFL
- CWD CN
- ABT MONITOR ABTM
- LJM PPR
- PRS5 STD RS
- PAUSE CHECK ERROR FLAG
- LDD CM+1
- NJN PRS4 IF ERROR FLAG SET
- LDD CN+3 CLEAR PAUSE BIT
- SCN 1
- STD CN+3
- LDD CP
- ADN SNSW
- CWD CN
- ADN PFCW-SNSW SWITCH TO NULL FAMILY
- CRD CN
- LDD CN+3
- STD CM+1
- LMN NEEQ CHECK FOR NULL FAMILY
- ZJN PRS6 IF NULL FAMILY
- LDN DFCS
- STD CM+3
- MONITOR SMDM
- LDN NEEQ SET NULL FAMILY IN *PFCW*
- STD CN+3
- LDD CP
- ADN PFCW
- CWD CN
- PRS6 LDN ESTP READ EST POINTER
- CRD CM
- LDN 2 SET CONSTANT TWO
- STD TW
- LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
- STD LO
- ADN 7 SET INDEX INTO MST TABLE
- SCN 7
- STD CA
- ADN 70
- SHN -6
- STD T1
- SBD FL
- MJN PRS7 IF ENOUGH STORAGE AVAILABLE
- LDD T1
- RJM RQS
- * INITIALIZE TABLES.
- PRS7 RJM IET INITIALIZE TABLES
- * CHECK FOR MULTI-MAINFRAME SYSTEM.
- LDC MMFL READ MMF STATUS WORD
- CRD CM
- LDD CM+1
- LPC 777
- ZJN PRS10 IF NOT MMF ENVIRONMENT
- STD EQ
- LDD RA GET LINK DEVICE
- SHN 6
- ADD EQ
- CRD RD
- LDD RE ASSIGN SYSTEM STATUS TO LINK DEVICE
- LPC 5500
- LMC 2000
- STD RE
- LDD RA STORE LINK DEVICE RECOVERY INFORMATION
- SHN 6
- ADD EQ
- CWD RD
- LDD FN+4 SET EXTENDED MEMORY MST POINTER
- STM LDMP
- SHN 3 GET ALLOCATION WORD FROM MST
- ADN ALGL
- CRD CN
- LDD CN+1 SET EXTENDED MEMORY LABEL TRACK
- STM ECLT
- LDN 10-1 ADVANCE FL AS NEEDED FOR *DAT* TABLE
- RAM PRSC
- PRS10 ZJN PRS12 IF STAND ALONE SYSTEM
- * SET FL REQUIRED FOR LABEL MSTS.
- PRS12 LDD CA SET ADDRESS OF TRT BUFFER
- STD CA+1
- ADN 77
- SHN -6
- ADC FLRC/100+1 REQUEST FL FOR LABELS, MSTS AND TRT EDIT
- PRSC EQU *-1
- RJM RQS
- LJM CMS RETURN
- PRSA VFD 42/0LSYSTEMX,18/SYUI
- PRSB DATA C* INCORRECT CMS CALL.*
- IET SPACE 4,10
- ** IET - INITIALIZE TABLES.
- *
- * EXIT DEVICE RECOVERY STATUS TABLE INITIALIZED.
- *
- * USES TS, RE, AL, EQ, UC, CM - CM+4, FN - FN+4, FS - FS+4.
- *
- * MACROS SFA.
- IET3 LDN ZERL CLEAR RECOVERY TABLE ENTRY
- CRD RD
- IET4 LDD RA STORE RECOVERY TABLE INFORMATION
- SHN 6
- ADD EQ
- CWD RD
- AOD EQ ADVANCE EST ORDINAL
- LMD LO
- NJN IET1 IF NOT END OF MASS STORAGE EQUIPMENTS
- STD RC
- IET SUBR ENTRY/EXIT
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD EQ
- IET1 SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN CHECK EST ENTRY
- LPC 7500 PRESET RECOVERY TABLE
- STD RE
- SHN 21-13
- PJN IET3 IF NOT MASS STORAGE ENTRY
- LDD CA SET ADDRESS OF MST FOR FIRST UNIT
- STD AL
- LDD FN+4 READ *STLL*
- SHN 3
- ADN STLL
- CRD FS
- ADN DDLL-STLL READ *DDLL*
- CRD CM
- LDD CM CHECK ORIGINAL UNIT COUNT
- SHN -3
- LPN 7
- STD UC
- IET2 LDN MSTL ADVANCE INDEX IN MST TABLE
- RAD CA
- SOD UC DECREMENT UNIT COUNT
- PJN IET2 IF MORE UNITS THIS EQUIPMENT
- LDD FS ASSIGN SYSTEM STATUS TO ASR DEVICE
- LPN MRASD
- SHN 12-RASD+RASD/12D*12D
- RAD RE
- LJM IET4 INITIALIZE DEVICE RECOVERY INFORMATION
- TRCO SPACE 4,10
- ** TRCO - TABLE OF RECOVERY OPTIONS.
- TRCO BSS 0
- LOC 0
- CON 0
- CON FLTB+SYTB
- CON FLTB
- CON 0
- LOC *O
- EJECT
- TTL MSM/RMS - RECOVER MASS STORAGE.
- IDENT RMS,OBOV-2
- *COMMENT MSM - MASS STORAGE RECOVERY MANAGER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** *RMS* SURVEYS ALL MASS STORAGE DEVICES AND RECOVERS
- * ANY DEVICE POSSIBLE. UPON COMPLETION, *REC* IS CALLED
- * INTO THIS PP TO PROCEED WITH SYSTEM RECOVERY.
- SPACE 4
- *** ENTRY CONDITIONS.
- *
- * (IR+3) = CPUMTR MMF INITIALIZATION STATUS-
- * LINK DEVICE LABEL TRACK IF NO ERROR.
- * ERROR MESSAGE NUMBER IF ERROR.
- * (IR+4) = RECOVERY STATUS.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- *
- * REFER TO OPERATORS GUIDE FOR INFORMATION AS TO CAUSE OF
- * ERROR AND RECOMMENDED CORRECTIVE ACTION.
- *
- * *DEVICE ACTIVE IN DAT.* (MMF)
- *
- * *END OF DAT TRACK CHAIN.* (MMF)
- *
- * *EQXXX EQYYY CONFLICTING DN.*
- *
- * *EQXXX EQYYY CONFLICTING PN.*
- *
- * *EQXXX EQYYY CONFLICTING UM.*
- *
- * *EQXXX, DEVICE ACCESS ERROR.*
- *
- * *ERROR ON DEVICE WITH ACTIVE FILES.*
- *
- * *ERROR ON SYSTEM DEVICE.*
- *
- * *EXTENDED MEMORY LABEL TRACK NOT FOUND.* (MMF)
- *
- * *EXTENDED MEMORY READ/WRITE PARITY ERRORS.* (MMF)
- *
- * *INSUFFICIENT MEMORY FOR CM RECOVERY.*
- *
- * *LABEL TRACK CONFLICT.*
- *
- * *LINK DEVICE SIZE ERROR.* (MMF)
- *
- * *LOCAL AREA SECTOR ERROR.*
- *
- * *MAXIMUM NUMBER MIDS ACTIVE.* (MMF)
- *
- * *MID UNDEFINED IN EXTENDED MEMORY.* (MMF)
- *
- * *MID CURRENTLY ACTIVE IN EXTENDED MEMORY.* (MMF)
- *
- * *MMF DEVICE ACCESS ERROR.* (MMF)
- *
- * *NON-SHARED DEVICE ACTIVE IN DAT.* (MMF)
- *
- * *PF LINKAGE ERROR.*
- *
- * *PRESET NOT ALLOWED.* (MMF)
- *
- * *REMOVABLE DEVICE CONFLICT.* (MMF)
- *
- * *SHARED DEVICE ACTIVE IN DAT.* (MMF)
- *
- * *TRT LENGTH ERROR.*
- *
- * *UNMATCHED SYSTEM DEVICES.*
- SPACE 4
- ** ROUTINES CALLED.
- *
- * 0MF - PRESET MMF LINK DEVICE.
- * 0SD - SPIN UP/DOWN ISMD DRIVES.
- TITLE COMMON WORKING STORAGE AND SUBROUTINES.
- RMS SPACE 4
- QUAL RMS
- ORG OBOV-2
- LJM PRS PRESET *RMS*
- SPACE 4,10
- LIST M
- COMMON
- LIST *
- TITLE MAIN ROUTINE.
- ** RMS - MAIN PROGRAM.
- RMS1 EXECUTE 4DB LOAD RECOVERY ROUTINES
- RJM RLD RECOVER MMF LINK DEVICE
- LDC 0 SET UEM EQUIPMENT FOR SPECIAL PROCESSING
- RMSE EQU *-1
- STM MRLC
- LDC ZJNI-ZJNI SET JUMP TO PROCESS OR IGNORE UEM
- * LDC NJNI-ZJNI (IF PROCESSING ONLY UEM)
- RMSH EQU *-1
- RAM MRLD
- LDC RDL READ LABELS
- RJM MRL
- RMSA LDN 0
- ZJN RMS2 IF NO DEVICE INITIALIZATION
- EXECUTE 4DD LOAD VERIFICATION ROUTINES
- EXECUTE 4DH LOAD INITIALIZATION ROUTINES
- LDC IMS PROCESS DEVICE INITIALIZATION
- RJM MRL
- RMS2 EXECUTE 4DD LOAD VERIFICATION ROUTINES
- EXECUTE 4DG LOAD RECOVERY ROUTINES
- RMSB UJN RMS3 IF NOT CM RECOVERY
- * PSN
- LDC CAD CHECK ACTIVE DEVICES
- RJM MRL
- LDC RMR UPDATE MRT TABLES
- RJM MRL
- RJM UMT UPDATE MMF TABLES
- UJN DPP CALL *REC*
- RMS3 LDC CDS CHECK DEVICE STATUS
- RJM MRL
- LDD RC
- ZJN RMS4 IF NO EQUIPMENTS TO RECOVER
- LDC RCD RECOVER DEVICES
- RJM MRL
- RJM REM RESTORE UEM (LEVEL 1 OR 2 AND UEM PRESENT)
- LDC ** WRITE DAYFILE RECOVERY SELECTIONS BACK
- RMSC EQU *-1
- CWM RMSF,ON
- RMS4 RJM UMT UPDATE MMF TABLES
- EXECUTE 4DC VERIFY PF SYSTEM
- DPP LDC DSCP*200+MS1W STORE *RECOVERY* MESSAGE
- CWM RMSG,ON
- LDD IA CALL *REC* INTO THIS PP
- CWM RMSD,ON
- LJM PPR
- RMSD VFD 18/3LREC,6/DSCP,36/0
- RMSF BSS 5 DAYFILE RECOVERY SELECTIONS
- RMSG DATA C*RECOVERY*
- TITLE CM RECOVERY ROUTINES.
- CAD SPACE 4
- ** CAD - CHECK ACTIVE DEVICES (CM RECOVERY).
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES T5 - T7, FN - FN+4, FS - FS+4.
- *
- * CALLS ATC, CTD, EBP, IES, VLP.
- CAD SUBR ENTRY/EXIT
- SHN 21-6
- MJN CADX IF DEVICE UNAVAILABLE
- SHN 6-0
- MJN CADX IF LABEL NOT READ
- LDD FN+4 READ PF DESCRIPTION
- SHN 3
- ADN PFGL
- CRM DLPB,TW
- ADN STLL-PFGL-2 READ STATUS (STLL)
- CRD FS
- UJMF CAD2
- RJM RDE READ *DAT* ENTRY
- LDM DATB+11 CHECK ACCESS BY THIS MACHINE
- LPC 0
- CADA EQU *-1
- NJN CAD1 IF DEVICE SET
- LDC =C*MMF DEVICE ACCESS ERROR.*
- LJM HNG DISPLAY MESSAGE AND HANG
- CAD1 LDN 10 SET ACCESS BY THIS MACHINE
- RAD RE
- CAD2 RJM EBP ENABLE BST/BAT PROCESSING, IF REQUIRED
- RJM VLP VERIFY LABEL PARAMETERS
- MJN CAD3 IF NOT FIRST EQUIPMENT IN CHAIN
- NJN CAD4 IF ERRORS FOR THIS EQUIPMENT
- RJM ATC ADJUST TRACK COUNT (AND CLEAR INTERLOCKS)
- LDD FN
- LPN 20
- ZJN CAD3 IF NOT ISHARED DEVICE
- LDD RE
- LPN 10
- ZJN CAD3 IF CURRENT TRT NOT IN THIS MACHINE
- LCN 2
- RAD RE
- RJM CTD
- * LDN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
- CAD3 LJM CADX RETURN
- * ERROR IN LABEL DETECTED.
- CAD4 LDD FN
- SHN 21-10
- PJN CAD5 IF NOT REMOVABLE DEVICE
- LDD FN+4 CHECK ACTIVITY
- SHN 3
- ADN DULL
- CRD CM
- LDD CM+4
- LPC 3777
- ADD FS+3
- NJN CAD5 IF ACTIVE FILES ON DEVICE
- RJM IES INITIALIZE EQUIPMENT STATUS
- * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
- UJN CAD3
- CAD5 LDC =C*ERROR ON DEVICE WITH ACTIVE FILES.*
- * LJM HNG
- HNG SPACE 4
- ** HNG - DISPLAY ERROR AND HANG PP.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE.
- *
- * USES T2.
- *
- * CALLS IFR.
- *
- * MACROS UJMF.
- HNG STM HNGA
- UJMF HNG1
- LCN DATI CLEAR FLAG REGISTER INTERLOCK
- RJM IFR
- HNG1 LDN 4
- STD T2
- LDC CPAS+MS2W SET MESSAGE IN RECOVERY MESSAGE BUFFER
- CWM *,T2
- HNGA EQU *-1
- UJN * STOP
- SEM SPACE 4
- ** SEM - SET EQUIPMENT MESSAGE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES CM - CM+4.
- *
- * CALLS C2D.
- SEM SUBR ENTRY/EXIT
- LDN 1R
- STD CM
- LDN 0 SET END OF ASSEMBLY
- STD CM+4
- LDD FN+3 ENTER EQUIPMENT MNEMONIC
- STD CM+1
- LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
- SHN -3
- RJM C2D
- STD CM+2
- LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
- LPN 7
- ADN 1R0
- SHN 6
- STD CM+3
- LDC CPAS+MS1W+1
- CWD CM
- ADN MS2W-MS1W-1 CLEAR SECOND LINE OF MESSAGE
- CWD CM+4
- UJN SEMX
- TITLE NON - CM RECOVERY ROUTINES.
- CDS SPACE 4,20
- ** CDS - CHECK DEVICE STATUS (LEVEL 0, 1, 2 RECOVERY).
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (RC) = COUNT OF EQUIPMENTS TO RECOVER.
- * (RE) = SET WITH RECOVERY INFORMATION.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES FN - FN+4, FS - FS+4, T4 - T7, RC, EQ, EC.
- *
- * CALLS CSD, CSE, HNG, IES, UDT, VLP.
- *
- * MACROS UJMF.
- CDS12 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- CDS SUBR ENTRY/EXIT
- SHN 21-4
- MJN CDSX IF INITIALIZATION SPECIFIED
- LDD FN
- LPN 2
- NJN CDS12 IF DEVICE OFF OR DOWN
- LDD RA READ LABEL DATA
- SHN 6
- ADD AL
- ADN PFGL READ DEVICE DESCRIPTION
- CRD CN
- ERRNZ PUGL-PFGL-1 ADJUST IF *PUGL* POSITION CHANGES
- ERRNZ MDGL-PFGL-2 ADJUST IF *MDGL* POSITION CHANGES
- CRM DLPB,TW
- LDD FN+4 READ STLL
- SHN 3
- ADN STLL
- CRD FS
- SBN STLL-MDGL
- CRD CM+3
- RJM CSE CHECK SYSTEM EQUIPMENT
- * VERIFY LABELS FOR THIS EQUIPMENT.
- CDS1 UJMF CDS2
- LDD CN+4
- LPN 70
- NJN CDS2 IF NOT FIRST UNIT OF EQUIPMENT
- RJM CSD CHECK SHARED DEVICE STATUS
- NJN CDS7 IF DAT CONFLICT
- CDS2 RJM VLP VERIFY LABEL PARAMETERS
- MJN CDS4 IF NOT FIRST EQUIPMENT IN CHAIN
- NJN CDS6 IF ERROR ON ANY LABEL
- UJMF CDS3 NON MMF TRANSFER
- RJM UDT UPDATE DEVICE ACCESS TABLE
- NJN CDS7 IF EXTENDED MEMORY TRACK UNAVAILABLE
- CDS3 LDD RE CHECK INCORRECT MODE CHANGE
- LPN 40
- NJN CDS5 IF FULL TRACK ACCESS SET
- LDC 200 SET EQUIPMENT RECOVERY
- RAD RE
- AOD RC ADVANCE RECOVERY COUNT
- CDS4 LJM CDSX RETURN
- CDS5 LDN STLE SET LABEL ERROR STATUS
- STD EC
- * ERROR IN LABEL VERIFICATION.
- CDS6 LDD RE
- SHN 21-10
- MJN CDS10 IF REMOVABLE DEVICE ERROR
- SHN 21-12+22-21+10
- CDSA PJN CDS9 IF NOT DEVICE WITH SYSTEM STATUS
- * PJN CDS11 (LVL0 - IF NOT DEVICE WITH SYSTEM STATUS)
- LDC =C*ERROR ON SYSTEM DEVICE.*
- CDS7 LJM HNG DISPLAY ERROR AND HANG
- * NON REMOVABLE DEVICE ERROR.
- CDS9 LDC =C*ERROR ON DEVICE WITH ACTIVE FILES.*
- UJN CDS7 DISPLAY ERROR AND HANG
- * REMOVABLE DEVICE ERROR.
- CDS10 LDD EC CHECK ERROR CODE
- * UJN CDS11 (LEVEL 0 DEADSTART)
- CDSB EQU *-1
- LMN STLE
- ZJN CDS11 IF LABEL ERROR
- LMN STNR&STLE
- ZJN CDS11 IF NOT READY
- LDD RA CHECK LABEL COPY OF *STLL*
- SHN 6
- ADD AL
- ADN DULL
- CRD CM
- ADN STLL-DULL
- CRD CN
- LDD CM+4 CHECK ACTIVITY
- LPC 3777
- ADD CN+3
- NJN CDS9 IF ACTIVE FILES ON DEVICE
- CDS11 RJM IES INITIALIZE EQUIPMENT STATUS
- * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
- LJM CDSX RETURN
- CSE SPACE 4,10
- ** CSE - CHECK SYSTEM EQUIPMENT.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (CM+3 - CM+7) = MDGL WORD OF MST.
- *
- * EXIT TO *HNG* IF MISMATCHED SYSTEM DEVICES.
- CSE2 LDD FN+3 SET SYSTEM DEVICE TYPE
- STM CSEA
- LDD CM+7 SET MAXIMUM SECTOR LIMIT
- STM CSEA+1
- CSE SUBR ENTRY/EXIT
- LDD FN
- SHN 21-12
- PJN CSEX IF NOT SYSTEM DEVICE
- LDM CSEA
- ZJN CSE2 IF FIRST SYSTEM DEVICE
- LMD FN+3 COMPARE DEVICE TYPE
- NJN CSE1 IF NO MATCH WITH FIRST SYSTEM DEVICE
- LDM CSEA+1 CHECK SECTOR LIMIT
- LMD CM+7
- ZJN CSEX IF MATCHING TRACK SIZE
- CSE1 LDC =C*UNMATCHED SYSTEM DEVICES.*
- LJM HNG
- CSEA CON 0,0
- RCD SPACE 4,20
- ** RCD - RECOVER DEVICE.
- *
- * ENTRY (A) = (RE) = EQUIPMENT RECOVERY STATUS INFORMATION.
- * (EQ) = (T5) = EST ORDINAL.
- * (RC) = RECOVERY COUNT.
- * (CA+1) = CM ADDRESS OF TRT BUFFER.
- * (FN - FN+4) = EST ENTRY.
- * (RE) SET WITH DEVICE RECOVERY INFORMATION.
- * (AL) = CM ADDRESS CONTAINING LABEL MST.
- *
- * EXIT DEVICE RECOVERED OR LEFT AS UNAVAILABLE.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES CA, EC, P1, T1.
- *
- * CALLS CDC, HNG, IES, RDY, SEC.
- RCD6 RJM RDY RECOVER DAYFILES
- LDN 0
- RCD SUBR ENTRY/EXIT
- SHN 21-7
- PJN RCDX IF EQUIPMENT NOT BEING RECOVERED
- SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
- RJM SEC SET EQUIPMENT CONFIGURATION
- * READ TRT FOR THIS DEVICE.
- RJM RTT
- ZJN RCD6 IF RECOVERY COMPLETE
- * ERROR IN DEVICE RECOVERY.
- STD EC SET ERROR CODE
- LMN STTL
- ZJN RCD1 IF LENGTH ERROR
- LDN RCDB-RCDA
- RCD1 ADC RCDA SET ERROR MESSAGE ADDRESS
- STD P1
- RCDC LDD FN
- * UJN RCD4 (LEVEL 0 DEADSTART)
- SHN 21-10
- PJN RCD5 IF NOT REMOVABLE DEVICE
- LDM MBUF+5*STLL+3
- NJN RCD4 IF ACTIVE USERS
- RCD2 SOD RC DECREMENT RECOVERY COUNT
- RJM IES INITIALIZE EQUIPMENT STATUS
- * LCN 0 (*MRL* REWRITE RECOVERY TABLE FLAG)
- RCD3 UJP RCDX RETURN
- RCD4 LDD RE
- SHN 21-12
- PJN RCD2 IF NOT SYSTEM DEVICE
- RCD5 LDD P1
- LJM HNG DISPLAY MESSAGE AND HANG
- RCDA DATA C*TRT LENGTH ERROR.*
- RCDB DATA C*PF LINKAGE ERROR.*
- RDY SPACE 4,10
- ** RDY - RECOVER DAYFILES.
- *
- * ENTRY (MBUF) = MST.
- *
- * USES P1.
- *
- * CALLS CDC, *4DG*, *4DJ*.
- *
- * MACROS EXECUTE.
- RDY SUBR ENTRY/EXIT
- LDM MBUF+5*ACGL+4
- LPC MGLAP
- ZJN RDYX IF NO SECTOR OF LOCAL AREAS
- LDN EXDF SET NUMBER OF EXCESS DAYFILES
- STD P1
- RDY1 SOD P1
- MJN RDYX IF END OF DAYFILES
- LDM MBUF+5*DALL,P1
- ZJN RDY1 IF NO TRACK ASSIGNED
- EXECUTE 4DJ LOAD DAYFILE RECOVERY ROUTINES
- RJM CDC CHASE DAYFILE CHAIN
- EXECUTE 4DG RELOAD RECOVERY ROUTINES
- UJN RDYX RETURN
- REM SPACE 4,10
- ** REM - RESTORE UEM FROM CHECKPOINT FILE IF LEVEL 1 OR 2
- * DEADSTART AND UEM IS PRESENT.
- *
- * USES LO.
- *
- * CALLS 4DK.
- *
- * MACROS EXECUTE.
- REM1 STM MRLC RESTORE PROCESSING OF ALL EQUIPMENTS
- REM SUBR ENTRY
- SOM REMA
- ZJN REM1 IF UEM NOT TO BE RESTORED THIS PASS
- EXECUTE 4DK RESTORE UEM
- * *4DK* DOES NOT RETURN CONTROL HERE. IT EXITS TO *RMS1*.
- REMA CON 1 IF ZERO, *4DK* WILL NOT BE CALLED
- RLD SPACE 4,15
- ** RLD - RECOVER LINK DEVICE.
- *
- * ENTRY (FN - FN+4) = EST ENTRY FOR LINK DEVICE.
- * (RD - RD+4) = RECOVERY INFORMATION FOR LINK DEVICE.
- *
- * USES EQ, P1, P2, RC, RE, T5, CM - CM+4, CN - CN+4.
- *
- * CALLS CDS, EMF, IMS, LDT, LRA, RCD, RDL, SEM, *0MF*, *4DB*,
- * *4DD*, *4DG*, *4DH*.
- *
- * MACROS EXECUTE, MONITOR.
- RLD2 LDD RE
- SHN 21-4
- PJN RLD3 IF INITIALIZE NOT SPECIFIED
- EXECUTE 4DD LOAD VERIFICATION ROUTINES
- EXECUTE 4DH LOAD INITIALIZATION ROUTINES
- LCN 0 INITIALIZE LINK DEVICE
- RJM IMS
- SOM RMSA DECREMENT INITIALIZATION COUNT
- UJN RLD4 CHECK LABEL TRACK
- RLD3 LDN PSNI FORCE LINK DEVICE SIZE VERIFICATION
- STM WMTC
- RJM RDL READ DEVICE LABEL
- EXECUTE 4DD LOAD VERIFICATION ROUTINES
- EXECUTE 4DG LOAD RECOVERY ROUTINES
- RJM LDT LOAD DEVICE ACCESS TABLE
- LDD EQ
- STD T5
- LDN 0 CHECK DEVICE STATUS
- RJM CDS
- LDD EQ
- STD T5
- LDD RE
- RJM RCD RECOVER DEVICE
- RLD4 LDM LDMP GET DEVICE ALLOCATION WORD FROM MST
- SHN 3
- ADN ALGL
- CRD CN
- LDD CN+1 CHECK LABEL TRACK
- LMM ECLT
- ZJN RLD5 IF SAME AS FOUND BY *CPUMTR*
- MONITOR HNGM HANG PP
- RLD5 STD RC
- LDD RE SAVE LINK DEVICE RECOVERY STATUS
- STM UMTA
- LDC ** *PRESET* COUNT
- RLDA EQU *-1
- ZJN RLD6 IF PRESET NOT SPECIFIED
- STD P1
- LDC ** BUFFERED DEVICE *PRESET* COUNT
- RLDC EQU *-1
- STD P2
- EXECUTE 0MF,PRS
- LDN 0 CLEAR LINK DEVICE RECOVERY STATUS
- STM UMTA
- RLD6 STD RE CLEAR RECOVERY FOR LINK DEVICE
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CWD RD
- EXECUTE 4DB RELOAD *4DB*
- LDC LRMS ENABLE MMF RECOVERY
- RJM EMF
- RLD SUBR ENTRY/EXIT
- RLDB LDN 0
- * LDN 1 (LINK DEVICE ALREADY RECOVERED)
- NJN RLDX IF LINK DEVICE ALREADY RECOVERED
- AOM RLDB
- LDC ** (LINK DEVICE EST ORDINAL)
- RLDD EQU *-1
- ZJN RLDX IF STAND-ALONE SYSTEM
- STD T5
- STD EQ
- RLDE LDC LRMS ENABLE MMF RECOVERY
- * UJN RLD1 (PRESET SELECTED)
- RJM EMF
- RLDF STM WMTB ENABLE LINK DEVICE RECOVERY
- * UJN RLDX (CM RECOVERY)
- RLD1 RJM SEM SET EQUIPMENT MESSAGE
- LJM RLD2 CHECK FOR INITIALIZATION
- UMT SPACE 4
- ** UMT - UPDATE MMF TABLES IN EXTENDED MEMORY.
- *
- * CALLS IFR, LRA, MRL, UIS, 4DF.
- UMT1 LDC UIS UPDATE ISD TABLES
- RJM MRL
- UMT SUBR ENTRY/EXIT
- EXECUTE 4DF
- UJMF UMT1
- LDC 0
- UMTB EQU *-1 (LINK DEVICE EST ORDINAL)
- STD T5
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD RD
- LDC * RESTORE LINK DEVICE RECOVERY STATUS
- UMTA EQU *-1
- STD RE
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CWD RD RESTORE RECOVERY TABLES
- LDC UER UPDATE EXTENDED MEMORY RESIDENT
- RJM MRL
- UMTC LCN DATI CLEAR FLAG REGISTER INTERLOCK
- * UJN UMTX (LEVEL 0 DEADSTART OR CM RECOVERY)
- RJM IFR
- LJM UMTX RETURN
- SPACE 4
- USE LITERALS
- TITLE PRESET PROGRAM.
- PRS SPACE 4
- ** PRS - PRESET.
- *
- * EXIT (RS) = RECOVERY STATUS.
- * (TW) = CONSTANT 2.
- * (LM) = EXTENDED MEMORY MST POINTER IF MMF SYSTEM.
- * (LO) = LAST MASS STORAGE ORDINAL + 1.
- * (FN - FN+4) = EXTENDED MEMORY EST ENTRY IF MMF SYSTEM.
- * (CA+1) = FWA FOR CM TRT BUFFER.
- * DEVICE RECOVERY STATUS TABLE IN *MSM-S* FL SET WITH
- * RECOVERY STATUS INFORMATION AND CM ADDRESSES FOR MST
- * LABEL DATA.
- *
- * USES CA, CA+1, LO, P1, RE, RS, TA, TW, T5, CM - CM+4,
- * CN - CN+4, FN - FN+4, RD - RD+4.
- *
- * CALLS CRE, CUR, IET, IFR, LCM, SUD.
- *
- * MACROS SFA.
- PRS BSS 0
- LDN JSCL READ SCHEDULER CONTROL
- CRD CM
- LDD CM SET SCHEDULER ACTIVE
- LPC 3777
- LMC 4000
- STD CM
- LDN JSCL STORE SCHEDULER CONTROL
- CWD CM
- LDN 2 DEFINE CONSTANT 2
- STD TW
- LDN ESTP READ EST POINTER
- CRD CM
- LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
- STD LO
- ADN 7 SET INDEX IN MST TABLE
- SCN 7
- STD CA
- STD CA+1
- LDD IR+4 SET RECOVERY STATUS
- * STD RS
- STM RMSD+4 STORE IN *REC* CALL
- NJN PRS0 IF NOT LEVEL 0 DEADSTART
- ISTORE CDSA,(PJN CDS11)
- ISTORE CDSB,(UJN CDS11)
- ISTORE RCDC,(UJN RCD4)
- ISTORE UMTC,(UJN UMTX)
- PRS0 LDD RS
- LPN FLMK
- LMN FLCM
- STD P1
- NJN PRS1 IF NOT CM RECOVERY
- IFGT TA,RA
- LDN RA-TA
- ELSE 1
- LCN RA-TA
- RAM LRAC
- RJM LCM FIND FREE AREA
- LDK MABL CHECK MAINFRAME TYPE
- CRD CM
- LDD CM+1
- SHN 21-13
- MJN PRS1 IF CME NOT PRESENT
- LDC 4000
- STD TA
- LDC 0
- ORG *-1
- LOC LRAA
- UJN LRA1 SET *R* REGISTER
- LOC *O
- STM LRAA
- PRS1 RJM IET INITIALIZE EQUIPMENT TABLE
- LDD P2
- NJN PRS2 IF NOT ALL-ISD CONFIGURATION
- LDK CFGL
- CRD CM
- LDD CM+3
- LPC 7377
- ADC 400 SET ALL-ISD FLAG
- STD CM+3
- LDK CFGL
- CWD CM
- PRS2 LDD CA SET ADDRESS OF TRT BUFFER
- STD CA+1
- LDC CPAS+MS1W ISSUE *SPINNING UP DRIVES* MESSAGE
- CWM PRSE,TR
- LDN 0 SPIN UP ISMD DRIVES
- RJM SUD
- LDN 0 WAIT - SPIN UP COMPLETE
- RJM SUD
- LDC CPAS+MS1W ISSUE RECOVERY MESSAGE
- CWM PRSA,TW
- LDD P1
- NJN PRS3 IF NOT CM RECOVERY
- STM RMSB
- RJM LCM CHECK FIELD LENGTH
- RJM CRE CHECK RECOVERY
- PRS3 LDN DFPP
- CRD CM
- LDD CM SET FWA OF DAYFILE POINTERS
- SHN 14
- ADD CM+1
- CRD CM
- LDD CM SET ADDRESS OF DAYFILE RECOVERY SELECTIONS
- RAM RMSC-1
- LPN 37
- SHN 14
- ADD CM+1
- STM RMSC
- CRM RMSF,ON READ DAYFILE RECOVERY SELECTIONS
- RJM CUR CHECK FOR UEM RECOVERY REQUIRED
- LDK MMFL CHECK MMF STATUS WORD
- CRD CN
- LDD CN+1 GET LINK DEVICE EST ORDINAL
- LPC 777
- STM RLDD
- NJN PRS5 IF NOT STAND ALONE SYSTEM
- PRS4 LDC DSCP*200+MS1W STORE RECOVERY MESSAGE
- CWM PRSF,TW
- LJM RMS1 EXIT TO MAIN ROUTINE
- PRS5 STD T5
- STM UMTB
- SFA EST READ LINK DEVICE EST ENTRY TO (FN - FN+4)
- ADK EQDE
- CRD FN
- LDD IR+3 CHECK FOR INITIALIZE ERROR FROM *CPUMTR*
- STM ECLT
- SHN 21-13
- MJN PRS6 IF NO ERROR
- LDM PRSB-1,IR+3 DISPLAY ERROR CONDITION
- LJM HNG
- PRS6 LDD CN+3 SET MACHINE MASK
- STM CADA
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD RD
- LDD RE ASSIGN SYSTEM STATUS TO LINK DEVICE
- LPC 5520
- LMC 2000
- STD RE
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5 RESTORE LINK DEVICE INFORMATION
- CWD RD
- LDD FN+4 SET LINK DEVICE MST POINTER
- STM LDMP
- LDK DSCL CHECK PRESET REQUESTED
- CRD CM
- LDD CM+3
- STM RLDA
- ZJN PRS6.1 IF *PRESET* NOT SELECTED
- ISTORE RLDE,(UJN RLD1)
- PRS6.1 LDD CM+4
- STM RLDC
- LDD P1
- NJN PRS6.2 IF NOT CM RECOVERY
- ISTORE RLDF,(UJN RLDX)
- ISTORE UMTC,(UJN UMTX)
- UJN PRS8 STORE RECOVERY MESSAGE
- PRS6.2 LDD RS
- NJN PRS7 IF RECOVERY SELECTED
- LDC 4000 SET DAT INTERLOCKED
- STD CN+2
- LDC MMFL STORE MMF STATUS WORD
- CWD CN
- PRS7 SBN 1 DELAY
- NJN PRS7
- LDC CPAS+MS1W+1 STORE *WAITING* MESSAGE
- CWM PRSC,ON
- ADN MS2W-MS1W-2
- CWM PRSD,TR
- LDN DATI GET FLAG REGISTER INTERLOCK
- RJM IFR
- NJN PRS7 IF DAT BUSY
- PRS8 LJM PRS4 STORE RECOVERY MESSAGE
- PRSA DATA C*RECOVERY,*
- PRSB CON ERM1
- CON ERM2
- CON ERM3
- CON ERM4
- CON ERM5
- CON ERM6
- ERM1 DATA C*EXTENDED MEMORY LABEL TRACK NOT FOUND.*
- ERM2 DATA C*MID UNDEFINED IN EXTENDED MEMORY.*
- ERM3 DATA C*MID CURRENTLY ACTIVE.*
- ERM4 DATA C*MAXIMUM NUMBER MIDS ACTIVE.*
- ERM5 DATA C*EXTENDED MEMORY READ/WRITE PARITY ERRORS.*
- ERM6 DATA C*PRESET NOT ALLOWED.*
- PRSC DATA C*WAITING*
- PRSD DATA C*MMF DEADSTART IN PROGRESS.*
- PRSE DATA C*SPINNING UP DRIVES.*
- PRSF DATA C*RECOVERING*
- CRE SPACE 4,10
- ** CRE - CHECK RECOVERY.
- *
- * EXIT TO *PPR* TO CALL *1CK* IF ONLY TO CHECKPOINT.
- *
- * USES T1 - T6, CM - CM+4.
- * MACROS SFA.
- CRE7 LDN 7 SET CHECKPOINT OF NON-BUFFERED DEVICES
- STM CREB+2
- CRE8 LDN NCPL CALL *1CK* TO SYSTEM CP
- CRD CM
- AOD CM+1
- RAM CREB+1
- LDD IA
- CWM CREB,ON
- EXECUTE 1CK,=
- LJM PPR EXIT TO PP RESIDENT
- CRE SUBR ENTRY/EXIT
- LDD IR+3
- SHN 21-13
- MJN CRE2 IF LABEL TRACK SPECIFICATION
- SHN 13-21
- LPN 7
- ZJN CRE1 IF NO MMF PRESET ERROR
- LMN 2
- NJN CREX IF NOT *RECOVERY DS PREVENTED THIS MID.*
- CRE1 LDD IR+3
- SHN 21-12
- MJN CRE7 IF CHECKPOINT NON-BUFFERED DEVICES
- CRE2 LDC BIOL
- CRD CM
- LDD CM+1
- SHN 14
- LMD CM+2
- NJN CRE2.1 IF BUFFERED I/O PRESENT
- LDD IR+3
- SHN 21-11
- MJP CRE8 IF CHECKPOINT ALL DEVICES
- UJN CREX RETURN
- CRE2.1 ADN PUTP
- CRD T1
- LDD T1+3 CLEAR FLAGS
- LPN 77
- STD T1+3
- LDC CPAS+MS2W ENTER MESSAGE
- CWM CREA,TR
- LDN ZERL REQUEST FLUSH OF ALL WRITE BUFFERS
- CRD CM
- LDC BMFW*100+1
- STD CM+4
- MONITOR BFMM
- CRE3 LDD T1 SET NUMBER OF ENTRIES
- ADN 1
- STD T6
- CRE4 SOD T6
- ZJN CRE5 IF ALL ENTRIES CHECKED
- SHN PUTLS CHECK *PUT* FOR OUTSTANDING REQUESTS
- ADD T1+4
- SHN 6
- ADD T1+3
- SHN 14
- ADK UNCT
- CRD CM
- LDD CM+3
- ZJN CRE4 IF NO REQUESTS OUTSTANDING
- SFA EST,CM+1
- ADK EQDE
- CRD CM
- LDD CM
- LPN 3
- LMN 3
- ZJN CRE4 IF DEVICE IS DOWN
- UJP CRE3 WAIT FOR FLUSH TO COMPLETE
- CRE5 STD CM CLEAR MESSAGE
- LDC CPAS+MS2W
- CWD CM
- LDD IR+3
- SHN 21-13
- MJN CRE6 IF LABEL TRACK SPECIFICATION
- SHN 21-11-21+13
- PJN CRE6 IF NO CHECKPOINT ABORT
- LJM CRE8 CHECKPOINT ALL DEVICES AND ABORT
- CRE6 LJM CREX RETURN
- CREA DATA C*FLUSHING BUFFERED DEVICES.*
- CREB VFD 24/3L1CK,12/6,24/0
- CUR SPACE 4,10
- ** CUR - CHECK FOR UEM RECOVERY REQUIRED.
- *
- * ENTRY (RS) = RECOVERY STATUS.
- *
- * USES CM - CM+4.
- *
- * MACROS SFA.
- CUR SUBR ENTRY/EXIT
- LDD RS
- LPN FLMK
- LMN FLTB
- NJN CURX IF NOT LEVEL 1 OR 2 RECOVERY
- LDN ESTP SEARCH FOR UEM EQUIPMENT
- CRD T3
- LDN NOPE-1
- STD T5
- CUR1 AOD T5
- LMD T6
- ZJN CURX IF NO UEM EQUIPMENT
- SFA EST,T5
- ADK EQDE
- CRD CM
- LDD CM
- SHN 21-13
- PJN CUR1 IF NOT MASS STORAGE
- LDD CM+4
- SHN 3
- ADK DILL
- CRD CM
- LDD CM+3 CHECK MEMORY TYPE
- SHN -6
- LPN 7
- LMN 4
- NJN CUR1 IF NOT UEM
- LDD T5
- STM RMSE
- AOM REMA ENABLE *4DK* CALL
- UJP CURX RETURN
- IET SPACE 4,10
- ** IET - INITIALIZE EQUIPMENT TABLE.
- *
- * ENTRY (CA) = CM ADDRESS OF MST TABLE.
- *
- * EXIT (RC) = 0.
- * (P2) = 0 IF ALL ISD CONFIGURATION.
- * (CA) = LWA OF MST TABLE IN CM.
- * DEVICE RECOVERY INFORMATION IN CM INITIATED.
- *
- * USES T5, UC, CM - CM+4, FN - FN+4, FS - FS+4, RD - RD+4.
- *
- * CALLS LRA.
- *
- * MACROS SFA.
- IET5 LDN ZERL CLEAR RECOVERY TABLE ENTRY
- CRD RD
- IET6 RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CWD RD
- AOD T5 ADVANCE EST ORDINAL
- LMD LO
- NJN IET1 IF NOT END OF MASS STORAGE DEVICES
- STD RC
- IET SUBR ENTRY/EXIT
- LDN 0 SET ISD CONFIGURATION FLAG
- STD P2
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD T5
- IET1 SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN CHECK EST ENTRY
- LPC 7500 PRESET RECOVERY TABLE
- STD RE
- SHN 21-13
- PJN IET5 IF NOT MASS STORAGE ENTRY
- LDD CA SET ADDRESS OF MST FOR FIRST UNIT
- STD AL
- LDD FN+4 READ *STLL*
- SHN 3
- ADN STLL
- CRD FS
- ADN DDLL-STLL READ *DDLL*
- CRD CM
- LDD CM SET ORIGINAL UNIT COUNT
- SHN -3
- LPN 7
- STD UC
- LDD FN+3 CHECK FOR ISD DEVICE
- LMC 2RDE
- ZJN IET2 IF EXTENDED MEMORY
- LMN 2RDD&2RDE
- ZJN IET2 IF ISD
- LMN 2RDG&2RDD
- ZJN IET2 IF ISD
- STD P2 SET NON-ISD FLAG
- IET2 LDN MSTL ADVANCE INDEX IN MST TABLE
- RAD CA
- SOD UC
- PJN IET2 IF MORE UNITS THIS EQUIPMENT
- LDD FS ASSIGN SYSTEM STATUS TO ASR DEVICE
- LPN MRASD
- SHN 12-RASD+RASD/12D*12D
- RAD RE
- LDD FS
- LPC MLIAL
- ZJN IET4 IF FULL INITIALIZE NOT SPECIFIED
- LDN 20 SET INITIALIZE FLAG
- RAD RE
- AOM RMSA ADVANCE INITIALIZATION COUNT
- IET3 LJM IET6 STORE RECOVERY INFORMATION
- IET4 LDD FN
- SHN 21-10
- PJN IET3 IF NON-REMOVABLE DEVICE
- LDD RS
- LPN FLMK
- LMN FLTB
- NJN IET3 IF FILES NOT RECOVERED FROM MASS STORAGE
- LJM IET5 DEFER RECOVERY TO *CMS*
- LCM SPACE 4,10
- ** LCM - LOCATE CM FOR RECOVERY.
- *
- * ENTRY (A) = 0 IF RECHECKING FIELD LENGTH.
- * (CA+1) = MEMORY REQUIRED.
- *
- * EXIT (LRAB) = RA OF FREE AREA.
- * (CN - CN+3) = PARAMETERS FROM *CMA*.
- *
- * CALLS CMA.
- LCM SUBR ENTRY/EXIT
- ZJN LCM1 IF RECHECKING FIELD LENGTH
- LDN ZERL
- CRD CN
- LDN CN FIND LARGEST FREE AREA
- RJM CMA
- LDD CN+1 SAVE RA OF AREA
- STM LRAB
- STD TA
- LDD CN
- RAM LRAB-1
- LCM1 LDD CN+2
- NJN LCMX IF SUFFICIENT FL
- LDD CA+1
- ADN 77
- SHN -6
- SBD CN+3
- MJN LCMX IF SUFFICIENT MEMORY AVAILABLE
- ZJN LCMX IF SUFFICIENT MEMORY AVAILABLE
- LDC LCMA * INSUFFICIENT MEMORY FOR CM RECOVERY.*
- LJM HNG PROCESS ERROR
- LCMA DATA C* INSUFFICIENT MEMORY FOR CM RECOVERY.*
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMPCMA
- *CALL COMPSUD
- OVL0 BSS 0 *0SD* LOAD ADDRESS
- ERRNG BFMS-OVL0-ZSDL *0SD* OVERFLOW
- QUAL
- TTL MSM/1RF - RECOVER PRESERVED FILES.
- TITLE
- QUAL RPF
- IDENT 1RF,PPFW
- *COMMENT MSM - RECOVER PRESERVED FILES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- QUAL 1RF
- RPF SPACE 4,15
- *** *1RF* IS CALLED BY *REC* TO RECOVER PRESERVED
- * FILES ON A MASS STORAGE DEVICE. WHEN *1RF* HAS FINISHED
- * WITH A DEVICE, IT INDICATES TO *REC* THAT IT IS COMPLETE.
- * *REC* TELLS IT EITHER TO PROCESS ANOTHER DEVICE OR DROP.
- RPF SPACE 4,15
- *** ENTRY CONDITIONS.
- *
- * (IR+2) = EST ORDINAL.
- * (IR+3) = CP NUMBER AT WHICH TO DISPLAY MESSAGES.
- * (IR+4) = RECOVERY STATUS.
- *
- * WHEN *1RF* COMPLETES, IT SETS (IR+2) TO 0. *REC* EITHER
- * REPLIES WITH ANOTHER EST ORDINAL OR 4000 WHICH INDICATES
- * THAT *1RF* SHOULD DROP.
- RPF SPACE 4,10
- ** ROUTINES CALLED.
- *
- * 4DA - RECOVER PRESERVED FILES.
- RPF SPACE 4,10
- ORG PPFW
- RPF BSS 0 ENTRY
- LDD IR+3 SET *IQFT* BUFFER ADDRESS
- SHN 6
- STD CR
- SHN 7-6 SET MESSAGE CONTROL POINT
- STD CF
- * LDD IR+4 SET RECOVERY STATUS
- * STD RS
- LDD RS
- NJN RPF0 IF RECOVERY DEADSTART
- LDC DSCP+ENRS MOVE TO DEADSTART CONTROL POINT
- STD CM+1
- MONITOR CCAM
- RPF0 LDN 10
- STD T1
- LDD CF SAVE CONTROL POINT MESSAGES
- ADK MS1W
- CRM RPFC,T1
- * NOTE - *DSD* DOES NOT DISPLAY CONTROL POINT MESSAGES ON THE
- * B-DISPLAY UNLESS THERE IS A NON-ZERO EJT ORDINAL PRESENT.
- ADK TFSW-MS1W-10
- CRD CM
- LDD CM SAVE CURRENT EJT ORDINAL
- STM RPFB
- LDN DSEO SET DEADSTART EJT ORDINAL
- STD CM
- LDD CF
- ADK TFSW
- CWD CM
- LDN 2
- STD TW
- EXECUTE 4DA LOAD SYSTEM SECTOR CLEANUP ROUTINES
- LDC LDDI+CF FORCE MESSAGES TO CONTROL POINT *CF*
- STM /RDA/RDAK
- STM /RDA/RDAL
- STM /RDA/CUSA
- LDN 0
- SBN 1 DELAY FOR OTHER *4DA* LOADS TO COMPLETE
- NJN *-1
- RPF2 LDD IR+2 SET EST ORDINAL
- STD T5
- SFA EST FETCH MST POINTER FROM EST
- ADK EQDE
- CRD FN
- LDD FN+4 READ MST STATUS WORD
- SHN 3
- ADN STLL
- CRD CM
- LDD CM EXTRACT FULL INITIALIZE FLAG
- LPC MLIAL
- RJM /RDA/RDA CLEAR PRESERVED FILE INTERLOCKS
- LDN 0
- STD IR+2 INDICATE RECOVERY COMPLETE
- LDD IA
- CWD IR
- RPF3 DELAY WAIT 125 MICROSECONDS
- LDD IA
- CRD IR CHECK FOR REPLY FROM *REC*
- LDD IR+2
- ZJN RPF3 IF NO REPLY YET
- SHN 21-13
- PJN RPF2 IF ANOTHER DEVICE TO PROCESS
- LDN 10
- STD T1
- LDD CF RESTORE CONTROL POINT MESSAGES
- ADN MS1W
- CWM RPFC,T1
- LDD CF
- ADK TFSW
- CRD CM
- LDC 0 RESTORE EJT ORDINAL
- RPFB EQU *-1
- STD CM
- LDD CF
- ADK TFSW
- CWD CM
- RPF4 MONITOR DPPM
- LJM PPR EXIT TO PP RESIDENT
- RPFC BSS 0 CONTROL POINT MESSAGE SAVE AREA
- SPACE 4,10
- SDVR EQU RPFC+10*5
- QUAL
- TTL MSM/4DA - RECOVER PRESERVED FILES.
- TITLE
- IDENT 4DA,/RDA/RDEX
- *COMMENT MSM - RECOVER PRESERVED FILES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** *RDA* PERFORMS SYSTEM SECTOR CLEANUP ON ALL DIRECT
- * ACCESS PERMANENT FILES AS WELL AS BUILDING THE *IQFT*
- * ON LEVEL 0 DEADSTARTS.
- SPACE 4
- *** ENTRY CONDITIONS.
- *
- * (A) = 0, IF DEVICE IS NOT BEING INITIALIZED.
- * (CF) = MESSAGE CONTROL POINT ADDRESS (*1RF* CALL).
- * (CP) = CONTROL POINT ADDRESS (*CMS* CALL).
- * (CR) = RELATIVE ADDRESS OF *IQFT* BUFFER.
- * (FN - FN+4) = EST ENTRY.
- * (RS) = RECOVERY STATUS.
- * (T5) = EST ORDINAL.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- * *EQXXX, ANNNN TYYYY SZZZZ LINKAGE* = LENGTH / LINKAGE ERROR
- * AT TRACK YYYY SECTOR ZZZZ OF PRESERVED FILE ON EST ORDINAL
- * XXX, FIRST TRACK AT NNNN. OPERATOR INTERVENTION IS REQUIRED.
- * IF THE OPERATOR ENTERS *GO*, EOI WILL BE WRITTEN AT THE
- * LOCATION OF THE ERROR AND RECOVERY WILL PROCEED. IF THE
- * OPERATOR ENTERS *PAUSE*, ERROR IDLE STATUS WILL BE SET AND
- * RECOVERY OPERATIONS ON THE DEVICE TERMINATED.
- *
- * *RECOVER EQXXX, ANNNN TMMMM. = RECOVERING PRESERVED FILE ON
- * EST ORDINAL XXX. FIRST TRACK IS NNNN AND TRACK CURRENTLY
- * BEING READ IS MMMM.
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- * *EQXXX, ERROR IDLE SET.* = THIS FOLLOWS THE *PF LENGTH ERROR*
- * OR *QF LENGTH ERROR* MESSAGE IF ERROR IDLE WAS FORCED BY THE
- * SYSTEM OR THE OPERATOR ENTERED *PAUSE*.
- *
- * *EQXXX NNNN DIRECT ACCESS FILE ERRORS.* = COUNT OF ERRORS
- * DETECTED IN DIRECT ACCESS FILES ON EST ORDINAL XXX. THE
- * COUNT SHOULD MATCH THE NUMBER OF ERROR MESSAGES PRODUCED.
- *
- * *EQXXX NNNN DIRECT ACCESS FILES RECOVERED.* = COUNT OF DIRECT
- * FILES RECOVERED ON EST ORDINAL XXX.
- *
- * *EQXXX, FFFFFFF, DD RECOVERED.* = RECOVERY COMPLETE ON EST
- * ORDINAL XXX WITH FAMILY NAME FFFFFFF AND DEVICE NUMBER DD.
- *
- * *EQXXX NNNN PRESERVED FILE ERRORS.* = COUNT OF ERRORS
- * DETECTED WHILE READING SYSTEM SECTORS ON EST ORDINAL XXX.
- *
- * *EQXXX NNNN QUEUED FILE ERRORS.* = COUNT OF QUEUED FILE
- * ERRORS DETECTED ON EST ORDINAL XXX. THE COUNT SHOULD
- * MATCH THE NUMBER OF ERROR MESSAGES PRODUCED.
- *
- * *EQXXX NNNN QUEUED FILES RECOVERED.* = COUNT OF QUEUED
- * FILES RECOVERED ON EST ORDINAL XXX.
- *
- * *EQXXX NNNN QUEUED FILES IGNORED.* = COUNT OF QUEUED FILES
- * NOT WRITTEN TO THE *IQFT* FILE DUE TO LACK OF SPACE.
- *
- * *EQXXX, PF CATALOG SIZE ERROR.* = THE PERMANENT FILE CATALOGS
- * ON EST ORDINAL XXX ARE THE WRONG SIZE FOR THE CURRENT SYSTEM.
- *
- * *EQXXX, PPPPPPP RECOVERED.* = RECOVERY COMPLETE ON EST
- * ORDINAL XXX WITH PACKNAME PPPPPPP.
- *
- * *EQXXX, PRESERVED FILE RECOVERY INITIATED.* = PRESERVED FILE
- * RECOVERY WAS STARTED FOR EST ORDINAL XXX.
- *
- * *EQXXX, TRACK LIMIT ON IQFT.* = NO TRACK AVAILABLE FOR IQFT.
- *
- * *EQXXX PF LENGTH ERROR UINDEX FILENAME* = PERMANENT FILE
- * LENGTH WAS INCORRECT.
- *
- * *EQXXX QF LENGTH ERROR FILENAME* = QUEUED FILE
- * LENGTH WAS INCORRECT.
- SPACE 4
- *** ACCOUNT FILE MESSAGES.
- *
- * *ADDR, XXX, FFFFFFF, DD, LVLL, LVLU.* = EST ORDINAL XXX
- * WITH FAMILY NAME FFFFFFF, DEVICE NUMBER DD, LOWER SECURITY
- * ACCESS LEVEL LVLL AND UPPER SECURITY ACCESS LEVEL LVLU
- * HAS BEEN RECOVERED.
- *
- * *ADPM, XXX, PPPPPPP, UUUUUUU, LVLL, LVLU.* = EST ORDINAL
- * XXX WITH PACKNAME PPPPPPP, LOWER SECURITY ACCESS LEVEL
- * LVLL AND UPPER SECURITY ACCESS LEVEL LVLU HAS BEEN MOUNTED.
- * IF PRESENT, UUUUUUU INDICATES THAT THE PACK WAS A PRIVATE
- * PACK BELONGING TO THAT USER.
- SPACE 4
- *** ERROR LOG MESSAGES.
- *
- * *EQXXX, ANNNN PF RECOVERY ERROR.* = SYSTEM SECTOR ERROR OR
- * UNIDENTIFIED FILE TYPE WHILE PROCESSING A PRESERVED FILE ON
- * TRACK NNNN OF EST ORDINAL XXX.
- *
- * *EQXXX, ANNNN TYYYY SZZZZ LINKAGE ERROR.* = LENGTH / LINKAGE
- * ERROR AT TRACK YYYY SECTOR ZZZZ OF A PRESERVED FILE WHOSE BOI
- * IS ON TRACK NNNN OF EST ORDINAL XXX.
- *
- * *EQXXX, ERROR IDLE SET.* = THIS FOLLOWS THE *PF LENGTH ERROR*
- * OR *QF LENGTH ERROR* MESSAGE IF ERROR IDLE WAS FORCED BY THE
- * SYSTEM OR THE OPERATOR ENTERED *PAUSE*.
- *
- * *EQXXX, PF CATALOG SIZE ERROR.* = THE PERMANENT FILE CATALOGS
- * ON EST ORDINAL XXX ARE THE WRONG SIZE FOR THE CURRENT SYSTEM.
- *
- * *EQXXX, TYYYY SZZZZ LINKAGE ERROR.* = THIS MESSAGE FOLLOWS
- * THE *PF LENGTH ERROR* AND *QF LENGTH ERROR* MESSAGES, GIVING
- * ADDITIONAL DETAILS ON THE LOCATION OF THE ERROR - EST ORDINAL
- * XXX, TRACK YYYY, SECTOR ZZZZ.
- *
- * *LI LENGTH ERROR FILENAME* = LIBRARY FILE LENGTH
- * WAS INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
- * MESSAGE.
- *
- * *PF LENGTH ERROR UINDEX FILENAME* = PERMANENT FILE LENGTH
- * WAS INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
- * MESSAGE.
- *
- * *QF LENGTH ERROR FILENAME* = QUEUED FILE LENGTH WAS
- * INCORRECT. THE *LINKAGE ERROR.* MESSAGE FOLLOWS THIS
- * MESSAGE.
- SPACE 4
- O4DA MAX /CMS/SDVR+5,/1RF/SDVR+5
- QUAL RDA
- SPACE 4
- *CALL COMSJIO
- *CALL COMSPFM
- *CALL COMSSSE
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- EQV$ EQU 1 DO NOT VERIFY EQUIPMENT IN *COMPRSS*
- IRA$ EQU 1 RANDOM ACCESS PROCESSORS INITIALIZED
- NSDF EQU 5 NUMBER OF SPECIAL DAFS
- SBUF EQU BFMS-502 SCRATCH BUFFER FOR EOI SECTOR
- SPACE 4
- DATB EQU O4DA-5 BUFFER FOR DEVICE ACCESS TABLE ENTRY
- ORG O4DA
- RDE SUBR ENTRY/EXIT
- TITLE MAIN LOOP.
- RDA SPACE 4
- ** RDA - MAIN ROUTINE.
- RDA SUBR PRS ENTRY/EXIT
- ERRNZ RDE+1-RDAX CODE DEPENDS ON VALUE
- STD T3 SAVE INITIALIZE FLAG
- ZJN RDA1 IF DEVICE NOT BEING INITIALIZED
- UJMF RDAX
- RDA1 LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
- SHN -3
- RJM C2D
- STM RDAD
- STM IQFB+1
- STM IDMC+1
- STM IRMB+1
- STM CPSB+1
- STM RDAI+1
- STM RDAJ+1
- STM PFEE+1
- LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
- LPN 7
- SHN 6
- ADC 2R0,
- STM CPSB+2
- STM IQFB+2
- STM IRMB+2
- STM RDAD+1
- STM RDAI+2
- STM RDAJ+2
- LMN 1R &1R, REMOVE COMMA FROM MESSAGE
- STM IDMC+2
- STM PFEE+2
- LDD T3
- NJN RDA1.1 IF DEVICE BEING INITIALIZED
- LDC RDAJ+NMSN *PRESERVED FILE RECOVERY INITIATED*
- RJM DFM ISSUE DAYFILE MESSAGE
- RDA1.1 LDD FN+4 READ TDGL WORD OF MST
- SHN 3
- ADK TDGL
- CRD CN
- ADN MDGL-TDGL GET MASS STORAGE DRIVER WORD
- CRD T7
- SBN MDGL-ALGL GET DAT TRACK ADDRESS
- CRD CM
- LDD CM+4 SAVE DAT TRACK ADDRESS
- STM SPFD
- LDD T7 SAVE 16-WORD PFC FLAG
- SHN -11
- LPN 1
- STD T1
- STM CPSA
- LDM RDAH,T1 ENABLE / DISABLE DAF PROCESSING
- STM RDAG
- RJM PTA PRESET TRT ADDRESS
- RJM GDE GET *DAT* ENTRY
- SETMS IO,DF
- * LDN 0
- STD CN+3 INITIALIZE TRACK SEARCH
- RDAA UJN RDA2 CONTINUE
- * PSN (LEVEL-0 RECOVERY)
- RJM IQF INITIALIZE THE *IQFT* FILE
- STM CQFA
- ZJN RDA2 IF TRACK NOT ASSIGNED
- AOM CQFC FLAG *IQFT* INITIALIZED
- STM TQFA
- * LOOP FOR EACH TRACK ON DEVICE.
- RDA2 RJM SPF SEARCH FOR PRESERVED FILE
- NJP RDA5 IF PRESERVED FILE FOUND
- * COMPLETE PROCESSING FOR THIS DEVICE.
- LDD RS
- NJN RDA3 IF RECOVERY DEADSTART
- RJM TQF TERMINATE *IQFT*
- RDA3 ENDMS RELEASE CHANNEL
- RJM IDM ISSUE DAYFILE MESSAGES
- RJM WDE UPDATE DAT ENTRY
- LDC 0 SET ERROR IDLE IF NON-ZERO
- RDAM EQU *-1
- ZJN RDA4 IF NO ERROR IDLE TO BE SET
- LDC RDAI+NMSN SEND ERROR IDLE MESSAGES
- RJM DFM
- LDC RDAI+ERLN
- RJM DFM
- SMSTF GDEI SET DEVICE ERROR IDLE STATUS
- LDN STEI
- RJM SES
- CMSTF LCKP CLEAR POSSIBLE CHECKPOINT REQUEST
- RDA4 LDN 0 CLEAR CONSOLE MESSAGE
- STD CM
- RDAK LDD CP
- * LDD CF (*1RF* CALL)
- ADN MS2W
- CWD CM
- RJM CPS CHECK PFC SIZE
- RJM CUS CLEAR UNAVAILABLE STATUS
- LJM RDAX EXIT
- * CONVERT TRACK NUMBER AND DISPLAY MESSAGE.
- RDA5 RJM C2D
- STM RDAE+1
- LDD T6
- SHN -6
- RJM C2D
- STM RDAE
- RDAL LDD CP
- * LDD CF (*1RF* CALL)
- ADN MS2W
- CWM RDAC,TR
- SBN 1 SAVE ADDRESS FOR *RDC* MESSAGE
- STM RDCA
- SETMS POSITION
- * LDN 0
- STD CN CLEAR FILE TYPE
- RJM RSS READ SYSTEM SECTOR
- NJN RDA6 IF ERROR
- * DETERMINE TYPE OF PRESERVED FILE.
- RJM SFT SET FILE TYPE
- NJN RDA6 IF UNKNOWN FILE TYPE
- LDD RS
- ZJN RDA5.1 IF NOT RECOVERY DEADSTART
- RJM VFR VERIFY FILE FOR RECOVERY DEADSTART
- UJN RDA7 PROCESS NEXT TRACK
- RDA5.1 LDD CN CHECK FILE TYPE
- NJN RDA5.2 IF NOT QUEUED FILE
- RJM CQF CREATE QUEUED FILE ENTRY
- UJN RDA7 PROCESS NEXT TRACK
- RDA5.2 LMN PMFT CHECK FILE TYPE
- ZJN RDA9 IF DIRECT ACCESS PERMANENT FILE
- LMN FAFT&PMFT
- ZJN RDA9 IF FAST ATTACH FILE
- LJM RDA10 PROCESS SPECIAL PRESERVED FILE
- RDA6 RJM IEM ISSUE ERROR LOG MESSAGE
- RDA7 LJM RDA2 PROCESS NEXT TRACK
- * RELEASE FILE.
- RDA8 ENDMS
- LDD T5 DROP TRACK CHAIN FOR FILE
- LMC 4000 ADD CHECKPOINT REQUEST
- STD CM+1
- LDD T6
- STD CM+2
- MONITOR DTKM
- UJN RDA7
- * PROCESS PERMANENT FILES.
- RDA9 LDM CASS CHECK FILE ACCESS
- * UJN RDA7 (8-WORD PFC DEVICE)
- RDAG EQU RDA9
- STD CN+1 SET SYSTEM SECTOR REWRITE STATUS
- SHN 21-5
- MJN RDA8 IF PURGE FLAG SET
- SHN 5-4
- MJN RDA11 IF FILE CAN BE SHORTENED
- LDM UCSS+1
- ADM UCSS+2
- ADM UCSS+3
- ADM UCSS+4
- ADM FISS
- RAD CN+1 SET SYSTEM SECTOR REWRITE STATUS
- RDA10 RJM VFL VERIFY FILE LENGTH
- ZJN RDA12 IF NO LENGTH ERROR
- RDA11 RJM RDC READ DISK CHAIN
- ZJN RDA12 IF NO LENGTH/LINKAGE/DISK ERROR
- RJM CFL CHANGE FILE LENGTH
- LDD CN
- LMN LIFT
- ZJN RDA15 IF LIBRARY TYPE FILE
- UJN RDA13 ISSUE FILE ERROR MESSAGE
- RDA12 LDD FS+1
- LMM SBUF+FTEI
- ZJN RDA14 IF NO BOI/EOI ERROR
- RDA13 RJM PFE ISSUE FILE ERROR MESSAGE
- RDA14 RJM CTU CLEAR USER COUNTS
- RDA15 ENDMS
- LJM RDA2 LOOP FOR NEXT TRACK
- RDAC DATA H*RECOVER EQ*
- RDAD DATA 6HXXX, A
- RDAE DATA 4HNNNN
- RDAF CON 0
- DATA C*F RECOVERY ERROR.*
- RDAH BSS 0 TABLE OF INSTRUCTIONS TO PLUG
- LOC RDAG
- UJN RDA7
- LOC *O
- CON LDMI
- RDAI DATA C*EQXXX, ERROR IDLE SET.*
- RDAJ DATA C*EQXXX, PRESERVED FILE RECOVERY INITIATED.*
- TITLE SUBROUTINES.
- CFL SPACE 4,15
- ** CFL - CHANGE FILE LENGTH.
- *
- * ENTRY (T6) = TRACK FOR EOI.
- * (T7) = SECTOR FOR EOI.
- * (CN) = FILE TYPE.
- * (FS+4) = 0, IF EOI REWRITE REQUIRED.
- * (BFMS) LOADED WITH SYSTEM SECTOR.
- *
- * EXIT EOI IN TRT CHANGED.
- * EOI REWRITTEN, IF (FS+4) = 0.
- * ERROR FLAG SET IN SYSTEM SECTOR CATALOG IMAGE.
- * (CN+1) NONZERO (SYSTEM SECTOR REWRITE FLAG).
- *
- * USES CM - CM+4.
- *
- * CALLS CLF, WEI.
- CFL SUBR ENTRY/EXIT
- RJM CLF CHANGE LENGTH OF FILE IN TRT
- LDD FS+4
- NJN CFL1 IF NO REWRITE OF EOI REQUIRED
- LDD MA COPY FNT/FST FROM SYSTEM SECTOR TO EOI
- CWM FNSS,TW
- SBN 2
- CRM SBUF+FNEI,TW
- RJM WEI WRITE EOI
- CFL1 LDD CN CHECK FILE TYPE
- LMN LIFT
- ZJN CFLX IF LIBRARY FILE
- LDM CTSS+FCEC SET ERROR FLAG IN SYSTEM SECTOR
- LPC 7077
- LMC 400
- STM CTSS+FCEC
- AOD CN+1 SET SYSTEM SECTOR REWRITE STATUS
- UJN CFLX RETURN
- CPS SPACE 4,10
- ** CPS - CHECK PFC SIZE.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * CALLS DFM, SES.
- *
- * MACROS CMSTF, SMSTF.
- CPS SUBR ENTRY/EXIT
- LDC *
- * LDC 0 (8-WORD PFC DEVICE)
- CPSA EQU *-1
- NJN CPSX IF NOT 8-WORD PFC DEVICE
- LDC CPSB ISSUE DAYFILE MESSAGE
- RJM DFM
- LDC CPSB+ERLN ISSUE MESSAGE TO ERROR LOG
- RJM DFM
- SMSTF GDEI SET GLOBAL ERROR IDLE FLAG
- LDN STCS SET PF CATALOG SIZE ERROR STATUS
- RJM SES
- CMSTF LCKP CLEAR POSSIBLE CHECKPOINT
- UJN CPSX RETURN
- CPSB DATA C*EQXXX, PF CATALOG SIZE ERROR.*
- CQF SPACE 4,20
- ** CQF - CREATE QUEUED FILE ENTRY.
- *
- * CQF CREATES THE ENTRY REPRESENTING A QUEUED FILE IN
- * THE INACTIVE QUEUED FILE LIST.
- *
- * ENTRY (BFMS) = SYSTEM SECTOR.
- * (CQFA) = 0 IF NOT *IQFT* SPACE AVAILABLE.
- *
- * EXIT *IQFT* ENTRY CREATED, IF QUEUE FILE RECOVERED.
- *
- * USES QI, T1, T6, CM - CM+4.
- *
- * CALLS IQF, PFE, RSS, VFL, WEI, WQF, WSR.
- *
- * MACROS FILEREC, SETMS.
- CQF7 AOM PQIC ADVANCE QUEUE FILE IGNORED COUNT
- CQF SUBR ENTRY/EXIT
- LDC 1
- CQFA EQU *-1
- ZJN CQF7 IF NO SPACE FOR/ON *IQFT*
- CQFC LDN 0
- * LDN 1 (QUEUE FILE PROCESSING INITIATED)
- NJN CQF2 IF QUEUE FILE PROCESSING INITIATED
- RJM IQF INITIALIZE *IQFT*
- STM CQFA
- ZJN CQF7 IF TRACK UNAVAILABLE FOR *IQFT*
- LDD FS+1 REREAD THE QUEUE FILE SYSTEM SECTOR
- STD T6
- SETMS POSITION
- * LDN 0 READ SYSTEM SECTOR
- RJM RSS
- AOM CQFC
- STM TQFA
- CQF2 RJM VFL VERIFY FILE LENGTH
- NJN CQF4 IF LENGTH ERROR
- LDM DTSS
- NJN CQF3 IF ENHANCED EOI INDICATED
- LDD MA COPY FNT/FST FROM SYSTEM SECTOR TO EOI
- CWM FNSS,TW
- SBN 2
- CRM SBUF+FNEI,TW
- RJM WEI REWRITE EOI
- UJN CQF5 ADVANCE RECOVERY COUNT
- CQF3 LDD FS+1 VERIFY BOI/EOI
- STD T6
- LMM SBUF+FTEI
- ZJN CQF5 IF VERIFY GOOD
- CQF4 LCN 0 SET LENGTH ERROR
- STM FLSS
- STM FLSS+1
- RJM PFE ISSUE ERROR MESSAGE
- LJM CQF7 IGNORE THIS FILE AND RETURN
- CQF5 AOM PMRC ADVANCE QUEUED FILE RECOVERY COUNT
- LDM FGSS SET INACTIVE QUEUE FILE STATUS
- SCN 2
- STM FGSS
- LDD FS+1 RESET SYSTEM SECTOR ADDRESS
- RJM WSR WRITE SYSTEM SECTOR WITH REWRITE
- * ENTER THIS FILE IN *IQFT* BUFFER IN CM.
- LDM FLSS+1 INSERT FILE LENGTH
- STM CDSS+1
- LDM FLSS
- STM CDSS
- LDD T5 SET EST ORDINAL
- STM IOSS+5*ENTQ
- LDN 10 MAXIMUM QFT ENTRY LENGTH
- STD T1
- LDM RMSS USE THE RESIDENT MACHINE ID FOR RECOVERY
- STM FMSS+4
- LDD RA
- SHN 6
- ADD CR FWA OF IQFT BUFFER
- ADD QI
- CWM IOSS,T1 QFT ENTRY
- CWM CDSS,ON DATE, TIME AND FILE LENGTH IN SECTORS
- CWM FMSS,ON WRITE FAMILY NAME
- CWM FDSS,ON DESTINATION FAMILY NAME
- CWM OASS,ON OWNER USER NAME, USER INDEX
- CWM FOSS,ON OWNER FAMILY NAME
- LDN QFEWL QUEUED FILE ENTRY WORD COUNT
- RAD QI ADVANCE BUFFER POINTER
- SHN -6 WORDS/PRU (0-77)
- ZJN CQF6 IF NOT FULL SECTOR
- RJM WQF WRITE QUEUED FILE SECTOR
- CQF6 LJM CQFX RETURN
- * QUEUED FILE RECOVERY TABLE. (RDAT)
- LIST G
- FILEREC
- LIST *
- CON PMFT+100
- CON FAFT+100
- CON LIFT+100
- RDATBL EQU *-RDAT
- CUS SPACE 4,15
- ** CUS - CLEAR UNAVAILABLE STATUS.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES T1, T3, T6, T7, CM - CM+4.
- *
- * CALLS CDC, RDS, SDA, SMI, WDS.
- *
- * MACROS DELAY, ENDMS, PAUSE, SETMS.
- CUS6 LDD RS CHECK RECOVERY STATUS
- LPN FLMK
- LMN FLCM
- ZJN CUSX IF CM RECOVERY
- RJM SDA SET DEVICE AVAILABLE
- CUS SUBR ENTRY/EXIT
- LDD FN
- LPN 20
- ZJN CUS6 IF NOT INDEPENDENT SHARED DEVICE
- SETMS IO,(DE,DF,NS)
- LDN FN+1 PRESET ERROR RETRY STATUS
- STD T3
- LDD FN+4 SET LABEL TRACK
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+1
- STD T6
- LDN 0
- STD T7
- CUS1 LDC BFMS READ LABEL FOR *DIT*
- RJM RDS
- MJN CUS3 IF READ ERROR
- LDM N4SS+5*SDGL+4
- LPN 77
- SHN -1
- ZJN CUS5 IF SOFTWARE INTERLOCK NOT SET
- CUSA LDD CP
- * LDD CF (*1RF* CALL)
- ADN MS2W
- CWM CUSB,TR *WAITING FOR INTERLOCK.*
- CUS2 ENDMS
- DELAY
- PAUSE
- LDD CM+1 CHECK ERROR FLAG
- LMN ORET
- NJN CUS1 IF NOT OPERATOR OVERRIDE
- CUS3 AOD T3
- LMN FN+3
- ZJN CUS4 IF BOTH CHANNELS TRIED
- LDI T3
- NJN CUS2 IF ANOTHER CHANNEL PRESENT
- CUS4 ENDMS
- LJM RDAX EXIT
- CUS5 RJM SMI CALCULATE *DIT* ENTRY ADDRESS
- STD T1
- SHN 2
- ADC //DISS-5+3
- RAD T1
- LDI T1 CLEAR DIT INTERLOCK
- SCN 1
- STI T1
- RJM CDC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF REWRITE LABEL
- RJM WDS
- MJN CUS4 IF WRITE ERROR
- ENDMS
- LJM CUS6 SET DEVICE AVAILABLE
- CUSB DATA C*WAITING FOR INTERLOCK.*
- IEM SPACE 4,15
- ** IEM - ISSUE ERROR LOG MESSAGE.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- * (CN) = FILE TYPE.
- *
- * EXIT ERROR COUNT (PMPC) ADVANCED.
- *
- * CALLS DFM.
- *
- * MACROS ENDMS.
- IEM SUBR ENTRY/EXIT
- LDD CN
- LMN SYFT
- ZJN IEMX IF SYSTEM FILE
- AOM PMPC ADVANCE ERROR COUNT
- LDC 2R P
- STM RDAF
- ENDMS RELEASE CHANNEL
- LDC ERLN+RDAD-1 ISSUE MESSAGE TO ERROR LOG
- RJM DFM
- * LDN 0 CLEAR END OF CP MESSAGE
- STM RDAF
- UJN IEMX RETURN
- IQF SPACE 4,15
- ** IQF - INITIALIZE *IQFT*.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (A) = 0 IF TRACK UNAVAILABLE FOR *IQFT*.
- * (QF) = (QT) = FIRST TRACK OF *IQFT*.
- * (QS) = FIRST SECTOR OF *IQFT*.
- * (QI) = 0.
- *
- * USES T3, CM - CM+4.
- *
- * CALLS DFM, WSS.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- IQF2 LDC IQFB *EQXXX, TRACK LIMIT ON IQFT.*
- RJM DFM
- * LDN 0
- IQF SUBR ENTRY/EXIT
- ENDMS
- LDN ZERL
- CRD CM
- LDD T5 REQUEST *IQFT* TRACK
- STD CM+1
- MONITOR RTCM
- LDD CM+4
- ZJN IQF2 IF NO TRACK AVAILABLE
- STD T6
- STD QF
- STD QT
- LDC 500
- STD T3
- IQF1 LDN 0 CLEAR SYSTEM SECTOR BUFFER
- STM BFMS+1,T3
- SOD T3
- NJN IQF1 IF NOT START OF BUFFER
- STD QI
- LDD RA
- SHN 6
- ADD CR FWA OF IQFT BUFFER
- CWM BFMS,HN CLEAR CM BUFFER
- LDD MA MOVE FILE NAME TO BUFFER
- CWM IQFA,ON
- SBN 1
- CRM FNSS,ON
- SETMS POSITION
- RJM WSS WRITE *IQFT* SYSTEM SECTOR
- LDN FSMS SET FIRST *IQFT* SECTOR
- STD QS
- LJM IQFX RETURN
- IQFA VFD 42/0LQUEUES,6/1,6/SYFT,6/0
- IQFB DATA C*EQXXX, TRACK LIMIT ON IQFT.*
- PTA SPACE 4,10
- ** PTA - PRESET FIRST WORD ADDRESS OF TRT.
- *
- * ENTRY (FN - FN+4) = EST ENTRY OF DEVICE.
- *
- * USES CM - CM+4.
- PTA SUBR ENTRY/EXIT
- LDD FN+4 GET FWA OF TRT
- SHN 3
- ADN TRLL
- CRD CM
- LDD CM+3 SET FWA OF TRT
- LPN 77
- LMC ADCI
- STM SPFA-1
- STM GDEC-1
- LPN 77
- SHN 14
- LMD CM+4
- STM SPFA
- STM GDEC
- SBD TH
- STM SEIA+1
- STM SNTA+1
- SHN -14
- LMC ADCI
- STM SEIA
- STM SNTA
- UJP PTAX RETURN
- SFT SPACE 4,10
- ** SFT - SET FILE TYPE.
- *
- * ENTRY (BFMS) = SYSTEM SECTOR.
- *
- * EXIT (A) = 0, IF VALID FILE TYPE.
- * (CN) = 0, IF QUEUE FILE.
- * (CN) = FILE TYPE, IF NOT QUEUE FILE.
- *
- * USES T2.
- SFT2 LDM RDAT,T2
- SHN -6
- NJN SFT3 IF NOT QUEUED FILE
- STD CN
- SFT3 LDN 0 RETURN SUCCESSFUL STATUS
- SFT SUBR ENTRY/EXIT
- LDN RDATBL-1 SET TABLE LENGTH
- STD T2
- LDM FNSS+4 SET FILE TYPE
- SHN -6
- STD CN
- SFT1 LDD CN CHECK PRESERVED FILE TYPE
- LMM RDAT,T2
- LPN 77
- ZJN SFT2 IF FILE TYPE MATCH
- SOD T2
- PJN SFT1 IF NOT END OF TABLE
- LDN 1
- UJN SFTX RETURN ERROR STATUS
- SPF SPACE 4,10
- ** SPF - SEARCH FOR PRESERVED FILE.
- *
- * ENTRY (CN+2) = TRT LENGTH.
- * (CN+3) = CURRENT TRACK - 4000.
- *
- * EXIT (A) = (T6) = (FS+1) = FIRST TRACK OF FILE.
- * = 0 IF END OF TRT (ALL FILES CHECKED).
- * (FS+4) NONZERO.
- *
- * USES T1, T2, CM - CM+4.
- SPF SUBR ENTRY/EXIT
- LDN 1 ENSURE (FS+4) NONZERO
- STD FS+4
- AOD CN+3
- SHN 21-1
- STD T2 SET TRT WORD INDEX
- LMD CN+2
- ZJN SPFX IF END OF TRT
- SHN 1-21
- STD T1 SET BYTE INDEX
- SPF1 LDD T2
- ADC 0 READ TRT WORD
- SPFA EQU *-1
- CRD CM
- LDD CM+4 CHECK FOR PRESERVED FILES
- SHN -10
- STM SPFB
- NJN SPF5 IF 1 TO 4 PRESERVED FILES THIS WORD
- SPF2 STD T1
- AOD T2 ADVANCE TRT WORD INDEX
- LMD CN+2
- NJN SPF1 IF NOT END OF TRT
- * LDN 0
- UJN SPFX RETURN
- SPF4 AOD T1 ADVANCE BYTE INDEX
- LPN 3
- ZJN SPF2 IF END OF TRT WORD
- SPF5 LDM SPFC,T1
- LPC 0 CHECK FIRST TRACK OF PRESERVED FILE
- SPFB EQU *-1
- ZJN SPF4 IF FILE NOT PRESERVED
- LDD T2
- SHN 2 CALCULATE TRT POSITION
- LMD T1
- STD CN+3
- LMC 4000 SET TRACK NUMBER
- STD T6
- LMC **
- SPFD EQU *-1
- ZJN SPF4 IF *DAT* TRACK
- LDD T6
- STD FS+1
- LJM SPFX RETURN
- SPFC CON 10,4,2,1 PRESERVED FILE TRT FLAGS
- TQF SPACE 4,15
- ** TQF - TERMINATE *IQFT*.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T4) = CHANNEL.
- * (QF) = FIRST TRACK OF *IQFT*.
- * (QT) = CURRENT *IQFT* TRACK.
- * (QS) = CURRENT *IQFT* SECTOR.
- *
- * EXIT EOI SECTOR WRITTEN ON *IQFT*.
- *
- * USES T1, T6, T7, CM - CM+4.
- *
- * CALLS WEI, WQF.
- *
- * MACROS MONITOR, SMSTF.
- TQF2 LDD QF RELEASE *IQFT* CHAIN
- STD CM+2
- LDD T5
- STD CM+1
- MONITOR DTKM
- TQF3 AOM CQFA RESET QUEUE FILE PROCESSING ENABLED
- TQF SUBR ENTRY/EXIT
- TQFA LDN 0
- * LDN 1 (QUEUE FILE PROCESSING INITIATED)
- ZJN TQF3 IF NO QUEUE FILE PROCESSING
- SOM TQFA
- STM CQFC
- LDD QT
- ZJN TQF2 IF RELEASING *IQFT*
- RJM WQF WRITE LAST *IQFT* SECTOR
- LDC 500
- STD T1
- TQF1 LDN 0 CLEAR EOI SECTOR BUFFER
- STM SBUF+1,T1
- SOD T1
- NJN TQF1 LOOP TO START OF BUFFER
- LDD MA MOVE FILE NAME TO BUFFER
- CWM IQFA,ON
- SBN 1
- CRM SBUF+FNEI,ON
- LDD T5 SETUP EOI/SYSTEM SECTOR BUFFER
- STM SBUF+FSEI
- LDD QF
- STM SBUF+FTEI
- LDD QT SET CURRENT *IQFT* TRACK AND SECTOR
- STD T6
- LDD QS
- STD T7
- RJM WEI WRITE EOI SECTOR
- ENDMS
- LDD T5 SET EOI IN TRT
- STD CM+1
- LDD QT
- LPC 3777
- STD CM+2
- LDD QS
- STD CM+3
- MONITOR DTKM
- LDN SPFS SET PRESERVED FILE STATUS ON *IQFT*
- STD CM+3
- LDD QF
- STD CM+2
- LDD T5
- STD CM+1
- MONITOR STBM
- LDN SIQS SET *IQFT* INDICATOR IN MST
- STD CM+3
- LDD QF
- STD CM+2
- LDD T5
- STD CM+1
- MONITOR STBM
- SMSTF LCKP SET CHECKPOINT REQUEST
- LJM TQF3 RETURN
- VFR SPACE 4,10
- ** VFR - VERIFY FILE FOR RECOVERY DEADSTART.
- *
- * ENTRY SYSTEM SECTOR IN *BFMS*.
- *
- * EXIT (RDAM) NONZERO IF ERROR IN TRT CHAIN.
- *
- * CALLS PFE, VTC.
- *
- * MACROS ENDMS.
- VFR SUBR ENTRY/EXIT
- ENDMS
- LDD CN
- NJN VFR1 IF NOT QUEUED FILE
- LDM FLSS
- SHN 21-13
- MJN VFRX IF LENGTH ERROR STATUS ALREADY SET
- VFR1 RJM VTC VERIFY TRACK CHAIN
- ZJN VFRX IF NO TRT CHAIN ERROR
- RJM PFE ISSUE FILE ERROR MESSAGE
- AOM RDAM FORCE SETTING OF ERROR IDLE STATUS
- UJN VFRX RETURN
- VTC SPACE 4,10
- ** VTC - VERIFY TRACK CHAIN.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK OF PRESERVED FILE.
- *
- * EXIT (A) = 0 IF TRACK CHAIN GOOD / VALIDATION DISABLED.
- *
- * USES CM - CM+4.
- VTC SUBR ENTRY/EXIT
- VTCA LDN 0
- ZJN VTCX IF MASS STORAGE VALIDATION DISABLED
- LDD T5
- STD CM+1
- LDD T6 SET UP MONITOR CALL
- STD CM+2
- LDN VTCS REQUEST TRACK CHAIN VALIDATION
- STD CM+3
- MONITOR VMSM
- LDD CM+1
- UJN VTCX RETURN
- WQF SPACE 4,15
- ** WQF - WRITE QUEUED FILE SECTOR.
- *
- * WQF WRITES THE SECTOR OF QUEUED FILE ENTRIES.
- *
- * ENTRY (QT) = INACTIVE QUEUES FILE TRACK.
- * (QS) = INACTIVE QUEUES FILE SECTOR.
- * (QI) = INACTIVE QUEUED FILE INDEX.
- *
- * USES T3, T6, T7, QS, CM - CM+4, CSSA.
- *
- * CALLS DFM, WDS.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- WQF SUBR ENTRY/EXIT
- LDD QT SET *IQFT* TRACK
- STD T6
- LDD QS SET *IQFT* SECTOR
- STD T7
- ADN 1 SET SECTOR LINKAGE
- STM SBUF
- STD QS SET NEXT *IQFT* SECTOR
- LMM SLM
- NJN WQF1 IF NOT LAST SECTOR
- ENDMS
- * LDN 0
- STD CM+3 RESET SECTOR
- STD CM+4
- STD QS
- LDD T5
- STD CM+1
- LDD T6
- STD CM+2
- MONITOR RTCM REQUEST TRACK
- LDD CM+4
- STM SBUF DISK LINKAGE
- ZJN WQF4 IF TRACK NOT ASSIGNED
- STD QT
- WQF1 SETMS POSITION
- LDD QI SET WORD COUNT IN LINKAGE
- STM SBUF+1
- ZJN WQF2 IF EMPTY SECTOR
- LDD RA
- SHN 6
- ADD CR FWA OF IQFT BUFFER
- CRM SBUF+2,QI READ PRU BACK
- WQF2 LDC SBUF+WLSF
- RJM WDS WRITE SECTOR
- LDN 0
- STD QI RESET QUEUE INDEX
- WQF3 LJM WQFX RETURN
- * NO SPACE AVAILABLE LEAVE PRU FOR EOI SECTOR.
- WQF4 STM CQFA DISABLE QUEUE FILE PROCESSING
- LDD T7 RESET SECTOR
- STD QS
- LDC IQFB *EQXXX, TRACK LIMIT ON IQFT.*
- RJM DFM
- UJN WQF3 RETURN
- IDM SPACE 4,20
- ** IDM - ISSUE DAYFILE MESSAGES FOR FILES PROCESSED.
- *
- * ENTRY (PMPC) = PRESERVED FILE ERROR COUNT.
- * (PMEC) = FILE ERROR COUNT.
- * (PMFC) = FILE RECOVERY COUNT.
- * (PMRC) = QUEUED FILE RECOVERY COUNT.
- * (PMQC) = QUEUED FILE ERROR COUNT.
- * (PQIC) = QUEUED FILES IGNORED COUNT.
- * (FN - FN+4) = EST ENTRY.
- * (T5) = EQUIPMENT.
- *
- * EXIT APPROPRIATE MESSAGES ISSUED TO DAYFILE.
- *
- * USES T1, T7, CM - CM+4.
- *
- * CALLS ACS, DFM, IRM.
- IDM3 RJM IRM ISSUE RECOVERY MESSAGES
- IDM SUBR ENTRY/EXIT
- LDC IDMA-1 SET BIASED MESSAGE ADDRESS
- STD T7
- * ISSUE FILES PROCESSED.
- IDM1 AOD T7 ADVANCE ADDRESS
- LMC IDMB
- ZJN IDM3 IF END OF MESSAGES
- LDI T7
- ZJN IDM1 IF NO COUNT
- LDN ZERL CLEAR COUNT
- CRD CM
- * SET COUNT TO COUNT*1000.
- IDM2 LDC 1000D
- RAD CM+4
- SHN -14
- RAD CM+3
- SOI T7 DECREMENT COUNT
- NJN IDM2 IF MORE TO CONVERT
- LDC IDMD
- STD T1
- LDD MA CONVERT COUNT
- CWD CM
- MONITOR RDCM
- STI T1
- LDD MA
- CRD CM
- LDD CM+1
- STM IDMC+3
- LDD CM+2
- STM IDMC+4
- LDM IDMB-IDMA,T7 ADD DESCRIPTION TO MESSAGE
- RJM ACS
- LDC IDMC ISSUE MESSAGE
- RJM DFM
- LJM IDM1 LOOP FOR NEXT MESSAGE
- IDMA BSS 0
- PMFC CON 0 FILE RECOVERY COUNT
- PMPC CON 0 PRESERVED FILE ERROR COUNT
- PMEC CON 0 PERMANENT FILE ERROR COUNT
- PMRC CON 0 QUEUED FILE RECOVERY COUNT
- PMQC CON 0 QUEUED FILE ERROR COUNT
- PQIC CON 0 QUEUED FILES IGNORED COUNT
- IDMB CON =C* DIRECT ACCESS FILES RECOVERED.*
- CON =C* PRESERVED FILE ERRORS.*
- CON =C* DIRECT ACCESS FILE ERRORS.*
- CON =C* QUEUED FILES RECOVERED.*
- CON =C* QUEUED FILE ERRORS.*
- CON =C* QUEUED FILES IGNORED.*
- IDMC DATA H*EQXXX NNNN*
- IDMD BSS 21
- IRM SPACE 4,10
- ** IRM - ISSUE RECOVERY MESSAGES.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT MESSAGES ISSUED TO ACCOUNTING AND SYSTEM DAYFILES.
- * EVENT SET FOR AUXILIARY DEVICE.
- *
- * USES T1, T3, T4, T6, T7, CM - CM+4, CN - CN+4.
- *
- * CALLS ACS, C2D, DFM.
- IRM SUBR ENTRY/EXIT
- LDD FN+4 GET FAMILY/PACKNAME
- SHN 3
- ADN PFGL
- CRD CM
- ADN PUGL-PFGL READ USER NAME
- CRD CN
- LDC 2REQ
- STM IRMB
- LDC IRMB+3 SET ADDRESS OF ASSEMBLY BUFFER
- STD T1
- LDC 2L RESET BUFFER
- STI T1
- LDD CM+4 SAVE SECURITY ACCESS LEVELS
- SHN -6
- STD T4
- LDN 0 SET *END OF LINE* IN (CM+4)
- STD CM+4
- LDD CM+3 EXTRACT DEVICE NUMBER
- LPN 77
- STD T7
- LMD CM+3 CLEAR DEVICE NUMBER
- STD CM+3
- ADD CM+2 BUILD PACKNAME HASH
- ADD CM+1
- ADD CM
- STD CN+4 SAVE PACKNAME HASH
- LDD CN+3 SET END OF USER NAME
- SCN 77
- STD CN+3
- LDN CM ADD FAMILY/PACKNAME TO MESSAGE
- RJM ACS
- LDD T7
- ZJN IRM1 IF AUXILIARY DEVICE
- RJM C2D CONVERT DEVICE NUMBER
- STD CM+3
- LDC =C*, * ADD SEPARATOR
- RJM ACS
- LDN CM+3 ADD DEVICE NUMBER TO MESSAGE
- RJM ACS
- LDC 2RPM&2RDR SET ACCOUNT FILE MESSAGE PREFIX
- IRM1 LMC 2RPM
- STM IRMA+1
- LDD T1 SAVE CURRENT END OF ASSEMBLY
- STD T3
- LDI T1
- STD T6
- LDC IRMD ADD * RECOVERED.* TO MESSAGE
- RJM ACS
- LDC IRMB ISSUE SYSTEM DAYFILE MESSAGE
- RJM DFM
- LDD T3 SET START OF NEW ASSEMBLY
- STD T1
- LDD T6
- STI T1
- LDC 2R, REPLACE *EQ* WITH *, *
- STM IRMB
- LDC =C*, * INSERT SEPARATOR
- RJM ACS
- LDD T7
- NJN IRM2 IF PERMANENT FILE DEVICE
- LDN CN ADD USER NAME TO MESSAGE
- RJM ACS
- LDC =C*, * INSERT SEPARATOR
- RJM ACS
- IRM2 LDD T4 GET LOWER SECURITY ACCESS LEVEL
- SHN -3
- SHN 2 CALCULATE INDEX INTO ACCESS TABLE
- ADC TALV INSERT LOWER ACCESS LEVEL
- RJM ACS
- LDC =C*, * INSERT SEPARATOR
- RJM ACS
- LDD T4 GET UPPER ACCESS LEVEL
- LPN 7
- SHN 2 CALCULATE INDEX INTO ACCESS TABLE
- ADC TALV INSERT UPPER ACCESS LEVEL
- RJM ACS
- LDC IRME ADD *.* TO END OF MESSAGE
- RJM ACS
- LDC IRMA+ACFN ISSUE ACCOUNT FILE MESSAGE
- RJM DFM
- LDK SSTL
- CRD CM
- LDD CM+1
- SHN 21-5
- PJN IRM3 IF DISK VALIDATION IS ENABLED
- LDD T7
- NJN IRM3 IF NOT AUXILIARY DEVICE
- STD CM+1 SET EVENT
- LDN VSNE/10000
- STD CM+3
- LDD CN+4 READ PACKNAME HASH
- STD CM+4
- MONITOR EATM
- IRM3 LJM IRMX RETURN
- IRMA DATA 4HADDR
- IRMB DATA H*EQXXX, *
- IRMC BSS 22
- IRMD DATA 10H RECOVERED
- IRME DATA C*.*
- LSN SPACE 4,15
- ** LSN - LIST PACK SERIAL NUMBERS.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY FOR EQUIPMENT.
- *
- * EXIT PACK SERIAL NUMBER IDENTIFICATION MESSAGES ISSUED TO
- * THE ERROR LOG FOR ALL UNITS OF THE EQUIPMENT.
- *
- * USES CM+1, T1, T2, CN - CN+4, FS+1 - FS+3.
- *
- * CALLS DFM, SDR, *0PI*.
- *
- * MACROS EXECUTE.
- LSN4 LDN TLSNL-1 CHECK DEVICE TYPE FOR NON-*LDAM* DEVICE
- STD T1
- LSN5 LDD FN+3
- LMM TLSN,T1
- ZJN LSNX IF DEVICE TYPE MATCHES
- SOD T1
- PJN LSN5 IF MORE DEVICE TYPES TO CHECK
- LSN6 LDN LDIF
- RJM /RDA/SDR SET BUFFERED DEVICE REQUEST
- LSN SUBR ENTRY/EXIT
- LDD FN+4
- SHN 3
- ADN DDLL GET LOGICAL UNIT COUNT
- CRD CN
- LDD CN EXTRACT UNIT COUNT
- LPN 7
- STD CN
- STD T2
- LDD FN
- SHN 21-7
- PJN LSN4 IF NOT *LDAM* DEVICE
- LDD FN+1
- SHN 21-5
- MJN LSN6 IF CONCURRENT CHANNEL
- LDD T5
- STM /RDA/SBUF
- EXECUTE 0PI,/RDA/SBUF+1
- STD FS+3 SAVE MAIN PROCESSOR ADDRESS
- LDN 0 SET TO FIRST LOGICAL UNIT
- STD FS+1
- LSN1 LDD FS+1 GET MESSAGE FOR A LOGICAL UNIT
- RJM 0,FS+3
- ZJN LSN2 IF MASS STORAGE ERROR
- STD FS+2 SAVE MESSAGE TABLE ADDRESS
- SHN -14 SET BML MESSAGE LENGTH
- STD CM+1
- LDC BMLN
- ADM 1,FS+2 ADD BML MESSAGE ADDRESS
- RJM DFM
- LDI FS+2 GET ERROR LOG MESSAGE ADDRESS
- LMC ERLN SEND MESSAGE TO ERROR LOG
- RJM DFM
- LSN2 AOD FS+1 ADVANCE LOGICAL UNIT
- SOD CN DECREMENT LOGICAL UNIT COUNT
- PJN LSN1 IF MORE LOGICAL UNITS
- LJM LSNX EXIT
- TLSN BSS 0 NON-*LDAM* DEVICES WITH NO PSN-S TO LIST
- CON 2RDE EXTENDED MEMORY
- CON 2RDP EXTENDED MEMORY/STORNET
- CON 2RDV 819
- CON 2RDW 819
- TLSNL EQU *-TLSN LENGTH OF TABLE
- PFE SPACE 4,15
- ** PFE - PERMANENT FILE ERROR.
- *
- * ENTRY (CN) = FILE TYPE.
- * (BFMS) LOADED WITH SYSTEM SECTOR.
- *
- * EXIT ERROR MESSAGE ISSUED TO ERROR LOG AND SYSTEM DAYFILE.
- * APPROPIATE ERROR COUNT INCREMENTED.
- *
- * USES T1 - T3, CM - CM+4.
- *
- * CALLS ACS, C2D, DFM.
- *
- * MACROS ENDMS.
- PFE SUBR ENTRY/EXIT
- ENDMS
- LDD CN
- NJN PFE1 IF NOT QUEUE FILE
- AOM PMQC ADVANCE QUEUED FILE ERROR COUNT
- LDC 2RQF
- UJN PFE1.1 SET MESSAGE PREFIX
- PFE1 LMN LIFT
- NJN PFE1.2 IF NOT A LIBRARY FILE
- LDC 2RLI
- PFE1.1 STM PFEA SET MESSAGE PREFIX
- * BLANK USER INDEX FOR QUEUED FILE OR LIBRARY FILE.
- LDC 2R BLANK USER INDEX
- STM PFEB
- STM PFEB+1
- STM PFEB+2
- LDD MA
- CWM FNSS,ON
- UJN PFE2 MOVE FILE NAME TO MESSAGE
- * PROCESS PERMANENT FILE ERROR.
- PFE1.2 AOM PMEC ADVANCE ERROR COUNT
- LDM CTSS+FCUI FIRST 2 DIGITS
- RJM C2D
- STM PFEB
- LDM CTSS+FCUI+1 SECOND 2 DIGITS
- SHN -6
- RJM C2D
- STM PFEB+1
- LDM CTSS+FCUI+1 LAST 2 DIGITS
- RJM C2D
- STM PFEB+2
- LDC 2RPF SET FILE TYPE
- STM PFEA
- LDD MA MOVE FILE NAME TO MESSAGE
- CWM CTSS+FCFN,ON
- PFE2 SBN 1
- CRM PFEC,ON
- LDM PFEC+3 CLEAR 8TH CHARACTER
- SCN 77
- STM PFEC+3
- LDC IDMC+3 SET MESSAGE ADDRESSES
- STD T1
- LDC PFED+5
- STD T3
- LDN T7 SET SECTOR ADDRESS
- STD T2
- PFE3 LDI T2 CONVERT DISK ADDRESS OF ERROR
- RJM C2D
- STI T3 STORE IN MESSAGE
- SOD T3
- LDI T2 CONVERT UPPER HALF OF SECTOR/TRACK
- SHN -6
- RJM C2D
- STI T3 STORE IN MESSAGE
- LCN 2 DECREMENT MESSAGE ADDRESS
- RAD T3
- SOD T2 DECREMENT PARAMETER ADDRESS
- LMN T6-1
- NJN PFE3 IF TRACK NOT CONVERTED
- STM PFEC+4 SET END OF MESSAGE I
- STI T1
- LDC RDAD+2 ASSEMBLE FIRST PART OF MESSAGE II
- RJM ACS
- AOD T3 ASSEMBLE END OF MESSAGE II
- RJM ACS
- LDC PFEE+ERLN ISSUE TO ERROR LOG
- RJM DFM
- LDC IDMC+ERLN
- RJM DFM
- LDC PFEE+NMSN ISSUE TO SYSTEM
- RJM DFM
- LJM PFEX RETURN
- PFEE DATA H*EQXXX *
- PFEA DATA H*PF LENGTH ERROR *
- PFEB DATA H*UINDEX *
- PFEC DATA H*FILENAME *
- PFED DATA C* TTTTT SSSSS LINKAGE ERROR.*
- CTU SPACE 4,10
- ** CTU - CLEAR TOTAL USER COUNTS.
- *
- * ENTRY (CN) = FILE TYPE.
- * (FS+1) = FIRST TRACK OF FILE.
- * (CN+1) = SYSTEM SECTOR REWRITE FLAG.
- *
- * USES T1.
- *
- * CALLS WSR.
- CTU2 AOM PMFC ADVANCE DAF RECOVERY COUNT
- CTU SUBR ENTRY/EXIT
- LDD CN+1
- ZJN CTU2 IF NO SYSTEM SECTOR REWRITE
- LDD CN
- LMN LIFT
- ZJN CTU2 IF LIBRARY FILE
- LDC 5*MMPF+5
- STD T1
- CTU1 LDN 0 CLEAR USER COUNT FIELDS
- STM UCSS-1,T1
- SOD T1
- NJN CTU1
- STM CASS CLEAR CURRENT ACCESS MODE
- STM FISS CLEAR FAST ATTACH FLAGS
- LDD FS+1 RESET FIRST TRACK
- RJM WSR WRITE SYSTEM SECTOR WITH REWRITE
- UJN CTU2 ADVANCE DAF RECOVERY COUNT
- GDE SPACE 4,15
- ** GDE - GET DAT ENTRY.
- *
- * ENTRY (FN - FN+4) = EST ENTRY FOR DEVICE.
- * (T3) = 0 IF DEVICE NOT BEING INITIALIZED.
- * (T7) = BYTE 0 OF MDGL WORD.
- * (CN - CN+4) = TDGL WORD OF MST.
- *
- * EXIT (DATB) = SECOND WORD OF DAT ENTRY.
- *
- * USES T1, T2, CM - CM+4.
- *
- * CALLS CPS, CUS, IRM, WDE.
- *
- * MACROS MMTE, MONITOR, UJMF.
- GDE3 LDD CN+2 SET *DIT* OFFSET
- SBN 10-7
- SHN -3
- ADD CN+2
- STD T2
- LDN 0
- STD T1
- GDE4 AOD T1
- LMN MISD
- ZJN GDEX IF ALL ENTRIES CHECKED
- LDD T1
- ADC 0 READ *DIT* ENTRY
- GDEC EQU *-1
- ADD T2
- CRD CM
- LDD CM+4
- ZJN GDE4 IF ENTRY NOT USED
- LMC *
- GDED EQU *-1
- ZJN GDE4 IF THIS MACHINE
- LJM GDE1 ISSUE RECOVERY MESSAGES
- GDE SUBR ENTRY/EXIT
- LDD FN
- SHN 21-4
- MJN GDE3 IF INDEPENDENT SHARED DEVICE
- UJMF GDEX
- LDN 1-1 WORD COUNT FOR *ECSM* REQUEST
- STD CM+1
- LDD T7 SET *DAT* ORDINAL FROM INDEX
- LPC 377
- SHN 1
- ADC 1 ADD DAT TRACK ADDRESS
- GDEA EQU *-1
- STD CM+4
- STM WDEA
- SHN -14
- ADC RECS*1000
- GDEB EQU *-1
- STD CM+3
- STM WDEB
- LDD MA CM ADDRESS = PP MESSAGE BUFFER
- STD CM+2
- MONITOR ECSM
- LDD MA READ *DAT* ENTRY TO PP BUFFER
- CRM DATB,ON
- LDD T3
- NJN GDE2 IF DEVICE BEING INITIALIZED
- LDM DATB+4 CHECK DEVICE STATUS
- LPC -0
- MMTE *-1
- NJN GDE1 IF RECOVERY COMPLETE
- LJM GDEX RETURN
- GDE1 RJM IRM ISSUE RECOVERY MESSAGES
- RJM CPS CHECK PFC SIZE
- RJM CUS
- GDE2 RJM WDE UPDATE DAT ENTRY
- LJM RDAX EXIT OVERLAY
- WDE SPACE 4,10
- ** WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
- *
- * ENTRY *DATI* INTERLOCK SET.
- * DAT ENTRY IN DATB.
- WDE SUBR ENTRY/EXIT
- UJMF WDEX
- LDM DATB+4 SET MACHINE ACCESS
- LPC -0
- MMTE *-1
- LMC 0
- MMTE *-1
- STM DATB+4
- LDC ** SET DAT ADDRESS
- WDEA EQU *-1
- STD CM+4
- LDC **
- WDEB EQU *-1
- ADD TH
- ERRNZ RECS+1-WECS ADJUST IF *RECS/WECS* VALUES CHANGE
- STD CM+3
- LDD MA SET CM ADDRESS OF ENTRY
- STD CM+2
- CWM DATB,ON
- LDN 1-1 WORD COUNT FOR TRANSFER
- * SHN 6
- STD CM+1
- MONITOR ECSM
- UJN WDEX RETURN
- WSR SPACE 4,15
- ** WSR - WRITE SYSTEM SECTOR WITH REWRITE.
- *
- * ENTRY (A) = FIRST TRACK OF FILE.
- * (T5) = EST ORDINAL.
- * *SETMS IO* PERFORMED.
- *
- * EXIT (T6) = FIRST TRACK OF FILE.
- *
- * USES T6.
- *
- * CALLS WSS.
- *
- * MACROS SETMS.
- WSR SUBR ENTRY/EXIT
- STD T6
- SETMS POSITION
- LDM UERR SAVE ERROR PROCESSING OPTIONS
- STM WSRA+1
- LMD HN SET REWRITE MODE
- ERRNZ EPRW-100 CODE DEPENDS ON VALUE
- STM UERR
- SETMS =,IO,RW
- RJM WSS REWRITE SYSTEM SECTOR
- WSRA LDC 0 RESET ERROR PROCESSING OPTIONS
- STM UERR
- SETMS =,IO
- UJN WSRX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPACS
- *CALL COMPCLC
- *CALL COMPC2D
- *CALL COMPSDA
- *CALL COMPSDR
- *CALL COMPRSS
- *CALL COMPSEI
- *CALL COMPSES
- *CALL COMPSMI
- *CALL COMPSNT
- *CALL COMPTLB
- *CALL COMPTGB
- VAL$ SET 1
- *CALL COMPVLC
- WEIA EQU SBUF USE *SBUF* FOR EOI BUFFER
- *CALL COMPWEI
- *CALL COMPWSS
- LIST X
- *CALL COMPVEI
- LIST *
- USE LITERALS
- ERRNG SBUF-* CODE OVERFLOWS INTO BUFFER
- TITLE PRESET.
- PRS SPACE 4,10
- ** PRS - PRESET.
- PRS2 STD T2 SET INSTRUCTION ADDRESS
- LDN PSNI REPLACE INSTRUCTION WITH *PSN*
- STI T2
- AOD T1 ADVANCE LIST ADDRESS
- PRS3 LDI T1
- NJN PRS2 LOOP TO END OF LIST
- PRSX LJM RDEX EXIT OVERLAY
- PRS BSS 0 ENTRY
- LDN SSTL READ SYSTEM STATUS
- CRD CM
- LDD CM ENABLE/DISABLE TRACK CHAIN VALIDATION
- LPN 4
- LMN 4
- RAM VTCA
- LDD RS
- NJN PRS0 IF RECOVERY DEADSTART
- LDN PSNI SET LEVEL-0 RECOVERY
- STM RDAA
- PRS0 LDC MMFL READ MMF STATUS WORD
- CRD CM
- LDD CM SET MACHINE ID
- STM GDED
- LDD CM+1
- LPC 777
- ZJN PRSX IF NOT MMF SYSTEM
- SFA EST READ EST ENTRY FOR LINK DEVICE
- ADK EQDE
- CRD CN
- LDD CN+4 SET EXTENDED MEMORY MST POINTER
- STM LDMP
- SHN 3 READ DEVICE ALLOCATION WORD
- ADN ALGL
- CRD CN
- LDD CN+4 SET DAT TRACK
- STD T6
- LDN 0
- STD T7
- LDC T"QUAL" SET LIST ADDRESS
- STD T1
- LDI T1 SET INSTRUCTION ADDRESS
- PRS1 STD T0
- LDD CM+3 SET MACHINE MASK
- LMI T0
- STI T0
- AOD T1 ADVANCE LIST ADDRESS
- LDI T1
- NJN PRS1 LOOP TO END OF TABLE
- RJM CEA
- LDD CM+4 SET ADDRESS IN CODE
- RAM GDEA
- LDD CM+3
- RAM GDEB
- LDC LRDA ENABLE MMF RECOVERY
- STD T1
- LJM PRS3
- SPACE 4,10
- ** COMMON DECKS USED BY PRESET.
- *CALL COMPCEA
- * LIST OF *4DA* INSTRUCTIONS MODIFIED FOR MMF RECOVERY.
- LRDA BSS 0
- LRDA HERE
- ERRZR LRDA-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- * LIST OF INSTRUCTIONS TO BE PRESET WITH MACHINE MASK.
- T"QUAL" BSS 0
- T"QUAL" HERE
- ERRZR T"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- QUAL
- SPACE 4,10
- OVERFLOW O4DA,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DB - DEVICE RECOVERY ROUTINES.
- TITLE
- IDENT 4DB,RDBX
- *COMMENT MSM - DEVICE RECOVERY ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** *4DB* CONTAINS ROUTINES FOR READING LABELS
- * AND COMMON SUBROUTINES REQUIRED FOR TRT RECOVERY.
- SPACE 4,10
- *** OPERATOR MESSAGES.
- *
- * *EQXXX, DEVICE ACCESS ERROR.* = DEADSTART MESSAGE
- * INDICATING THAT THE DEVICE ACCESS LEVEL LIMITS IN THE
- * DEVICE LABEL OF A NON-REMOVABLE DEVICE ARE NOT WITHIN
- * THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE DEVICE EST
- * ORDINAL FOR EQUIPMENT XXX.
- *
- * *EQXXX, SECURED DEVICE.* = DEVICE ACCESS LEVEL LIMITS
- * IN THE DEVICE LABEL ON AN UNSECURED SYSTEM ARE NOT
- * WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
- * EST FOR EST ORDINAL XXX.
- SPACE 4,10
- *** ERRLOG MESSAGES.
- *
- * *EQXXX, SECURED DEVICE.* = DEVICE ACCESS LEVEL LIMITS
- * IN THE DEVICE LABEL ON AN UNSECURED SYSTEM ARE NOT
- * WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
- * EST FOR EST ORDINAL XXX.
- *
- * EQXXX, SECURED DEVICE RECOVERED.* = DEVICE ACCESS LEVEL
- * LIMITS IN THE DEVICE LABEL ON AN UNSECURED SYSTEM WERE
- * NOT WITHIN THE EQUIPMENT ACCESS LEVEL LIMITS FROM THE
- * EST FOR EST ORDINAL XXX, BUT THE OPERATOR ENTERED
- * *GO,CMS.* TO RECOVER THE DEVICE.
- SPACE 4,10
- ** MACRO DEFINITIONS.
- SPACE 4,10
- ** TBLM = GENERATE TABLE OF ALTERNATE LABEL SECTORS.
- *
- * TBLM EQ
- * EQ = MASS STORAGE EQUIPMENT MNEMONIC.
- PURGMAC TBLM
- TBLM MACRO EQ
- CON 2R_EQ,LC_EQ
- ENDM
- SPACE 4
- ** INTERNAL TABLES AND BUFFERS.
- .1 MAX /CMS/PRS,/RMS/PRS BUFFER FOR *DAT* ENTRY
- DATB EQU .1
- ORDB EQU DATB+12-4 *4DB* OVERLAY ORIGIN
- ORDK EQU ORDB *4DK* OVERLAY ORIGIN
- SPACE 4
- ORG ORDB
- RDB SUBR ENTRY/EXIT
- LJM PRS
- MMFP CON 0 MMF PRESENT FLAG
- SDIF CON 0 SHARED DEVICE INTERLOCK FLAG
- MRL TITLE MAIN RECOVERY LOOP.
- ** MRL - MAIN RECOVERY LOOP.
- *
- * ENTRY (A) = PROCESSOR ADDRESS.
- *
- * EXIT TO SELECTED PROCESSOR.
- * (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES T5, EQ, FN - FN+4.
- *
- * CALLS LRA, /RMS/SEM.
- *
- * MACROS SFA.
- MRL1 LDC 0 EQUIPMENT FOR SPECIAL PROCESSING
- MRLC EQU *-1
- ZJN MRL2 IF NO SPECIAL EQUIPMENT CHECK
- LMD EQ
- MRLD ZJN MRL3 IF NOT TO PROCESS THIS EQUIPMENT
- * NJN MRL3 IF ONLY PROCESSING THIS EQUIPMENT
- MRL2 RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CRD RD
- LDD RE
- SHN 0-13
- ZJN MRL3 IF NOT MASS STORAGE OR BEING RECOVERED
- MRLB RJM /RMS/SEM SET EQUIPMENT MESSAGE
- * UJN *+2 (*CMS* CALL)
- SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD RE CHECK EST ENTRY
- RJM *
- MRLA EQU *-1
- MJN MRL3 IF REWRITE NOT REQUIRED
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ REWRITE RECOVERY TABLES
- CWD RD
- MRL3 AOD EQ ADVANCE EQUIPMENT INDEX
- MRL4 STD T5
- LMD LO
- NJN MRL1 IF NOT END OF MASS STORAGE DEVICES
- MRL SUBR ENTRY/EXIT
- STM MRLA SET PROCESSOR ADDRESS
- LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
- STD EQ
- UJN MRL4 ENTER LOOP
- TITLE COMMON DECKS.
- ** COMMON DECKS.
- CEA$ EQU 0 ASSEMBLE *CEI* IN PRESET
- *CALL COMPCEA
- QUAL CLC
- *CALL COMPCLC
- QUAL
- CDC EQU /CLC/CDC
- CLC EQU /CLC/CLC
- RLA$ EQU 1 DEFINE ENTRY CONDITIONS FOR *COMPRLA*
- *CALL COMPRLA
- *CALL COMPSES
- *CALL COMPSMI
- *CALL COMPTLB
- TITLE COMMON SUBROUTINES.
- ADE SPACE 4,15
- ** ADE - ACCESS DAT ENTRY.
- *
- * ENTRY (A) = *ECSM* FUNCTION CODE.
- * (QS) = DAT INDEX.
- * (ADEA) = DAT TRACK.
- *
- * EXIT (T6) = DAT TRACK.
- *
- * USES T6, T7, CM - CM+4.
- *
- * CALLS CEA.
- *
- * MACROS MONITOR.
- ADE SUBR ENTRY/EXIT
- SHN 11 SAVE FUNCTION CODE
- STM ADEB
- LDC ** SET DAT TRACK
- ADEA EQU *-1
- STD T6
- LDN 0
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDD QS
- RAD CM+4
- SHN -14
- LMC ** SET SUBFUNCTION
- * LMC RECS*1000 (READ SUBFUNCTION)
- * LMC WECS*1000 (WRITE SUBFUNCTION)
- ADEB EQU *-1
- RAD CM+3
- LDD HN SET WORD COUNT (2 WORDS)
- STD CM+1
- LDD MA CM ADDRESS = PP MESSAGE BUFFER
- STD CM+2
- MONITOR ECSM
- LJM ADEX RETURN
- ATC SPACE 4,10
- ** ATC - ADJUST TRACK COUNT.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (T5) = EQUIPMENT.
- *
- * EXIT REMAINING TRACK AND SECTOR COUNTS SET.
- *
- * USES T0 - T3, CM - CM+4, CN - CN+4.
- *
- * CALLS PTA, STA.
- ATC SUBR ENTRY/EXIT
- LDD RE CHECK SHARED DEVICE STATUS
- LPC 1002
- LMC 1002
- ZJN ATCX IF PREVIOUSLY DEFINED AS SHARED
- RJM PTA PRESET FWA OF TRT
- LDD FN+4 READ TDGL WORD OF MST
- SHN 3
- ADK TDGL
- CRD CN
- LDD CN+2 SET LENGTH OF TRT
- STD T2
- SHN 2
- STD CN+4
- RJM STA SET FWA OF TRT
- ADD T2
- UJN ATC4 READ TRT
- * CLEAR TRACK INTERLOCKS.
- ATC1 LDD CM+4
- LPC 7417
- STD CM+4
- LPN 17 SET RESERVATION BITS
- ZJN ATC3 IF NONE
- ATC2 SHN 21-0
- PJN ATC2 IF BIT NOT RESERVED
- STD T0
- SOD CN+4
- LDD T0
- NJN ATC2 IF MORE RESERVATIONS
- ATC3 RJM STA SET FWA OF TRT
- ADD T2
- CWD CM
- ATC4 SBN 1
- CRD CM
- SOD T2
- PJN ATC1 IF NOT END OF TRT
- LDC 4000 SET NOS MST FLAG
- STD CN+3
- LDD FN+4 STORE *TDGL*
- SHN 3
- ADK TDGL
- CWD CN
- LJM ATCX RETURN
- CDA SPACE 4,10
- ** CDA - CHECK DEVICE AVAILABILITY.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0, IF AVAILABLE FOR RECOVERY.
- * .NE. 0, IF UNLOADED.
- * .LT. 0, IF NOT AVAILABLE FOR RECOVERY.
- *
- * USES FS - FS+4.
- CDA1 LCN 0
- CDA SUBR ENTRY/EXIT
- LDD RE
- SHN 21-6
- PJN CDA1 IF DEVICE AVAILABLE
- SHN 6-21
- LPN 1
- NJN CDAX IF LABEL NOT READ
- LDD FN+4 READ *STLL*
- SHN 3
- ADN STLL
- CRD FS
- SBN STLL-PFGL READ DEVICE DESCRIPTION
- CRM DLPB,TW
- LDD FS+4
- LPN MLDIU
- NJN CDA1 IF EQUIPMENT IN USE
- LDD FS
- LPN MLUNL
- UJN CDAX RETURN
- CDI SPACE 4,15
- ** CDI - CLEAR ISD INTERLOCKS.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT INTERLOCKS CLEARED IN LABEL.
- *
- * USES T0, T1, T6, T7, CM - CM+4.
- *
- * CALLS CDC, CLT, RDS, SMI, WDS.
- *
- * MACROS ENDMS, SETMS.
- CDI3 ENDMS
- CDI SUBR ENTRY/EXIT
- LDD FN
- SHN 21-4
- PJN CDIX IF NOT INDEPENDENT SHARED DEVICE
- RJM CLT
- ZJN CDIX IF NO LABEL TRACK
- LDN 0
- STD T7
- SETMS IO,(DE,DF)
- LDC BFMS
- RJM RDS
- MJN CDIX IF READ ERROR
- RJM SMI
- STD T1 SET MACHINE INDEX
- SHN 1
- LMM N4SS+5*SDGL+4
- SCN 1
- STD T0 CHECK MST INTERLOCK
- LPN 76
- NJN CDI1 IF NOT INTERLOCKED BY THIS MACHINE
- LDD T0
- STM N4SS+5*SDGL+4
- CDI1 LDD T1 CALCULATE ADDRESS OF DIT ENTRY
- SHN 2
- ADC DISS-5+4
- RAD T1
- SBN 4
- STM CDIB
- LDI T1 CHECK MACHINE ID
- LMC 0
- CDIA EQU *-1
- NJN CDI2 IF DIT ENTRY NOT ASSIGNED HERE
- LDN ZERL
- CRM *,ON
- CDIB EQU *-1
- RJM CDC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF
- RJM WDS
- CDI2 LJM CDI3 RETURN
- CLR SPACE 4
- ** CLR - CLEAR RESIDENT TRT.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = MST ADDRESS OF TDGL WORD.
- * CMR AREA FOR TRT CLEARED.
- * FLAWS RETAINED FOR NON-REMOVABLE DEVICE.
- * MRT FOR SHARED DEVICE CLEARED.
- *
- * USES T0 - T3, CM - CM+7, CN - CN+4.
- *
- * CALLS PTA, STA.
- CLR3 RJM STA SET FWA OF TRT
- ADD T1
- CRD CM
- LDD CM+4
- ZJN CLR7 IF NO TRACKS RESERVED
- LDN CM
- STD T3
- LDN ZERL CLEAR ASSEMBLY
- CRD CN
- CLR4 LDI T3 CHECK TRACK BYTE
- LMC 3777
- NJN CLR5 IF TRACK NOT FLAWED
- AOD T0 ADVANCE FLAWED TRACK COUNT
- LDI T3 SET FLAW IN ASSEMBLY
- STM CN-CM,T3
- LDM CLRB-CM,T3 SET TRACK RESERVATION
- RAD CN+4
- CLR5 AOD T3 ADVANCE BYTE INDEX
- LMN CM+4
- NJN CLR4 LOOP TO END OF TRT WORD
- CLR6 RJM STA SET FWA OF TRT
- ADD T1
- CWD CN
- CLR7 AOD T1 ADVANCE WORD INDEX
- LMD T2
- CLR8 NJN CLR3 LOOP TO END OF TRT
- * NJN CLR6 REMOVABLE DEVICE
- STD CM+4 CLEAR UNUSED BYTE
- LDD CM+6 SET TRACK COUNTS
- STD CM+3
- SBD T0
- STD CM+7
- LDC 4000 SET NOS MST FLAG
- STD CM+6
- LDD FN+4 UPDATE MST
- SHN 3
- ADK TDGL
- CWD CM+3
- CLR SUBR ENTRY/EXIT
- RJM PTA PRESET FWA OF TRT
- LDD FN+4 READ *TDGL*
- SHN 3
- ADK TDGL
- CRD CM+3
- LDD CM+3 SAVE TRACK COUNT FOR DEVICE
- STD CM+6
- LDN 0 SET INDEX
- STD T1
- LDD CM+5 SET LENGTH OF TRT
- STD T2
- STD CM
- ADN 7 SET END OF MRT
- SHN -3
- ADD CM
- STD T3
- LDN 0
- STD T0
- LDN ZERL
- CRD CN
- LDD FN
- SHN 21-11
- PJN CLR2 IF NOT SHARED DEVICE
- SHN 21-4-21+11
- PJN CLR1 IF NOT AN ISHARED DEVICE
- LDN MISD ADD IN *DIT* LENGTH
- RAD T3
- CLR1 RJM STA SET FWA OF TRT
- ADD CM SET FWA OF MRT
- CWD CN CLEAR MRT WORD
- AOD CM
- LMD T3
- NJN CLR1 LOOP TO END OF MRT
- CLR2 LDD FN EXTRACT REMOVABLE STATUS
- SHN -10
- LPN 1
- STD T3
- LDM CLRA,T3 SET LOOP CONDITION
- STM CLR8
- LJM CLR8 CLEAR TRT
- CLRA BSS 0
- LOC CLR8
- NJN CLR3
- LOC CLR8
- NJN CLR6
- LOC *O
- CLRB CON 10 TRACK RESERVATION BITS
- CON 4
- CON 2
- CON 1
- CLT SPACE 4,10
- ** CLT - CHECK LABEL TRACK.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = (T6) = LABEL TRACK.
- * (CM+7) = BYTE 4 OF *ALGL* WORD.
- *
- * USES CM - CM+7.
- *
- * CALLS LRA.
- CLT SUBR ENTRY/EXIT
- LDD FN+4
- SHN 3
- ADN ALGL CHECK LABEL TRACK IN MST
- CRD CM+3
- LDD CM+4
- NJN CLT1 IF LABEL TRACK FOUND
- RJM LRA LOAD REFERENCE ADDRESS
- ADD AL
- ADN ALGL CHECK MST IMAGE FROM LABEL TRACK
- CRD CM
- LDD CM+1 SET LABEL TRACK
- CLT1 STD T6
- UJN CLTX RETURN
- CMT SPACE 4
- ** CMT - CLEAR MST.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = STLL WORD.
- * (EC) = ERROR CODE.
- * (EQ) = PRIMARY EST ORDINAL.
- *
- * EXIT (T6) = GLOBAL UNLOAD STATUS.
- * EST - MST RESTORED TO ORIGINAL STATUS.
- * DEVICE SET UNAVAILABLE.
- *
- * USES CN - CN+4, CM - CM+4, FS - FS+4, FN.
- *
- * CALLS CLR, CLT.
- *
- * MACROS CMSTF, SFA.
- CMT SUBR ENTRY/EXIT
- LDN ZERL
- CRD CN
- LDD FN
- LPC 7667
- LMD HN SET DEVICE UNAVAILABLE
- STD FN
- SFA EST,T5 UPDATE EST
- ADK EQDE
- CWD FN
- RJM CLT
- NJN CMT1 IF LABEL TRACK KNOWN
- LDD CM+7
- CMT1 STD CN+4
- LDN ZERL
- CRD CM
- LDD FN+4 CLEAR DEVICE ALLOCATION WORD
- SHN 3
- ADN ALGL
- CWD CN
- ADN DULL-ALGL CLEAR DAYFILE POINTERS
- CWD CM
- SBN DULL-MDGL READ DRIVER WORD
- CRD CN
- SBN MDGL-SDGL
- CRD CM
- SBN SDGL-ACGL GET DEVICE ACTIVITY WORD
- CRD CM+3
- LDD CM+7 RETAIN GLOBAL UNLOAD FLAG
- LPN MGUNL
- STD CM+7
- STD T6
- LDN ZERL CLEAR TRT UPDATE STATUS
- CRD CM+2
- * SET DEVICE STATUS.
- LDD FS RETAIN INTIALIZE AND EQUIPMENT STATUS
- SCN MLCKP
- STD FS
- LDN MLDIU+MLMTI SET DEVICE IN USE
- STD FS+4
- LDD CN CLEAR AUXILIARY STATUS
- LPC 5777
- STD CN
- LDD T5
- LMD EQ
- NJN CMT2 IF NOT PRIMARY EQUIPMENT
- LDD FS+1 SET ERROR CODE
- SCN 77
- LMD EC
- STD FS+1
- LDD FN
- SHN 21-11
- MJN CMT3 IF SHARED DEVICE
- LDD CN CLEAR *DAT* INDEX
- LPC 7400
- STD CN
- UJN CMT3 STORE MST PARAMETERS
- CMT2 LDD FN+4 CLEAR DEVICE AND USER DESCRIPTION
- SHN 3
- ADK PFGL
- CWD CM+2
- ADK PUGL-PFGL
- CWD CM+2
- CMT3 LDD FN+4 STORE MST PARAMETERS
- SHN 3
- ADN MDGL RESET DRIVER CHARACTERISTICS
- CWD CN
- ADN STLL-MDGL STORE *STLL*
- CWD FS
- SBN STLL-SDGL
- CWD CM
- SBN SDGL-ACGL STORE DEVICE ACTIVITY WORD
- CWD CM+3
- ADN ISGL-ACGL CLEAR INSTALLATION AREA
- CWD CM+2
- ADN I2GL-ISGL
- CWD CM+2
- ADN CTLL-I2GL CLEAR ERROR COUNTS
- CWD CM+2
- RJM CLR CLEAR TRT
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD RD
- CMSTF LDIU CLEAR DEVICE IN USE
- * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CWD RD RESTORE RECOVERY TABLE VALUES
- LJM CMTX
- IES SPACE 4
- ** IES - INITIALIZE EQUIPMENT STATUS.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (EC) = ERROR CODE FOR PRIMARY EQUIPMENT.
- * (EQ) = PRIMARY EST ORDINAL.
- *
- * EXIT ALL EQUIPMENT IN CHAIN RESTORED TO ORIGINAL CONFIGUR-
- * ATION AND SET AS UNAVAILABLE.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM RETURN TO *MRL*.
- *
- * USES T4, T5, T7, UC, CN - CN+4, FN - FN+4, FS - FS+4.
- *
- * CALLS CDI, CMT, SSL.
- *
- * MACROS SFA, SMSTF.
- IES SUBR ENTRY/EXIT
- SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN+4
- SHN 3
- ADN DDLL READ DEVICE DESCRIPTION
- CRD CN
- LDD CN SET TOTAL UNIT COUNT
- LPN 7
- STD UC
- LMD CN SET UNIT COUNT = ORIGINAL UNIT COUNT
- STD CN
- SHN -3
- LPN 7
- RAD CN
- LPN 7 CHECK UNIT COUNTS
- LMD UC
- ZJN IES1 IF NO CHANGE IN UNIT COUNT
- * RESTORE EQUIPMENT TO ORIGINAL STATUS.
- LDD FN+4 RESET ORIGINAL UNIT COUNT
- SHN 3
- ADN DDLL
- CWD CN
- RJM SSL SET SECTOR LIMITS
- IES1 RJM CDI CLEAR ISD INTERLOCKS
- LDD FN+4 GET *DDLL* WORD FROM MST
- SHN 3
- ADN DDLL
- CRD CN
- SBN DDLL-STLL
- CRD FS
- LDD FS+4 SAVE CHAINED EST ORDINAL
- SHN -3
- STD T7
- LDD CN SET ORIGINAL UNIT COUNT
- SHN -3
- LPN 7
- STD T4
- IES2 RJM CMT CLEAR MST PARAMETERS
- LDD T7
- NJN IES4 IF NOT END OF CHAIN
- LCN 0 DISABLE *MRL* REWRITE OF RECOVERY TABLE
- IES3 LJM IESX RETURN
- * CHECK NEXT EQUIPMENT IN CHAIN.
- IES4 STD T5
- LDD UC
- SBD T4
- SBN 1
- MJN IES3 IF NO MORE UNITS IN CHAIN
- STD UC
- SFA EST,T5 READ NEXT EST ENTRY
- ADK EQDE
- CRD FN
- SMSTF LUNL SET LOCAL UNLOAD
- LDD T6
- ZJN IES5 IF LAST EQUIPMENT NOT GLOBALLY UNLOADED
- SMSTF GUNL SET GLOBAL UNLOAD
- IES5 LJM IES1 CHECK NEXT EQUIPMENT
- SSL SPACE 4
- ** SSL - SET SECTOR LIMITS.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT SECTOR LIMITS SET IN MST WORD (MDGL).
- *
- * USES T2, T3, CN - CN+4, CM - CM+4.
- SSL2 LDD FN+4 STORE DRIVER WORD
- SHN 3
- ADN MDGL
- CWD CN
- SSL SUBR ENTRY/EXIT
- LDD FN+4 READ DRIVER WORD FROM MST
- SHN 3
- ADN MDGL
- CRD CN
- ADN DDLL-MDGL
- CRD CM
- LDD CM
- LPN 7
- STD T2
- LDD CN+1 SET SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STD T3
- STD CN+4
- * SET SECTOR LIMITS FOR MULTI UNIT DEVICE.
- SSL1 SOD T2 DECREMENT UNIT COUNT
- MJN SSL2 IF NO MORE UNITS
- LDD T3
- RAD CN+4
- UJN SSL1
- SPACE 4,10
- MBUF EQU * MST BUFFER
- OVLA EQU MBUF+5*MSTL+5 OVERLAY LOAD ADDRESS
- ORDC EQU OVLA LOAD ADDRESS FOR *4DC*
- ORDD EQU OVLA LOAD ADDRESS FOR *4DD*
- ORDF EQU OVLA LOAD ADDRESS FOR *4DF*
- SPACE 4,10
- * THE FOLLOWING CODE IS OVERLAID AFTER READING THE DEVICE
- * LABELS.
- TITLE LABEL PROCESSING ROUTINES.
- CAM SPACE 4,15
- ** CAM - CHANGE ACCESS MODE.
- *
- * ENTRY (A) = BIAS FOR ALGORITHM INDEX.
- * (AM) = 0 IF CHANGING TO HALF TRACK MODE.
- * = *AIHT* IF CHANGING TO FULL TRACK MODE.
- * (EQ) = EST ORDINAL.
- * (CM+2) = CHANNEL FOR ACCESS PATH CHANGE.
- * (CN - CN+4) = DILL WORD OF MST.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES T0, T2, CM - CM+4.
- *
- * CALLS SSL.
- *
- * MACROS MONITOR.
- CAM SUBR ENTRY/EXIT
- RAD CN+4 ADJUST ALGORITHM INDEX
- LPN 77
- STD T2 EXTRACT ALGORITHM INDEX
- LDD CM+2
- ZJN CAM2 IF NO ACCESS CHANGE
- LDD AM
- ZJN CAM1 IF SWITCHING TO HALF TRACK MODE
- LDN EAPS&DAPS
- CAM1 LMN DAPS SET *SCSM* SUBFUNCTION
- STD CM+3
- LDD EQ SET EST ORDINAL
- STD CM+1
- MONITOR SCSM ENABLE / DISABLE HALF TRACK ACCESS
- CAM2 LDM TEQM-1,T2
- STD CM+3 SET NEW MNEMONIC
- STD FN+3
- LDN SMNS SET MNEMONIC SUBFUNCTION
- STD CM+2
- LDD EQ CHANGE EQUIPMENT MNEMONIC
- STD CM+1
- MONITOR SEQM
- LDD FN+4 READ MDGL WORD OF MST
- SHN 3
- ADN MDGL
- CRD CM
- LDM TSLM-1,T2 SET SINGLE UNIT SECTOR LIMIT
- STD CM+1
- LDD FN+4 UPDATE MST
- SHN 3
- ADN MDGL
- CWD CM
- ADN DILL-MDGL
- CWD CN
- RJM SSL SET SECTOR LIMITS
- CAM5 LJM CAMX RETURN
- TEQM BSS 0 TABLE OF EQUIPMENT MNEMONICS
- CON 2RDI HALF TRACK SINGLE DENSITY
- CON 2RDJ HALF TRACK DOUBLE DENSITY
- CON 2RDM HALF TRACK DOUBLE DENSITY (885)
- CON 2RDK FULL TRACK SINGLE DENSITY
- CON 2RDL FULL TRACK DOUBLE DENSITY
- CON 2RDQ FULL TRACK DOUBLE DENSITY (885)
- TSLM BSS 0 TABLE OF SECTOR LIMITS
- CON SLDI+4000 HALF TRACK SINGLE DENSITY
- CON SLDJ+4000 HALF TRACK DOUBLE DENSITY
- CON SLDM+4000 HALF TRACK DOUBLE DENSITY (885)
- CON SLDK FULL TRACK SINGLE DENSITY
- CON SLDL FULL TRACK DOUBLE DENSITY
- CON SLDQ FULL TRACK DOUBLE DENSITY (885)
- CCS SPACE 4,10
- ** CCS - CHECK CHANNEL STATUS.
- *
- * ENTRY (A) = REQUESTED STATUS.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = (CM+2).
- * = 0 IF REQUESTED STATUS NOT PRESENT.
- * = CHANNEL DESCRIPTOR IF STATUS FOUND.
- *
- * USES T2.
- CCS2 LDI CM+3 SET CHANNEL DESCRIPTOR
- CCS3 STD CM+2
- CCS SUBR ENTRY/EXIT
- STD T2
- LDN FN+1 INITIALIZE FOR SCAN
- STD CM+3
- CCS1 LDI CM+3 CHECK CHANNEL
- SHN 0-10
- SCN 6 REMOVE STATE FIELD
- LMD T2
- ZJN CCS2 IF REQUESTED STATUS PRESENT
- AOD CM+3
- LMN FN+3
- NJN CCS1 IF ANOTHER CHANNEL TO CHECK
- * LDN 0
- UJN CCS3 RETURN
- CLE SPACE 4,10
- ** CLE - CHECK LABEL ERROR.
- *
- * ENTRY (A) .LT. 0 IF MASS STORAGE ERROR.
- * = 1 IF ERROR IN *DIT*.
- *
- * EXIT (A) = ERROR CODE FOR MST.
- * .LT. 0 IF FULL TRACK RETRY IN ORDER.
- *
- * CALLS CME.
- CLE1 SBN 1
- ZJN CLE2 IF ERROR IN *DIT*
- LCN 0
- CLE2 LMN STCE RETURN *CONFIGURATION ERROR*
- CLE SUBR ENTRY/EXIT
- PJN CLE1 IF NOT MASS STORAGE ERROR
- RJM CME
- UJN CLEX RETURN
- CME SPACE 4,15
- ** CME - CHECK MASS STORAGE ERROR.
- *
- * ENTRY (T3) = (RDCT).
- * (SN) = LABEL SECTOR NUMBER.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF RETRY IN ORDER.
- * = ERROR CODE FOR MST.
- * .LT. 0, IF PARITY ERROR ENCOUNTERED.
- * TO *CUD2* IF DRIVER DETECTED *DOWN* CONDITION.
- * TO *RDL1* IF NON-REMOVABLE DEVICE NOT READY.
- *
- * USES CM - CM+4.
- *
- * CALLS SDU.
- *
- * MACROS SMSTF.
- CME5 LDD FN CHECK EQUIPMENT STATUS
- CMEB EQU *-1
- * UJN CME8 (*CMS* CALL)
- SHN 21-10
- PJP RDL1 IF NON-REMOVABLE DEVICE
- LDD SN
- NJN CME7 IF NOT FIRST UNIT OF EQUIPMENT
- STD RE
- CME7 RJM SDU SET DEVICE UNLOADED
- CMEA EQU CME7
- * UJN CME8 (*CMS* CALL)
- CME8 LDN STNR RETURN *NOT READY*
- CME SUBR ENTRY/EXIT
- LDD T3
- ZJN CMEX IF FLAWED TRACK
- LPN 77
- LMN NRDE
- ZJN CME5 IF NOT READY
- LMN LNRE&NRDE
- ZJP CUD2 IF DEVICE DOWN
- LMN PARE&LNRE
- NJN CME2 IF NOT A PARITY ERROR
- LCN PARE
- UJN CMEX EXIT WITH ERROR STATUS
- CME2 LDN STDE
- UJN CMEX RETURN *DEVICE ERROR*
- CUC SPACE 4,10
- ** CUC - COMPARE UPDATE COUNTS.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T7) = SECTOR NUMBER OF LABEL READ.
- * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
- * (BFMS) = LABEL SECTOR.
- * (RUCA) = UPDATE COUNT FROM LAST TRT SECTOR.
- *
- * EXIT (A) = 0 IF COUNTS MATCH.
- * (RG) = 0 IF OPERATOR ENTERED *GO*.
- *
- * CALLS CLC, GAS, SOM, WOC.
- * COMPARE UPDATE COUNT FROM MST WITH THAT AT END OF TRT.
- CUC3 LDM N4SS+5*SDGL+2 COMPARE UPDATE COUNTS
- LMM RUCA+2
- NJN CUC2 IF NO MATCH
- LDM N4SS+5*SDGL+3
- LMM RUCA+3
- NJN CUC2 IF NON-MATCHING COUNTS
- LDM N4SS+5*SDGL+4
- LMM RUCA+4
- SCN 77
- NJN CUC2 IF NON-MATCHING COUNTS
- RJM CLC
- LMM CKSS
- NJN CUC2 IF INCORRECT LABEL CHECKSUM
- CUC SUBR ENTRY/EXIT
- LDD FN
- SHN 21-6
- PJN CUC1 IF DEVICE AVAILABLE
- LDM LLSS
- SBN 2
- PJN CUC3 IF NEW LABEL
- CUC1 LDN 0
- UJN CUCX RETURN
- CUC2 LDD T7
- NJN CUCX IF ALTERNATE LABEL
- LDC CUCA SET EST ORDINAL IN MESSAGE
- RJM SOM
- * LDC CUCA WAIT ON OPERATOR INPUT
- RJM WOC
- NJN CUCX IF OPERATOR ENTERED *PAUSE*
- STD RG
- RJM GAS GET ALTERNATE LABEL SECTOR
- STD T7
- LJM RLS2 READ ALTERNATE LABEL
- CUCA DATA C*EQXXX, TABLES INCONSISTENT.*
- CUD SPACE 4,15
- ** CUD - CHECK UNAVAILABLE DEVICE.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = *STLL* WORD OF MST.
- *
- * EXIT TO *RDLX* IF UNLOAD REQUESTED.
- * IF DEVICE OFF.
- * IF DEADSTART INITIALIZE.
- *
- * CALLS WMT.
- CUD4 LDD FS CHECK DEVICE STATUS
- LPN MLUNL
- ZJN CUDX IF NO UNLOAD REQUEST
- LDD FN
- SHN 21-3
- MJN CUDX IF DEVICE ACTIVE
- SHN 4+21-6
- MJN CUD3 IF DEVICE UNAVAILABLE
- CUD SUBR ENTRY/EXIT
- LDD FS
- SHN 21-LIAL+LIAL/12D*12D
- MJN CUD2 IF DEADSTART INITIALIZE
- LDD FN
- LPN 2
- ZJN CUD4 IF DEVICE ON
- CUD2 LDN 0
- STD RE INHIBIT FURTHER PROCESSING OF DEVICE
- CUD3 LDC 1S12
- RJM WMT SET LABEL NOT READ INDICATOR
- LDN 0
- LJM RDLX EXIT
- GAS SPACE 4,10
- ** GAS - GET ALTERNATE LABEL SECTOR.
- *
- * ENTRY (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
- *
- * EXIT (A) = ALTERNATE LABEL SECTOR.
- *
- * USES T1.
- GAS1 LDN 2 ADVANCE TABLE ADDRESS
- RAD T1
- GAS2 LDI T1
- ZJN GASX IF END OF TABLE
- LMD FN+3
- NJN GAS1 IF NOT MATCHING DEVICE MNEMONIC
- LDM 1,T1
- GAS SUBR ENTRY/EXIT
- LDC TALS
- STD T1
- UJN GAS2 ENTER SEARCH LOOP
- TALS BSS 0
- LIST G
- TBL "MSEQ"
- LIST *
- PURGMAC TBLM
- CON 0 END OF TABLE
- PUE SPACE 4,10
- ** PUE - PROCESS UNSECURED SYSTEM SECURITY ERROR.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (A) = 0 IF OPERATOR ENTERED *GO*.
- * .NE. 0 IF OPERATOR ENTERED *PAUSE*.
- *
- * CALLS DFM, SOM, WOC.
- PUE SUBR ENTRY/EXIT
- LDC 2RE.
- STM PUEB
- LDN 0
- STM PUEB+1
- LDC PUEA SET EST ORDINAL IN MESSAGE
- RJM SOM
- LDC PUEA+ERLN ISSUE MESSAGE TO ERRLOG
- RJM DFM
- LDD T8 WAIT ON OPERATOR INPUT
- RJM WOC
- NJN PUE2 IF OPERATOR ENTERED *PAUSE*
- LCN 1R.-1R
- RAM PUEB
- LDC 2RRE
- STM PUEB+1
- LDC PUEA+ERLN ISSUE MESSAGE TO ERRLOG
- RJM DFM
- * LDN 0
- PUE2 UJP PUEX RETURN
- PUEA DATA 20HEQXXX, SECURED DEVIC
- PUEB DATA C*E RECOVERED.*
- RUC SPACE 4,15
- ** RUC - RETRIEVE UPDATE COUNT FROM TRT.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = LABEL TRACK.
- * (T7) = LABEL SECTOR.
- * (SN) = FIRST UNIT OF EQUIPMENT INDICATOR.
- * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
- *
- * EXIT (QS) = (T7) ON ENTRY IF TRT UPDATE COUNT READ.
- *
- * USES CM - CM+4.
- *
- * CALLS RLP.
- RUC SUBR ENTRY/EXIT
- LDD FN
- SHN 21-6
- PJN RUCX IF DEVICE AVAILABLE
- LDD SN
- NJN RUCX IF NOT FIRST UNIT OF EQUIPMENT
- LDD FN+4
- SHN 3
- ADK TDGL FETCH TRT LENGTH FROM MST
- CRD CM
- LDD T7 SAVE LABEL SECTOR
- STD QS
- LDD CM+2 CALCULATE LAST SECTOR OF TRT
- SHN -6
- ADN 1 ADVANCE OVER LABEL SECTOR
- RAD T7
- RJM RLP READ END OF TRT SECTOR
- LDD MA
- CWM BFMS+2+5*77,ON
- SBN 1 SAVE MST/TRT UPDATE COUNTER
- CRM RUCA,ON
- LDD QS RESTORE LABEL SECTOR
- STD T7
- UJP RUCX RETURN
- RUCA BSSZ 5 MST/TRT UPDATE COUNT
- SDU SPACE 4,10
- ** SDU - SET DEVICE UNLOADED.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
- *
- * MACROS CMSTF, SMSTF.
- SDU SUBR ENTRY/EXIT
- LDD FN
- SHN 21-10
- PJN SDUX IF NON-REMOVABLE DEVICE
- SMSTF LUNL
- SMSTF LDUL SET DEVICE UNLOADED
- LDD FN
- LPN 20
- ZJN SDUX IF NOT INDEPENDENT SHARED DEVICE
- SMSTF LPTU
- CMSTF GPRS CLEAR PRESET STATUS
- * LDN 0
- UJN SDUX RETURN
- SFT SPACE 4,15
- ** SFT - SET FULL TRACK MODE.
- *
- * ENTRY (AM) = 0 IF UNAVAILABLE *LDAM* DEVICE.
- * (T4 - T7) = MASS STORAGE PARAMETERS.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT TO *RDL3* IF MODE CHANGED TO FULL TRACK.
- * (AM) .NE. 0 TO DISABLE REENTRY TO SUBROUTINE.
- *
- * USES RE, CN - CN+4.
- *
- * CALLS CAM, CCS.
- SFT SUBR ENTRY/EXIT
- LDD AM
- ADD SN
- NJN SFTX IF CHANGE ALREADY MADE
- LDD FN+4
- SHN 3
- ADN DILL FETCH ALGORITHM INDEX WORD FROM MST
- CRD CN
- SFTA LDN 0
- * LDN 10 (2X PP STATUS)
- * LDN 4 (4X PP STATUS)
- ZJN SFT1 IF 1X PP SPEED
- * CHECK CONTROLLER CONFIGURATION.
- LDN 10 LOOK FOR FULL TRACK ACCESS
- RJM CCS
- NJN SFT2 IF FULL TRACK PATH PRESENT
- SFT1 STD CM+2
- LDN 40 FLAG INVALID FULL TRACK ACCESS SET
- RAD RE
- UJN SFT3 CHANGE ACCESS MODE
- SFT2 LDN 11 CHECK FOR HALF TRACK ACCESS
- RJM CCS
- SFT3 LDN AIHT DISABLE REENTRY TO *SFT*
- STD AM
- RJM CAM CHANGE ACCESS MODE
- LDN 0
- STD T7
- LJM RDL3 SEARCH FOR LABEL IN FULL TRACK MODE
- SHT SPACE 4,10
- ** SHT - SET HALF TRACK MODE.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (AM) = 0 IF UNAVAILABLE *LDAM* DEVICE.
- *
- * USES CM - CM+4, CN - CN+4.
- *
- * CALLS CAM, CCS.
- SHT1 AOD AM SET FULL TRACK STATUS
- SHT SUBR ENTRY/EXIT
- LDD FN+4 GET MST PARAMETERS
- SHN 3
- ADN MDGL
- CRD CM
- ADN DILL-MDGL
- CRD CN
- LDD CM+3 SET ACCESS MODE FLAG
- LMN LA6DI
- LPN 77
- STD AM
- LDD FN ADD AVAILABLE STATUS
- LPC 100
- LMD HN
- RAD AM
- NJN SHTX IF AVAILABLE OR NOT *6DI* DRIVER
- LDD CM+1
- SHN 21-13
- MJN SHTX IF DEVICE IN HALF TRACK MODE
- LDD CN+4
- LPN 77 CHECK ALGORITHM INDEX
- SBN 2*AIHT+1
- PJN SHT1 IF FULL TRACK ONLY DEVICE
- LDN 1 CHECK INACTIVE HALF TRACK PATH
- RJM CCS
- LCN AIHT CHANGE ACCESS MODE
- RJM CAM
- UJN SHTX RETURN
- SOM SPACE 4,10
- ** SOM - SET EST ORDINAL IN MESSAGE.
- *
- * ENTRY (A) = MESSAGE ADDRESS.
- * (T5) = EST ORDINAL.
- *
- * EXIT (A) = (T8) = MESSAGE ADDRESS.
- *
- * CALLS C2D.
- SOM1 LDD T8 RETURN WITH (A) = MESSAGE ADDRESS
- SOM SUBR ENTRY/EXIT
- STD T8
- LDI T8 CHECK MESSAGE FORMAT
- LMC 2REQ
- NJN SOM1 IF NOT *EQXXX* MESSAGE
- LDD T5
- SHN -3 CONVERT UPPER TWO DIGITS
- RJM C2D
- STM 1,T8 STORE IN MESSAGE
- LDD T5
- LPN 7 EXTRACT LOW ORDER DIGIT
- SHN 6
- ADC 2R0, COMPLETE ORDINAL CONVERSION
- STM 2,T8
- UJN SOM1 RETURN
- RDL SPACE 4,15
- ** RDL - READ DEVICE LABEL.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (RS) = RECOVERY STATUS.
- * (FN - FN+4) = EST ENTRY.
- * (AL) = CM ADDRESSES FOR MSTS OF EACH UNIT.
- *
- * EXIT LABEL READ AND MST PLACED IN CM.
- *
- * USES T6, T7, CA, RE, SL, UC, CM - CM+4, CN - CN+4,
- * FS - FS+4.
- *
- * CALLS CLE, CUD, PTA, RLM, RLS, SFT, SHT, SLT, SSL, WMT.
- RDL16 AOD RC ADVANCE REDEFINITION REQUESTED COUNT
- RDL17 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- RDL SUBR ENTRY/EXIT
- RDLA RJM SSL SET SECTOR LIMITS
- * UJN *+2 IF CM RECOVERY OR *CMS* CALL
- LDD RE
- SHN 21-4
- MJN RDLX IF DEADSTART INITIALIZE SPECIFIED
- RJM PTA PRESET FWA OF TRT
- RDL1 LDD FN+4
- SHN 3
- ADN STLL
- CRD FS
- ADN DDLL-STLL
- CRD CN
- SBN DDLL-ACGL
- CRD CM
- LDD CM+4 CHECK REDEFINITION REQUESTED
- SHN 21-13
- MJN RDL16 IF REDEFINITION REQUESTED
- LDD CN SET CURRENT UNIT COUNT
- LPN 7
- STD UC
- LDD CN
- SHN -11
- NJN RDL17 IF NO UNITS OR REDEFINITION IN PROGRESS
- STD T7 SET LABEL SECTOR
- LDD CN
- SHN -3
- LPN 7
- SBD UC
- PJN RDL2 IF CURRENT .LE. ORIGINAL UNIT COUNT
- RAD UC
- RDL2 LDD AL SET ADDRESS FOR LABEL MST
- STD CA
- RJM CUD CHECK UNAVAILABLE DEVICE
- RJM SHT SET HALF TRACK MODE
- * READ LABEL FOR UNITS ON THIS EQUIPMENT.
- RDL3 LDD FN+4 FETCH LABEL TRACK FROM MST
- SHN 3
- ADN ALGL
- CRD CM
- ADN MDGL-ALGL
- CRD CN
- LDD CN+1 SET SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STD SL
- LDD CM+1 SET LABEL TRACK
- STD T6
- ZJN RDL8 IF LABEL TRACK UNKNOWN
- ADN 1
- STM SLTA
- RDL7 RJM RLS READ LABEL SECTOR
- ZJN RDL14 IF VALID LABEL
- RJM CLE CHECK LABEL ERROR
- MJN RDL9 IF POSSIBLE WRONG MODE
- NJN RDL14 IF ERROR STATUS FOR MST
- * ERROR IN LABEL READ - TRY ANOTHER TRACK.
- AOD T6 ADVANCE TO NEXT TRACK
- RDL8 RJM SLT
- NJN RDL7 IF NOT AT BAD TRACK LIMIT
- RDL9 RJM SFT
- LDD RE CHECK INCORRECT MODE CHANGE
- LPN 40
- ZJN RDL10 IF MODE CHANGE LEGAL OR NONE
- RJM SHT RESTORE HALF TRACK ACCESS
- RDL10 LDN STLE SET LABEL ERROR STATUS
- * ENTER MST FROM LABEL INTO CM TABLE FOR FURTHER PROCESSING.
- RDL14 RJM WMT COPY MST TO CM TABLE
- LDD SN
- NJN RDL15 IF NOT FIRST UNIT OF EQUIPMENT
- RDLC RJM RLM GET LOCAL MST DATA
- * UJN RDL15 (LEVEL 3 D/S OR *CMS* W/O D/S SEQUENCING)
- RDL15 LDD SL ADVANCE TO LABEL ON NEXT UNIT
- ADD SN
- STD T7
- SOD UC
- PJP RDL7 IF MORE UNITS TO CHECK
- LDN 0
- LJM RDLX RETURN
- RLM SPACE 4
- ** RLM - READ LOCAL MST BLOCK.
- *
- * ENTRY (T6) = LABEL TRACK.
- * (T7) = 0.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = MST STATUS WORD (STLL).
- * BFMS LOADED WITH LABEL MST.
- *
- * EREXIT TO */RMS/HNG* IF ERROR READING SECTOR OF LOCAL AREAS.
- *
- * USES P1, CN - CN+4.
- *
- * CALLS GAS, LRA, RLA, SES.
- RLM6 LDM BFMS
- ZJN RLM7 IF SECTOR NOT REFORMATTED
- LDN STDE&STLE
- RLM7 LMN STLE SET ERROR STATUS IN MST
- RJM SES
- AOD RE FLAG BAD LABEL
- RLM SUBR ENTRY/EXIT
- LDD RE
- SHN 21-6
- PJN RLMX IF EQUIPMENT AVAILABLE
- SHN 6-0
- MJN RLMX IF LABEL NOT READ
- LDM N4SS+5*ACGL+4
- LPC MGLAP
- ZJN RLMX IF NO SECTOR OF LOCAL AREAS
- LDM N4SS+5*DULL+2 SAVE MACHINE INDEX
- STD P1
- RJM RLA READ LOCAL AREA SECTOR
- PJN RLM3 IF NO ERROR
- ADN 1
- NJN RLM1 IF SECTOR REFORMATTED
- LDD FN
- SHN 21-10
- MJN RLM2 IF REMOVABLE DEVICE
- RLM1 LDC RLMC *LOCAL AREA SECTOR ERROR.*
- LJM /RMS/HNG DISPLAY MESSAGE AND HANG
- RLMA EQU *-1
- * LJM RLM6 (*CMS* CALL)
- RLM2 LDN 0
- RLM3 STD T2 SET ADDRESS OF *SLA* DAYFILE DATA
- LDN ZERL
- CRD CN
- CRD CM
- LDD T2
- ZJN RLM4 IF NO ENTRY OR REMOVABLE DEVICE
- LDM 4,T3 EXTRACT ACTIVE USER COUNT
- STD FS+3
- LDM 1,T3 MOVE SYSTEM TABLE TRACK
- STD CM+3
- LDM 3,T3 MOVE FAMILY COUNT
- STD CM+4
- LDD T3 SET ADDRESS OF ENTRY
- SBN CN-5
- RLM4 ADN CN
- STM RLMB
- LDD FS+1 CLEAR ERROR STATUS
- SCN 77
- STD FS+1
- LDD P1
- STD CM+2
- RJM GAS SET ALTERNATE LABEL SECTOR
- STD CM
- RJM LRA LOAD REFERENCE ADDRESS
- ADD AL
- ADN DALL
- CWM *,ON
- RLMB EQU *-1
- ADN DULL-DALL-1
- CWD CM
- ADN STLL-DULL
- CWD FS
- LJM RLMX RETURN
- RLMC DATA C*LOCAL AREA SECTOR ERROR.*
- RLS SPACE 4
- ** RLS - READ LABEL SECTOR.
- *
- * ENTRY (T6) = TRACK.
- * (T7) = SECTOR.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = *STLL* WORD OF MST.
- *
- * EXIT (A) = 0 IF VALID LABEL.
- * (A) .LT. 0 IF MS ERROR.
- * (A) .GT. 0 IF INCORRECT LABEL.
- * (A) = 1 IF ERROR IN *DIT*.
- * (T3) = ERROR CODE IF (A) .LT. 0.
- * (SN) = LABEL SECTOR NUMBER.
- * TO *CUD2* IF DEVICE INACCESSIBLE.
- *
- * USES EC, P1, P2, RG, T1, T2, T3, CM - CM+4, CN - CN+4.
- *
- * CALLS CDA, CDC, CMI, RDS, SDT, SDU, SOM, WDS.
- *
- * MACROS DELAY, ENDMS, MONITOR, SETMS.
- RLP2 LDD T7 CHECK SECTOR NUMBER
- LMK LSLT
- NJN RLP3 IF NOT PRIMARY LABEL SECTOR
- LDM N4SS+5*SDGL+4
- LPN 77
- SHN -1 EXTRACT SOFTWARE RESERVE
- STD P2
- RLP3 LDM FNSS CHECK FILE NAME FIELD
- LMC 3777
- RLP SUBR ENTRY/EXIT
- LDC BFMS
- RJM RDS READ LABEL SECTOR
- STD T3
- PJN RLP2 IF NO MASS STORAGE ERROR
- RLP1 ENDMS
- LDC 1S17 SET ERROR FLAG
- LMD T3
- * UJN RLSX EXIT
- RLS SUBR ENTRY/EXIT
- LDD T7
- STD SN SAVE LABEL SECTOR NUMBER
- * READ SECTOR.
- RLS1 SETMS IO,(DF,ND,NR,RR)
- LDM MSD RETURN STATUS TO CALLER
- SHN 21-6
- MJP CUD2 IF DEVICE INACCESSIBLE
- LDN 1
- STD RG
- RLS2 RJM RUC RETRIEVE UPDATE COUNT
- RJM RLP READ LABEL
- ZJN RLP1 IF FLAWED TRACK
- * CHECK CONTENTS OF LABEL.
- LDM BFMS CHECK CONTROL BYTES
- LMC 3777
- NJN RLS5 IF INCORRECT SYSTEM SECTOR LINKAGE
- LDM BFMS+1
- LMN 77
- ZJN RLS7 IF PROPER WORD COUNT
- RLS5 ENDMS
- LDN 2 INDICATE INCORRECT LABEL
- UJP RLSX RETURN
- RLS7 LDM FTSS CHECK LABEL TRACK
- LMD T6
- NJN RLS5 IF INCORRECT TRACK
- LDD FN+3
- LMC 2RDE
- ZJN RLS10 IF ECS
- LMN 1RP&1RE
- ZJN RLS10 IF DDP
- LDM E4SS
- LMD FN+3
- NJN RLS5 IF NO MATCH ON DEVICE MNEMONIC
- LDD SN
- NJN RLS10 IF NOT FIRST UNIT OF EQUIPMENT
- RJM CUC
- NJN RLS5 IF MST AND TRT OUT OF SYNC
- LDD FN
- SHN 21-4
- PJN RLS10 IF NOT INDEPENDENT SHARED DEVICE
- RLSA SHN 5+21-6
- PJN RLS10 IF EQUIPMENT AVAILABLE
- SHN 6-3
- PJN RLS11 IF NOT PREVIOUSLY RECOVERED
- SHN 4+21-10
- MJN RLS11 IF REMOVABLE DEVICE
- RLS10 ENDMS
- * LDN 0 INDICATE VALID LABEL
- LJM RLSX RETURN
- * PROCESS *DIT* ON INDEPENDENT SHARED DEVICE.
- RLS11 BSS 0
- QUAL ISD
- LDD RS CHECK RECOVERY STATUS
- LPN FLMK
- LMN FLCM
- STD P1
- ZJN RLS12 IF FILES RECOVERED FROM CM
- RJM CDA
- NJN RLS10 IF RECOVERY INHIBITED
- RLS12 LDD RE
- LPN 40
- NJN RLS10 IF INCORRECT ACCESS MODE
- LDK EPDE
- RAM UERR REREAD LABEL WITH *ENDMS* DISABLED
- RJM RLP
- LDD FN+4 FETCH MST PARAMETERS
- SHN 3
- ADN ACGL
- CRD CM
- ADN DULL-ACGL
- CRD CN
- LDD CM+4
- LPC MGPRS
- ZJN RLS14 IF *PRESET* OPTION NOT SET
- LMD CM+4
- STD CM+4
- LDD FN+4 INDICATE PRESET NOTED
- SHN 3
- ADN ACGL
- CWD CM
- LDC 5*MISD CLEAR DIT
- STD T1
- RLS13 LDN 0
- STM DISS-1,T1
- SOD T1
- NJN RLS13 IF MORE WORDS TO CLEAR
- STM N4SS+5*STLL
- STD P2 CLEAR POSSIBLE SOFTWARE RESERVE
- RLS14 RJM SDT
- MJN RLS16 IF ANY DIT ENTRY INTERLOCKED
- RLSB ZJN RLS18 IF THIS MACHINE NOT IN DIT
- * NJN RLS17 (RECOVERY DEADSTART)
- LDN RLSF-RLSE
- RLS15 ADC RLSE
- LJM RLS22 DISPLAY ERROR MESSAGE
- RLS16 ENDMS RELEASE CHANNEL
- LDC DSCP*CPAS+MS2W
- RLSC EQU *-1
- * LDC CP+MS2W (*CMS* CALL)
- CWM RLSG,TR
- DELAY
- LJM RLS1 LOOP
- RLS17 STD T1 SET DIT ORDINAL
- RLS18 LDD T1
- ZJN RLS15 IF DIT FULL
- STD T3
- SHN 2 SET INDEX OF DIT ENTRY
- RAD T3
- RJM CMI
- NJN RLS16 IF MST INTERLOCKED / INITIALIZE PENDING
- * LDN 0
- STD T7 ENSURE PRIMARY LABEL SECTOR
- LDD P1
- NJP RLS20 IF FILES NOT RECOVERED FROM CM
- * CLEAR LOCAL DEVICE INTERLOCKS AND PF ACTIVITY.
- LDM DISS-5,T3 GET LOCAL PF ACTIVITY COUNT
- LPN 77
- STD T0
- LCN 77
- LMM N4SS+TDGL*5+1
- STM RLSH
- LPN 77
- SBD T0
- PJN RLS19.1 IF LOCAL PF ACTIVITY .LE. GLOBAL ACTIVITY
- RLS19 MONITOR HNGM HANG PP
- UJN RLS19 HANG PP
- RLS19.1 LDM DISS-5,T3
- LPC 0
- RLSH EQU *-1 (COMPLEMENT OF GLOBAL INTERLOCKS)
- SHN -6
- NJN RLS19 IF LOCAL INTERLOCK SET WITHOUT GLOBAL
- LDM N4SS+TDGL*5+1 CLEAR LOCAL INTERLOCKS AND PF ACTIVITY
- SBM DISS-5,T3
- STM N4SS+TDGL*5+1
- LDN 0
- STM N4SS+DULL*5+1
- STD CN+1
- STM DISS-5,T3
- LDD P2
- LMD T1
- NJN RLS21 IF MST NOT INTERLOCKED BY THIS MACHINE
- LDN 10
- RAD RE
- * SET MACHINE ACTIVE ON DEVICE.
- RLS20 LDD FS+2 SET MACHINE ID IN DIT ENTRY
- STM DISS-5+4,T3
- AOM DISS-5+3,T3 SET DIT ENTRY INTERLOCK
- LDM N4SS+5*SDGL+4
- SHN -1
- SCN 37
- LMD T1 SET SOFTWARE RESERVE
- SHN 1
- STM N4SS+5*SDGL+4
- SOD T1 SET MACHINE INDEX IN LOCAL AREA
- STM N4SS+5*DULL+2
- STD CN+2
- AOM SDIF ADVANCE INTERLOCK COUNT
- RLS21 LDD EC
- ADD RS
- ZJN RLS25 IF INITIAL RECOVERY
- LDD FN
- SHN 13-10
- LMM N4SS+5*MDGL CHECK MATCHING REMOVABLE STATUS
- SHN 21-13
- PJN RLS24 IF MODES MATCH
- LDC RLSI *REMOVABLE DEVICE CONFLICT*
- RLS22 STD T3 SAVE MESSAGE ADDRESS
- RJM SOM
- ENDMS
- LDD FN CHECK DEVICE TYPE
- SHN 21-10
- MJN RLS23 IF REMOVABLE DEVICE
- LDD T3
- RLSD LJM /RMS/HNG DISPLAY THE ERROR MESSAGE
- * UJN *+2 (*CMS* CALL)
- RLS23 LDD T3 ISSUE MESSAGE
- RJM DFM
- RJM SDU SET DEVICE UNLOADED
- LDN 1
- LJM RLSX RETURN
- RLS24 LDN 2 SET DEVICE ACCESSED
- RAD RE
- RLS25 LDD FN+4 STORE DEVICE USAGE INFORMATION
- SHN 3
- ADN DULL
- CWD CN
- RJM CDC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF
- RJM WDS
- LDD QS RESTORE ACTUAL LABEL SECTOR
- STD T7
- LJM RLS10 RETURN
- RLSE DATA C*NO SPACE IN DIT.*
- RLSF DATA C*EQXXX, ID NN NOW IN DIT.*
- RLSG DATA C*WAITING FOR INTERLOCK.*
- RLSI DATA C*REMOVABLE DEVICE CONFLICT.*
- CMI SPACE 4,10
- ** CMI - CHECK MST INTERLOCKS.
- *
- * ENTRY (T1) = MACHINE INDEX.
- * (P2) = SOFTWARE RESERVE FROM *SDGL*.
- * (RG) = OPERATOR OVERRIDE STATUS.
- * (BFMS) = LABEL SECTOR.
- *
- * EXIT (A) = 0 IF NO INTERLOCKS PROHIBITING RECOVERY.
- *
- * USES T2.
- CMI SUBR ENTRY/EXIT
- LDD RG
- ZJN CMIX IF OPERATOR OVERRIDE
- LDD P2
- NJN CMI1 IF DEVICE INTERLOCK SET
- LDM N4SS+5*STLL
- LPC MLIAL+MLIHD+MLIFD+MLIPF
- ZJN CMIX IF NO FULL / PF INITIALIZE PENDING
- LDM N4SS+5*DULL+2
- LPN 17
- ADN 1 CHECK OWNER OF INITIALIZE REQUEST
- CMI1 STD T2
- LMD T1
- ZJN CMIX IF DEVICE OPEN FOR RECOVERY
- LDD T2
- SHN 2 CONVERT DIT INDEX TO BYTE INDEX
- RAD T2
- LDM DISS-5+4,T2 SET MACHINE ID IN MESSAGE
- STM CMIA+11
- LDC CMIA SET EST ORDINAL IN MESSAGE
- RJM SOM
- * LDC CMIA WAIT ON OPERATOR COMMAND
- RJM WOC
- UJP CMIX RETURN
- CMIA DATA C*EQXXX, BUSY ON ID NN.*
- SDT SPACE 4,15
- ** SDT - SEARCH DEVICE INFORMATION TABLE.
- *
- * ENTRY (FS - FS+4) = *STLL* WORD OF MST.
- * (BFMS) = LABEL SECTOR.
- *
- * EXIT (A) = 0 IF THIS MACHINE NOT IDENTIFIED IN DIT.
- * = MACHINE INDEX FOR THIS DEVICE.
- * .LT. 0 IF ANY DIT ENTRY INTERLOCKED.
- * (EC) = COUNT OF MACHINES ACCESSING DEVICE.
- * (T1) = INDEX OF NEXT FREE DIT SLOT.
- *
- * USES T2, T3.
- SDT2 LDD T2 SET MACHINE INDEX
- STD T0
- SDT3 LDD T2 SET INDEX OF EMPTY SLOT
- STD T1
- SDT4 SOD T2
- NJN SDT1 IF MORE DIT ENTRIES TO CHECK
- LDD T0
- SDT SUBR ENTRY/EXIT
- LDN 0
- STD EC
- STD T0
- STD T1
- LDC DISS+5*MISD+4 PRESET SEARCH ADDRESS
- STD T3
- LDN MISD INITIALIZE DIT INDEX
- STD T2
- SDT1 LCN 5 DECREMENT ADDRESS
- RAD T3
- LDI T3
- ZJN SDT3 IF EMPTY SLOT
- LMD FS+2
- ZJN SDT2 IF SLOT ASSIGNED TO THIS MACHINE
- AOD EC
- LDM -1,T3
- LPN 1
- ZJN SDT4 IF ENTRY NOT INTERLOCKED
- LCN 1
- UJN SDTX RETURN
- SPACE 4,10
- QUAL *
- SLT SPACE 4,10
- ** SLT - SEARCH FOR LABEL TRACK.
- *
- * ENTRY (A) = 0 IF STARTING SCAN FOR LABEL TRACK.
- *
- * EXIT (A) = 0 IF END OF LABEL TRACK SCAN.
- * (T6) = NEXT LABEL TRACK CANDIDATE.
- *
- * USES T1, T2, CM - CM+4.
- *
- * CALLS STA.
- SLT1 LDD T6 SET TRT WORD INDEX
- SLT2 SHN 21-1
- LMD TH REMOVE TRACK BIT
- STD T1
- SHN 1-21 SET BYTE INDEX
- STD T2
- RJM STA SET FWA OF TRT
- ADD T1
- CRD CM
- LDM CM,T2 CHECK TRACK
- LMC 3777
- NJN SLTX IF NOT FLAWED
- AOD T6 ADVANCE TRACK
- SLT3 LMC LTKL
- SLTA EQU *-1
- NJN SLT1 IF NOT AT LABEL TRACK LIMIT
- SLT SUBR ENTRY/EXIT
- NJN SLT3 IF NOT FIRST TRACK
- LDC LTKL SET LIMIT FOR VALID LABEL TRACK
- STM SLTA
- SBN LTKL-FLTK SET FIRST TRACK
- STD T6
- UJN SLT2
- VAL SPACE 4,20
- ** VAL - VERIFY ACCESS LEVEL LIMITS.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (A) = 0 IF ACCESS LEVELS WITHIN LIMITS, OR OPERATOR
- * ENTERED *GO,CMS*.
- * (EC) = *STSV* WHEN ACCESS LEVELS NOT WITHIN LIMITS ON
- * *RMS* CALL PROCESSING REMOVABLE DEVICE, *CMS*
- * CALL PROCESSING SECURED SYSTEM, OR *CMS* CALL
- * PROCESSING UNSECURED SYSTEM IN WHICH OPERATOR
- * ENTERED *PAUSE*.
- * TO *HNG* ON *RMS* CALL PROCESSING NON-REMOVABLE
- * DEVICE WHEN ACCESS LEVELS NOT WITHIN LIMITS.
- *
- * USES CM, EC, CN - CN+4.
- *
- * CALLS PUE, SOM.
- *
- * MACROS SFA.
- VAL7 LDN 0 CLEAR ERROR RETURN STATUS
- VAL SUBR ENTRY/EXIT
- SFA EST,T5 GET ACCESS LEVELS FROM EST
- ADK EQAE
- CRD CN
- LDM N4SS+5*PFGL+4 GET ACCESS LEVELS CONTAINED IN MST
- SHN -6
- STD CM
- LDD CN+3 COMPARE LOWER LEVELS
- LPN 70
- STD CN
- LDD CM
- SCN 7
- SBD CN
- MJN VAL2 IF LOWER LEVEL NOT WITHIN LIMITS
- LDD CM COMPARE UPPER LEVELS
- LPN 7
- STD CM
- LDD CN+3
- LPN 7
- SBD CM
- VAL1 PJN VAL7 IF ACCESS LEVELS WITHIN LIMITS
- VAL2 LDD RE PROCESS *RMS* ERROR
- * UJN VAL5 (PROCESS *CMS* ERROR)
- SHN 21-10
- PJN VAL6 IF NON-RECOVERABLE DEVICE
- VAL3 LDN STSV SET ERROR STATUS
- STD EC
- VAL4 UJN VALX RETURN
- VAL5 LDD FN PROCESS *CMS* ERROR
- SHN 21-6
- PJN VAL1 IF DEVICE ALREADY AVAILABLE
- VALB RJM PUE PROCESS UNSECURED ERROR
- * UJN VAL3 (SECURED SYSTEM)
- NJN VAL3 IF OPERATOR ENTERED *PAUSE*
- UJN VAL4 RETURN
- VAL6 LDC VALA SET EST ORDINAL IN MESSAGE
- RJM SOM
- LJM /RMS/HNG HANG PP
- VALA DATA C*EQXXX, DEVICE ACCESS ERROR.*
- WMT SPACE 4,20
- ** WMT - ENTER MST TO CM TABLE.
- *
- * ENTRY (A) = STATUS OF LABEL READ ATTEMPT.
- * (CA) = ADDRESS FOR MST.
- * (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = STLL WORD FROM MST.
- * (T7) = SECTOR READ.
- * (T6) = LABEL TRACK READ.
- * (SN) = LABEL SECTOR NUMBER.
- *
- * EXIT (CA) = ADDRESS FOR MST OF NEXT UNIT.
- * TO */RMS/HNG* IF LINK DEVICE SIZE ERROR.
- *
- * USES T1, CA, EC, CM - CM+4, FS - FS+4.
- *
- * CALLS GAS, LRA, SES, VAL.
- WMT SUBR ENTRY/EXIT
- STD EC SAVE STATUS
- ZJN WMT3 IF NO ERROR
- * ERROR ENCOUNTERED ON LABEL READ.
- WMTA LMN STNR
- * PSN (CMS CALL)
- NJN WMT1 IF NOT *NOT READY*
- STD EC CLEAR ERROR CODE (RMS ONLY)
- WMT1 LDC MSTL*5
- STD T1
- WMT2 LDN 0 CLEAR MST AREA
- STM N4SS-1,T1
- SOD T1
- NJN WMT2
- AOD RE SET NO LABEL PRESENT
- LDD FN+4
- SHN 3
- ADN PFGL RETAIN PF DESCRIPTION
- CRM N4SS+5*PFGL,TW
- LDD EC SET ERROR STATUS IN MST IMAGE
- STM N4SS+5*STLL+1
- NJN WMT2.1 IF ERROR STATUS PRESENT
- LDD FS+1
- LPN 77 PRESERVE EXISTING ERROR STATUS
- STD EC
- WMT2.1 LJM WMT4 CONTINUE
- * LABEL READ SUCCESSFUL.
- WMT3 RJM VAL VERIFY ACCESS LEVELS
- NJN WMT1 IF LEVELS NOT WITHIN LIMITS
- LDD T6 SET LABEL TRACK
- STM N4SS+5*ALGL+1
- LDD T7 SET SECTOR READ
- STM N4SS+5*DILL
- LDM N4SS+5*ACGL+4 CLEAR PF UTILITY INTERLOCK
- LPC MGLAP
- STM N4SS+5*ACGL+4
- LDM N4SS+STLL*5+1 CLEAR ERROR STATUS
- SCN 77
- STM N4SS+STLL*5+1
- RJM GAS SET ALTERNATE LABEL SECTOR
- STM N4SS+5*DULL
- WMTC UJN WMT4 WRITE LABEL DATA TO CM
- * PSN (IF LINK DEVICE RECOVERY)
- * VERIFY TRT LENGTH FOR LINK DEVICE.
- LDD FN+4 GET TRT LENGTH DEFINED AT DEADSTART
- SHN 3
- ADK TDGL
- CRD CM
- LDD CM+2
- LMM N4SS+TDGL*5+2 TRT LENGTH RECOVERED FROM DEVICE
- ZJN WMT4 IF CORRECT TRT LENGTH
- LDC WMTD *LINK DEVICE SIZE ERROR.*
- LJM /RMS/HNG HANG PP
- * ENTER LABEL DATA INTO CM TABLE.
- WMT4 LDN MSTL SET MST LENGTH
- STD T1
- RJM LRA LOAD REFERENCE ADDRESS
- ADD CA
- CWM N4SS,T1
- LDN MSTL ADVANCE TABLE ADDRESS
- RAD CA
- * ENTER APPROPRIATE STATUS TO MST.
- LDD SN
- NJN WMT6 IF NOT FIRST UNIT OF EQUIPMENT
- LDD FN
- SHN 21-6
- PJN WMT5 IF DEVICE AVAILABLE
- LDD FN+4 STORE PF DESCRIPTION
- SHN 3
- ADN PFGL
- CWM N4SS+5*PFGL,TW
- ERRNZ PUGL-PFGL-1 ADJUST IF *PFGL* POSITION CHANGES
- WMTB UJN WMT5 CHECK PREVIOUS ERROR STATUS
- * PSN (RECOVERING MMF LINK DEVICE)
- SBN PFGL+2-ALGL STORE LINK DEVICE ALLOCATION WORD
- CWM N4SS+5*ALGL,ON
- LDM N4SS+5*ALGL+4 SET DAT TRACK
- STM ADEA
- WMT5 LDD FS+1
- LPN 77 CHECK CURRENT ERROR STATUS
- SBN MNEC
- PJN WMT6 IF STATUS NOT TO BE CLEARED
- LDD EC
- RJM SES SET/CLEAR ERROR STATUS
- WMT6 LJM WMTX RETURN
- WMTD DATA C*LINK DEVICE SIZE ERROR.*
- WOC SPACE 4,10
- ** WOC - WAIT ON OPERATOR COMMAND.
- *
- * ENTRY (A) = ADDRESS OF PROMPT MESSAGE.
- *
- * EXIT (A) = 0 IF OPERATOR ENTERED *GO*.
- * = 1 IF OPERATOR ENTERED *PAUSE*.
- *
- * USES T8, CM - CM+4.
- *
- * MACROS PAUSE.
- WOC SUBR ENTRY/EXIT
- STM WOCC
- WOCA LDC **+SNSW ADDRESS OF *SNSW* IN CP (*RMS* - SYSTEM CP)
- CRD CM GET SENSE SWITCH WORD
- STD T8
- LDN 3 SET PAUSE FLAGS
- STD CM+3
- LDD T8 STORE PAUSE FLAGS
- CWD CM
- ADN MS2W-SNSW STORE CONTROL POINT MESSAGE
- CWM *,TR
- WOCC EQU *-1
- WOC1 LCN 0 PAUSE FOR OPERATOR ACTION
- SBN 1
- NJN *-1 IF DELAY NOT COMPLETE
- PAUSE NE
- LDD T8 READ SENSE SWITCH WORD
- CRD CM
- LDD CM+3 CHECK FOR OPERATOR INPUT
- LPN 2
- NJN WOC1 IF OPERATOR HAS NOT RESPONDED
- LMD CM+3
- UJP WOCX RETURN
- ERRNG BFMS-* OVERFLOW INTO BUFFER
- TITLE PRESET.
- PRS SPACE 4,10
- ** PRS - PRESET.
- PRS BSS 0 ENTRY
- LDD RS CHECK RECOVERY STATUS
- LPN FLMK
- LMN FLCM
- NJN PRS1 IF NOT LEVEL 3 RECOVERY
- ISTORE RDLC,(UJN RDL15) BYPASS *RLM* CALL
- PRS1 LDM DLYA CHECK PP SPEED
- LPN 14
- RAM SFTA
- LDC MMFL READ MMF STATUS WORD
- CRD CM
- LDD CM SAVE MACHINE ID
- STM CDIA
- STM /ISD/RLSF+5
- LDD CM+4
- ZJP PRS4 IF STAND ALONE SYSTEM
- LDK STDI+T1 ACTIVATE *EMF* SUBROUTINE
- STM EMFA
- LDM LDMP READ LINK DEVICE ALLOCATION WORD
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+4 SET DAT TRACK
- STM ADEA
- RJM CEI INITIALIZE *CEA* SUBROUTINE
- PRS4 LDD RS
- ZJN PRS5 IF NOT RECOVERY DEADSTART
- LCN 1RW-1RT
- RAM /ISD/RLSF+7 MODIFY ERROR MESSAGE
- ISTORE /ISD/RLSB,(NJN /ISD/RLS17) MODIFY DIT CHECK
- PRS5 LDD IR
- LMC 2RCM
- ZJN PRS6 IF *CMS* CALL
- ISTORE RLSA,(UJN RLS11) SET RECOVERY LEVEL CHECK
- LDN NCPL
- CRD CM
- AOD CM+1 GET SYSTEM CPA ADDRESS
- SHN 7
- LJM PRS8 SET *SNSW* ADDRESS
- PRS6 LDC UJNI+2 DISABLE CALLS TO DEADSTART ROUTINES
- STM MRLB
- STM RDLA
- STM /ISD/RLSD
- ISTORE VAL2,(UJN VAL5)
- ISTORE CMEA,(UJN CME8)
- ISTORE CMEB,(UJN CME8)
- LDC RLM6 SET ERROR RETURN FROM *RLM*
- STM RLMA
- LDN PSNI
- STM WMTA
- LDD CP
- ADN MS2W
- STM /ISD/RLSC
- LDM /CMS/DPPB
- SHN -6
- LMN UJNI/100
- NJN PRS7 IF DEADSTART SEQUENCING
- ISTORE RDLC,(UJN RDL15) BYPASS *RLM* CALL
- PRS7 LDD CP GET CPA ADDRESS
- PRS8 ADN SNSW SET *SNSW* ADDRESS
- STM WOCA+1
- LDN SSML DETERMINE IF SECURED SYSTEM
- CRD CM
- LDD CM
- LPN 77
- ZJN PRS9 IF UNSECURED SYSTEM
- ISTORE VALB,(UJN VAL3) DISABLE CALL TO *PUE*
- PRS9 LJM RDBX EXIT
- EMF SPACE 4,10
- ** EMF - ENABLE MMF RECOVERY.
- *
- * ENTRY (A) = ADDRESS OF INSTRUCTION LIST.
- *
- * EXIT (A) = 0.
- *
- * USES T1, T2.
- EMF1 STD T2 SET INSTRUCTION ADDRESS
- LDN PSNI REPLACE INSTRUCTION WITH *PSN*
- STI T2
- AOD T1 ADVANCE LIST ADDRESS
- EMF2 LDI T1
- NJN EMF1 LOOP TO END OF LIST
- EMF3 LDN 0
- EMF SUBR ENTRY/EXIT
- EMFA UJN EMF3 EXIT (STAND-ALONE SYSTEM)
- * STD T1 SET LIST ADDRESS (MULTI-MAINFRAME SYSTEM)
- STM MMFP SET MMF PRESENT
- UJN EMF2 ENTER LOOP
- SPACE 4,10
- CEI HERE
- SPACE 4,10
- * LIST OF *CMS* INSTRUCTIONS MODIFIED FOR MMF SYSTEM.
- QUAL CMS
- LCMS BSS 0
- LCMS HERE
- ERRZR LCMS-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- * LIST OF *RMS* INSTRUCTIONS MODIFIED FOR MMF RECOVERY.
- QUAL RMS
- LRMS BSS 0
- LRMS HERE
- ERRZR LRMS-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- QUAL
- SPACE 4,10
- OVERFLOW ORDB,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DC - VALIDATE PF SYSTEM.
- TITLE
- IDENT 4DC,/RDC/RDCX
- *COMMENT MSM - VALIDATE PF SYSTEM.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** *VPF* VALIDATES THAT THE PERMANENT FILE SYSTEM
- * CONTAINS NO DUPLICATE PACKNAMES, DEVICE NUMBERS OR USER
- * MASKS WITHIN A FAMILY. THE MST TABLES FOR ALL ACTIVE
- * DEVICES ARE VERIFIED TO BE UNIQUE.
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- * *EQXXX EQYYY CONFLICTING DN.* = TWO EST ORDINALS HAVE THE
- * SAME FAMILY NAME AND DEVICE NUMBER, AND ONE DEVICE IS A
- * SYSTEM DEVICE. ACTION - REMOVE ONE OF THE DEVICES.
- *
- * *EQXXX EQYYY CONFLICTING PN.* = TWO AUXILIARY DEVICES HAVE
- * THE SAME PACKNAME. ACTION - REMOVE ONE OF THE DEVICES.
- *
- * *EQXXX EQYYY CONFLICTING UM.* = TWO EST ORDINALS IN THE SAME
- * FAMILY HAVE ONE OR MORE DUPLICATED BITS IN THE *DM* MASK, AND
- * ONE DEVICE IS A SYSTEM DEVICE. ACTION - REMOVE ONE OF THE
- * DEVICES.
- SPACE 4
- ** ENTRY CONDITIONS.
- *
- * (RS) = RECOVERY STATUS.
- TITLE MAIN ROUTINE.
- SPACE 4,10
- QUAL RDC
- ORG ORDC
- RDC SUBR ENTRY/EXIT
- LDD IR
- LMC 2RRM
- ZJN RDC3 IF *RMS* CALL
- * VERIFY RUNNING SYSTEM.
- RDC1 RJM VPF VERIFY PF SYSTEM
- ZJN RDCX IF NO ERRORS
- LDD EF
- NJN RDC1 IF EITHER DEVICE SET UNAVAILABLE
- LDD P1
- STD T5
- LDD EC SET ERROR STATUS ON FIRST DEVICE
- RJM SES
- LDD P2
- STD T5
- LDD EC SET ERROR STATUS FOR SECOND DEVICE
- RJM SES
- RDC2 UJP RDCX RETURN
- * VERIFY DEADSTART SYSTEM.
- RDC3 LDD RS
- NJN RDC4 IF RECOVERY DEADSTART
- RJM SDF SET DEFAULT FAMILY NAME
- LDN 0
- RJM GFO ENTER DEFAULT FAMILY IN FOT
- RDC4 LDD RC
- ZJN RDC6 IF NO EQUIPMENT RECOVERED
- RDC5 RJM VPF VERIFY PF SYSTEM FOR CONFLICTS
- ZJN RDC6 IF NO CONFLICTS
- MJN RDC5 IF ERROR ON NON-SYSTEM DEVICE
- LJM /RMS/HNG DISPLAY ERROR AND HANG
- * RESET DEFAULT FAMILY EQUIPMENT TO FAMILY MASTER EQUIPMENT.
- RDC6 RJM SDF SET DEFAULT FAMILY NAME
- RJM SFE SET FAMILY EQUIPMENT
- NJN RDC2 IF MASTER EQUIPMENT NOT FOUND
- LDD T2
- STD CN+3
- LDC PFNL SET FAMILY EST ORDINAL IN *PFNL*
- CWD CN
- UJN RDC2 RETURN
- TITLE PRIMARY SUBROUTINES.
- SDF SPACE 4,10
- ** SDF - SET DEFAULT FAMILY NAME.
- *
- * EXIT (CN - CN+4) = *PFNL* WORD.
- * (FN - FN+4) = *PFGL* WORD FROM DEFAULT FAMILY MST.
- *
- * USES CN - CN+4, FN - FN+4.
- *
- * MACROS SFA.
- SDF SUBR ENTRY/EXIT
- LDC PFNL
- CRD CN
- SFA EST,CN+3 READ FAMILY EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN+4 READ FAMILY NAME
- SHN 3
- ADN PFGL
- CRD FN
- UJN SDFX RETURN
- VPF SPACE 4,10
- ** VPF - VERIFY PF SYSTEM FOR CONFLICTS IN -
- * DEVICE NUMBERS.
- * DEVICE MASKS.
- * PACKNAMES.
- *
- * USES EF, EQ, T2, T5, T7, CM - CM+4, FN - FN+7, FS - FS+4.
- *
- * CALLS CFN, CFR, ERR, GNE, LRA.
- *
- * MACROS SFA.
- VPF SUBR ENTRY/EXIT
- LDN 0 CLEAR FAMILY COUNT
- STD EF
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD EQ
- VPF1 AOD EQ READ EST ENTRY
- STD T5
- LMD LO
- ZJN VPFX IF END OF EST
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CRD RD
- SFA EST,EQ GET EST ENTRY
- ADK EQDE
- CRD FN
- LDD RE
- ZJN VPF1 IF DEVICE NOT BEING RECOVERED
- LPC 300
- LMD HN
- ZJN VPF1 IF UNAVAILABLE DEVICE
- LDD FN+4
- SHN 3
- ADN PFGL READ FAMILY/PACK NAME
- CRD FN
- ADN STLL-PFGL GET DEVICE STATUS
- CRD T7
- SBN STLL-PUGL READ DEVICE MASK
- CRD CM
- ADN MDGL-PUGL CHECK AUXILIARY STATUS
- CRD FS
- LDD T7 CHECK DEVICE STATUS
- LPC MLIAL+MLIHD+MLIFD+MLUNL
- NJN VPF1 IF UNLOAD/INITIALIZE PENDING
- LDD FS
- SHN -12
- LPN 1
- STD T2
- VPF2 RJM GNE GET NEXT ENTRY
- ZJN VPF7 IF NOT FOUND
- RJM CFN COMPARE DEVICE NAMES
- NJN VPF2 IF NOT SAME FAMILY
- LDD T2
- LMN 1
- ZJN VPF3 IF AUXILIARY DEVICE
- LDD T7
- LMN 1
- ZJN VPF3 IF NEW DEVICE IS AN AUXILIARY DEVICE
- * CHECK DEVICE NUMBERS.
- LDD FS+3
- LMD FN+3
- ZJN VPF4 IF SAME DEVICE NUMBERS
- * CHECK USER MASKS.
- LDD CN+4
- STM VPFA
- LDD CM+4
- LPC *
- VPFA EQU *-1
- LPC 377
- ZJN VPF2 IF NOT DUPLICATE MASKS
- LDN STUM-STPN SET USER MASK ERROR
- VPF3 ADN STPN-STDN SET PACKNAME ERROR
- VPF4 ADN STDN SET DEVICE NUMBER ERROR
- LJM ERR
- VPF7 LDD T2
- NJN VPF8 IF AUXILIARY DEVICE
- RJM CFR CHECK FAMILY DEVICE RECOVERED
- VPF8 LJM VPF1 LOOP FOR NEXT EQUIPMENT
- TITLE SUBROUTINES.
- CFN SPACE 4
- ** CFN - COMPARE FAMILY/PACK NAMES.
- *
- * ENTRY (FN - FN+4) = FAMILY/PACK NAME1.
- * (FS - FS+4) = FAMILY/PACK NAME2.
- *
- * EXIT (A) = 0 IF NAMES EQUAL.
- CFN SUBR ENTRY/EXIT
- LDD FN
- LMD FS
- NJN CFNX IF NOT EQUAL
- LDD FN+1
- LMD FS+1
- NJN CFNX IF NOT EQUAL
- LDD FN+2
- LMD FS+2
- NJN CFNX IF NOT EQUAL
- LDD FN+3
- LMD FS+3
- SCN 77
- UJN CFNX EXIT
- CFR SPACE 4,10
- ** CFR - CHECK FAMILY DEVICE RECOVERED.
- *
- * ENTRY (EQ) = EST ORDINAL.
- *
- * ERROR TO *ERR* IF FOT FULL.
- * TO *RDCX* IF ERROR FLAG SET.
- CFR SUBR ENTRY/EXIT
- LDD RS
- NJN CFRX IF RECOVERY DEADSTART
- LDD RE
- SHN 21-7
- PJN CFRX IF DEVICE NOT RECOVERED
- LDN 0 SEARCH FOR/CREATE FOT ENTRY
- RJM GFO
- SCN 1
- ZJN CFRX IF ENTRY FOUND/CREATED
- LPC 400000
- LMN STFF
- PJN ERR IF FOT FULL
- LJM RDCX EXIT
- ERR SPACE 4
- ** ERR - PROCESS ERROR CONDITIONS.
- *
- * ENTRY (A) = ERROR STATUS.
- * (EQ) = EST ORDINAL OF FIRST DEVICE.
- * (T5) = EST ORDINAL OF SECOND DEVICE.
- *
- * USES FN - FN+4, P1, P2, T1, T5, EC, EQ.
- *
- * CALLS C2D, IES, LRA.
- *
- * MACROS SFA.
- ERR STD EC SAVE ERROR CODE
- LDD T5 SAVE EST ORDINAL OF SECOND DEVICE
- STD P2
- LDD EQ SAVE EST ORDINAL OF FIRST DEVICE
- STD P1
- STD T5 PROCESS FIRST EST ORDINAL
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CRD RD
- SFA EST,T5
- ADK EQDE
- CRD FN
- LDD RE
- SHN -6
- LPN 62
- LMN 62
- ZJN ERR3 IF RECOVERED SYSTEM DEVICE
- SCN 20
- NJN ERR1 IF EQUIPMENT NOT RECOVERED
- AOD EF FLAG *IES* CALL
- RJM IES INITIALIZE EQUIPMENT STATUS
- ERR1 LDD P2 PROCESS SECOND EQUIPMENT
- STD EQ
- STD T5
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CRD RD
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD RE
- SHN -6
- LPN 62
- LMN 62
- ZJN ERR3 IF RECOVERED SYSTEM DEVICE
- SCN 20
- NJN ERR2 IF EQUIPMENT NOT RECOVERED
- AOD EF FLAG *IES* CALL
- RJM IES INITIALIZE EQUIPMENT STATUS
- ERR2 LCN 0 SET NON SYSTEM DEVICE ERROR
- LJM VPFX
- * PROCESS ERROR ON SYSTEM DEVICE.
- ERR3 SFA EST,P1
- ADK EQDE
- CRD FN
- LDD FN+3 SET DEVICE TYPE
- STM ERRA
- LDD P1 CONVERT UPPER TWO DIGITS OF FIRST DEVICE
- SHN -3
- RJM C2D
- STM ERRA+1
- LDD P1 CONVERT LOWER DIGIT OF FIRST DEVICE
- LPN 7
- SHN 6
- ADC 2R0
- STM ERRA+2
- SFA EST,P2
- ADK EQDE
- CRD FN
- LDD FN+3 SET DEVICE TYPE
- STM ERRA+3
- LDD P2 CONVERT UPPER TWO DIGITS OF SECOND DEVICE
- SHN -3
- RJM C2D
- STM ERRA+4
- LDD P2 CONVERT LOWER DIGIT OF SECOND DEVICE
- LPN 7
- SHN 6
- ADC 2R0
- STM ERRA+5
- LDD EC SET PROPER ERROR
- SBN STFF
- ZJN ERR4 IF FOT FULL
- ADN STFF-STDN
- STD T1
- LDM ERRC,T1
- STM ERRB
- LCN ERRD-ERRA
- ERR4 ADC ERRD
- LJM VPFX
- ERRA DATA H*EQXXX EQYYY CONFLICTING *
- ERRB DATA C*ET. *
- ERRC VFD 12/0LDN
- VFD 12/0LPN
- VFD 12/0LUM
- ERRD DATA C*FOT FULL.*
- GNE SPACE 4
- ** GNE - GET NEXT ENTRY.
- *
- * ENTRY (T5) = ADDRESS OF LAST ENTRY CHECKED.
- *
- * EXIT (FS - FS+4) = PF DESCRIPTION WORD.
- * (CN+4) = DEVICE MASK.
- * (A) = 0 IF ENTRY NOT FOUND.
- * (T7) = 1, IF AUXILIARY DEVICE.
- *
- * USES T1, T5, T7, CM - CM+3, FS - FS+4.
- *
- * CALLS LRA.
- GNE SUBR ENTRY/EXIT
- GNE1 AOD T5
- LMD LO
- ZJN GNEX IF END OF MASS STORAGE DEVICES
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD T7
- SFA EST,T5 READ NEXT EST ENTRY
- ADK EQDE
- CRD FS READ NEXT ENTRY
- * LDD RE CHECK DEVICE CHARACTERISTICS
- LDD CM+2
- SHN 21-13
- PJN GNE1 IF NOT MASS STORAGE
- SHN 21-6-21+13
- PJN GNE2 IF AVAILABLE
- SHN 21-7-21+6+22
- PJN GNE1 IF DEVICE NOT BEING RECOVERED
- GNE2 LDD FS+4 READ MST
- STD T1 SAVE MST ADDRESS
- SHN 3
- ADN MDGL
- CRD FS
- ADN STLL-MDGL GET DEVICE STATUS
- CRD T7
- LDD T7 CHECK INITIALIZE REQUESTED
- LPC MLIAL+MLIHD+MLIFD
- NJN GNE1 IF FULL INITIALIZE PENDING
- LDD FS
- SHN -12
- LPN 1
- STD T7
- LDD T1 GET FAMILY NAME
- SHN 3
- ADN PFGL
- CRD FS
- ADN PUGL-PFGL READ DEVICE MASK
- CRD CN
- LJM GNEX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPSFE
- GFO$ EQU 0 DEFINE FOT ACCESS ROUTINE
- *CALL COMPUFT
- SPACE 4,10
- OVERFLOW ORDC,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DD - DEVICE VERIFICATION ROUTINES.
- TITLE
- IDENT 4DD,/RDD/RDDX
- *COMMENT MSM - DEVICE VERIFICATION ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- *** *4DD* CONTAINS LABEL VERIFICATION ROUTINES.
- QUAL RDD
- ORG ORDD
- RDD SUBR ENTRY/EXIT
- LJM POV PROCESS OVERLAY PRESET
- TITLE MMF ROUTINES.
- ABD SPACE 4,15
- ** ABD - ALLOCATE BAT FOR DEVICE.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (BAEI+4) = NEXT AVAILABLE BAT TRACK.
- *
- * EXIT (A) = 0 IF BAT ALLOCATED, OR IF BAT NOT REQUIRED.
- * (A) = MESSAGE ADDRESS, IF NO BAT TRACK AVAILABLE.
- *
- * USES T6, T7, CM - CM+4, CN - CN+4.
- *
- * CALLS CEA, SNT.
- *
- * MACROS MONITOR.
- ABD1 LDC ABDA EXIT WITH (A) = MESSAGE ADDRESS
- ABD SUBR ENTRY/EXIT
- LDD FN
- LPN 40
- ZJN ABDX IF NOT SHARED BUFFERED DEVICE
- LDM BAEI+4 NEXT AVAILABLE BAT TRACK
- ZJN ABD1 IF NO TRACK AVAILABLE
- STD T6
- RJM SNT SET NEXT TRACK
- STM BAEI+4
- * SET EXTENDED MEMORY ADDRESS OF BAT INTO DAT.
- LDN 0
- STD T7
- RJM CEA GET ADDRESS OF BAT TRACK
- LDD CM+3 SET EXTENDED MEMORY ADDRESS OF BAT
- STM DATB+5
- LDD CM+4
- STM DATB+6
- * CLEAR BAT.
- LDN ZERL
- CRD CM
- LDD T6 SET TRACK TO CLEAR
- STD CM+4
- LDN BATL/100 SET NUMBER OF SECTORS TO CLEAR
- STD CM+3
- LDN CEMS CLEAR EXTENDED MEMORY TRACK
- STD CM+1
- MONITOR MTEM
- UJP ABDX RETURN
- ABDA DATA C* END OF BAT TRACK CHAIN.*
- CDE SPACE 4,15
- ** CDE - CHECK DAT ENTRY.
- *
- * ENTRY (DI) = DAT INDEX FROM MST.
- * (QS) = INDEX INTO DEVICE ACCESS TABLE.
- * (T2) = ADDRESS OF DATB+11.
- * (FN - FN+4) = EST ENTRY.
- * (DATB) = DAT ENTRY.
- *
- * EXIT (A) = 0 IF NO DAT CONFLICTS.
- * (A) = ADDRESS OF ERROR MESSAGE, IF DAT CONFLICT.
- * (T6) = 0, IF DAT ENTRY FOR NON-SHARED DEVICE.
- * (T6) = EXTENDED MEMORY TRACK, IF SHARED DEVICE ENTRY.
- *
- * USES T6.
- CDE2 LDI T2 CHECK MACHINE ACCESS BYTE
- SHN 21-13
- MJN CDE3 IF RECOVERY IN PROGRESS
- LDD DI CHECK DAT INDEX
- LMD QS
- ZJN CDEX IF VALID INDEX
- LMD QS
- ZJN CDEX IF NO DAT INDEX IN MST
- CDE3 LDC CSDC+3
- CDE SUBR ENTRY/EXIT
- LDM DATB+4 SET ECS POINTER FOR SHARED DEVICE
- STD T6
- SHN 11-13
- LMD FN MAP TRACK BIT WITH SHARE FLAG
- SHN 21-11
- PJN CDE2 IF COMPARE
- LDD T6
- ZJN CDE1 IF DAT ENTRY FOR NON-SHARED DEVICE
- LDN CSDC-CSDB
- CDE1 ADC CSDB SET ADDRESS OF ERROR MESSAGE
- UJN CDEX RETURN
- CSD SPACE 4,20
- ** CSD - CHECK SHARED DEVICE STATUS.
- *
- * ENTRY (EQ) = DEVICE EST ORDINAL.
- * (RS) = RECOVERY STATUS.
- * (CN - CN+4) = PF DESCRIPTOR WORD (PFGL).
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF NO DAT CONFLICT.
- * (A) = ADDRESS OF ERROR MESSAGE, IF DAT CONFLICT.
- * (T2) = 0 IF DEVICE NOT DESCRIBED IN DAT.
- *
- * USES QS, RE, T7, CM - CM+4.
- *
- * CALLS SDT, CDE, CEA.
- *
- * MACROS MONITOR.
- CSD6 LDD MA MOVE ENTRY TO DAT BUFFER
- CWD CN
- CRM DATB,ON
- LDD DI CHECK DAT INDEX
- ZJN CSD7 IF NO DAT ENTRY FOR DEVICE
- STD QS
- UJN CSD8 DAT SLOT ASSIGNED
- CSD7 LDD FN
- SHN 2-11
- LPN 4 MAP SHARE FLAG AS ECS TRACK REQUIRED
- RAD RE
- CSD8 LDN 0 CLEAR MACHINE ACCESS BYTE
- CSD9 STM DATB+11
- CSD SUBR ENTRY/EXIT
- RJM SDT SEARCH DEVICE ACCESS TABLE
- STD T2
- ZJN CSD6 IF NO ENTRY FOR NAMED DEVICE
- RJM CDE CHECK DAT ENTRY
- NJN CSDX IF DAT CONFLICT/ERROR
- STD T7
- LDD T6
- NJN CSD1 IF SHARED DEVICE
- LDI T2
- LPC -0
- MMTE *-1
- ZJN CSDX IF ACCESS BY THIS MACHINE ONLY
- LDC CSDB
- UJN CSDX RETURN
- CSD1 LDI T2 CHECK MACHINES ACCESSING DEVICE
- ZJN CSD9 IF NO MACHINE ACCESS
- LPC -0
- MMTE *-1
- ADD RS
- ZJN CSD9 IF ACCESS BY THIS MACHINE ONLY
- SBD RS
- LMI T2
- ZJN CSD2 IF NOT ACCESSED BY THIS MACHINE
- LDN 10
- CSD2 ADN 2 FLAG TRT RECOVERY FROM EXTENDED MEMORY
- RAD RE
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDD AL SET CM TABLE ADDRESS
- ADK TDGL
- STD CM+2
- LDC GLGL*100-100+40 SET WORD COUNT
- STD CM+1
- LDC RECS*1000 SUBFUNCTION = READ ECS
- RAD CM+3
- MONITOR ECSM ISSUE MONITOR REQUEST
- LDD RA READ DRIVER WORD FROM GLOBAL MST
- SHN 6
- ADD AL
- ADN MDGL
- CRD CM
- LDD DI
- ZJN CSD3 IF DNAP BY THIS MACHINE
- LMD QS
- NJN CSD4 IF DAT CONFLICT
- CSD3 LDD FN
- SCN 77
- SHN 14-10
- LMD QS
- SHN -1 COMPARE REMOVABLE STATUS + DAT INDEX
- LMD CM
- LPC 4377
- ZJN CSD5 IF NO CONFLICT
- CSD4 LDC CSDD
- CSD5 LJM CSDX RETURN
- CSDB DATA 4HNON-
- CSDC DATA C*SHARED DEVICE ACTIVE IN DAT.*
- CSDD DATA C*REMOVABLE DEVICE CONFLICT.*
- EBP SPACE 4,10
- ** EBP - ENABLE BST/BAT PROCESSING FOR SHARED BUFFERED DEVICE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES T5, T6, T7, CM - CM+4.
- *
- * MACROS MONITOR.
- EBP SUBR ENTRY/EXIT
- LDD FN
- SHN 21-11
- PJN EBPX IF NOT SHARED DEVICE
- SHN 21-5-21+11
- PJN EBPX IF NOT BUFFERED DEVICE
- * FLUSH WRITE BUFFERS / DROP ALL BUFFERS.
- EBP1 LDN ZERL CLEAR ASSEMBLY AREA
- CRD CM
- LDD EQ SET EST ORDINAL
- STD CM+3
- LDC BMFW*100 FLUSH ALL WRITE BUFFERS
- STD CM+4
- MONITOR BFMM
- LDN ZERL CLEAR ASSEMBLY AREA
- CRD CM
- LDD EQ SET EST ORDINAL
- STD CM+3
- LDC BMDD*100 DROP ALL BUFFERS ON DEVICE
- STD CM+4
- MONITOR BFMM
- LDD CM+4
- ZJN EBP2 IF COMPLETE
- DELAY 20B DELAY TWO MILLISECONDS
- PAUSE
- UJP EBP1 REISSUE REQUEST
- * CLEAR ACCESS PERMISSIONS IN *BAT*.
- EBP2 LDN ZERL
- * UJN EBP3 (*CMS* CALL)
- EBPA EQU *-1
- CRD CM
- EBPB LDN CBWS CLEAR READ/WRITE PERMISSIONS IN *BAT*
- * LDN CBRS (LVL3 - CLEAR READ PERMISSIONS IN *BAT*)
- STD CM+1
- EBPC LDN ** SET MACHINE INDEX
- STD CM+2
- LDD EQ
- STD CM+4
- MONITOR MTEM
- * ENABLE BST/BAT PROCESSING.
- EBP3 LDD MA WRITE REQUEST
- CWM EBPD,ON
- LDD FN+4
- SHN 3
- STD CM+4 SET MST ADDRESS
- SHN -14
- STD CM+3
- LDN 1 SET WORD COUNT
- STD CM+1
- MONITOR UTEM
- UJP EBPX RETURN
- EBPD VFD 6/BDLL,6/1,6/27,42/0
- LDT SPACE 4,15
- ** LDT - LOAD DEVICE ACCESS TABLE.
- *
- * ENTRY (EL) = EXTENDED MEMORY LABEL TRACK.
- *
- * EXIT (QI) = CURRENT DAT INDEX.
- * (QT) = LAST MST/TRT TRACK ASSIGNED.
- * DEVICE ACCESS TABLE LOADED TO CM.
- *
- * USES CA+1, CM - CM+4, CN - CN+4, T2 - T7.
- *
- * CALLS CEA.
- *
- * MACROS MONITOR.
- LDT1 LDD HN ADVANCE EXTENDED MEMORY ADDRESS
- RAD CN+4
- SHN -14
- RAD CN+3
- LDD HN ADVANCE CM ADDRESS
- RAD CN+2
- SHN -14
- RAD CN+1
- LDT2 LDD MA MOVE REQUEST
- CWD CN
- CRD CM
- MONITOR ECSM ISSUE REQUEST
- SOD T5 DECREMENT BLOCK COUNT
- PJN LDT1 IF NOT END OF DAT
- LDT SUBR ENTRY/EXIT
- * RETRIEVE BAT POINTER WORD *BAET*, IF REQUIRED.
- LDM ECLT SET LABEL TRACK
- STD T6
- LDN ETLT SET ENVIRONMENT TABLE SECTOR
- STD T7
- LDTA RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
- * UJN LDT0 (NO SHARED BUFFERED DEVICES CONFIGURED)
- LDN BAET ADJUST ADDRESS TO BAT POINTER
- RAD CM+4
- SHN -14
- LMC RECS*1000 SET SUBFUNCTION
- RAD CM+3
- LDD MA SET CM ADDRESS
- STD CM+2
- LDN 0
- STD CM+1
- MONITOR ECSM ISSUE REQUEST
- LDD MA READ *BAET*
- CRM BAEI,ON
- * RETRIEVE DAT POINTER WORD *DAET*.
- LDT0 RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
- LDN DAET ADJUST ADDRESS TO DAT POINTER
- RAD CM+4
- SHN -14
- LMC RECS*1000 SET SUBFUNCTION
- RAD CM+3
- LDD MA SET CM ADDRESS
- STD CM+2
- LDN 0
- STD CM+1
- MONITOR ECSM ISSUE REQUEST
- * LDN 0
- STD T7
- LDD MA READ *DAET*
- CRD CM
- LDD CM SET CURRENT DAT TRACK
- STD QT
- LDM LDMP GET DEVICE ALLOCATION WORD FROM MST
- SHN 3
- ADN ALGL DAT TRACK TO (T6)
- CRD T6-4
- LDD CM+4 SET DAT INDEX
- STD QI
- SHN -6 SET BLOCK COUNT
- STD T5
- RJM CEA
- LDD CM+4 MOVE ADDRESS TO REQUEST IMAGE
- STD CN+4
- LDD CM+3
- LMC RECS*1000
- STD CN+3
- LDD CA+1 SET CM ADDRESS
- STD CN+2
- ADD TH
- STD CA+1 ADVANCE ADDRESS FOR TRT RECOVERY
- LDC 77S6+40 SET WORD COUNT FOR TRANSFER
- STD CN+1
- LJM LDT2 ENTER LOOP
- RDE SPACE 4,15
- ** RDE - READ DAT ENTRY.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY FOR DEVICE.
- *
- * EXIT (QS) = DAT INDEX.
- * (T6) = DAT TRACK.
- * (DATB) = DAT ENTRY.
- *
- * USES QS, RE, TS, CM - CM+4.
- *
- * CALLS ADE.
- RDE SUBR ENTRY/EXIT
- LDD FN+4 READ DRIVER WORD
- SHN 3
- ADN MDGL DAT INDEX TO (CM)
- CRD CM
- LDD CM SET DAT ORDINAL FROM INDEX
- LPC 377
- SHN 1
- STD QS
- LDN RECS SET READ SUBFUNCTION
- RJM ADE ACCESS *DAT* ENTRY
- LDD MA READ DAT ENTRY TO PP BUFFER
- CRM DATB,TW
- LDM DATB+4 SET MST/TRT TRACK IN TABLE
- STD TS
- SHN 1-13 ADD DAP STATUS IF SHARED DEVICE
- LPN 2
- RAD RE
- LJM RDEX RETURN
- SDT SPACE 4,15
- ** SDT - SEARCH DEVICE ACCESS TABLE.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (CA+1) = CM ADDRESS (+1000) OF DAT.
- * (CN - CN+3) = DEVICE DESCRIPTION.
- * (QI) = CURRENT DAT INDEX.
- *
- * EXIT (A) = 0 IF ENTRY NOT FOUND.
- * (A) = ADDRESS OF DATB+11 IF ENTRY FOUND.
- * (QS) = INDEX INTO DEVICE ACCESS TABLE.
- * (DI) = DAT INDEX.
- *
- * USES T1, T2, DI, QS, CM - CM+4, CN+4.
- SDT1 LDM DATB+4
- NJN SDT2 IF SHARED DEVICE SLOT
- LDD T2 SAVE INDEX OF HOLE
- STD QS
- SDT2 LDD DI
- ZJN SDT3 IF DNAP BY THIS MACHINE
- LMD T2
- NJN SDT3 IF NOT AT DAT SLOT FOR DEVICE
- LDM DATB+4 SET MST POINTER
- STD CN+4
- SDT3 LDN 2 ADVANCE INDEX
- RAD T2
- LMD QI
- ZJN SDTX IF END OF DAT ENTRIES
- SDT4 LDD RA READ NEXT ENTRY
- SBN 10
- SHN 6
- ADD CA+1
- ADD T2
- CRM DATB,TW
- LDM DATB
- ZJN SDT1 IF POSSIBLE HOLE
- LDN CN
- STD T1
- * COMPARE ENTRY FOR MATCHING FAMILY/PACK NAME + DEVICE NUMBER.
- SDT5 LDM DATB-CN,T1
- LMI T1
- NJN SDT2 IF NO MATCH
- AOD T1
- LMN CN+4
- NJN SDT5 IF NOT 4 BYTES
- LDD T2 SET INDEX TO MATCHING ENTRY
- STD QS
- LDC DATB+11
- SDT SUBR ENTRY/EXIT
- LDD FN+4 READ MST FOR DAT INDEX
- SHN 3
- ADN MDGL
- CRD CM
- LDD CM
- LPC 377 EXPAND DAT INDEX
- SHN 1
- STD DI
- LDN 0 CLEAR SEARCH INDEX
- STD T2
- STD CN+4
- STD QS
- LJM SDT4 ENTER LOOP
- SNT SPACE 4,10
- ** SNT - SET NEXT TRACK IN EXTENDED MEMORY TRACK CHAIN.
- *
- * ENTRY (A) = CURRENT TRACK.
- * (LDMP) = EXTENDED MEMORY MST POINTER.
- *
- * EXIT (A) = NEXT TRACK.
- *
- * USES T0, T1, CM - CM+4.
- SNT SUBR ENTRY/EXIT
- SHN 21-1 REMOVE TRACK BIT
- LMD TH
- STD T0 SET WORD INDEX
- SHN 1-21
- STD T1 SET BYTE INDEX
- LDM LDMP GET FWA OF TRT
- SHN 3
- ADN TRLL
- CRD CM
- LDD CM+3 READ TRT WORD
- LPN 77
- SHN 14
- LMD CM+4
- ADD T0
- CRD CM
- LDM CM,T1 EXTRACT NEXT TRACK
- UJN SNTX RETURN
- UDT SPACE 4,15
- ** UDT - UPDATE DEVICE ACCESS TABLE.
- *
- * ENTRY (RS) = RECOVERY STATUS.
- * (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * DAT ENTRY IN (DATB).
- *
- * EXIT (A) = 0 IF MST/TRT TRACK AVAILABLE.
- * (A) = MESSAGE ADDRESS, IF ERROR.
- *
- * USES QI, QS, QT, TS, T6, T7, CM+3 - CM+7, CN - CN+4.
- *
- * CALLS ABD, CEA, EBP, SNT, WDE.
- UDT5 LDC UDTA EXIT WITH (A) = MESSAGE ADDRESS
- UDT SUBR ENTRY/EXIT
- LDD RS
- ZJN UDT1 IF LEVEL 0 DS/ON LINE RECOVERY
- LDM DATB+11 SET MACHINE ACCESS
- LPC -0
- MMTE *-1
- LMC 0
- MMTE *-1
- STM DATB+11
- UDT1 LDD RE
- LPN 2
- NJN UDT3 IF DEVICE ACCESSED PREVIOUSLY
- LDD QS
- NJN UDT2 IF EMPTY SLOT IN *DAT*
- LDD QI SET INDEX OF ENTRY
- STD QS
- ADN 2 ADVANCE INDEX
- STD QI
- UDT2 LDD RE CHECK MST/TRT TRACK REQUIRED
- LPN 4
- ZJN UDT3 IF NOT REQUIRED
- LDD QT ASSIGN MST/TRT TRACK
- RJM SNT ADVANCE CURRENT TRACK
- ZJN UDT5 IF END OF TRACK CHAIN
- STM DATB+4 SET TRACK IN *DAT* ENTRY
- STD QT
- RJM ABD ALLOCATE BAT FOR DEVICE, IF REQUIRED
- NJP UDTX IF BAT TRACK NOT AVAILABLE
- UDT3 RJM WDE WRITE DAT ENTRY TO ECS
- LDC 4000 FLAG RECOVERY IN PROGRESS
- RAM DATB+11
- LDD RA UPDATE CM COPY OF DAT
- SBN 10
- SHN 6
- ADD CA+1
- ADD QS
- CWM DATB,TW
- * UPDATE MST.
- LDD FN+4 READ DRIVER WORD
- SHN 3
- ADN MDGL
- CRD CN
- LDN ZERL
- CRD CM+3
- LDM DATB+4
- STD TS
- STD T6
- LDD RE
- LPN 2
- ZJN UDT4 IF DEVICE NOT ACCESSED PREVIOUSLY
- LDN 0
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- UDT4 LDD CN SET *DAT* INDEX IN DRIVER WORD
- LPC 6000
- SHN 1
- LMD QS
- SHN -1
- STD CN
- LDD FN+4 STORE MST INFORMATION
- SHN 3
- ADN MDGL
- CWD CN
- SBN MDGL-SDGL
- CWD CM+3
- ADN NVGL-SDGL READ *NVGL*
- CRD CN
- LDM DATB+5 SET BAT EM ADDRESS
- STD CN+1
- LDM DATB+6
- STD CN+2
- LDD FN+4 REWRITE *NVGL*
- SHN 3
- ADN NVGL
- CWD CN
- RJM EBP ENABLE BST/BAT PROCESSING IF REQUIRED
- LDN 0
- LJM UDTX RETURN
- UDTA DATA C* END OF DAT TRACK CHAIN.*
- WDE SPACE 4,15
- ** WDE - WRITE DAT ENTRY TO EXTENDED MEMORY.
- *
- * ENTRY (QS) = DAT INDEX.
- * DAT ENTRY IN (DATB).
- *
- * EXIT (A) = 0.
- * (T6) = DAT TRACK.
- *
- * USES T6, T7, CM - CM+4.
- *
- * CALLS ADE.
- WDE SUBR ENTRY/EXIT
- LDD MA MOVE DAT ENTRY TO MESSAGE BUFFER
- CWM DATB,TW
- LDN WECS SET WRITE SUBFUNCTION
- RJM ADE ACCESS *DAT* ENTRY
- UJN WDEX RETURN
- SPACE 4,10
- ORDH EQU *+5 LOAD ADDRESS FOR *4DH*
- TITLE VERIFY LABEL PARAMETERS.
- CCE SPACE 4,15
- ** CCE - CHECK CHAINED EQUIPMENT.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) .LT. 0 IF FIRST EQUIPMENT IN CHAIN FOUND.
- * (EC) = *STCE* IF FIRST EQUIPMENT NOT FOUND.
- *
- * USES T3, T6, CM - CM+6, CN - CN+4.
- *
- * CALLS CEP, CLP, LRA.
- *
- * MACROS SFA.
- CCE1 RJM LRA LOAD REFERENCE ADDRESS
- ADD T6
- CRD RD
- LDD RE CHECK EQUIPMENT STATUS
- SHN 21-10
- PJN CCE2 IF NOT REMOVABLE DEVICE
- LDD T6
- LMD EQ
- ZJN CCE2 IF INITIAL EQUIPMENT
- SFA EST,T6 READ EST ENTRY
- ADK EQDE
- CRD CM
- RJM CEP COMPARE EQUIPMENT PARAMETERS
- NJN CCE2 IF NO MATCH
- RJM LRA LOAD REFERENCE ADDRESS
- ADD AL
- ADN PFGL
- CRD CM+2
- ADN PUGL-PFGL GET USER NAME
- CRD CN
- RJM CLP CHECK LABEL PARAMETERS
- ZJN CCE3 IF CORRECT UNIT FOUND
- CCE2 AOD T6 READ EST ENTRY
- LMD LO
- NJN CCE1 IF NOT END OF MASS STORAGE EST
- LDN STCE SET CONFIGURATION ERROR
- CCE3 STD EC
- SBN 1
- CCE SUBR ENTRY/EXIT
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD T6 SET START OF EST SCAN
- LDD FN+3
- STM CEFA
- UJN CCE2 ENTER LOOP
- CEP SPACE 4,10
- ** CEP - COMPARE EQUIPMENT PARAMETERS.
- *
- * ENTRY (FN - FN+4) = EST ENTRY OF PRIMARY EQUIPMENT.
- * (CM - CM+4) = EST ENTRY OF DEVICE BEING CHECKED.
- *
- * EXIT (A) = 0 IF MATCHING EQUIPMENTS.
- CEP1 LDD CM+2 TEST FOR SECONDARY CHANNEL
- CEP2 LMD FN+2
- LPC 4677 CHECK CHANNEL ACTIVE, MODE AND PORT
- CEP SUBR ENTRY/EXIT
- LDC **
- CEFA EQU *-1 (DEVICE MNEMONIC)
- LMD CM+3
- NJN CEPX IF NOT SAME TYPE
- LDD FN+1
- LMD CM+1 TEST CHANNELS
- LPC 4677
- ZJN CEP1 IF MATCH ON PRIMARY CHANNEL
- LDD FN+1
- LMD CM+2 REORDER CHANNEL TEST
- LPC 4677
- NJN CEPX IF NO CHANNEL MATCH
- LDD CM+1
- UJN CEP2 TEST FOR SECONDARY CHANNEL
- CLP SPACE 4,15
- ** CLP - CHECK LABEL PARAMETERS.
- *
- * ENTRY (UC) = N/M OF DESIRED UNIT.
- * (CM+2 - CM+6) = FAMILY/PACK NAME.
- * (CN - CN+4) = USER NAME.
- * (DLPB) = UNIT LABEL PARAMETERS.
- *
- * EXIT (A) = 0 IF VALID LABEL.
- * (A) = *STIL* IF REQUESTED UNIT NOT FOUND.
- *
- * USES T1.
- CLP SUBR ENTRY/EXIT
- LDN 0
- STD T1
- CLP1 LDM DLPB,T1 VERIFY FAMILY/PACK NAME
- LMM CM+2,T1
- NJN CLP3 IF NO MATCH
- AOD T1 INCREMENT INDEX
- LMN 4
- NJN CLP1 LOOP FOR FOUR BYTES
- LDD UC CHECK NUMBER OF UNITS
- LMD CM+6
- LPN 77
- NJN CLP3 IF INCORRECT UNIT COUNT
- CLP2 LDM DLPB+1,T1 VERIFY OWNER
- LMM CN-4,T1
- NJN CLP3 IF NO MATCH
- AOD T1 ADVANCE INDEX
- LMN 7
- NJN CLP2 LOOP FOR THREE BYTES
- LDM DLPB+10 CHECK SEVENTH CHARACTER
- LMD CN+3
- SCN 77
- ZJN CLPX IF VALID LABEL
- CLP3 LDN STIL SET ERROR STATUS
- UJN CLPX RETURN
- VDP SPACE 4,15
- ** VDP - VERIFY DEVICE PARAMETERS.
- *
- * ENTRY (CA) = CM ADDRESS OF MST.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF MST PARAMETERS MATCH LABEL.
- * = *STLE* IF ERROR IN FAMILY NAME.
- *
- * USES CM+2 - CM+6, CN - CN+4.
- *
- * CALLS CLP, LRA, VFN.
- VDP2 LDN STLE SET LABEL ERROR STATUS
- VDP SUBR ENTRY/EXIT
- LDD FN+4 GET FAMILY NAME FROM MST
- SHN 3
- ADN PFGL
- CRD CM+2
- RJM VFN
- NJN VDP1 IF VALID NAME
- LDD CM+5 CHECK FOR NULL FAMILY
- SCN 77
- ADD CM+4
- ADD CM+3
- ADD CM+2
- NJN VDP2 IF NOT NULL FAMILY
- VDP1 RJM LRA LOAD REFERENCE ADDRESS
- ADD CA
- ADN PFGL
- CRD CM+2
- ADN PUGL-PFGL READ USER NAME
- CRD CN
- RJM CLP CHECK LABEL PARAMETERS
- UJN VDPX RETURN
- VLP SPACE 4,15
- ** VLP - VERIFY LABEL PARAMETERS.
- *
- * ENTRY (DLPB) LOADED WITH LABEL PARAMETERS.
- * (T5) = EST ORDINAL.
- * (EQ) = PRIMARY EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = STLL WORD OF EQUIPMENT.
- *
- * EXIT (A) = (EC) = 0 IF VALID LABEL.
- * .LT. 0 IF EQUIPMENT NOT FIRST IN CHAIN.
- * (EC) = *STIL* IF ANY UNIT HAS INCORRECT LABEL.
- * (EC) = *STCE* IF ANY UNIT CAUSES CONFIGURATION ERROR.
- * (EC) = *STNR* IF ANY UNIT NOT READY.
- * (EC) = *STLE* IF ANY UNIT HAS INCORRECT LABEL.
- * (FN - FN+4) = EST ENTRY OF PRIMARY EQUIPMENT.
- * (FS - FS+4) = STLL WORD OF PRIMARY EQUIPMENT.
- * (T5) = PRIMARY EST ORDINAL.
- *
- * USES T0 - T7, EC, UC, CA, CA+1, FN - FN+4, FS - FS+4.
- *
- * CALLS CCE, LRA, VDP.
- *
- * MACROS SFA, SMSTF.
- VLP12 RJM CCE CHECK CHAINED EQUIPMENT
- MJN VLPX IF FIRST EQUIPMENT FOUND
- VLP13 LDD EQ RESTORE PRIMARY EQUIPMENT PARAMETERS
- STD T5
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD RD
- SFA EST,T5
- ADK EQDE
- CRD FN
- LDD FN+4 RESTORE STATUS WORD
- SHN 3
- ADN STLL
- CRD FS
- LDD EC EXIT WITH (A) = ERROR CODE
- VLP SUBR ENTRY/EXIT
- RJM LRA LOAD REFERENCE ADDRESS
- ADD EQ
- CWD RD REWRITE RECOVERY TABLE
- LDN 0 CLEAR CURRENT UNIT COUNT
- STD T7
- STD EC
- LDM DLPB+4 SET TOTAL UNIT COUNT
- LPN 77
- STD T3
- LPN 7
- STD T2
- STD UC SET CURRENT UNIT POSITION
- LMD T3
- ZJN VLP1 IF FIRST EQUIPMENT IN CHAIN
- LJM VLP12 CHECK CHAINED EQUIPMENT
- * SET PARAMETERS FOR THIS EQUIPMENT.
- VLP1 LDD AL SET ADDRESS OF CURRENT UNITS MST
- STD CA
- LDN 0 CLEAR CURRENT UNIT COUNT FOR THIS EQUIP.
- STD T6
- LDD FN+4
- SHN 3
- ADN DDLL
- CRD CM
- LDD CM SET UNIT COUNT FOR THIS EQUIPMENT
- SHN -3
- LPN 7
- STD T3
- VLP2 RJM LRA LOAD REFERENCE ADDRESS
- ADD CA
- ADN STLL READ STATUS WORD
- CRD CM
- * VERIFY ALL UNITS FOR THIS EQUIPMENT.
- LDD CM+1
- LPN 77
- ZJN VLP5 IF NO ERROR THIS UNIT
- STD EC SET ERROR CODE
- LDD T7
- ZJN VLP4 IF FIRST UNIT OF EQUIPMENT
- LDN STCE *CONFIGURATION ERROR*
- VLP3 STD EC
- VLP4 LJM VLP13
- VLP5 RJM VDP VERIFY DEVICE PARAMETERS
- NJN VLP3 IF LABEL CONFLICT
- * LABEL FOR THIS UNIT VALID - PROCEED TO NEXT UNIT.
- LDD EQ
- LMD T5
- ZJN VLP6 IF FIRST EQUIPMENT IN CHAIN
- SMSTF LDIU SET DEVICE IN USE
- * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CWD RD
- VLP6 LDD T7
- LMD T2
- ZJN VLP7 IF NO MORE UNITS
- AOD T7 SET N/M FOR NEXT UNIT
- SHN 3
- ADD T2
- STD UC
- LDD T6
- LMD T3
- ZJN VLP10 IF NO MORE UNITS THIS EQUIPMENT
- AOD T6 ADVANCE UNIT NUMBER
- LDN MSTL ADVANCE TABLE ADDRESS
- RAD CA
- LJM VLP2
- * ALL UNITS CHECKED.
- VLP7 LDD FN
- SHN 0-10
- LPN 1
- LMN 1
- ZJN VLP9 IF DEVICE REMOVABLE
- LDD FN+4 GET UNIT COUNT FROM MST
- SHN 3
- ADN DDLL
- CRD CN
- LDD CN
- LPN 7
- LMD T7
- ZJN VLP9 IF CORRECT NUMBER OF UNITS
- VLP8 LDN STCE SET CONFIGURATION ERROR
- VLP9 STD EC
- LJM VLP13
- * PROCEED TO NEXT EQUIPMENT IN CHAIN.
- VLP10 LDD FS+4
- SHN -3
- NJN VLP11 IF EQUIPMENT LINKED
- RJM CCE CHECK CHAINED EQUIPMENT
- PJN VLP8 IF NO EQUIPMENT TO CHAIN
- LDD T6 SET EQUIPMENT LINK
- SHN 3
- RAD FS+4
- * REREAD EST ENTRY, SINCE (FN+4) WAS DESTROYED BY *CCE*.
- SFA EST,T5 REREAD EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN+4 UPDATE MST
- SHN 3
- ADN STLL
- CWD FS
- LDD T6 SET NEXT EQUIPMENT
- VLP11 STD T5
- RJM LRA LOAD REFERENCE ADDRESS
- ADD T5
- CRD RD
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN+4 READ MST STATUS WORD
- SHN 3
- ADN STLL
- CRD FS
- LJM VLP1 LOOP FOR NEXT EQUIPMENT IN CHAIN
- SPACE 4,10
- ** COMMON DECKS.
- QUAL VFN
- FN EQU CM+2
- *CALL COMPVFN
- QUAL *
- VFN EQU /VFN/VFN
- SPACE 4,10
- ORDG EQU *+5 LOAD ADDRESS FOR *4DG*
- ORDJ EQU *+5 LOAD ADDRESS FOR *4DJ*
- TITLE *CMS* DEVICE VERIFICATION - COMMON ROUTINES.
- CUS SPACE 4,15
- ** CUS - CHECK UNLOAD STATUS.
- *
- * ENTRY (A) = 0 IF CHECKING DEVICE ACTIVITY.
- * = MID IF PROCESSING UNLOAD.
- *
- * EXIT (A) .LT. 0 IF DEVICE INACCESSIBLE.
- * = (DATB) = 0 IF DEVICE INACTIVE.
- * .GT. 0 IF DEVICE ACTIVE.
- *
- * USES T3, T7.
- *
- * CALLS RIL.
- *
- * MACROS ENDMS.
- CUS SUBR ENTRY/EXIT
- STD T3
- RJM RIL
- MJN CUSX IF DEVICE NOT ACCESSIBLE
- ENDMS
- * LDN 0
- * STD T7
- CUS1 LDN 5 ADVANCE DIT INDEX
- RAD T7
- LMC 5*MISD+5
- ZJN CUS2 IF END OF DIT
- LDM DISS-5+4,T7
- ZJN CUS1 IF DIT SLOT EMPTY
- LMD T3
- ZJN CUS1 IF ASSIGNED TO THIS MACHINE
- CUS2 STM DATB
- UJN CUSX RETURN
- RIL SPACE 4,15
- ** RIL - READ INDEPENDENT SHARED DEVICE LABEL.
- *
- * ENTRY (A) .LT. 0, IF WAIT ON NOT READY DESIRED.
- * (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = READ STATUS.
- * (T7) = 0 IF LABEL READ.
- * (BFMS) = LABEL SECTOR.
- *
- * CALLS CLT, RDS.
- *
- * MACROS ENDMS, SETMS.
- RIL2 SETMS IO,(DE,DF,NR)
- RJM CLT
- NJN RIL3 IF LABEL TRACK KNOWN
- LDD CM+7
- ZJN RIL1 IF NO PREVIOUS LABEL TRACK
- STD T6
- RIL3 LDN 0 SET LABEL SECTOR
- STD T7
- LDC BFMS READ LABEL SECTOR
- RJM RDS
- MJN RIL1 IF READ ERROR
- RIL SUBR ENTRY/EXIT
- PJN RIL2 IF RETURN ON NOT READY
- SETMS IO,(DE,DF)
- RJM CLT
- NJN RIL3 IF LABEL TRACK FOUND
- RIL1 ENDMS
- LCN 1
- UJN RILX RETURN
- SPACE 4,10
- ORDE EQU *+5 LOAD ADDRESS FOR *4DE*
- TITLE *CMS* ACTIVE/INACTIVE DEVICE ROUTINES.
- CAD SPACE 4,15
- ** CAD - CHECK ACTIVE DEVICES.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (CMSD) ADVANCED IF ERROR SET ON DEVICE.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES IR+2, CM - CM+4, CN - CN+4, FS - FS+4.
- *
- * CALLS SES, UMS, VLP, *5ME*.
- *
- * MACROS EXECUTE, MONITOR.
- CAD8 AOM /CMS/CMSD ADVANCE DEVICE IN ERROR COUNT
- CAD SUBR ENTRY/EXIT
- SHN 21-6
- MJN CADX IF DEVICE UNAVAILABLE
- RJM UMS UPDATE MST
- NJN CADX IF DEVICE INTERLOCKED
- LDD FN+4 READ MST WORDS
- SHN 3
- ADN DULL
- CRD CM
- ADN STLL-DULL
- CRD FS
- SBN STLL-PFGL READ PF DESCRIPTION
- CRM DLPB,TW
- LDD FS+1
- LPN 77
- NJN CAD8 IF ERROR STATUS PRESENT
- CAD1 LDD CN+4 CHECK ERROR IDLE FLAG
- LPN MGDEI
- ZJN CAD2 IF NOT SET
- LDN STEI SET ERROR STATUS IN MST
- RJM SES
- CAD2 LDD FN
- SHN 21-10
- PJN CAD3 IF NOT REMOVABLE DEVICE
- LDD CM+4 CHECK ACTIVITY
- LPC 3777
- ADD FS+3
- NJN CAD3 IF ACTIVE FILES
- LDD FS
- SHN 21-2
- MJN CAD3 IF CHECKPOINT PENDING
- SHN 3+21-3
- MJN CAD4 IF LOCAL UNLOAD SET
- CAD3 RJM VLP VERIFY LABEL PARAMETERS
- MJN CAD4 IF NOT FIRST EQUIPMENT IN CHAIN
- NJN CAD5 IF VERIFICATION ERRORS
- LDM SDIF
- NJN CAD6 IF INTERLOCKS ON ISD
- LDN SSTL CHECK SYSTEM STATUS
- CRD CM
- LDD CM
- LPN 14
- CAD4 NJN CAD6 IF MS VALIDATION DISABLED / NOT PRESENT
- LDD EQ
- STD CM+1
- LDN VEIS REQUEST MS VALIDATION
- STD CM+3
- MONITOR VMSM
- LDD CM+1
- ZJN CAD6 IF NO ERRORS
- STD IR+2
- EXECUTE 5ME PROCESS ERRLOG MESSAGES
- LDN STVE SET ERROR STATUS IN MST
- CAD5 RJM SES
- * LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- AOM /CMS/CMSD ADVANCE DEVICE IN ERROR COUNT
- CAD6 LJM CADX RETURN
- CID SPACE 4,15
- ** CID - CHECK INACTIVE DEVICES.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT INACTIVE EQUIPMENTS WITH UNLOAD REQUESTED
- * RESTORED TO ORIGINAL AND UNAVAILABLE STATE.
- * TO *GDT2* IF RECOVERY INTERLOCK UNAVAILABLE.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES CM - CM+4, FN - FN+4, FS - FS+4.
- *
- * CALLS CDB, CDD, CDS, CUS, IAM, IES, IFR, ILK, RDE, RGM, UIS,
- * WDE.
- *
- * MACROS MMTE, SFA, SMSTF.
- CID9 RJM UIS SET UNLOAD STATUS IN DIT ENTRY
- LDD FN
- LPC -100
- LMD HN SET DEVICE UNAVAILABLE
- STD FN
- SFA EST,EQ
- ADK EQDE
- CWD FN
- SMSTF LDUL
- CID SUBR ENTRY/EXIT
- RJM CDS CHECK DEVICE STATUS
- NJN CIDX IF DEVICE ACTIVITY
- RJM ILK ENSURE PFM-S NOT ACTIVE ON DEVICE
- RJM CDS RECHECK DEVICE
- NJN CIDX IF NEW DEVICE ACTIVITY
- LDD FN
- SHN 21-10
- PJN CID9 IF NON-REMOVABLE DEVICE
- RJM RGM READ GLOBAL MST WORDS
- NJN CIDX IF INTERLOCK SET
- LDD CN+4 CHECK GLOBAL UNLOAD
- LPN MGUNL
- NJN CIDX IF GLOBAL UNLOAD SET
- STM DATB
- RJM CBF CHECK FOR BUFFERS TO FLUSH
- NJN CIDX IF UNABLE TO FLUSH ALL BUFFERS
- UJMF CID5
- LDN DATI GET DAT INTERLOCK
- RJM IFR
- ZJN CID2 IF FLAG REGISTER INTERLOCKED
- LJM /CMS/GDT1 RECALL *CMS*
- CID2 RJM RDE READ DAT ENTRY
- LDD QS
- ZJN CID4 IF NO DAT ENTRY
- LDM DATB+11 CLEAR ACCESS BY THIS MACHINE
- LPC -0
- MMTE *-1
- STM DATB+11
- NJN CID3 IF ALL ACCESSES NOT CLEARED
- STM DATB CLEAR DAT ENTRY
- CID3 RJM WDE STORE DAT ENTRY
- CID4 LCN DATI DROP FLAG REGISTER INTERLOCK
- RJM IFR
- CID5 LDD FN
- LPN 20
- ZJN CID6 IF NOT ISD
- STM DATB
- LDD FS+2 CHECK UNLOAD STATUS
- RJM CUS
- CID6 LDM DATB
- NJN CID7 IF DEVICE NOT UNLOADED IN ALL MACHINES
- LDN MGUNL SET GLOBAL UNLOAD
- RAD CN+4
- LDD FN+4 STORE DEVICE ACTIVITY WORD
- SHN 3
- ADN ACGL
- CWD CN
- CID7 RJM /CMS/IAM ISSUE ACCOUNTING MESSAGE
- RJM IES INITIALIZE EQUIPMENT STATUS
- SMSTF LDUL SET DEVICE UNLOADED
- LDM DATB
- NJN CID8 IF DEVICE NOT UNLOADED ON ALL MACHINES
- RJM CDD CLEAR DEVICE DESCRIPTION
- CID8 LCN 0 DISABLE *MRL* REWRITE OF RECOVERY TABLES
- LJM CIDX RETURN
- TITLE *CMS* ACTIVE/INACTIVE DEVICE SUBROUTINES.
- CBF SPACE 4,15
- ** CBF - CHECK FOR BUFFERS TO FLUSH.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) .NE. 0, IF UNFLUSHED BUFFERS ARE STILL PRESENT.
- * IF BUFFERED DEVICE, I/O BUFFERS FLUSHED AND RELEASED.
- * IF SHARED BUFFERED DEVICE, *BAT* AND *BST* PERMISSIONS
- * ARE RELEASED AND *BST* PROCESSING IS DISABLED.
- *
- * USES T6, CM - CM+4.
- *
- * MACROS DELAY, PAUSE, MONITOR.
- CBF SUBR ENTRY/EXIT
- LDD FN CHECK IF BUFFERED DEVICE
- LPN 40
- ZJN CBFX IF NOT A BUFFERED DEVICE
- LDD TH SET MAXIMUM RETRY COUNT
- STD T6
- * FLUSH AND RELEASE BUFFERS - RELEASE *BAT*/*BST* PERMISSIONS.
- CBF1 LDN ZERL CLEAR ASSEMBLY AREA
- CRD CM
- LDD FN
- SHN 21-11
- MJN CBF2 IF SHARED BUFFERED DEVICE
- LDD T5 SET EST ORDINAL
- STD CM+3
- LDC BMFW*100 FLUSH ALL WRITE BUFFERS
- STD CM+4
- MONITOR BFMM
- LDN ZERL CLEAR ASSEMBLY AREA
- CRD CM
- LDD T5 SET EST ORDINAL
- STD CM+3
- LDC BMDD*100 DROP ALL BUFFERS ON DEVICE
- STD CM+4
- MONITOR BFMM
- UJN CBF3 CHECK STATUS
- CBF2 LDD T5 SET EST ORDINAL
- STD CM+4
- LDN RBPS RELEASE *BAT*/*BST* ACCESS PERMISSIONS
- STD CM+1
- MONITOR MTEM
- CBF3 LDD CM+4 CHECK STATUS
- ZJN CBF4 IF SUCCESSFUL
- DELAY 200B DELAY 16 MILLISECONDS
- PAUSE
- SOD T6
- NJP CBF1 IF RETRY COUNT NOT EXHAUSTED
- LDN 1 RETURN ERROR RESPONSE
- LJM CBFX EXIT
- * DISABLE *BST* PROCESSING.
- CBF4 LDD FN
- SHN 21-11
- PJN CBF5 IF NOT SHARED BUFFERED DEVICE
- LDD MA WRITE REQUEST
- CWM CBFB,ON
- LDD FN+4
- SHN 3
- STD CM+4 SET MST ADDRESS
- SHN -14
- STD CM+3
- LDN 1 SET WORD COUNT
- STD CM+1
- MONITOR UTEM
- CBF5 LDN 0 RETURN SUCCESSFUL RESPONSE
- UJP CBFX RETURN
- CBFB VFD 6/BDLL,6/1,6/27,42/1
- CDD SPACE 4,10
- ** CDD - CLEAR DEVICE DESCRIPTION.
- *
- * ENTRY (EQ) = EST ORDINAL.
- *
- * EXIT DEVICE DESCRIPTION CLEARED.
- * EXTENDED MEMORY COPY OF MST/TRT CLEARED.
- *
- * USES CM - CM+7, CN - CN+4, FN - FN+4.
- *
- * MACROS MONITOR, SFA, UJMF.
- CDD SUBR ENTRY/EXIT
- SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD FN
- LDN ZERL
- CRD CN
- LDD FN+4
- SHN 3
- ADN SDGL
- CRD CM+3
- ADN PUGL-SDGL CLEAR USER DESCRIPTION
- CWD CN
- SBN PUGL-PFGL CLEAR DEVICE DESCRIPTION
- CWD CN
- UJMF CDDX
- SBN PFGL
- STD CM+2
- SHN -14
- LMC GLGL*100-100 SET WORD COUNT FOR ECS TRANSFER
- STD CM+1
- LDD CM+3
- ADD CM+4
- ZJN CDDX IF NOT SHARED DEVICE
- CDDA LDN 1 MACHINE INDEX*2 + 1
- RAD CM+7
- LDD FN+4 STORE DEVICE INTERLOCK STATUS
- SHN 3
- ADN SDGL
- CWD CM+3
- LDC WECS*1000 UPDATE GLOBAL MST IN ECS
- RAD CM+3
- MONITOR ECSM
- LDD EQ SET EST ORDINAL
- STD CM+1
- LDN CDIS INSERT MONITOR SUBFUNCTION
- STD CM+3
- MONITOR STBM CLEAR TRT IN ECS
- LJM CDDX RETURN
- CDS SPACE 4,10
- ** CDS - CHECK DEVICE STATUS.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF NO ACTIVITY AND UNLOAD SET.
- * (FS - FS+4) = *STLL* WORD OF MST.
- *
- * USES CM - CM+4.
- CDS SUBR
- LDD FN+4
- SHN 3
- ADN DULL
- CRD CM
- ADN STLL-DULL
- CRD FS
- LDD FS
- LPN MLUNL+MLCKP+MLDUL
- LMN MLUNL
- NJN CDSX IF CHECKPOINT SET / NO LOCAL UNLOAD
- LDD CM+4 CHECK ACTIVITY
- LPC 3777
- ADD FS+3
- NJN CDSX IF ACTIVE FILES ON DEVICE
- LDK INWL PROHIBIT UNLOAD IF *MREC* ACTIVE
- CRD CM
- LDD CM+3
- SHN -6
- NJN CDSX IF *MREC* ACTIVE
- LDD FS+4
- LPN MLUAI
- UJN CDSX RETURN
- ILK SPACE 4,10
- ** ILK - INTERLOCK *PFM* FROM ACCESSING DEVICE DURING UNLOAD.
- *
- * ENTRY (EQ) = EQUIPMENT TO UNLOAD.
- * (FN - FN+4) = EST OF EQUIPMENT TO UNLOAD.
- *
- * EXIT TO *RCL* IF UNABLE TO INTERLOCK.
- *
- * USES T5, T7, CM - CM+4, FN - FN+4.
- *
- * CALLS CUT, SUT.
- *
- * MACROS SFA.
- ILK6 LDD EQ RESET DIRECT CELLS
- STD T5
- SFA EST
- ADK EQDE
- CRD FN
- LDN 0 CLEAR EST ORDINAL OF PROCESSED ENTRY
- STM ILKA
- ILK SUBR ENTRY/EXIT
- LDD FN+4 READ PF DESCRIPTION
- SHN 3
- ADN PFGL
- CRD FN
- ADN PUGL-PFGL
- CRD CM
- LDD CM+3 SET DEVICE MASK
- LPN 17
- SHN 14
- LMD CM+4
- SHN -10
- STM ILKB
- LDC ** SET EQUIPMENT FROM PREVIOUS CALL
- ILKA EQU *-1
- NJN ILK1 IF PREVIOUS EQUIPMENT
- LDD LO
- SBN 1
- ILK1 STD T5
- AOD T5
- * SEARCH FOR MASTER DEVICES TO INTERLOCK AGAINST *PFM*.
- ILK2 SOD T5
- ZJN ILK6 IF END OF EQUIPMENTS
- SFA EST
- ADK EQDE
- CRD CM
- LDD CM CHECK DEVICE CHARACTERISTICS
- SHN 21-13
- PJN ILK2 IF NOT MASS STORAGE
- SHN 13-6
- MJN ILK2 IF DEVICE UNAVAILABLE
- LDD T5
- SBD EQ
- ZJN ILK4 IF EQUIPMENT TO UNLOAD
- LDD CM+4
- SHN 3
- ADN PUGL
- CRD CM
- SBN PUGL-PFGL
- CRD T7
- LDD CM+4
- LPC **
- ILKB EQU *-1
- ZJN ILK2 IF NOT A MASTER FOR DEVICE TO UNLOAD
- LDD FN CHECK FOR PROPER FAMILY
- LMD T7
- ILK3 NJN ILK2 IF NO MATCH ON FAMILY
- LDD FN+1
- LMD T7+1
- NJN ILK2 IF NO MATCH ON FAMILY
- LDD FN+2
- LMD T7+2
- NJN ILK2 IF NO MATCH ON FAMILY
- LDD FN+3
- LMD T7+3
- SCN 77
- NJN ILK3 IF NO MATCH ON FAMILY
- ILK4 RJM SUT SET UTILITY INTERLOCK FOR DEVICE
- NJN ILK5 IF INTERLOCK NOT SET
- * INTERLOCK MAY BE IMMEDIATELY CLEARED SINCE IT IS ONLY
- * SET TO INSURE *PFM* HAS NOTICED THE UNLOAD REQUEST FOR THE
- * DEVICE.
- RJM CUT
- LJM ILK2 PROCESS NEXT EQUIPMENT
- ILK5 LDD T5 SAVE EQUIPMENT FOR NEXT INTERLOCK TRY
- STM /CMS/RCLA+2
- LDN PIRR SET WAITING FOR PF INTERLOCK CONDITION
- LJM /CMS/RCL RECALL
- RGM SPACE 4,15
- ** RGM - READ GLOBAL MST WORDS.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = DEVICE INTERLOCK STATUS.
- * (CN - CN+4) = ACGL WORD OF MST.
- * (CM - CM+4) = SDGL WORD OF MST.
- *
- * USES CM - CM+7, CN - CN+4.
- *
- * CALLS RIL.
- *
- * MACROS ENDMS, MONITOR, UJMF.
- RGM0 LDN 0 READ INDEPENDENT SHARED DEVICE LABEL
- RJM RIL
- MJN RGM1 IF DEVICE NOT READY
- ENDMS
- LDM N4SS+SDGL*5+4 CHECK FOR SOFTWARE RESERVE/INTERLOCK
- LPN 77
- NJN RGMX IF SOFTWARE RESERVE OR INTERLOCK
- LDD MA
- CWM N4SS,TR
- LDD MA
- UJN RGM4 READ MST WORDS
- RGM1 LDD T6
- ZJN RGM3 IF NO LABEL TRACK FOUND
- UJN RGMX RETURN
- RGM2 LDD FN
- SHN 21-4
- MJN RGM0 IF ISHARED DEVICE
- RGM3 LDD FN+4 READ DEVICE ACTIVITY WORD
- SHN 3
- RGM4 ADN ACGL
- CRD CN
- ADN SDGL-ACGL READ DEVICE INTERLOCK WORD
- CRD CM
- LDD CM+4 EXTRACT INTERLOCK STATUS
- LPN 1
- RGM SUBR ENTRY/EXIT
- UJMF RGM2 NON MMF SYSTEM
- LDD FN+4 READ DEVICE INTERLOCK WORD
- SHN 3
- ADN SDGL
- CRD CM+3
- LDD CM+3 CHECK EXTENDED MEMORY POINTER
- ADD CM+4
- ZJN RGM3 IF NOT SHARED DEVICE
- LDD MA SET CM ADDRESS FOR TRANSFER
- STD CM+2
- LDC RECS*1000 SELECT READ SUBFUNCTION
- RAD CM+3
- LDC SDGL*100 SET WORD COUNT
- STD CM+1
- MONITOR ECSM GET MST WORDS FROM ECS
- LDD MA
- UJN RGM4 READ MST WORDS
- UIS SPACE 4,10
- ** UIS - UPDATE INDEPENDENT SHARED DEVICE TABLES.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = *EQDE* WORD OF EST ENTRY.
- *
- * USES T1.
- *
- * CALLS CDC, RIL, SMI, WDS.
- *
- * MACROS ENDMS.
- UIS SUBR
- LDD FN
- SHN 21-4
- PJN UISX IF NOT INDEPENDENT SHARED DEVICE
- RJM RIL READ LABEL
- MJN UISX IF LABEL NOT READ
- RJM SMI
- STD T1 SET DIT INDEX
- SHN 2
- RAD T1
- LDM DISS-5+3,T1
- SCN 2
- LMN 2 SET UNLOAD STATUS
- STM DISS-5+3,T1
- RJM CDC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF REWRITE LABEL
- RJM WDS
- ENDMS
- UJN UISX RETURN
- UMS SPACE 4,15
- ** UMS - UPDATE MASS STORAGE TABLES.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF UPDATE COMPLETE / UNNECESSARY.
- *
- * USES CM - CM+4.
- *
- * CALLS RGM.
- *
- * MACROS MONITOR, UJMF.
- UMS SUBR ENTRY/EXIT
- RJM RGM READ GLOBAL MST WORDS
- NJN UMSX IF DEVICE INTERLOCKED
- LDD FN
- LPC 1S9
- ZJN UMSX IF NOT SHARED EQUIPMENT
- LDD T5 REQUEST MST/TRT UPDATE
- STD CM+1
- LDN UTRS
- STD CM+3
- MONITOR STBM ISSUE REQUEST
- * LDN 0
- UJN UMSX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCUT
- *CALL COMPSUT
- SPACE 4,10
- QUAL CMS
- CAD EQU /RDD/CAD
- CID EQU /RDD/CID
- QUAL *
- USE LITERALS
- ERRNG BFMS-* OVERLAY OVERFLOW INTO BUFFER
- POV SPACE 4,10
- ** POV - MODIFY INSTRUCTIONS AS REQUIRED FOR CM/MMF RECOVERY.
- POV LDD IR+2 SET PREVIOUS EQUIPMENT OF INTERLOCK
- STM ILKA
- LDM MMFP
- ZJP POV5 IF DO NOT PRESET FOR MMF
- LDC MMFL
- CRD CM
- LDD CM+4 SET MACHINE INDEX
- RAM EBPC
- LPN 77
- SHN 1
- RAM CDDA
- LDD CM+1
- SHN 21-11
- MJN POV0 IF SHARED BUFFERED DEVICES ARE CONFIGURED
- ISTORE LDTA,(UJN LDT0) DISABLE *BAET* READ
- POV0 LDC L"QUAL" SET LIST ADDRESS
- STD T1
- UJN POV2 MODIFY INSTRUCTIONS
- POV1 STD T0
- LDN PSNI REPLACE INSTRUCTION WITH *PSN*
- STI T0
- AOD T1 ADVANCE LIST ADDRESS
- POV2 LDI T1
- NJN POV1 LOOP TO END OF TABLE
- LDC T"QUAL" SET LIST ADDRESS
- STD T1
- UJN POV4 ENTER LOOP
- POV3 STD T0
- LDD CM+3 ADD MACHINE MASK TO INSTRUCTION
- LMI T0
- STI T0
- AOD T1
- POV4 LDI T1
- NJN POV3 IF MORE INSTRUCTIONS
- POV5 LDD IR
- LMC 2RCM
- ZJN POV6 IF *CMS* CALL
- LDD RS CHECK RECOVERY STATUS
- LPN FLMK
- LMN FLCM
- NJN POV7 IF NOT LEVEL 3 RECOVERY
- ISTORE EBPB,(LDN CBRS) CLEAR ONLY READ PERMISSIONS IN *BAT*
- UJN POV7
- POV6 ISTORE EBPA,(UJN EBP3)
- POV7 LJM RDDX RETURN
- * LIST OF INSTRUCTIONS TO BE PRESET.
- L"QUAL" BSS 0
- L"QUAL" HERE
- ERRZR L"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE TABLE
- T"QUAL" BSS 0
- T"QUAL" HERE
- ERRZR T"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- QUAL
- CSD EQU /RDD/CSD
- CSDB EQU /RDD/CSDB
- CSDC EQU /RDD/CSDC
- CUS EQU /RDD/CUS
- EBP EQU /RDD/EBP
- LDT EQU /RDD/LDT
- RDE EQU /RDD/RDE
- UDT EQU /RDD/UDT
- VFN EQU /RDD/VFN
- VLP EQU /RDD/VLP
- WDE EQU /RDD/WDE
- ORDE EQU /RDD/ORDE
- ORDG EQU /RDD/ORDG
- ORDH EQU /RDD/ORDH
- ORDJ EQU /RDD/ORDJ
- SPACE 4,10
- OVERFLOW ORDD,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DE - *CMS* UNAVAILABLE DEVICE ROUTINES.
- TITLE
- IDENT 4DE,/RDE/RDEX
- *COMMENT MSM - *CMS* UNAVAILABLE DEVICE ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994.
- *** *4DE* CONTAINS CODE FOR *CMS* UNAVAILABLE DEVICE PROCESSING.
- QUAL RDE
- ORG ORDE
- RDE SUBR ENTRY/EXIT
- UJN RDEX RETURN
- TITLE CHECK UNAVAILABLE DEVICE.
- CUD SPACE 4,15
- ** CUD - CHECK UNAVAILABLE DEVICES.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (RC) = NUMBER OF EQUIPMENTS TO RECOVER.
- * (RE) SET WITH EQUIPMENTS TO RECOVER.
- * (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * USES FN, RC, CM+1 - CM+7, FS - FS+4.
- *
- * CALLS CDA, CDI, CGU, SES, VLP.
- *
- * MACROS MONITOR, SFA.
- CUD6 RJM CGU CHECK GLOBAL UNLOAD
- CUD SUBR ENTRY/EXIT
- RJM CDA
- MJN CUDX IF RECOVERY INHIBITED
- NJN CUD6 IF DEVICE UNLOADED
- LDD FN
- SHN 21-10
- MJN CUD1 IF REMOVABLE DEVICE
- SHN 11+21-11
- PJN CUD1 IF NON-SHARED DEVICE
- LDD FN+4 GET EXTENDED MEMORY ADDRESS OF MST/TRT
- SHN 3
- ADN SDGL
- CRD CM+3
- ADN ALGL-SDGL SET CM ADDRESS FOR MST UPDATE
- STD CM+2
- SHN -14
- LMC GLGL*100-ALGL*100
- STD CM+1
- LDD CM+3
- ADD CM+4
- ZJN CUD1 IF DEVICE NOT PREVIOUSLY RECOVERED
- LDD CM+7
- ADD CM+6
- ADD CM+5
- NJN CUD4 IF DEVICE ACCESSED PREVIOUSLY
- CUD1 RJM VLP VERIFY LABEL PARAMETERS
- MJN CUD2 IF NOT FIRST EQUIPMENT IN CHAIN
- NJN CUD3 IF VERIFY ERRORS
- LDC 200 SET EQUIPMENT RECOVERY
- RAD RE
- AOD RC ADVANCE RECOVERY COUNT
- CUD2 LJM CUDX RETURN
- CUD3 RJM SES SET ERROR STATUS
- RJM CDI CLEAR ISD INTERLOCKS
- LCN 0
- UJN CUD2 RETURN
- CUD4 LDD FN
- SHN 21-4
- MJN CUD5 IF INDEPENDENT SHARED DEVICE
- LDN ALGL
- RAD CM+4
- LDC RECS*1000 SET MONITOR SUBFUNCTION
- RAD CM+3
- MONITOR ECSM UPDATE GLOBAL MST FROM ECS
- CUD5 LDN 0 CLEAR UNAVAILABLE STATUS
- SBD HN
- RAD FN
- SFA EST,EQ REWRITE EST ENTRY
- ADK EQDE
- CWD FN
- UJN CUD2 RETURN
- TITLE SUBROUTINES.
- CGU SPACE 4,10
- ** CGU - CHECK GLOBAL UNLOAD.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (CN - CN+4) = *ACGL* WORD OF MST.
- *
- * USES CM - CM+7.
- *
- * CALLS CIU.
- *
- * MACROS MONITOR.
- CGU1 RJM CIU CHECK ISD GLOBALLY UNLOADED
- CGU SUBR ENTRY/EXIT
- LDD FN+4
- SHN 3
- ADN MDGL READ DRIVER WORD FOR DAT INDEX
- CRD CM
- SBN MDGL-SDGL GET EXTENDED MEMORY POINTER
- CRD CM+3
- SBN SDGL-ACGL
- CRD CN
- LDD FN
- LPN 20
- NJN CGU1 IF ISD
- LDD CM
- LPC 377
- ZJN CGUX IF LINK TO DAT SLOT CLEARED
- LDD CM+3
- ADD CM+4
- ZJN CGUX IF NON-SHARED DEVICE
- LDN ACGL
- RAD CM+4
- SHN -14
- LMC RECS*1000 UPDATE ACTIVITY WORD FROM ECS
- RAD CM+3
- LDN PFGL-ACGL SET WORD COUNT FOR ECS TRANSFER
- SHN 6
- STD CM+1
- LDD MA READ MST DATA TO MESSAGE BUFFER
- STD CM+2
- MONITOR ECSM
- LDD MA
- CRD CM+3
- LDD CM+3 SAVE DEVICE UP/DOWN STATUS
- STD CN
- LDD CM+7 SET GLOBAL UNLOAD STATUS
- LPN MGUNL
- STD CN+4
- LDD MA
- ADN PFGL-ACGL
- CRD CM
- LDD FN+4
- SHN 3
- ADN ACGL STORE UNLOAD STATUS IN CMR
- CWD CN
- ADN PFGL-ACGL STORE DEVICE DESCRIPTION
- CWD CM
- LJM CGUX RETURN
- CIU SPACE 4,15
- ** CIU - CHECK INDEPENDENT SHARED DEVICE UNLOADED.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (CN - CN+4) = *ACGL* WORD OF MST.
- *
- * USES CM - CM+6.
- *
- * CALLS CUS, VFN.
- CIU SUBR ENTRY/EXIT
- LDD FN
- SHN 21-10
- PJN CIUX IF NOT REMOVABLE
- LDD FN+1
- SHN 0-11 CHECK CHANNEL STATUS
- LMN 4
- ZJN CIU1 IF PRIMARY CHANNEL ALIVE AND WELL
- LDD FN+2
- SHN 0-11 TEST SECONDARY CHANNEL
- LMN 4
- NJN CIUX IF CHANNEL UNAVAILABLE
- *CIU1 LDN 0
- CIU1 RJM CUS
- MJN CIU4 IF DEVICE INACCESSIBLE
- ZJN CIU2 IF NO ONE ACCESSING DEVICE
- LDN MGUNL
- CIU2 LMN MGUNL SET/CLEAR GLOBAL UNLOAD
- STD CN+4
- NJN CIU4 IF SETTING UNLOAD
- CIU3 LDD MA
- CWM N4SS+5*PFGL,ON
- SBN 1 VERIFY FAMILY/PACK NAME
- CRD CM+2
- RJM VFN
- NJN CIU5 IF VALID NAME IN LABEL
- CIU4 LDN ZERL
- CRD CM+2
- CIU5 LDD FN+4 STORE/CLEAR DEVICE NAME
- SHN 3
- ADN PFGL
- CWD CM+2
- SBN PFGL-ACGL STORE GLOBAL UNLOAD STATUS
- CWD CN
- LJM CIUX RETURN
- SPACE 4,10
- USE LITERALS
- SPACE 4,10
- ERRNG BFMS-* OVERLAY OVERFLOW INTO BUFFER
- SPACE 4,10
- QUAL CMS
- CUD EQU /RDE/CUD
- QUAL
- SPACE 4,10
- OVERFLOW ORDE,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DF - UPDATE MMF TABLES IN EXTENDED MEMORY.
- TITLE
- IDENT 4DF,EDTX
- *COMMENT MSM - UPDATE MMF TABLES IN EXTENDED MEMORY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** *4DF* UPDATES THE DAT POINTER WORD IN ECS
- * AND CONTAINS ROUTINES FOR PROCESSING OF MACHINE
- * RECOVERY TABLES (MRTS).
- SPACE 4
- *** ENTRY CONDITIONS.
- *
- * DEVICE ACCESS TABLE IMAGE IN CM.
- * DATI INTERLOCK SET.
- TITLE UPDATE DAT POINTER WORD.
- EDT SPACE 4,10
- ** EDT - EDIT DAT POINTER WORD.
- *
- * CALLS CEA.
- ORG ORDF
- EDT SUBR ENTRY/EXIT
- LDK MMFL
- CRD CM
- LDD RS CHECK RECOVERY LEVEL
- LPN FLMK
- LMN FLCM
- ZJN EDTX IF CM RECOVERY
- LDD CM+4
- ZJN EDTX IF NOT MMF ENVIRONMENT
- LDM ECLT SET LABEL TRACK FOR ECS
- STD T6
- LDN ETLT SET ENVIRONMENT TABLE SECTOR
- STD T7
- * UPDATE *BAET* IN ENVIRONMENT TABLE SECTOR, IF REQUIRED.
- LDD CM+1
- SHN 21-11
- PJN EDT1 IF NO SHARED BUFFERED DEVICES CONFIGURED
- RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
- LDN BAET ADJUST ADDRESS TO BAT POINTER
- RAD CM+4
- SHN -14
- LMC WECS*1000 SUBFUNCTION = WRITE XM
- RAD CM+3
- LDN 0
- STD CM+1 SET WORD COUNT - 1 FOR TRANSFER
- LDD MA SET BUFFER ADDRESS IN MONITOR REQUEST
- STD CM+2
- CWM BAEI,ON STORE *BAET* IMAGE IN CM BUFFER
- MONITOR ECSM
- * UPDATE *DAET* IN ENVIRONMENT TABLE SECTOR.
- EDT1 LDN ZERL CLEAR *DAET* ASSEMBLY
- CRD CN
- CRD CM
- * LDN 0
- * STD CM+1 SET WORD COUNT - 1 FOR TRANSFER
- RJM CEA GET ADDRESS OF ENVIRONMENT TABLE SECTOR
- LDN DAET ADJUST ADDRESS TO DAT POINTER
- RAD CM+4
- SHN -14
- LMC WECS*1000 SUBFUNCTION = WRITE XM
- RAD CM+3
- LDD QT SET CURRENT DAT TRACK
- STD CN
- LDD QI SET DAT INDEX
- STD CN+4
- LDD MA STORE *DAET* IMAGE IN CM BUFFER
- CWD CN
- STD CM+2 SET BUFFER ADDRESS IN MONITOR REQUEST
- MONITOR ECSM
- LJM EDTX RETURN
- UER SPACE 4
- ** UER - UPDATE EXTENDED MEMORY RESIDENT.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * CALLS ERT, SMT, SRT, CRT.
- UER1 SHN 21-3+22-21+1
- PJN UER2 IF DNAP BY THIS MACHINE
- LDN STBM CLEAN UP TRACK INTERLOCKS
- RJM ERT
- LDD RS
- NJN UER2 IF RECOVERY SELECTED
- LDD FN
- SHN 21-10
- MJN UER2 IF REMOVABLE DEVICE
- LDN DTKM CLEAN UP LOCAL FILE SPACE
- RJM ERT
- UER2 LDD EQ RESET EST ORDINAL
- STD T5
- CMSTF LUNL FORCE EXTENDED MEMORY UPDATE OF LOCAL MST
- UER SUBR ENTRY/EXIT
- SHN 21-11
- PJN UERX IF NOT SHARED DEVICE
- SHN 11-6
- MJN UERX IF DEVICE UNAVAILABLE
- SHN 6-1
- MJN UER1 IF DEVICE ACCESSED PREVIOUSLY (DAP)
- RJM SMT STORE MST/TRT IN ECS
- RJM CRT CLEAR MRTS IN ECS
- UJN UER2
- UIS SPACE 4,10
- ** UIS - UPDATE ISD MRT TABLES.
- *
- * ENTRY (A) = MS FLAG (RE) SHIFTED TO SIGN POSITION.
- * (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (RS) = RECOVERY STATUS.
- *
- * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * CALLS ERT.
- UIS SUBR ENTRY/EXIT
- SHN 21-6
- MJN UISX IF DEVICE NOT AVAILABLE
- LDD RS
- ZJN UISX IF LEVEL ZERO DEADSTART
- LDD FN
- SHN 21-4
- PJN UISX IF NOT AN ISD DEVICE
- LDN STBM CLEAN UP TRACK INTERLOCKS
- RJM ERT
- UJN UISX RETURN
- CRT TITLE CLEAR MACHINE RECOVERY TABLES.
- ** CRT - CLEAR MRTS.
- *
- * CALLS STA, WDS.
- *
- * MACROS ENDMS, SETMS.
- CRT SUBR ENTRY/EXIT
- LDC MMFL READ MMF STATUS WORD
- CRD CM
- LDD CM+1 SET LINK DEVICE EST ORDINAL
- LPC 777
- STD T5
- SETMS IO,DF
- LDD FN+4 GET TRT LENGTH FROM MST
- SHN 3
- ADK TDGL
- CRD CN
- LDD TS SET MST/TRT TRACK
- STD T6
- LDN MRST-1 INITIALIZE MRT SECTOR
- STD T7
- LDD CN+2 SET MRT LENGTH
- ADN 7
- SHN -3
- STD CN+1 SAVE MRT LENGTH
- STM BFMS+1
- STD T1 SET BUFFER LENGTH
- SHN 2
- RAD T1
- CRT1 LDN 0 CLEAR BUFFER
- STM BFMS+1,T1
- SOD T1
- NJN CRT1
- LDN MXMF SET LOOP COUNT
- STD CN
- * CLEAR MRT SECTORS FOR *MXMF* MAINFRAMES.
- CRT2 AOD T7 ADVANCE MRT SECTOR
- ADN 1 SET NEXT SECTOR IN LINKAGE
- STM BFMS
- LDC BFMS CLEAR MRT
- RJM WDS
- SOD CN
- NJN CRT2 IF MORE MRT-S TO CLEAR
- ENDMS RELEASE CHANNEL
- RJM STA SET FWA OF TRT
- ADD CN+2 SET FWA OF MRT
- CWM BFMS+2,CN+1
- LJM CRTX RETURN
- ERT TITLE EDIT MACHINE RECOVERY TABLE.
- ** ERT - EDIT MRT.
- *
- * ENTRY (A) = *STBM* TO CLEAN UP TRACK INTERLOCKS.
- * = *DTKM* TO CLEAN UP LOCAL FILE SPACE.
- * (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT ALL LOCAL TRACK CHAINS DROPPED.
- *
- * USES T0 - T7, CM - CM+4.
- *
- * CALLS PTA, RDS, STA.
- *
- * MACROS MONITOR.
- ERT2 SHN 21-0 CHECK NEXT BIT
- STI T1
- PJN ERT3 IF NO RESERVATION
- LDD T2 SET TRT WORD INDEX
- SHN 21-1
- STD T0
- SHN 1-21 FORM *SHN* WITH BYTE INDEX
- ADC SHNI+21-7
- STM ERTA
- RJM STA SET FWA OF TRT
- ADD T0
- CRD CM
- LDD CM+4 CHECK WRITE INTERLOCK
- ERTA SHN **
- ERTB PJN ERT3 IF TRACK NOT INTERLOCKED
- * MJN ERT3 IF NOT LOCAL FILE
- LDD MA LOAD MONITOR REQUEST
- CRD CM
- LDD T2 SET TRACK IN REQUEST
- RAD CM+2
- ERTC MONITOR STBM
- * MONITOR DTKM
- ERT3 AOD T2 ADVANCE TRACK NUMBER
- ERT4 LDI T1
- NJN ERT2 IF NOT END OF RESERVATIONS IN MRT BYTE
- LDN 4*3 ALIGN TRACK NUMBER FOR NEXT MRT BYTE
- RAD T6
- STD T2
- SOD T1 MOVE TO NEXT BYTE IN MRT WORD
- LMD T5
- NJN ERT4 IF NOT END OF DATA IN WORD
- LCN 4 ALIGN TRACK FOR NEXT MRT WORD
- RAD T6
- STD T2
- ERT5 LDN 3+5 ADVANCE TO NEXT MRT WORD
- RAD T1
- SBN 3 SET END OF DATA CHECK
- STD T5
- LMD T7
- NJN ERT4 IF NOT END OF TRT EDIT
- ERT SUBR ENTRY/EXIT
- LMC LDNI SET MONITOR FUNCTION
- STM ERTC
- LPN 77
- LMN STBM
- ZJN ERT1 IF CLEARING TRACK INTERLOCKS
- LDD HN MJNI - PJNI
- ERT1 ADC PJNI+ERT3-ERTB
- STM ERTB
- RJM PTA PRESET FWA OF TRT
- LDD FN+4 GET TRT LENGTH
- SHN 3
- ADK TDGL
- CRD T3
- LDC BFMS+1
- STD T7
- SBN 3 INITIALIZE MRT ADDRESS
- STD T1
- LDD T3+2 SET END OF MRT
- STD T0 SAVE TRT LENGTH
- ADN 7
- SHN -3
- STD T5
- SHN 2
- ADD T5
- ADN 5-3
- RAD T7
- RJM STA SET FWA OF TRT
- ADD T0
- CRM BFMS+2,T5 READ MRT
- LDN ZERL CLEAR TRACK POINTERS
- CRD T6-4
- LDD EQ SET UP BASIC MONITOR REQUEST
- STD CM+1
- LDC 4000
- STD CM+2
- LDN CTIS
- STD CM+3
- LDD MA STORE REQUEST IMAGE IN MESSAGE BUFFER
- CWD CM
- LJM ERT5 ENTER LOOP
- SMT TITLE STORE MST/TRT IN EXTENDED MEMORY.
- ** SMT - STORE MST + TRT IN EXTENDED MEMORY.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES P1, T1, CM+3 - CM+7, CN - CN+4, T5 - T7.
- *
- * CALLS CEA, PTA, STA, WDS.
- *
- * MACROS ENDMS, SETMS.
- SMT SUBR ENTRY/EXIT
- RJM PTA PRESET FWA OF TRT
- LDC 500-5*GLGL
- STD T7
- SMT1 LDN 0 CLEAR BUFFER
- STM BFMS+1+5*GLGL,T7
- SOD T7
- NJN SMT1
- STD P1
- LDC MMFL READ MMF STATUS WORD
- CRD CN
- LDD CN+1 SET LINK DEVICE EST ORDINAL
- LPC 777
- STD T5
- SETMS IO,DF
- * SET UNLOAD STATUS IN EACH LOCAL MST BLOCK.
- SMT2 LDN MLUNL+MLDUL
- STM BFMS+2+5*STLL,P1
- LDN 5*LLLL ADVANCE INDEX
- RAD P1
- LMC MXMF*5*LLLL
- NJN SMT2 LOOP FOR *MXMF* MSTS
- LDD TS SET MST/TRT TRACK
- STD T6
- LDD HN SET FULL SECTOR WORD COUNT
- STM BFMS+1
- LDN ZERL
- CRD CM+3
- RJM CEA
- LDN GLGL SET LENGTH OF GLOBAL MST
- STD T1
- LDN 1 SET INITIAL TRT ACCESS COUNT
- STD CM+6
- LDD FN+4
- SHN 3
- ADN SDGL
- CWD CM+3
- SBN SDGL-TDGL
- CRD CN
- CRM BFMS+2,T1
- LCN 100-1 INITIALIZE TRT INDEX
- STD CN+4
- LDN 0
- UJN SMT5 ENTER LOOP WITH (A) = 0
- SMT3 SBD HN DECREMENT BLOCK COUNT
- PJN SMT4 IF ANOTHER FULL SECTOR
- ADD HN
- STM BFMS+1 SET SHORT SECTOR
- LDN 0
- SMT4 STD CN+2
- LDD HN ADVANCE TRT ADDRESS
- RAD CN+4
- RJM STA SET FWA OF TRT
- ADD CN+4
- CRM BFMS+2,HN
- AOD T7 ADVANCE SECTOR
- SMT5 ADN 1
- STM BFMS
- LDC BFMS WRITE NEXT SECTOR
- RJM WDS
- LDD CN+2
- NJN SMT3 LOOP TO END OF TRT
- ENDMS
- LJM SMTX EXIT
- SPACE 4,10
- ERRNG BFMS-* OVERFLOW INTO BUFFER
- SPACE 4,10
- OVERFLOW ORDF,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DG - DEVICE RECOVERY ROUTINES.
- TITLE
- IDENT 4DG,/RDG/RDGX
- *COMMENT MSM - DEVICE RECOVERY ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4
- *** *4DG* CONTAINS ADDITIONAL DEVICE RECOVERY ROUTINES.
- SPACE 4
- QUAL RDG
- ORG ORDG
- RDG SUBR ENTRY/EXIT
- RJM PRS PRESET OVERLAY
- UJN RDGX RETURN
- TITLE COPY MST/TRT TO DISK.
- CTD SPACE 4,15
- ** CTD - COPY TABLES TO DISK.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) .GE. 0.
- *
- * USES P1, T3, T6, T7, CM - CM+4, CN - CN+4.
- *
- * CALLS CLC, PTA, RDS, STA, WDS.
- *
- * MACROS CMSTF, ENDMS, MONITOR, SETMS.
- CTD5 LDD RE CHECK ACCESS STATUS
- LPC 1002
- LMC 1002
- CTD6 NJN CTDX IF NOT SHARED DEVICE ACCESSED PREVIOUSLY
- LDD T5
- STD CM+1
- LDN UITS GET CURRENT COPY OF TRT / UPDATE MRT
- STD CM+3
- MONITOR STBM
- CTD SUBR ENTRY/EXIT
- RJM PTA PRESET FWA OF TRT
- CMSTF LPTU ENABLE TRT UPDATE BY *1RU*
- * LDN 0
- STD T7
- LDD FN
- SHN 21-4
- PJN CTD5 IF NOT INDEPENDENT SHARED DEVICE
- LDD FN+4
- SHN 3
- ADN ALGL FETCH ALLOCATION WORD FROM MST
- CRD CM
- LDD CM+1 SET LABEL TRACK
- STD T6
- SETMS IO,(DE,DF)
- LDC BFMS REREAD LABEL SECTOR
- RJM RDS
- LDD RE
- SHN 21-1
- MJN CTD1 IF ACCESSED PREVIOUSLY BY OTHER MF
- LDM N4SS+5*SDGL+4
- LPN 77 SAVE DIT INDEX
- STD P1
- LDN MSTL SET CHECKPOINTED MST LENGTH
- STD T3
- LDD FN+4 SET MST ADDRESS
- SHN 3
- ADK TDGL GET TRT LENGTH
- CRD CN
- SBK TDGL UPDATE MST IN LABEL SECTOR
- CRM N4SS,T3
- LDD P1 SET SOFTWARE RESERVE IN LABEL
- LMD HN
- STM N4SS+5*SDGL+4
- LDD CN+2 SET MRT LENGTH
- ADN 7
- SHN -3 CALCULATE DIT OFFSET
- RAD CN+2
- UJN CTD2 GENERATE CHECKSUM
- CTD1 LDN 0 CLEAR MACHINE ID TO FORCE TRT UPDATE IN CM
- STM N4SS+5*STLL+2
- LDM N4SS+5*SDGL+4 CLEAR MST INTERLOCK
- SCN 77
- STM N4SS+5*SDGL+4
- CTD2 RJM CLC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF
- RJM WDS
- ENDMS RELEASE HARDWARE RESERVE
- LDD RE
- LPN 2
- NJN CTD3 IF DEVICE ACCESSED PREVIOUSLY
- AOM N4SS+5*SDGL+4
- LDD FN+4 SET MST ADDRESS
- SHN 3
- ADN SDGL STORE DEVICE INTERLOCK IN CM
- CWM N4SS+5*SDGL,ON
- RJM STA STORE DIT IN CM
- ADD CN+2
- ERRNZ MISD-MSTL CODE DEPENDS ON VALUE
- CWM DISS,T3
- LDD T5
- STD CM+1 SET EST ORDINAL
- LDN CDIS
- STD CM+3 UPDATE TABLES ON DISK
- MONITOR STBM
- * LDN 0 SET IMMEDIATE RETURN
- CTD3 LMN 2
- LJM CTD6 RETURN
- RMR SPACE 4,15
- ** RMR - READ MRT.
- *
- * ENTRY (T5) = (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES T5 - T7, CM - CM+4, CN - CN+4.
- *
- * CALLS PTA, RDS, STA.
- *
- * MACROS ENDMS, SETMS.
- RMR SUBR ENTRY/EXIT
- LDD FN
- SHN 21-11
- PJN RMRX IF DEVICE NOT SHARED
- SHN 21-4-21+11
- PJN RMR1 IF NOT ISD
- LDD RS
- LPN FLMK
- LMN FLTB
- NJN RMRX IF FILES NOT RECOVERED FROM MS TABLES
- LDD RA
- SHN 6
- ADD AL FETCH LABEL SECTOR
- ADN DILL
- CRD T7
- LDD FN+4 GET LABEL TRACK
- SHN 3
- ADN ALGL
- CRD CM
- ADN DULL-ALGL GET MACHINE INDEX
- CRD CN
- LDD CM+1 SET LABEL TRACK
- STD T6
- LDD CN+2 SET MRT SECTOR
- LPN 17
- ADN MRTL
- RAD T7
- UJN RMR2 READ MRT
- RMR1 LDK MMFL GET LINK DEVICE EST ORDINAL
- CRD CN
- LDD CN+1
- LPC 777
- STD T5
- LDD TS SET MST/TRT TRACK FOR DEVICE
- STD T6
- LDD CN+4 SET MRT SECTOR FOR THIS MACHINE
- ADN MRST-1
- STD T7
- RMR2 SETMS IO,DF
- LDC BFMS
- RJM RDS
- ENDMS
- LDD EQ RESTORE (T5)
- STD T5
- * COPY MRT TO CM AT THE END OF THE TRT.
- RJM PTA PRESET TRT ADDRESS
- LDD FN+4 GET TRT LENGTH
- SHN 3
- ADK TDGL
- CRD CM
- LDD CM+2 SET MRT LENGTH
- STD T0 SAVE TRT LENGTH
- ADN 7
- SHN -3
- STD CM+2
- RJM STA SET TRT FWA
- ADD T0
- CWM BFMS+2,CM+2 COPY MRT TO CM
- LJM RMRX RETURN
- TITLE COPY TRT.
- CTT SPACE 4,10
- ** CTT - COPY TRT.
- *
- * ENTRY (CA) = CM ADDRESS OF TRT.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0.
- *
- * USES T6, CM - CM+4, CN - CN+4.
- *
- * CALLS PTA, STA.
- CTT SUBR ENTRY/EXIT
- RJM PTA
- LDN 0 SET TRT WORD INDEX
- STD T6
- LDD FN+4 READ *TDGL*
- SHN 3
- ADK TDGL
- CRD CN
- CTT1 LDD RA READ BUFFER WORD
- SHN 6
- ADD CA
- ADD T6
- CRD CM
- RJM STA SET FWA OF TRT
- ADD T6
- CWD CM
- AOD T6 ADVANCE WORD
- LMD CN+2
- NJN CTT1 LOOP TO END OF TRT
- * LDN 0
- UJN CTTX RETURN
- EMT TITLE ENTER MST PARAMETERS FROM LABEL.
- ** EMT - ENTER MST PARAMETERS FROM LABEL.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = STLL WORD.
- * (T5) = EST ORDINAL.
- * (RS) = RECOVERY STATUS.
- * (MBUF) = LABEL MST.
- *
- * EXIT MST UPDATED TO REFLECT DEVICE LOADED.
- * EST UPDATED TO REFLECT DEVICE LOADED.
- * DEVICE SET AVAILABLE.
- *
- * USES T1, T2, CM - CM+4, CN - CN+4.
- *
- * MACROS MONITOR, SFA.
- EMT SUBR ENTRY/EXIT
- LDD FN
- LPC 7667
- EMTB EQU *-1
- * LPC 7767 (*CMS* CALL)
- STD FN
- LDD FN+4 FETCH MST DRIVER WORD
- SHN 3
- ADN MDGL
- CRD CM
- LDD CM RETAIN *R* STATUS AND DAT INDEX
- LPC 4377
- STD CM
- LDN 0
- STD T2
- STM MBUF+5*NVGL+4 CLEAR UNITS RESERVED TO *NVE*
- LDD RS
- NJN EMT1 IF RECOVERY SELECTED
- STM MBUF+5*STLL+3 CLEAR ACTIVE USER COUNT
- STM MBUF+5*DULL+1 CLEAR PF INTERLOCK AND COUNT
- STM MBUF+5*DULL+3 CLEAR SYSTEM TABLE TRACK
- STM MBUF+5*DULL+4 CLEAR ACTIVE USER COUNT
- EMT1 LDD RE CLEAR UNAVAILABLE STATUS
- LPC 7677
- STD RE
- LPN 2
- NJN EMT3 IF DEVICE ACCESSED PREVIOUSLY
- LDD RS
- NJN EMT2 IF RECOVERY DEADSTART
- LDM MBUF+5*ACGL+3 SAVE *IQFT* TRACK
- STD T2
- LDN 0 CLEAR *IQFT* POINTER
- STM MBUF+5*ACGL+3
- LDM MBUF+5*ACGL+0 CLEAR *DAS* PARITY DEVICE ACCESS FLAGS
- SCN 17
- STM MBUF+5*ACGL+0
- LDD FN+3 CHECK DEVICE TYPE
- LMC 2RDE
- ZJN EMT2 IF *DE* DEVICE
- LMN 2RDP&2RDE
- ZJN EMT2 IF *DP* DEVICE
- LDN 0 CLEAR *DAS* PARITY DEVICE FIELDS
- STM MBUF+5*ACGL+1
- EMT2 LDD FN+4 STORE DEVICE ACTIVITY WORD
- SHN 3
- ADN ACGL
- CWM MBUF+5*ACGL,ON
- EMT3 LDM MBUF+5*STLL+3 RETAIN ACTIVE USER COUNT
- STD FS+3
- LDM MBUF+5*MDGL SET *X* AND 16-WORD PFC STATUS FROM LABEL
- LPC 3000
- RAD CM
- LDD FN SET MACHINE INDEX FOR DEVICE
- SHN 21-4
- MJN EMT4 IF ISD
- EMTA LDN 0 (MACHINE INDEX - 1)
- STM MBUF+5*DULL+2
- EMT4 LDD FN+4 STORE ALLOCATION AND DEVICE DESCRIPTION
- SHN 3
- ADN ALGL
- ERRNZ PFGL-ALGL-1 ADJUST IF *PFGL* POSITION CHANGES
- ERRNZ PUGL-ALGL-2 ADJUST IF *PUGL* POSITION CHANGES
- CWM MBUF+5*ALGL,TR
- ADK MDGL-ALGL-3 STORE DRIVER WORD
- CWD CM
- LDD FN+4 PRESERVE BAT ADDRESS
- SHN 3
- ADN NVGL
- CRD CM
- LDD CM+1
- STM MBUF+5*NVGL+1
- LDD CM+2
- STM MBUF+5*NVGL+2
- LDD FN+4 STORE BAT PARAMETERS
- SHN 3
- ADN NVGL
- ERRNZ NVGL+1-ISGL CODE DEPENDS ON VALUE
- ERRNZ ISGL+1-I2GL CODE DEPENDS ON VALUE
- CWM MBUF+5*NVGL,TR
- ADN DULL-NVGL-3 STORE DEVICE USAGE INFORMATION
- CWM MBUF+5*DULL,ON
- CWD FS STORE DEVICE STATUS
- SFA EST,T5 SET EQUIPMENT AVAILABLE IN EST
- ADK EQDE
- CWD FN
- LDD T2
- ZJN EMT5 IF NO *IQFT*
- STD CM+2
- LDD T5 RELEASE *IQFT* TRACK CHAIN
- STD CM+1
- MONITOR DTKM
- EMT5 LJM EMTX RETURN
- ETT TITLE EDIT TRT.
- ** ETT - EDIT TRACK TABLE.
- *
- * ENTRY (CA) = ADDRESS OF CM BUFFER CONTAINING TRT.
- * (FN - FN+4) = EST ENTRY.
- * (MBUF) = LABEL MST.
- *
- * EXIT (A) = 0 IF COPY SUCCESSFUL.
- * (A) .LT. 0 IF ERROR IN EDITING.
- * ALL NON-PRESERVED FILE CHAINS RELEASED.
- *
- * USES T1, T2, T6, T7, P1, CM - CM+4.
- *
- * CALLS PTA, RTC, STF.
- ETT SUBR ENTRY/EXIT
- LDD FN+4 GET TRT LENGTH
- SHN 3
- ADK TDGL
- CRD CM
- LDD CM+2 SET TRT LENGTH
- STD P1
- RJM PTA PRESET FWA OF TRT
- LDN 0 CLEAR WORD AND BYTE INDEX
- STD T6
- STD T7
- STM MBUF+5*ACGL+2 CLEAR PRESERVED FILE COUNT
- ETT1 LDD RA READ BUFFER WORD
- SHN 6
- ADD CA
- ADD T6
- CRD CM
- LDD CM+4 SET PRESERVED FILE IDENTIFIERS
- LPC 7400
- STM ETTB SET BIT MASK
- LDM CM,T7 CHECK FOR RESERVED TRACK
- LMC 3777
- NJN ETT2 IF NOT FLAWED TRACK
- RJM STF SET TRACK FLAW
- UJN ETT3 ADVANCE BYTE INDEX
- ETT2 LDM ETTC,T7 CHECK PRESERVED FILE BIT
- LPC *
- ETTB EQU *-1
- ZJN ETT3 IF NOT PRESERVED FILE
- RJM RTC RESERVE TRACK CHAIN
- AOM MBUF+5*ACGL+2 ADVANCE PRESERVED FILE COUNT
- ETT3 AOD T7 ADVANCE BYTE INDEX
- LMN 4
- NJN ETT4 IF NOT END OF TRT WORD
- STD T7
- AOD T6 ADVANCE WORD INDEX
- LMD P1
- ZJN ETT5 IF END OF BUFFER
- ETT4 LJM ETT1 LOOP
- ETT5 LDM MBUF+5*NVGL
- ZJN ETT7 IF NO MEDIA ERRORS RECORDED
- SHN 21-1
- LMD TH EXTRACT TRT WORD INDEX
- STD T6
- SHN 1-21 FORM BYTE INDEX FROM TRACK NUMBER
- STD T7
- RJM STF SET TRACK FLAW
- NJN ETT6 IF TRACK RESERVED
- STM MBUF+5*NVGL
- ETT6 LDN 0
- ETT7 LJM ETTX RETURN
- * TRACK RESERVATION BITS.
- ETTC BSS 0
- CON 4010
- CON 2004
- CON 1002
- CON 0401
- RTC TITLE RESERVE TRACK CHAIN.
- ** RTC - RESERVE TRACK CHAIN.
- *
- * ENTRY (CA) = BUFFER ADDRESS.
- * (P1) = TRT LENGTH.
- * (FN - FN+4) = EST ENTRY.
- * (T6) = WORD INDEX.
- * (T7) = BYTE INDEX.
- *
- * EXIT (A) = *STLK* IF LINKAGE ERROR.
- * TO *ETTX* IF LINKAGE ERROR.
- *
- * USES T1, T2, CM - CM+4, CN - CN+4.
- *
- * CALLS STA.
- RTC SUBR ENTRY/EXIT
- LDD T6 SET WORD INDEX
- STD T1
- LDD T7 SET BYTE INDEX
- STD T2
- RTC1 LDD T1 CHECK WORD INDEX
- SBD P1
- PJN RTC2 IF OUT OF TRT
- RJM STA SET FWA OF TRT
- ADD T1
- CRD CN
- LDM CN,T2 CHECK TRACK LINK
- ZJN RTC3 IF CLEAR
- RTC2 LDN STLK
- LJM ETTX EXIT
- RTC3 LDM CM,T2 SET NEXT LINK
- STM CN,T2
- LDM ETTC,T2 SET PROPAGATION MASK
- STM RTCB
- LMC -0 SET RESERVATION MASK
- STM RTCA
- LDD CN+4 SAVE PREVIOUS BITS
- LPC *
- RTCA EQU *-1
- STD CN+4
- LDD CM+4
- LPC *
- RTCB EQU *-1
- RAD CN+4
- RJM STA SET FWA OF TRT
- ADD T1
- CWD CN
- LDM CN,T2 CHECK NEXT LINK
- SHN 6
- MJN RTC4 IF NOT END OF TRACK CHAIN
- LJM RTCX RETURN
- RTC4 SHN 12 SET WORD INDEX
- LMD TH
- STD T1
- SHN -20 SET BYTE INDEX
- STD T2
- LDD RA READ BUFFER WORD
- SHN 6
- ADD CA
- ADD T1
- CRD CM
- LJM RTC1 LOOP TO END OF CHAIN
- RTT TITLE READ TRT.
- ** RTT - RECOVER TRACK RESERVATION TABLE.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (CA+1) = CM BUFFER ADDRESS FOR TRT.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0 IF SUCCESSFUL RECOVERY.
- * = *STTL* IF TRT LENGTH ERROR.
- * = *STLK* IF TRT LINKAGE ERROR.
- * (CA) = FWA OF TRT IN CM.
- * (MBUF) = LABEL MST.
- *
- * USES P1, T1, T3, T6, T7, CN - CN+4.
- *
- * CALLS ATC, CTD, CTT, EMT, ETT, RMR, RDS.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- RTT4 NJN RTTX IF LENGTH ERROR
- RJM ETT EDIT TRACK TABLE
- RTTA EQU *-1
- * RJM CTT (RECOVERY DEADSTART)
- NJN RTTX IF LINKAGE ERROR
- RTT5 RJM EMT ENTER MST PARAMETERS
- RJM ATC ADJUST TRACK COUNT
- RTTB UJN *+2 SKIP MRT UPDATE
- CON RMR
- * RJM RMR (RECOVERY DEADSTART)
- RJM CTD COPY SHARED TABLES
- LDN 0
- RTT SUBR ENTRY/EXIT
- LDN MSTL
- STD T1
- LDD RA READ LABEL INTO MST BUFFER
- SHN 6
- ADD AL
- CRM MBUF,T1
- LDD RE CHECK ESM RESIDENT TRT
- LPC 1002
- LMC 1002
- ZJN RTT5 IF DEVICE ACCESSED PREVIOUSLY
- SETMS IO,DF
- LDD CA+1 SET FWA FOR TRT IN CM
- STD CA
- LDM MBUF+5*ALGL+1 SET LABEL TRACK
- STD T6
- LDM MBUF+5*DILL SET SECTOR NUMBER
- ADN FSMS
- STD T7
- LDD FN+4 SET LENGTH OF TRT
- SHN 3
- ADK TDGL
- CRD CN
- LDD CN+2
- STD P1
- RTT1 LDC BFMS READ SECTOR
- RJM RDS
- MJN RTT2 IF MS ERROR
- LDM BFMS
- ZJN RTT2 IF EOF/EOI
- STD T7
- LDM BFMS+1
- ZJN RTT2 IF END OF TRT
- STD T1
- LDD P1
- SBD T1
- MJN RTT2 IF WORD COUNT > TRT SIZE
- STD P1
- LDD RA WRITE SECTOR TO CM
- SHN 6
- ADD CA
- CWM BFMS+2,T1
- LDD T1
- RAD CA
- LDD T1
- SHN -6
- NJN RTT1 IF NOT EOR
- RTT2 ENDMS RELEASE CHANNEL
- LDD CA+1
- STD CA SET FWA OF TRT IN CM
- LDD P1
- ZJN RTT3 IF CORRECT TRT LENGTH
- LDN STTL
- RTT3 LJM RTT4 COMPLETE RECOVERY
- STF TITLE SET TRACK FLAW.
- ** STF - SET TRACK FLAW IN TRT.
- *
- * ENTRY (T6) = TRT WORD INDEX.
- * (T7) = BYTE INDEX.
- * (P1) = TRT LENGTH.
- *
- * EXIT (A) = 0 IF INVALID TRACK.
- *
- * USES CM - CM+4.
- *
- * CALLS STA.
- STF1 LDN 0 INDICATE INVALID TRACK
- STF SUBR ENTRY/EXIT
- LDD T6
- SBD P1
- PJN STF1 IF TRACK OUT OF TRT
- RJM STA
- ADD T6 READ TRT WORD
- CRD CM
- LDM ETTC,T7 SET TRACK RESERVATION MASK
- LPN 17
- STD T0
- LMD CM+4 CHECK TRACK ASSIGNMENT
- SBD T0
- LMD CM+4
- NJN STFX IF RESERVED
- LDD T0
- RAD CM+4 SET TRACK RESERVED
- LDC 3777
- STM CM,T7 SET TRACK FLAWED
- RJM STA
- ADD T6 STORE TRT WORD
- CWD CM
- UJN STFX RETURN
- TITLE SET EQUIPMENT CONFIGURATION.
- AUL SPACE 4,15
- ** AUL - ASSEMBLE UNIT LIST.
- *
- * ENTRY (UC) = REQUIRED UNIT COUNT.
- * (FN - FN+4) = EST ENTRY.
- * (CN - CN+4) = UNIT DESCRIPTOR WORD (DDLL).
- *
- * EXIT (A) = 0 IF REQUIRED UNIT COUNT SATISFIED.
- * (CN - CN+4) = NEW UNIT LIST.
- * (FS - FS+4) = DEVICE STATUS WORD (STLL).
- *
- * USES T0 - T3, CM - CM+4, FS - FS+4.
- AUL2 AOD T1 ADVANCE UNITS TRANSFERED COUNT
- SHN 21-0
- MJN AUL3 IF NOT CROSSING BYTE BOUNDARY
- SOD T2 DECREMENT SOURCE ADDRESS
- AUL3 AOD CN ADVANCE TOTAL UNIT COUNT
- LPN 7
- SHN -1
- STD T0
- LDN CN+4 FORM DESTINATION BYTE ADDRESS
- SBD T0
- STD T3
- LDI T2 EXTRACT NEXT UNIT
- SHN 14
- STI T2
- SHN -14
- AULA PJN AUL4 IF PACKING UNIT LOW
- * MJN AUL4 FALL THRU IF PACKING UNIT HIGH
- SHN 6
- LMI T3 ASSEMBLE UNIT DESCRIPTOR WORD
- SCN 77
- LMI T3
- AUL4 STI T3
- LDD UC
- LMD CN
- LPN 7
- ZJN AULX IF REQUIRED UNIT COUNT SATISFIED
- LDM AULA TOGGLE UNIT PACKING TRANSFER
- LMD HN
- STM AULA
- SOD CM
- PJN AUL2 IF MORE UNITS THIS EQUIPMENT
- AUL SUBR ENTRY/EXIT
- LDD FN+4
- SHN 3
- ADN STLL
- CRD FS
- ADN DDLL-STLL GET UNIT DESCRIPTOR WORD
- CRD CM
- LDD CM
- LPN 7
- STD CM
- LDD CN CHECK CURRENT UNIT COUNT
- LPN 1
- ZJN AUL1 IF NEXT UNIT PACKS LOW
- LDD HN PJNI .NOT. MJNI
- AUL1 LMC MJNI+AUL4-AULA
- STM AULA SET INITIAL PACKING TRANSFER
- LDN 0 CLEAR UNITS UNPACKED
- STD T1
- LDN CM+4 SET INITIAL SOURCE ADDRESS
- STD T2
- LJM AUL3 ENTER LOOP
- SEC SPACE 4,15
- ** SEC - SET EQUIPMENT CONFIGURATION.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT EST/MST SET TO ACCOMMODATE NEW CONFIGURATION.
- * ALL EXCEPT FIRST EQUIPMENT IN CHAIN SET IN USE.
- * (FS - FS+4) = STLL WORD FOR EQUIPMENT.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES EC, UC, CM - CM+7, CN - CN+4.
- *
- * CALLS AUL, SES, SSL.
- *
- * MACROS SFA, SMSTF.
- SEC5 RJM SSL SET SECTOR LIMITS
- SEC SUBR ENTRY/EXIT
- LDN 0 CLEAR MST ERROR STATUS
- STD EC
- RJM SES
- LDD FN+4 READ CONFIGURATION PARAMETERS
- SHN 3
- ADN MDGL
- CRD CM+3
- SBN MDGL-PFGL
- CRD CM
- ADN STLL-PFGL
- CRD FS
- ADN DDLL-STLL
- CRD CN
- LDD CN SAVE CURRENT UNIT COUNT
- LPN 7
- STD T0
- LDD FN CHECK EQUIPMENT STATUS
- SHN 21-10
- PJN SEC5 IF NOT REMOVABLE DEVICE
- LDD CM+5
- LMC 2RDI
- ZJN SEC1 IF *6DI* DRIVER
- LMN 2RDJ&2RDI
- ZJN SEC1 IF *6DJ* DRIVER
- LDD CM+4 SET REQUIRED = CURRENT UNIT COUNT
- LPN 7
- STD CM+4
- LDD CN
- SCN 7
- LMD CM+4
- STD CN
- SEC1 LDD CM+4 SET REQUIRED UNIT COUNT
- LPN 7
- STD UC
- SBD T0
- ZJN SEC4 IF REQUIRED = CURRENT UNIT COUNT
- MJN SEC3 IF REQUIRED COUNT .LT. CURRENT
- SEC2 LDD FS+4 SET NEXT EQUIPMENT IN CHAIN
- SHN -3
- STD T5
- SFA EST READ NEXT EQUIPMENT EST
- ADK EQDE
- CRD FN
- SMSTF LDIU SET DEVICE IN USE
- RJM AUL ASSEMBLE UNIT LIST
- NJN SEC2 IF REQUIRED UNITS NOT ASSEMBLED
- SEC3 RAD CN
- LDD EQ RESTORE FIRST EQUIPMENT PARAMETERS
- STD T5
- SFA EST
- ADK EQDE
- CRD FN
- SEC4 LDD FN+4
- SHN 3
- ADN STLL
- CRD FS
- ADN DDLL-STLL UPDATE UNIT DESCRIPTOR WORD
- CWD CN
- LJM SEC5 COMPLETE PROCESSING AND EXIT
- SPACE 4
- ERRNG BFMS-* OVERFLOW INTO BUFFER
- TITLE PRESET.
- PRS SPACE 4,10
- ** PRS - PRESET OVERLAY.
- PRS SUBR ENTRY/EXIT
- * PRESET FOR MMF PROCESSING.
- LDM MMFP
- ZJN PRS1 IF DO NOT PRESET FOR MMF
- LDC MMFL GET MMF STATUS
- CRD CM
- SOD CM+4
- RAM EMTA
- * PRESET FOR RECOVERY PROCESSING.
- PRS1 LDD RS
- ZJN PRSX IF NOT RECOVERY DEADSTART
- LDC CTT
- STM RTTA ENABLE RECOVERY PROCESSING
- LDC RJMI
- STM RTTB
- UJP PRSX EXIT
- SPACE 4,10
- QUAL
- CTD EQU /RDG/CTD
- RMR EQU /RDG/RMR
- RTT EQU /RDG/RTT
- SEC EQU /RDG/SEC
- SPACE 4,10
- OVERFLOW ORDG,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DH - DEVICE INITIALIZATION ROUTINES.
- TITLE
- QUAL RDH
- IDENT 4DH,/RDH/RDHX
- *COMMENT MSM - DEVICE INITIALIZATION ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- RDH SPACE 4,10
- *** *4DH* CONTAINS ROUTINES UTILIZED BY *RMS*
- * IN INITIALIZING MASS STORAGE EQUIPMENTS.
- RDH SPACE 4,10
- ** ROUTINES CALLED.
- *
- * 0PI - PRESET DRIVER TO READ/WRITE DEADSTART SECTOR.
- * 0TI - SET TRACK FLAWS IN TRT.
- SPACE 4,10
- **** DIRECT LOCATION ASSIGNMENTS.
- PB EQU RG - RI+1 FORMAT PARAMETER BLOCK (3 LOCATIONS)
- CS EQU ET CHANNEL STATUS
- FR EQU P1 FORMAT REQUIRED FLAG
- LC EQU P2 LAST CYLINDER + 1
- ****
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- DC EQU 11 DISK CHANNEL
- FCGS EQU 12 GENERAL STATUS FUNCTION CODE
- FCFP EQU 16 FORMAT PACK FUNCTION CODE
- FPBL EQU 22 FORMAT PACK PARAMETER BLOCK LENGTH
- RDH SPACE 4,10
- ORG ORDH
- RDH SUBR ENTRY/EXIT
- LJM POV PRESET OVERLAY
- TITLE MAIN INITIALIZATION ROUTINE.
- IMS SPACE 4,15
- ** IMS - INITIALIZE MASS STORAGE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) .LT. 0 IF RECOVERY INFORMATION NOT TO
- * BE REWRITTEN TO CM UPON RETURN TO *MRL*.
- *
- * ERROR TO *HNG* IF SHARED DEVICE CONFLICT.
- *
- * USES CM+3 - CM+7, CN - CN+4, FS - FS+4.
- *
- * CALLS CSD, /RMS/CSE, IDS, UDT.
- *
- * MACROS UJMF.
- IMS5 RJM IDS INITIALIZE DEVICE STATUS
- NJN IMSX IF DEVICE NOT READY
- UJMF IMSX NON MMF TRANSFER
- RJM UDT UPDATE DAT
- NJN IMS1 IF EXTENDED MEMORY TRACK UNAVAILABLE
- IMS SUBR ENTRY/EXIT
- SHN 21-4
- PJN IMSX IF INITIALIZE NOT SELECTED
- LDD FN+4 GET FAMILY NAME/DEVICE NUMBER
- SHN 3
- ADN PFGL
- CRD CN
- ADN MDGL-PFGL GET SECTOR LIMITS
- CRD CM+3
- ADN STLL-MDGL FETCH DEVICE STATUS
- CRD FS
- RJM /RMS/CSE CHECK SYSTEM EQUIPMENT
- UJMF IMS5 NON MMF TRANSFER
- RJM CSD CHECK SHARED DEVICE STATUS
- IMS1 NJN IMS4 IF DAT CONFLICT
- LDD T2
- IMS2 ZJN IMS5 IF DEVICE NOT DESCRIBED IN DAT
- LDI T2
- LPC -0
- IMSA EQU *-1
- STI T2
- ZJN IMS5 IF DEVICE NOT ACTIVE IN DAT
- LDM DATB+4
- ZJN IMS3 IF NON-SHARED DEVICE
- LDN CSDC-CSDB
- IMS3 ADC CSDB
- IMS4 LJM /RMS/HNG DISPLAY ERROR AND HANG PP
- TITLE SUBROUTINES.
- CFR SPACE 4,20
- ** CFR - CHECK FOR FORMAT REQUEST.
- *
- * ENTRY (A) = 0 IF DEADSTART SECTOR READ BY *RCS*.
- * (AM) = ALGORITHM INDEX.
- * (CS) = CHANNEL STATUS.
- * (FR) = FORMAT REQUIRED FLAG.
- * (LC) = FIRST CYLINDER OF *CTI* SPACE.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK CONTAINING DEADSTART SECTOR.
- * (T7) = DEADSTART SECTOR.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = *STLL* WORD OF MST.
- *
- * USES T3.
- *
- * CALLS *4DI*.
- *
- * MACROS EXECUTE.
- CFR SUBR ENTRY/EXIT
- STD T3
- LDD FR
- NJN CFR1 IF FORMAT REQUIRED
- LDD FS
- SHN 21-LFPR+LFPR/12D*12D
- PJN CFRX IF DEVICE NOT BEING FORMATTED
- CFR1 LDD AM
- LMN AIDC
- NJN CFRX IF NOT 895 DEVICE
- LDD CS
- ZJN CFRX IF ALL CONCURRENT CHANNELS
- EXECUTE 4DI FORMAT 895 DEVICE
- UJN CFRX RETURN
- CTF SPACE 4,10
- ** CTF - CHECK TRACK FLAWED IN TRT.
- *
- * ENTRY (A) = TRACK NUMBER.
- *
- * EXIT (A) = 0 IF TRACK FLAWED.
- *
- * USES T0, T1, CM - CM+4.
- *
- * CALLS STA.
- CTF SUBR ENTRY/EXIT
- LPC 3777 UNPACK TRACK
- SHN 21-1 SET TRT WORD INDEX
- STD T0
- SHN 1-21 SET BYTE INDEX
- STD T1
- RJM STA SET FWA OF TRT
- ADD T0
- CRD CM
- LDM CM,T1 CHECK TRACK
- LMC 3777
- UJN CTFX RETURN
- FBT SPACE 4,10
- ** FBT - FLAW BLOCK OF TRACKS IN TRT.
- *
- * ENTRY (T3) = FIRST TRACK NUMBER.
- * (CN) = LAST TRACK NUMBER + 1.
- * (T5) = EST ORDINAL.
- *
- * EXIT ALL TRACKS FLAWED IN SPECIFIED BLOCK.
- *
- * USES T3, CM - CM+4.
- *
- * CALLS CTF.
- *
- * MACROS MONITOR.
- FBT SUBR ENTRY/EXIT
- FBT1 LDD T3 CHECK TRACK FLAWED
- RJM CTF
- ZJN FBT2 IF TRACK ALREADY FLAWED
- LDD T5
- STD CM+1
- LDD T3
- STD CM+2
- LDN STFS FLAW TRACK IN TRT
- STD CM+3
- MONITOR STBM
- FBT2 AOD T3 ADVANCE TRACK NUMBER
- LMD CN
- NJN FBT1 IF NOT END OF TRACKS TO FLAW
- UJN FBTX RETURN
- IDS SPACE 4,15
- ** IDS - INITIALIZE DEVICE.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = STLL WORD.
- *
- * EXIT (A) = 0 IF DEVICE SET TO INITIALIZE.
- * LABEL TRACK ASSIGNED.
- *
- * USES CS, T1, T3, T6, CM - CM+4, CN - CN+4.
- *
- * CALLS CFR, CTF, IFM, PTA, PTF, RCS, SNC.
- *
- * MACROS ENDMS, MONITOR, SETMS, SFA, SMSTF.
- IDS7 LDN 0 INHIBIT FURTHER PROCESSING OF DEVICE
- STD RE
- LDN 1 INDICATE DEVICE NOT INITIALIZED
- IDS SUBR ENTRY/EXIT
- LDD FN
- LPN 2
- NJN IDS7 IF DEVICE OFF OR DOWN
- SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
- RJM PTA PRESET FWA OF TRT
- LDD FN CHECK EQUIPMENT TYPE
- LPC 200
- STM PFTA SET LDAM FLAG FOR *PFT* ROUTINE
- ZJN IDS1 IF NOT *LDAM* DEVICE
- RJM SNC SELECT NIO CHANNEL
- STD CS
- RJM IFM INTERPRET FLAW MAP
- RJM RCS RESERVE *CTI* SPACE
- RJM CFR CHECK FOR FORMAT REQUEST
- IDS1 LDN ZERL REQUEST LABEL TRACK
- CRD CM
- LDD T5
- STD CM+1
- MONITOR RTCM
- * LDN 0 SET SECTOR
- STD T7
- LDD CM+4 SET LABEL TRACK
- STD T6
- ZJP IDS2 IF NO TRACK ASSIGNED
- STD CM+2
- LDN SPFS SET PRESERVED FILE STATUS
- STD CM+3
- MONITOR STBM
- LDD FN+4 READ *ALGL*
- SHN 3
- ADK TDGL
- CRD CM
- ADN ALGL-TDGL
- CRD CN
- LDD CM SET TRACK COUNT
- STD T3
- LDD T6 SET LABEL TRACK
- STD CN+1
- LDD FN+4 STORE *ALGL*
- SHN 3
- ADN ALGL
- CWD CN
- LDD FN SET DEVICE AS AVAILABLE
- LPC 7667
- LMN 10 SET DEVICE ACTIVE
- STD FN
- LDD RE
- LPC 7677
- STD RE
- SFA EST,T5 WRITE EST ENTRY
- ADK EQDE
- CWD FN
- LDC 501 BUFFER INDEX
- STD T1
- LDC LTKL-1
- SBD T6
- PJN IDS3 IF LABEL TRACK WITHIN RANGE
- IDS2 LDC IDSA
- LJM /RMS/HNG ISSUE ERROR MESSAGE AND HANG
- * PREWRITE ALL POTENTIAL LABEL TRACKS THAT ARE FLAWED.
- IDS3 LDN 0 CLEAR SECTOR BUFFER
- STM BFMS,T1
- SOD T1
- PJN IDS3 IF MORE TO CLEAR
- SHN -7
- STM FNSS SET FLAW INDICATOR
- SETMS IO,(SM,AR,DF)
- RJM PFT PREWRITE LABEL TRACK
- LDC FLTK
- STD T6
- IDS4 LDD T6 CHECK TRACK FLAWED
- RJM CTF
- NJN IDS5 IF NOT FLAWED
- STD T7
- RJM PFT PREWRITE FLAWED TRACK
- IDS5 SOD T3
- ZJN IDS6 IF END OF TRACKS ON DEVICE
- AOD T6
- LMC LTKL
- NJN IDS4 IF NOT ALL POSSIBLE LABEL TRACKS
- IDS6 ENDMS
- * LDN 0
- LJM IDSX RETURN
- IDSA DATA C*LABEL TRACK CONFLICT.*
- IFM SPACE 4,15
- ** IFM - INTERPRET FLAW MAP.
- *
- * ENTRY (EQ) = (T5) = EST ORDINAL.
- * (FS - FS+4) = MST STATUS WORD (STLL).
- * (FN - FN+4) = EST ENTRY FOR EQUIPMENT.
- * (CS) = CHANNEL STATUS.
- *
- * EXIT (T5) = EQUIPMENT.
- * (AM) = ALGORITHM INDEX.
- * FLAWS SET IN TRT FOR *LDAM* TYPE EQUIPMENT.
- *
- * EREXIT (A) .NE. 0 IF REMOVABLE *LDAM* DEVICE NOT READY.
- * TO *IDSX* IF REMOVABLE *LDAM* DEVICE NOT READY.
- *
- * USES T3, CM - CM+4, FS - FS+1.
- *
- * CALLS EXR, SDR, *0TI*, *0TJ*.
- *
- * MACROS EXECUTE.
- IFM2 LDD FN+3 GET UNIT COUNT
- SHN 3
- ADN DDLL
- CRD CM
- LDD CM SET UNIT COUNT
- LPN 7
- STD T2
- LDN PRFM REQUEST FLAW MAP PROCESSING
- RJM SDR SET BUFFERED DEVICE REQUEST
- IFM SUBR ENTRY/EXIT
- LDD CS
- ZJN IFM2 IF ALL CONCURRENT CHANNELS
- LDD T5 SET EQUIPMENT PARAMETER
- STM MIPA
- IFM1 LDD FN+4
- SHN 3
- ADN DILL READ ALGORITHM INDEX FROM LIST
- CRD CM
- LDD CM+4 LOAD ALGORITHM INDEX
- LPN 77
- STD AM
- EXECUTE 0TI,MILA EXECUTE FLAW PROCESSOR
- ZJN IFMX IF NO FLAWING ERRORS
- LDM RDCT
- LPN 77
- LMN NRDE
- NJN IFMX IF DEVICE READY
- LDD FN
- SHN 21-10
- PJN IFM1 IF NON-REMOVABLE DEVICE
- LDN ZERL
- CRD CM
- LDN 0 CLEAR INITIALIZATION REQUEST
- STD RE
- STD FS
- LMN STNR SET NOT READY STATUS
- STD FS+1
- LDD FN+4
- SHN 3
- ADN PFGL CLEAR DEVICE DESCRIPTION
- CWD CM
- ADN PUGL-PFGL
- CWD CM
- ADN STLL-PUGL STORE MST STATUS WORD
- CWD FS
- LJM IDSX EXIT
- PFT SPACE 4,15
- ** PFT - PREWRITE FLAWED TRACK.
- *
- * ENTRY (T4 - T7) = MASS STORAGE PARAMETERS.
- * (PFTA) .NE. 0 IF *LDAM* DEVICE.
- * DRIVER PRESET.
- *
- * CALLS WDS.
- PFT SUBR ENTRY/EXIT
- PFT2 LDC BFMS+WCSF WRITE SECTOR
- RJM WDS
- LDC 0
- PFTA EQU *-1
- ZJN PFTX IF NOT *LDAM* DEVICE
- AOD T7
- LMM SLM
- NJN PFT2 IF NOT END OF TRACK
- UJN PFTX RETURN
- RCS SPACE 4,15
- ** RCS - RESERVE *CTI* SPACE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- * (AM) = ALGORITHM INDEX.
- * (FN+4) = MST POINTER.
- * (CS) = CHANNELS STATUS.
- *
- * EXIT (A) = 0 IF DEADSTART SECTOR READ WITHOUT ERROR.
- * (FR) = 0 IF FORMAT UNREQUIRED (*CIP* SPACE INTACT).
- * (LC) = FIRST CYLINDER OF *CTI* SPACE.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK CONTAINING DEADSTART SECTOR.
- * (T7) = DEADSTART SECTOR.
- * *CTI* SPACE FLAWED IN TRT.
- *
- * USES T3, T9, CM - CM+4, CN - CN+4.
- *
- * CALLS FBT, RDS, WDS, *0PI*.
- *
- * MACROS ENDMS, EXECUTE, SMSTF.
- RCS8 LDC ** CHECK DEADSTART SECTOR
- RCSA EQU *-1
- NJN RCSX IF NO VALID DEADSTART SECTOR
- LDD FR FORMAT REQUIRED STATUS
- RCS SUBR ENTRY/EXIT
- LDN 0
- STD FR CLEAR FORMAT REQUIRED
- STD LC
- LDD CS
- ZJN RCSX IF ALL CONCURRENT CHANNELS
- LDD EQ SET PARAMETER WORD
- LMC 4000
- STM MIPA
- EXECUTE 0PI,MILA READ DEADSTART SECTOR
- STM RCSA
- NJN RCS1.1 IF NOT A VALID DEADSTART SECTOR
- ENDMS
- LDM BFMS+CFBP EXTRACT FORMAT REQUIRED FLAG
- LPN 40
- STD FR
- LMM BFMS+CFBP CLEAR FORMAT REQUIRED FLAG
- STM BFMS+CFBP
- LDM BFMS+MSLP
- NJN RCS1 IF *MSL* INSTALLED
- LDM BFMS+CDAP
- NJN RCS1 IF COMMON DISK AREA INSTALLED
- LDM BFMS+CTIP
- RCS1 STD LC
- NJN RCS1.2 IF *CTI* INSTALLED
- RCS1.1 LDD AM
- LMN AIDR
- NJP RCS8 IF NOT CDSS II
- LDC 840D FIRST CYLINDER OF AREA TO BE FLAWED
- RCS1.2 SHN 1
- STD T3
- LDD FN+4 GET DEVICE LENGTH FROM MST
- SHN 3
- ADK TDGL
- CRD CN
- LDD AM
- LMN AIDA
- NJN RCS2 IF NOT 33502
- LDD T3
- SHN -1
- ADC NTDA/2 COMPLETE CYLINDER TO TRACK CONVERSION
- STD T3
- UJN RCS4 FLAW TRACKS
- RCS2 LMN AIDI&AIDA
- ZJN RCS3 IF 7X54/844-21
- LMN AIDK&AIDI
- ZJN RCS3 IF 7154/844-21
- LMN AIDX&AIDK
- ZJN RCS3 IF FSC 3330-1
- LMN AIDR&AIDX
- NJN RCS4 IF NOT CDSS II
- LDD T3 INITIALIZE TRACK CALCULATION
- STD T9
- LDN 0
- STD T3
- LDC 1062 SET FLAW LIMIT FOR CDSS II
- STD CN
- RCS2.1 LCN 3 FOR THIS PURPOSE, TRACK = CYLINDER*2/3
- RAD T9
- MJN RCS5 IF CONVERSION COMPLETE
- AOD T3 INCREMENT TRACK NUMBER
- UJN RCS2.1 CONTINUE DIVISION
- RCS3 LDD T3
- RAD T3 COMPLETE CYLINDER CONVERSION
- RCS4 LDD T3
- SBD CN
- PJN RCS7 IF *CTI* BEYOND LOGICAL END OF DEVICE
- RCS5 RJM FBT FLAW BLOCK OF TRACKS
- LDD LC
- ZJP RCS8 IF *CTI* NOT PRESENT (CDSS II ONLY)
- RCS7 SMSTF GCTI SET *CTI* PRESENT FLAG
- LDN ZERL CLEAR DEADSTART FILE INDICATOR
- CRM BFMS+OSBP,ON
- LDC BFMS+WLSF REWRITE DEADSTART SECTOR
- RJM WDS
- ENDMS RELEASE CHANNEL
- * LDN 0
- LJM RCSX RETURN
- SNC SPACE 4,10
- ** SNC - SELECT AVAILABLE NIO CHANNEL.
- *
- * ENTRY (FN - FN+4) = EST ENTRY.
- *
- * EXIT (A) = 0, IF NO NIO CHANNEL AVAILABLE
- * = NON-CONCURRENT CHANNEL BYTE.
- SNC2 AOD T0 ADVANCE ADDRESS
- LMN FN+3
- NJN SNC1 IF POSSIBLE SECOND CHANNEL
- SNC SUBR ENTRY/EXIT
- LDN FN+1
- STD T0 INITIALIZE CHANNEL BYTE ADDRESS
- SNC1 LDI T0
- LPC 7040 CHECK CHANNEL STATUS
- LMC 4000
- NJN SNC2 IF NOT AN AVAILABLE CHANNEL
- LDI T0
- UJN SNCX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPSDR
- SPACE 4,10
- ORDI EQU *+5 LOAD ADDRESS FOR *4DI*
- MIPA EQU * *0TI* PARAMETER ADDRESS
- MILA EQU MIPA+1 *0TI* LOAD ADDRESS
- SPACE 4,10
- ERRNG BFMS-MILA-ZPXL OVERFLOW INTO BUFFER
- ERRNG BFMS-MILA-ZTXL OVERFLOW INTO BUFFER
- POV SPACE 4,10
- ** POV - PRESET OVERLAY.
- POV LDM MMFP
- ZJN POV3 IF DO NOT PRESET FOR MMF
- LDC MMFL
- CRD CM
- LDD CM+3 SET MACHINE MASK
- LMM IMSA
- STM IMSA
- LDC L"QUAL" SET LIST ADDRESS
- STD T1
- UJN POV2 ENTER LOOP
- POV1 STD T0
- LDN PSNI REPLACE INSTRUCTION WITH *PSN*
- STI T0
- AOD T1 ADVANCE ADDRESS
- POV2 LDI T1
- NJN POV1 IF MORE TO PRESET
- POV3 LJM RDHX RETURN
- * LIST OF INSTRUCTIONS TO BE PRESET.
- L"QUAL" BSS 0
- L"QUAL" HERE
- ERRZR L"QUAL"-* TABLE EMPTY - REMOVE PRESET CODE
- CON 0 TERMINATE LIST
- QUAL
- IMS EQU /RDH/IMS
- ORDI EQU /RDH/ORDI
- SPACE 4,10
- OVERFLOW ORDH,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DI - PROCESS FORMAT REQUEST.
- TITLE
- QUAL RDI
- IDENT 4DI,/RDI/PFRX
- *COMMENT MSM - PROCESS FORMAT REQUEST.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994.
- RDI SPACE 4,10
- *** *4DI* CONTAINS ROUTINES UTILIZED BY *RMS* IN
- * FORMATTING 895 DEVICES.
- SPACE 4,10
- *CALL COMPCHM
- SPACE 4,10
- **** DIRECT LOCATION ASSIGNMENTS.
- PB EQU RG - RI+1 FORMAT PARAMETER BLOCK (3 LOCATIONS)
- CS EQU ET CHANNEL STATUS
- FR EQU P1 FORMAT REQUIRED FLAG
- LC EQU P2 LAST CYLINDER + 1
- ****
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- DC EQU 11 DISK CHANNEL
- FCGS EQU 12 GENERAL STATUS FUNCTION CODE
- FCFP EQU 16 FORMAT PACK FUNCTION CODE
- FPBL EQU 22 FORMAT PACK PARAMETER BLOCK LENGTH
- RDH SPACE 4,10
- ORG ORDH
- TITLE PROCESS FORMAT REQUEST.
- PFR SPACE 4,20
- ** PFR - PROCESS FORMAT REQUEST.
- *
- * ENTRY (T3) = 0 IF DEADSTART SECTOR READ BY *RCS*.
- * (AM) = ALGORITHM INDEX.
- * (CS) = CHANNEL STATUS.
- * (FR) = FORMAT REQUIRED FLAG.
- * (LC) = FIRST CYLINDER OF *CTI* SPACE.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK CONTAINING DEADSTART SECTOR.
- * (T7) = DEADSTART SECTOR.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = *STLL* WORD OF MST.
- *
- * USES T1, T2, T3, T4, CM - CM+4, CN - CN+4.
- *
- * CALLS F8D.
- *
- * MACROS CMSTF, ENDMS, RCHAN.
- PFR SUBR ENTRY/EXIT
- LDN 0
- STD CM+2
- LDD CS
- LPN 77 CLEAR IMMEDIATE RETURN AND RESERVE CHANNEL
- RCHAN
- LDD CM+1 SAVE CHANNEL FOR *ENDMS*
- STD T4
- AOM CHRV
- LDC CTDC SET ADDRESS OF INSTRUCTION LIST
- STD T1
- UJN PFR3 MODIFY CHANNEL INSTRUCTIONS
- PFR2 STD T2 SET INSTRUCTION ADDRESS
- LDI T2
- SCN 37
- LMD T4 MODIFY INSTRUCTION
- STI T2
- AOD T1 ADVANCE LIST ADDRESS
- PFR3 LDI T1
- NJN PFR2 IF NOT END OF LIST
- LDD FN+4
- SHN 3
- ADN DDLL FETCH UNIT LIST FROM MST
- CRD CN
- LDC DSCP*200+MS1W STORE FORMATTING MESSAGE
- CWM PFRA,ON
- * GENERATE PARAMETER BLOCK TO FORMAT DEVICE.
- PFR4 LDN 0 SET FIRST CYLINDER
- STD PB
- LDD TH SET LARGE RECORD SIZE
- STD PB+2
- LDD CN+4 EXTRACT NEXT UNIT
- SHN 14
- STD CN+4
- ERRPL 4000-3*SLDC CODE DEPENDS ON VALUE
- SHN -14
- LMC 1S10+3S6 APPEND MODE / OPERATION DECODE
- STD PB+1
- RJM F8D FORMAT DEVICE
- LDD T3
- ZJN PFR7 IF DEADSTART SECTOR READ WITHOUT ERROR
- LDC 885D
- STD PB SET CYLINDER FOR DEADSTART SECTOR
- ADN 1
- STD LC
- LDC 502 SECTOR BUFFER INDEX
- STD PB+2
- PFR5 LDN 0 CLEAR SECTOR BUFFER
- STM BFMS-1,PB+2
- SOD PB+2
- NJN PFR5 IF BUFFER NOT CLEARED
- * LDN 0
- * STD PB+2
- RJM F8D FORMAT DEADSTART CYLINDER
- LDC -1S10
- RAD PB+1
- PFR6 SOD PB FORMAT PROTECTED AREA
- RJM F8D
- AOD PB+2 ADVANCE TRACK NUMBER
- LMN 2
- NJN PFR6 IF MORE TRACKS TO FORMAT
- LDC BFMS+WLSF
- RJM WDS CLEAR DEADSTART SECTOR
- PFR7 LDD CN
- LPN 7
- SBN 1 DECREMENT UNIT COUNT
- STD CN
- PJP PFR4 IF MULTI-UNIT DEVICE
- ENDMS
- LDC DSCP*200+MS1W RESTORE RECOVERY MESSAGE
- CWM PFRB,ON
- CMSTF LFPR CLEAR FORMAT REQUEST
- LJM PFRX RETURN
- PFRA DATA 10HFORMATTING
- PFRB DATA 10HRECOVERING
- TITLE SUBROUTINES.
- F8D SPACE 4,10
- ** F8D - FORMAT 895 DEVICE.
- *
- * ENTRY (LC) = LAST CYLINDER + 1 TO FORMAT.
- * (PB - PB+2) = FORMAT PARAMETER BLOCK.
- *
- * USES PB, CM - CM+4.
- *
- * CALLS C2D, /RMS/SEM, WNB.
- F8D2 LDC DSCP*200+MS1W+2 UPDATE CYLINDER NUMBER IN MESSAGE
- CWD CM
- FNC FCFP,DC ISSUE FORMAT FUNCTION
- ACN DC
- LDN FPBL OUTPUT PARAMETER BLOCK
- OAM PB,DC
- FJM *,DC WAIT TRANSMISSION COMPLETE
- DCN DC
- AOD PB ADVANCE CYLINDER NUMBER
- F8D3 RJM C2D
- STD CM+3
- LDD PB CONVERT VALUE FOR MESSAGE
- SHN -6
- RJM C2D
- STD CM+2
- RJM WNB WAIT NOT BUSY
- LDD PB
- LMD LC
- NJN F8D2 IF MORE CYLINDERS TO FORMAT
- F8D SUBR ENTRY/EXIT
- LDD PB+1
- RJM C2D CONVERT UNIT NUMBER
- STM F8DA
- RJM /RMS/SEM SET EQUIPMENT MESSAGE
- LDN 1RU
- STD CM+4 INSERT UNIT DESIGNATOR
- LDC DSCP*200+MS1W+1
- CWD CM
- ADN 1
- CWM F8DA,TW CHANGE MESSAGE
- SBN 2
- CRD CM
- LDD LC
- NJN F8D1 IF *CTI* COMPONENT FOUND
- LDC NTDC/2
- ERRNZ TTDC CODE DEPENDS ON VALUE
- STD LC
- F8D1 LDD PB
- LJM F8D3 FORMAT DEVICE
- F8DA DATA C*XX C0000.*
- WNB SPACE 4,10
- ** WNB - WAIT NOT BUSY.
- *
- * ERROR TO */RMS/HNG* IF CONTROLLER HUNG BUSY.
- *
- * USES T1, T2.
- *
- * CALLS C2D.
- WNB SUBR ENTRY/EXIT
- LDC 400D
- STD T2 SET 400 MILLISECOND DELAY
- WNB1 DELAY 10
- FNC FCGS,DC REQUEST GENERAL STATUS
- ACN DC
- IAN DC INPUT STATUS
- DCN DC
- STD T1 SAVE GENERAL STATUS
- LPN 2
- ZJN WNBX IF NOT BUSY
- SOD T2
- NJN WNB1 IF NOT TIMEOUT
- LDD T1
- SHN -6
- RJM C2D CONVERT GENERAL STATUS
- STM WNBA+11
- LDD T1
- RJM C2D
- STM WNBA+12 STORE IN MESSAGE
- LDC WNBA
- LJM /RMS/HNG DISPLAY MESSAGE AND HANG PP
- WNBA DATA C* HUNG BUSY - GS = XXXX.*
- SPACE 4,10
- ** CHANNEL TABLE.
- CHTB DC
- SPACE 4,10
- ERRNG BFMS-* OVERFLOW INTO BUFFER
- SPACE 4,10
- QUAL
- SPACE 4,10
- OVERFLOW ORDI,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DJ - DAYFILE RECOVERY ROUTINES.
- TITLE
- IDENT 4DJ,/RMS/RDJX
- *COMMENT MSM - DAYFILE RECOVERY ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** *4DJ* CONTAINS ROUTINES UTILIZED BY *RMS* IN
- * RECOVERING DAYFILES.
- SPACE 4,10
- QUAL RMS
- ORG ORDJ
- RDJ SUBR ENTRY/EXIT
- UJN RDJX RETURN
- CDC SPACE 4,25
- ** CDC - CHASE DAYFILE CHAIN.
- *
- * CDC CHASES THE DAYFILE CHAIN ON DISK TO RECOVER THE
- * DAYFILE RIGHT UP TO THE EOI. THE CHAINING IS DONE OFF OF THE
- * DISK RATHER THAN THE TRTS TO RECOVER THE EXACT DAYFILE AS IT
- * EXISTS ON DISK. THIS PERMITS DAYFILE RECOVERY TO BE
- * INDEPENDENT OF TRT UPDATES AND SYSTEM DEVICE CHECKPOINTS.
- * THE DAYFILE WILL BE TRUNCATED TO THE LAST SECTOR OF THE
- * CURRENT TRACK IF DISK EOI EXTENDS BEYOND THE CURRENT
- * TRACK IN THE TRT.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (FN - FN+4) = EST ENTRY.
- * (FS - FS+4) = DEVICE STATUS WORD (STLL).
- * (MBUF) = LABEL MST.
- *
- * EXIT TRT ALTERED IF TRT AND DISK DO NOT MATCH AND VALID
- * EOI FOUND.
- * (A) MUST EQUAL 0 TO ENSURE *MRL* UPDATE OF CM
- * RECOVERY INFORMATION UPON RETURN FROM */RMS/RCD*.
- *
- * USES EE, FA, P1, T6, T7, CM+1 - CM+3.
- *
- * CALLS CDR, CFL, RSS, ULA, VEI, WDS.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- CDC5 ENDMS
- SETMS IO,(DF,RW)
- RJM ULA UPDATE SECTOR OF LOCAL AREAS
- CDC SUBR ENTRY/EXIT
- LDM MBUF+5*ACGL+4
- LPC MGLAP
- ZJN CDCX IF NO SECTOR OF LOCAL AREAS
- SETMS READSTR,(DF,RW)
- LDN EXDF SET NUMBER OF EXCESS DAYFILES
- STD P1
- CDC1 SOD P1
- MJN CDC5 IF END OF DAYFILES
- LDM MBUF+5*DALL,P1
- ZJN CDC1 IF NO TRACK ASSIGNED
- STD T6
- RJM CDR CHECK DAYFILE RECOVERY SELECTION
- NJN CDC1 IF FILE INITIALIZED
- * VERIFY DAYFILE RECOVERY.
- RJM CFL CHECK FILE LENGTH
- ZJN CDC1 IF EMPTY DAYFILE
- RJM VEI VERIFY EOI SECTOR
- CDC2 ZJN CDC1 IF EOI ON DISK MATCHES TRT EOI
- ENDMS
- LDD T6
- LPC 3777 SET NEW EOI SECTOR
- STD CM+2
- LDD T7 SECTOR
- STD CM+3
- LDD T5 EQUIPMENT
- STD CM+1
- MONITOR DTKM UPDATE EOI SECTOR
- * LDN 0
- UJP CDC1 LOOP FOR NEXT DAYFILE
- CDR SPACE 4,10
- ** CDR - CHECK DAYFILE RECOVERY.
- *
- * ENTRY (T6) = DAYFILE TRACK.
- * (P1) = DAYFILE INDEX.
- * (FS - FS+4) = STLL WORD OF THE MST.
- *
- * EXIT (A) = 0 IF DAYFILE NOT INITIALIZED.
- * SPACE RELEASED IF FILE INITIALIZED.
- *
- * USES FS, FS+1, CM+1 - CM+3.
- *
- * CALLS TLB.
- *
- * MACROS CMSTF, ENDMS, MONITOR.
- CDR SUBR ENTRY/EXIT
- * CHECK FOR INITIALIZE REQUEST.
- LDM CDRB,P1
- STM CDRA
- LDD FS+1 CHECK INITIALIZE REQUEST
- LPC *
- CDRA EQU *-1
- ZJN CDRX IF INITIALIZE NOT REQUESTED
- * INITIALIZE DAYFILE.
- LMD FS+1 CLEAR INITIALIZE REQUEST
- STD FS+1
- SHN 6
- LMD FS
- SCN MLIRP+MLPTU+MLCKP+MRASD
- NJN CDR1 IF MORE INITIALIZE FLAGS
- CMSTF LIRP CLEAR INITIALIZE PENDING
- CDR1 ENDMS
- * LDN 0
- STD CM+3
- LDD T6 SET FIRST TRACK
- STD CM+2
- LDD EQ
- STD CM+1
- MONITOR DTKM RELEASE DAYFILE SPACE
- STM MBUF+5*DALL,P1 CLEAR DAYFILE POINTER
- AOM ULAA SET LOCAL AREA SECTOR UPDATE
- LCN 0 CLEAR INITIALIZE REQUEST IN THE MST
- LMM CDRC,P1
- RJM TLB
- LJM CDRX RETURN
- * INITIALIZE REQUEST MASKS FOR EXCESS DAYFILES.
- CDRB CON MLIDF DAYFILE
- CON MLIAF ACCOUNT FILE
- CON MLIEF ERROR LOG
- CON MLIMF MAINTENANCE LOG
- * INITIALIZE REQUEST BIT MAPPING.
- CDRC CON LIDF DAYFILE
- CON LIAF ACCOUNT FILE
- CON LIEF ERROR LOG
- CON LIMF MAINTENANCE LOG
- CDT SPACE 4,10
- ** CDT - CHECK LAST UPDATE DATE AND TIME.
- *
- * ENTRY (P1) = DAYFILE INDEX.
- * (WEIA) = DAYFILE EOI SECTOR.
- * (TPDT) = TIME AND DATE FOR LATEST RECOVERED DAYFILE.
- *
- * EXIT RECOVERY POINTERS UPDATED IF THIS IS A LATER DAYFILE.
- * (TPDT) UPDATED TO LATEST DATE.
- *
- * USES P2, CM - CM+4.
- CDT SUBR ENTRY/EXIT
- LDD FN
- SHN 21-10
- MJN CDTX IF REMOVABLE DEVICE
- LDD P1
- SHN 1
- ADD P1
- STD P2
- LDD MA COPY LAST UPDATE DATE AND TIME OF NEW FILE
- CWM BFMS+DTEI,ON
- SBN 1
- CRD CM
- LDM TPDT,P2 CHECK YEAR AND MONTH
- SBD CM+2
- MJN CDT1 IF LATER YEAR OR MONTH
- NJN CDTX IF NOT LATER YEAR OR MONTH
- LDM TPDT+1,P2 CHECK DAY AND HOUR
- SBD CM+3
- MJN CDT1 IF A LATER DAY OR HOUR
- NJN CDTX IF NOT A LATER DAY OR HOUR
- LDM TPDT+2,P2
- SBD CM+4
- MJN CDT1 IF A LATER MINUTE
- NJN CDTX IF NOT A LATER MINUTE
- * SET THIS DAYFILE AS THE NEW ONE TO RECOVER.
- CDT1 LDD T5 SET LATEST DAYFILES EQUIPMENT
- STM RMSF,P1
- LDD CM+2 SET LATEST DAYFILES DATE
- STM TPDT,P2
- LDD CM+3
- STM TPDT+1,P2
- LDD CM+4
- STM TPDT+2,P2
- LJM CDTX RETURN
- TPDT BSS 3 LATEST DATE/TIME SYSTEM DAYFILE
- BSS 3 LATEST DATE/TIME ACCOUNT DAYFILE
- BSS 3 LATEST DATE/TIME ERRLOG DAYFILE
- BSS 3 LATEST DATE/TIME MAINTENANCE LOG
- CFL SPACE 4,10
- ** CFL - CHECK FILE LENGTH.
- *
- * ENTRY (T6) = DAYFILE TRACK FROM SECTOR OF LOCAL AREAS.
- * (P1) = DAYFILE INDEX.
- *
- * EXIT (A) = 0 IF DAYFILE EMPTY.
- * (ET) = DAYFILE EOI TRACK.
- * (ES) = DAYFILE EOI SECTOR.
- *
- * CALLS SEI.
- CFL1 LDD T6 SAVE EOI TRACK
- STD ET
- LDD T7 SAVE EOI SECTOR
- STD ES
- LDM MBUF+5*DALL,P1 RESTORE FIRST TRACK
- STD T6
- CFL SUBR ENTRY/EXIT
- RJM SEI SEARCH FOR EOI
- LDD T3
- ADD T2
- NJN CFL1 IF NOT EMPTY FILE
- AOM ULAA
- LDN 0 CLEAR DAYFILE POINTER
- STM MBUF+5*DALL,P1
- UJN CFLX RETURN
- TDF SPACE 4,15
- ** TDF - TRUNCATE DAYFILE.
- *
- * ENTRY (P1) = DAYFILE INDEX.
- * (T6) = DAYFILE EOI TRACK.
- * (T7) = SECTOR AT WHICH EOI TO BE WRITTEN.
- *
- * EXIT (EE) .NE. 0 TO INDICATE EOI WRITTEN.
- *
- * CALLS WDS.
- TDF SUBR ENTRY/EXIT
- LDN 0 SET EOI LINKAGE
- STM BFMS
- STM BFMS+1
- LDN ZERL CLEAR DATE AND TIME
- CRM BFMS+DTEI,ON
- LDM MBUF+5*DALL,P1 SET FIRST TRACK
- STM BFMS+FTEI
- LDC BFMS+WLSF WRITE EOI SECTOR
- RJM WDS
- LDM RMSF,P1 CHECK FOR FILES RECOVERED
- SHN 6
- PJN TDFX IF A FILE HAS BEEN RECOVERED
- LDD T5 SET THIS FILE AS RECOVERED
- STM RMSF,P1
- UJN TDFX RETURN
- ULA SPACE 4,15
- ** ULA - UPDATE SECTOR OF LOCAL AREAS.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * ERROR TO *HNG* IF ERROR READING SECTOR OF LOCAL AREAS.
- *
- * USES T6.
- *
- * CALLS CTI, RLA, STI, WDS.
- *
- * MACROS ENDMS, SETMS.
- ULA SUBR ENTRY/EXIT
- LDC 0
- ULAA EQU *-1
- ZJN ULAX IF NO UPDATE REQUIRED
- SETMS POSITION
- * LDN 0 CLEAR UPDATE FLAG
- STM ULAA
- LDM MBUF+5*ALGL+1 SET LABEL TRACK
- STD T6
- RJM STI INTERLOCK LABEL TRACK
- RJM RLA READ LOCAL AREA SECTOR
- PJN ULA2 IF NO ERROR
- ULA1 LDD T6 CLEAR LABEL TRACK INTERLOCK
- RJM CTI
- LDC ULAC *LOCAL AREA SECTOR ERROR.*
- LJM HNG DISPLAY MESSAGE AND HANG
- ULA2 STM ULAB
- ZJN ULA1 IF LOCAL AREA ENTRY NOT FOUND
- LDD MA TRANSFER DF STATUS TO LOCAL AREA ENTRY
- CWM MBUF+5*DALL,ON
- SBN 1
- CRM *,ON
- ULAB EQU *-1
- LDC BFMS+WLSF REWRITE SECTOR OF LOCAL AREAS
- RJM WDS
- ENDMS
- LDD T6 CLEAR LABEL TRACK INTERLOCK
- RJM CTI
- LJM ULAX RETURN
- ULAC DATA C*LOCAL AREA SECTOR ERROR.*
- VEI SPACE 4,15
- ** VEI - VERIFY END OF INFORMATION SECTOR.
- *
- * ENTRY (ET) = TRT EOI TRACK.
- * (ES) = TRT EOI SECTOR.
- * (P1) = DAYFILE INDEX.
- *
- * EXIT (A) = 0 IF EOI ON DISK MATCHES TRT EOI.
- * (T7) = DISK EOI SECTOR.
- *
- * USES T6, T7.
- *
- * CALLS CDT, RDS, TDF.
- *
- * MACROS SETMS.
- VEI4 RJM TDF TRUNCATE DAYFILE
- VEI5 LDD T7 COMPARE EOI ON DISK WITH TRT EOI
- LMD ES
- VEI SUBR ENTRY/EXIT
- LDD ET SET EOI TRACK
- STD T6
- LDD ES SET EOI SECTOR
- STD T7
- SETMS POSITION
- VEI1 LDC BFMS SEARCH FOR EOI ON DISK
- RJM RDS
- MJN VEI4 IF READ ERROR
- LDM BFMS
- ADM BFMS+1
- ZJN VEI2 IF EOI FOUND
- AOD T7 ADVANCE SECTOR NUMBER
- LDM BFMS CHECK LINKAGE
- SHN 6
- PJN VEI1 IF NOT CROSSING TRACK BOUNDARY
- SOD T7 SET EOI SECTOR AT END OF TRACK
- RJM TDF TRUNCATE DAYFILE
- VEI2 RJM CDT CHECK DATE AND TIME
- UJP VEI5 SET EXIT CONDITIONS AND RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCTI
- *CALL COMPSEI
- *CALL COMPSTI
- SPACE 4,10
- ERRNG BFMS-* CODE OVERFLOWS INTO BUFFER
- SPACE 4,10
- OVERFLOW ORDJ,EPFW CHECK FOR OVERFLOW
- TTL MSM/4DK - UEM RECOVERY ROUTINES.
- TITLE
- IDENT 4DK,/RMS/RUJX
- *COMMENT MSM - UEM RECOVERY ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- RUE SPACE 4,10
- *** *4DK* RESTORES UEM FROM THE CHECKPOINT FILE.
- RUE SPACE 4,10
- QUAL RMS
- ORG ORDK
- SPACE 4,10
- RUJ SUBR ENTRY
- LDK MEFL
- CRD CM
- LDD CM+2 SET TRACK SHIFT COUNTS
- SHN -5
- LPN 3
- STD T1
- RAM CUAB
- LDD T1
- RAM CUAA
- RJM RUE RESTORE UEM
- LDN 0
- STD CM
- LDC CPAS+MS2W CLEAR MESSAGE
- CWD CM
- LJM RMS1 RECOVER UEM
- CUA SPACE 4,10
- ** CUA - CALCULATE UEM ADDRESS.
- *
- * ENTRY (T8) = TRACK.
- * (FS - FS+1) = UEM BASE ADDRESS.
- *
- * EXIT (A) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS.
- * (FS+2 - FS+3) = BITS 27 - 6 OF ABSOLUTE UEM ADDRESS
- * (TO BE USED IN *R* REGISTER).
- * (FS+4) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS
- * (TO BE USED IN *A* REGISTER).
- *
- * USES FS+2 - FS+4.
- CUA SUBR ENTRY/EXIT
- LDD T8 CALCULATE TRACK * 2020
- SHN 6 * 100
- ADD T8 * 101
- STD FS+3
- CUAA SHN -10
- * SHN -10+EMSC
- STD FS+2 * 2020 HIGH BITS
- LDD FS+3
- CUAB SHN 4
- * SHN 4+EMSC
- LPC 7777
- ADD FS+1 ADD UEM BASE ADDRESS
- STD FS+4 LOW LOW BITS FOR *A* REGISTER
- SHN -14
- ADD FS
- RAD FS+2 HIGH BYTE ABSOLUTE UEM ADDRESS
- SHN 6 SHIFT RESULT FOR *R* REGISTER
- STD FS+3
- SHN 6
- STD FS+2
- LDD FS+4
- SHN 14
- RAD FS+3
- SHN -14
- STD FS+4 SET LOW 6 BITS FOR *A* REGISTER
- UJN CUAX RETURN
- GCD SPACE 4,15
- ** GCD - GET CHECKPOINT DEVICE.
- *
- * ENTRY (CD) = CURRENT EST ORDINAL.
- * (LO) = LAST MASS STORAGE ORDINAL + 1.
- *
- * EXIT (A) = 0 IF END OF MASS STORAGE DEVICES.
- * (T5) = (CD) = CHECKPOINT DEVICE ORDINAL.
- * (T6) = TRACK POINTER TO UEM PORTION OF CHECKPOINT
- * FILE.
- * (FN - FN+4) = EST ENTRY.
- *
- * USES CD, RI, RI+1, T5, T6, FN - FN+4.
- *
- * CALLS CRA, GSP.
- *
- * MACROS SETMS, SFA.
- GCD SUBR ENTRY/EXIT
- GCD1 AOD CD ADVANCE EST ORDINAL
- STD T5
- LMD LO
- ZJN GCDX IF END OF DEVICES
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD FN
- LDD FN
- SHN 21-13
- PJN GCD1 IF NOT MASS STORAGE DEVICE
- SHN 13-2
- PJN GCD1 IF NOT CHECKPOINT DEVICE
- LDD FN+4
- SHN 3
- ADN DULL
- CRD CM
- LDD CM+3 CHECKPOINT FILE POINTER
- STD P1
- SHN 21-13
- PJN GCD1 IF NOT A VALID FILE
- RJM GSP GET SECTOR POINTER
- ZJN GCD1 IF ERROR
- STD RI+1 SET RANDOM ADDRESS
- LDN 0
- STD RI
- LDD P1 SET CHECKPOINT FILE TRACK
- STD T6
- RJM CRA CONVERT RANDOM ADDRESS
- MJN GCD1 IF ADDRESS NOT ON TRT CHAIN
- SETMS READSTR
- LDN 1 INDICATE CHECKPOINT DEVICE FOUND
- LJM GCDX RETURN
- GSP SPACE 4,15
- ** GSP - GET UEM SECTOR POINTER.
- *
- * THIS ROUTINE RETURNS THE UEM SECTOR OFFSET.
- *
- * ENTRY (FN - FN+4) = DEVICE EST ENTRY.
- * (T5) = DEVICE EST ORDINAL.
- *
- * EXIT (A) = 0, IF ERROR.
- * = SECTOR OFFSET IF NO ERROR.
- *
- * USES CM - CM+4.
- GSP SUBR ENTRY/EXIT
- LDD RA
- SHN 6
- ADD T5
- CRD CM
- SBD T5
- ADD AL-RD+CM
- ADN DALL
- CRD CM
- LDD CM+4
- UJN GSPX RETURN
- RUE SPACE 4,15
- ** RUE - RECOVER UEM.
- *
- * USES T8, T9, FS+4, CM - CM+4.
- *
- * CALLS CUA, C2D, GCD, RNS.
- *
- * MACROS ENDMS.
- RUE5 ENDMS
- LDC RUEA *CHECKPOINT DEVICE NOT FOUND.*
- LJM /RMS/HNG ISSUE ERROR MESSAGE AND HANG
- RUE6 ENDMS
- LDK NJNI-ZJNI SET TO PROCESS ONLY UEM
- STM RMSH
- RUE SUBR ENTRY/EXIT
- LDK NOPE-1 SET EST ORDINAL
- STD CD
- LDK UEML PRESET UEM BASE ADDRESS
- CRD CM
- LDD CM
- SHN 21-2
- STD FS
- SHN -6
- SCN 7
- STD FS+1
- MSR CON PSNI *RNS* ERROR RETURN
- RUE1 RJM GCD GET CHECKPOINT DEVICE
- ZJN RUE5 IF END OF CHECKPOINT DEVICES
- RUE2 LDC BFMS READ LINKAGE SECTOR
- RJM /4DK/RNS
- ADI T3
- ZJN RUE6 IF EOI REACHED
- LDM BFMS+2 SET TRACK NUMBER
- STD T8
- LDM BFMS+3 SET SECTOR COUNT
- STD T9
- LDD T8
- SHN -6
- RJM C2D CONVERT UPPER 2 DIGITS OF TRACK TO DISPLAY
- STM RUEB+12
- LDD T8
- RJM C2D CONVERT LOWER 2 DIGITS OF TRACK TO DISPLAY
- STM RUEB+13
- LDC CPAS+MS2W ISSUE *RESTORING UEM TRACK XXXX* MESSAGE
- CWM RUEB,TR
- RJM CUA CALCULATE UEM ADDRESS
- LDM BFMS+1
- ZJN RUE3 IF LINKAGE WORDS NOT IN THIS SECTOR
- STD T3
- RAD FS+4 ADVANCE UEM ADDRESS FOR LATER
- SBD T3
- ADC 400000
- LRD FS+2
- CWM BFMS+4,T3 WRITE LINKAGE WORDS TO UEM
- RUE3 LDC BFMS
- RJM /4DK/RNS
- LDD FS+4
- ADC 400000
- LRD FS+2 WRITE SECTOR TO UEM
- CWM BFMS+2,HN
- AOD FS+3 ADVANCE UEM ADDRESS
- SHN -14
- RAD FS+2
- SOD T9 DECREMENT SECTOR COUNT
- NJN RUE3 IF NOT FINISHED WITH TRACK
- LJM RUE2 IF FINISHED WITH TRACK
- RUEA DATA C*CHECKPOINT DEVICE NOT FOUND.*
- RUEB DATA C*RESTORING UEM TRACK XXXX.*
- SPACE 4,15
- ** COMMON DECKS.
- *CALL COMPCRA
- QUAL 4DK
- MSR EQU /RMS/MSR
- MSR$ SET 1 SELECT ERROR PROCESSING IN *COMPRNS*
- *CALL COMPRNS
- QUAL *
- SPACE 4,10
- ERRNG BFMS-* DATA BUFFER OVERLAYS CODE
- SPACE 4,10
- OVERFLOW ORDK,EPFW CHECK FOR OVERFLOW
- SPACE 4
- TTL MSM - MASS STORAGE MANAGER.
- END
cdc/nos2.source/opl871/msm.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator