cdc:nos2.source:opl871:1mr
Table of Contents
1MR
Table Of Contents
- [00007] 1MR - MACHINE RECOVERY PROCESSOR.
- [00009] MACHINE RECOVERY PROCESSOR.
- [00171] MAIN ROUTINE.
- [00201] ABT - ISSUE MESSAGE AND ABORT.
- [00225] WDS - WRITE MASS STORAGE.
- [00246] FUNCTION 1 - PROCESS DAT, FAT, MRT-S.
- [00248] PMT - PROCESS DAT, FAT, MRT,S. (FUNCTION 1)
- [00334] FUNCTION 4 - PROCESS RESERVES AND BAT-S.
- [00336] PRB - PROCESS RESERVES AND BAT-S. (FUNCTION 4)
- [00377] SUBROUTINES.
- [00379] CAA - CALCULATE ABSOLUTE ADDRESS.
- [00395] CAT - CALCULATE ADDRESS OF TRT.
- [00412] CAM - CHECK ACCESS MODES FOR DIRECT ACCESS FILE.
- [00451] CFI - CLEAR FLAG REGISTER INTERLOCKS HELD BY *1MR*.
- [00479] CQF - CHECK QUEUE FILE.
- [00576] DAP - DELAY AND PAUSE.
- [00591] DPS - DETERMINE IF PRESERVED FILE AND RESERVATION BIT
- [00616] IQF - INITIALIZE *IQFT*.
- [00661] MRM - ISSUE MRT ERROR MESSAGE.
- [00700] MRT - PROCESS MRT.
- [00804] MSR - RETURN ERROR TO *MREC*.
- [00822] PFB - CLEAN UP DIRECT ACCESS FILE SYSTEM SECTORS.
- [01001] PTR - PROCESS TRACK RESERVATION.
- [01041] RRS - REREAD SYSTEM SECTOR IF TRACK INTERLOCK NOT SET.
- [01069] RSC - READ SECTOR AND CHECK FOR ERRORS.
- [01088] SCI - INCREMENT/DECREMENT *MREC* ACTIVITY COUNT.
- [01117] SDP - SET DEVICE PARAMETERS.
- [01166] STB - SET TRACK BIT.
- [01190] STI - SET TRACK INTERLOCK.
- [01223] TQF - TERMINATE *IQFT*.
- [01324] WQF - WRITE *IQFT* SECTOR.
- [01376] EXTENDED MEMORY MMF SUBROUTINES.
- [01387] CFR - CLEAR FLAG REGISTER BIT.
- [01409] DAT - READ(WRITE) DAT ENTRY (2 WORDS).
- [01450] ECS - READ/WRITE EXTENDED MEMORY.
- [01471] FAT - PROCESS FAST ATTACH PERMANENT FILES.
- [01576] PDT - CLEAR DEVICE ACCESSED BIT IN DAT FOR DOWNED MACHINE.
- [01607] SFR - SET FLAG REGISTER BIT.
- [01646] TFRB - TABLE OF FLAG REGISTER BIT INTERLOCKS.
- [01661] TFR - TOGGLE FLAG REGISTER BIT.
- [01688] WFW - WRITE FAT WORD.
- [01715] FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
- [01717] RDI - RETRIEVE DISPLAY INFORMATION. (FUNCTION 0)
- [01773] FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
- [01775] CDV - CLEAR DEVICE INTERLOCKS. (FUNCTION 3)
- [02015] *CDV* SUBROUTINES.
- [02017] ABE - ACCESS *BDT* ENTRY.
- [02047] CBI - CLEAR SHARED BUFFERED DEVICE INTERLOCKS.
- [02125] PRESET.
- [02127] PRS - PRESET PROGRAM.
- [02331] ISD MMF SUBROUTINES.
- [02350] CTC - COPY DISK TABLES TO CENTRAL MEMORY.
- [02393] CUC - COMPARE UPDATE COUNTS.
- [02416] PFA - PROCESS FAST ATTACH FOR ISD.
- [02452] RMI - RELEASE MST INTERLOCKS.
- [02571] SDM - CHECK DEVICE SHARED TO DOWN MF.
- [02623] UDT - UPDATE DEVICE INFORMATION TABLE IN CM.
- [02649] VDT - VERIFY DISK TABLES.
- [02756] SCP - SET / CLEAR PP PAUSE FLAG.
- [02777] FUNCTION 2 - UPDATE MST ENTRIES IN CM.
- [02779] UMT - UPDATE MST ENTRIES IN CM. (FUNCTION 2)
- [02860] COMMON SUBROUTINES.
- [02873] RES - PROCESS UNIT AND CONTROLLER RESERVES.
- [02952] CBW - CLEAR BAT WRITE ACCESS PERMISSIONS.
- [02982] CLU - CLEAR UTILITY / DEVICE INTERLOCKS.
- [03089] RLS - READ LABEL SECTOR.
- [03185] WSC - WRITE EXTENDED MEMORY SECTOR.
Source Code
- 1MR.txt
- IDENT 1MR,/MRP/MRP
- PERIPH
- BASE MIXED
- SST
- *COMMENT 1MR - MACHINE RECOVERY PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 1MR - MACHINE RECOVERY PROCESSOR.
- SPACE 4
- *** 1MR - MACHINE RECOVERY PROCESSOR.
- * R. J. PRIEVE 75/02/14.
- * P. D. HAAS. 87/04/10.
- SPACE 4
- *** 1MR PROCESSES FUNCTION REQUESTS FROM *MREC*, THE
- * MACHINE RECOVERY UTILITY.
- *
- * FUNCTIONS PROCESSED ARE THE FOLLOWING.
- *
- * FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
- * FUNCTION 1 - PROCESS DAT, FAT, MRT,S, SYSTEM SECTORS,
- * AND UNIT AND/OR CONTROLLER RESERVE SITUATIONS.
- * FUNCTION 2 - UPDATE MST ENTRIES IN CM FOR INDEPENDENT
- * SHARED DEVICES.
- * FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
- SPACE 4
- *** ENTRY CONDITIONS.
- *
- *T, IR 18/1MR,18/0,6/FN,18/PARM
- *
- * FN FUNCTION NUMBER.
- * PARM PARAMETER.
- *
- * PARAMETERS ARE DOCUMENTED IN HEADER INFORMATION
- * OF EACH FUNCTION PROCESSOR.
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- * * INCORRECT 1MR FUNCTION.*
- *
- * * 1MR ERROR FLAG TERMINATION.* - ERROR FLAG WAS SET AT
- * MREC,S CONTROL POINT.
- *
- * * SSER, EQXXX, TKYYYY.* - UNRECOVERED ERROR OCCURRED WHEN
- * ATTEMPTING TO READ OR WRITE THE SYSTEM SECTOR ON EQXXX,
- * TRACK YYYY. THE SECTOR IS NOT PROCESSED. PROCESSING
- * CONTINUES. THIS MESSAGE IS ALSO ISSUED TO THE ERRLOG.
- *
- * * EQXXX, MRT PROCESSED BUT NOT REWRITTEN.* - UNRECOVERED
- * WRITE ERROR OCCURRED WHEN ATTEMPTING TO ZERO OUT THE MRT
- * FOR EQXXX. PROCESSING CONTINUES.
- *
- * * EQXXX, TKYYYY, INCORRECT LOCAL FILE.* - MRT BIT WAS FOUND
- * SET FOR TRACK YYYY ON EQXXX, BUT THE TRACK WAS NOT THE FIRST
- * TRACK OF A LOCAL FILE. THE MRT BIT WAS CLEARED BUT THE
- * TRACK WAS NOT DROPPED.
- *
- * * EQXXX, DAF INTERLOCKS NOT CLEARED.* - INTERLOCKS IN THE
- * SYSTEM SECTORS OF DIRECT ACCESS FILES ON EQXXX WERE NOT
- * CLEARED, EITHER BECAUSE OF MASS STORAGE ERRORS OR
- * BECAUSE A PF CATALOG SIZE ERROR WAS DETECTED.
- *
- * * RECOVERING PF.EQXXX, TRK YYYY.* - INFORMATIVE MESSAGE ISSUED
- * AT CONTROL POINT WHEN PRESERVED FILES ARE BEING PROCESSED
- * ON EQXXX.
- *
- * * EQXXX, UNYY, CHECKING RESERVE.* - INFORMATIVE MESSAGE
- * ISSUED TO B-DISPLAY WHILE CONTROLLER AND UNIT RESERVES
- * ARE BEING PROCESSED. IN THE CASE OF MULTI-UNIT
- * DEVICES, YY IS THE PHYSICAL UNIT NUMBER.
- *
- * * EQXXX, CLEARING LABEL SECTOR INTERLOCKS.* - INFORMATIVE
- * MESSAGE ISSUED TO B-DISPLAY WHILE THE RMS COPY OF THE
- * MST IS BEING PROCESSED (SHARED RMS SYSTEM ONLY).
- *
- * * EQXXX, CHYY, CONTROLLER RESERVED.* - INFORMATIVE MESSAGE
- * ISSUED TO B-DISPLAY INDICATING THAT THE HARDWARE CONTROLLER
- * RESERVE IS HELD BY THE DOWN MAINFRAME FOR THE SPECIFIED
- * CHANNEL/DEVICE. TO CLEAR THE RESERVE, THE OPERATOR SHOULD
- * HIT THE DEADSTART BUTTON. IF THE CONTROLLER IS TO BE
- * IGNORED BY THIS MAINFRAME, JUST ENTER THE *GO,JSN* COMMAND.
- *
- * * EQXXX, UNYY, UNIT RESERVED.* - INFORMATIVE MESSAGE ISSUED
- * TO B-DISPLAY INDICATING THAT THE HARDWARE UNIT RESERVE IS
- * HELD BY THE DOWN MAINFRAME FOR THE SPECIFIED UNIT. IF THIS
- * DEVICE IS TO BE IGNORED BY THIS MAINFRAME, THE OPERATOR
- * SHOULD JUST ENTER *GO,JSN*. OTHERWISE, THE OPERATOR SHOULD
- * CLEAR THE UNIT RESERVE (SEE DOCUMENTATION IN *MREC*) ON
- * THE UNIT TO CONTINUE PROCESSING.
- *
- * * INTERLOCKING IQFT, EQXXX.* - INDICATES *1MR* IS WAITING
- * FOR THE INTERLOCK ON THE *IQFT* TRACK.
- SPACE 4
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSIOQ
- *CALL COMSJIO
- QUAL LSD
- *CALL COMSLSD
- QUAL *
- N4SS EQU /LSD/N4SS
- DISS EQU /LSD/DISS
- CKSS EQU /LSD/CKSS
- DKSS EQU /LSD/DKSS
- QUAL MMF
- LIST X
- *CALL COMSMMF
- LIST *
- QUAL *
- MISD EQU /MMF/MISD
- MMPF EQU /MMF/MMPF
- MXMF EQU /MMF/MXMF
- QUAL MRT
- LIST X
- *CALL COMSMRT
- LIST *
- QUAL *
- *CALL COMSMSP
- *CALL COMSMST
- *CALL COMSPFM
- *CALL COMSPIM
- *CALL COMSSSD
- *CALL COMSSSE
- *CALL COMSWEI
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- BUFS EQU BFMS-502 SCRATCH BUFFER
- QBUF EQU BUFS-502 *IQFT* BUFFER
- BUFD EQU QBUF-5*2 *DAT* BUFFER
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- ORG 16
- EF BSS 1 ERROR FLAG
- SC BSS 1 SCRATCH
- CN BSS 5 CM BUFFER
- DA BSS 2 DAT TRACK ADDRESS
- DF BSS 1 DIRECT ACCESS FILE COUNT
- DT BSS 1 DAT/FAT TRACK
- ET BSS 2 ENVIRONMENT TABLE ADDRESS
- EQ BSS 1 EQUIPMENT BEING PROCESSED
- ID BSS 1 MACHINE ID OF THIS MACHINE
- LK BSS 1 LINK DEVICE EST ORDINAL
- MD BSS 1 MACHINE INDEX OF DOWNED MACHINE
- MI BSS 1 MID OF DOWNED MACHINE
- MK BSS 1 MACHINE MASK OF DOWNED MACHINE
- NT BSS 1 NUMBER OF TRACKS ON CURRENT DEVICE
- FT BSS 1 FILE TYPE
- PF BSS 1 PRESERVED FILE TRACK INTERLOCK STATUS
- TC BSS 1 TRACK COUNT
- BY BSS 1 BYTE COUNT
- WB EQU NT - BY WORD BUFFER (5 LOCATIONS)
- BI BSS 1 BIT COUNT
- AD BSS 1 ADDRESS OF CURRENT MRT BYTE
- ORG 57
- SD BSS 1 TYPE OF SHARED DEVICE (FUNCTION 2)
- * 0 = EXTENDED MEMORY MMF DEVICE.
- * 1 = INDEPENDENT SHARED DEVICE (ISD).
- TW BSS 1 CONSTANT 2
- SX BSS 1 CONSTANT 6
- RE BSS 1 READ EXTENDED MEMORY SUBFUNCTION * 1000
- WE BSS 1 WRITE EXTENDED MEMORY SUBFUNCTION * 1000
- CT BSS 1 CURRENT TRACK
- QF BSS 1 FIRST TRACK OF *IQFT*
- QT BSS 1 CURRENT TRACK OF *IQFT*
- QS BSS 1 CURRENT SECTOR OF *IQFT*
- ****
- TITLE MAIN ROUTINE.
- ** MAIN ROUTINE.
- QUAL MRP
- ORG PPFW
- MRP RJM PRS PRESET
- MRPA EQU *-1
- DROP RJM CFI CLEAR FLAG REGISTER INTERLOCKS
- MRP1 LDN 1 SET COMPLETE FLAG FOR *MREC*
- STD CN+4
- LDD RA
- SHN 6
- ADC /MRT/RCLW
- CWD CN
- MRP2 MONITOR DPPM DROP PP
- UJN ABT1 EXIT TO PP RESIDENT
- ERR LDC =C* 1MR ERROR FLAG TERMINATION.*
- RJM DFM
- LDC WDSX RESET ERROR RETURN FROM *WDS*
- STM WDSA
- RJM TQF TERMINATE *IQFT*
- RJM CFI CLEAR FLAG REGISTER INTERLOCKS
- UJN MRP2 DROP PP
- SPACE 4
- ** ABT - ISSUE MESSAGE AND ABORT.
- *
- * ENTRY (A) = MESSAGE ADDRESS.
- ABT RJM DFM ISSUE MESSAGE
- RJM CFI CLEAR FLAG REGISTER INTERLOCKS
- MONITOR ABTM
- ABT1 LJM PPR EXIT TO PP RESIDENT
- SPACE 4
- ** COMMON DECKS.
- QUAL
- *CALL COMPC2D
- *CALL COMPCEA
- *CALL COMPCKP
- *CALL COMPRSS
- *CALL COMPSSE
- QUAL MRP
- *CALL COMPWEI
- *CALL COMPWSS
- WDS SPACE 4,10
- ** WDS - WRITE MASS STORAGE.
- *
- * ENTRY (A) = SAME AS ENTRY TO DRIVER.
- * (T5 - T7) = MASS STORAGE PARAMETERS.
- *
- * EXIT (A) = 0 IF NO WRITE ERRORS.
- *
- * CALLS WDS.
- WDS1 LDN 0 INDICATE SUCCESSFUL WRITE
- WDS SUBR ENTRY/EXIT
- RJM //WDS
- PJN WDS1 IF WRITE COMPLETED
- SHN 21-12
- SHN 0-21
- NJN WDSX IF NON-RECOVERABLE ERROR
- LCN 10
- LJM WDSX ERROR RETURN
- WDSA EQU *-1
- TITLE FUNCTION 1 - PROCESS DAT, FAT, MRT-S.
- PMT SPACE 4
- ** PMT - PROCESS DAT, FAT, MRT,S. (FUNCTION 1)
- *
- * ENTRY (IR+3 - IR+4) = ADDR.
- *
- * ADDR ADDRESS OF TABLE OF DEVICES TO RECOVER.
- *
- * CALLS CAA, CLU, C2D, DAT, DFM, MRT, PDT, PFB, RMI, SDM,
- * SDP, SFR, *2MS*.
- *
- * MACROS EXECUTE, PAUSE.
- PMT SUBR ENTRY/EXIT
- EXECUTE 2MS LOAD HARDWARE RESERVE ROUTINES
- LDD LK
- ZJN PMT1 IF NOT EXTENDED MEMORY MMF
- LDN /MMF/DATI
- RJM SFR SET DAT INTERLOCK
- RJM CLU CLEAR UTILITY / DEVICE INTERLOCKS
- * PROCESS DAT, MRT-S, SYSTEM SECTORS.
- PMT1 LCN 0 PRESET TABLE INDEX
- STD SC
- PMT2 PAUSE NE
- AOD SC READ TABLE ENTRY
- RJM CAA
- ADD SC
- CRD CM
- LDD CM+4 SET EST ORDINAL
- STD EQ
- STD T5
- NJN PMT3 IF NOT END OF DEVICES TO RECOVER
- LJM PMTX RETURN
- PMT3 LDD CM SET POSSIBLE IGNORE DEVICE
- STM PMTA
- LDD CM+3 SET TYPE OF SHARED DEVICE
- STD SD
- ZJN PMT4 IF NOT ISD
- LDD T5
- STD LK
- RJM SDM CHECK IF DEVICE SHARED TO DOWN MF
- NJN PMT2 IF NOT SHARED TO DOWN MF
- RJM RMI RELEASE MST INTERLOCKS
- UJN PMT5 PROCESS MRT
- PMT4 RJM PDT PROCESS DAT FOR DEVICE
- ZJN PMT7 IF NO PROCESSING FOR DEVICE
- PMT5 RJM SDP SET DEVICE PARAMETERS
- STM PMTB
- RJM MRT PROCESS MRT FOR DEVICE
- LDC 0
- PMTA EQU *-1
- LMN /MRT/IGN
- ZJN PMT6 IF IGNORE DEVICE
- LDC ** CHECK PFC SIZE
- PMTB EQU *-1
- ZJN PMT8 IF 8-WORD PF CATALOGS
- LDD DF
- ZJN PMT6 IF NO DAF-S
- RJM PFB PROCESS DAF SYSTEM SECTORS
- NJN PMT8 IF ALL FILES NOT PROCESSED
- PMT6 LDD SD
- NJN PMT7 IF ISD
- LDD WE WRITE DAT ENTRY WITH ACCESS CLEARED
- STD T3
- LDD MA
- CWM BUFD,TW STORE DAT ENTRY IN MESSAGE BUFFER
- LDD EQ SET EQUIPMENT
- RJM DAT WRITE DAT ENTRY
- PMT7 LJM PMT2 LOOP FOR NEXT DEVICE
- PMT8 LDD EQ CONVERT UPPER DIGIT OF EST ORDINAL
- SHN -6
- ADC 2RQ0
- STM PMTC+1
- LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM PMTC+2
- LDC PMTC * EQXXX, DAF INTERLOCKS NOT CLEARED.*
- RJM DFM
- UJN PMT7 LOOP FOR NEXT DEVICE
- PMTC DATA C* EQXXX, DAF INTERLOCKS NOT CLEARED.*
- TITLE FUNCTION 4 - PROCESS RESERVES AND BAT-S.
- PRB SPACE 4,10
- ** PRB - PROCESS RESERVES AND BAT-S. (FUNCTION 4)
- *
- * ENTRY (IR+3 - IR+4) = ADDR.
- *
- * ADDR ADDRESS OF TABLE OF DEVICES TO RECOVER.
- *
- * CALLS ECS, RES, *2MS*.
- *
- * MACROS EXECUTE.
- PRB SUBR ENTRY/EXIT
- LDD LK
- ZJN PRB1 IF NOT EXTENDED MEMORY MMF
- * DISABLE LEVEL 3 RECOVERY OF DOWNED MACHINE.
- LDN ZERL BUILD MMFL WORD FOR DOWNED MACHINE
- CRD CM
- LDD MI SET MID OF DOWNED MACHINE
- STD CM
- LDD MD SET MACHINE INDEX OF DOWNED MACHINE
- STD CM+4
- LDD MA SET CM BUFFER ADDRESS
- CWD CM
- LDD ET+1 SET EXTENDED MEMORY ADDRESS
- ADD MD ADD INDEX INTO CORRECT ENTRY
- SBN 1
- STD CM+4
- SHN -14
- ADD ET
- ADD WE
- STD CM+3
- LDN 1-1 WRITE EXTENDED MEMORY
- RJM ECS
- * PROCESS CONTROLLER AND UNIT RESERVES.
- PRB1 EXECUTE 2MS LOAD HARDWARE RESERVE ROUTINES
- RJM RES PROCESS BAT-S AND HARDWARE RESERVES
- UJP PRBX RETURN
- TITLE SUBROUTINES.
- CAA SPACE 4
- ** CAA - CALCULATE ABSOLUTE ADDRESS.
- *
- * ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS.
- *
- * EXIT (A) = ABSOLUTE ADDRESS.
- CAA SUBR ENTRY/EXIT
- LDD IR+3
- LPN 77
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- UJN CAAX RETURN
- CAT SPACE 4,10
- ** CAT - CALCULATE ADDRESS OF TRT.
- *
- * ENTRY (A) = ADDRESS OF WORD *TRLL* IN MST.
- *
- * EXIT (A) = FWA OF TRT.
- *
- * USES CM - CM+4.
- CAT SUBR ENTRY/EXIT
- CRD CM GET FWA OF TRT
- LDD CM+3
- LPN 77
- SHN 14
- LMD CM+4
- UJN CATX RETURN
- CAM SPACE 4
- ** CAM - CHECK ACCESS MODES FOR DIRECT ACCESS FILE.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK.
- * (BFMS) = SYSTEM SECTOR.
- *
- * EXIT (A) = (PF) = 0 IF FILE PURGED.
- *
- * USES CM - CM+4.
- *
- * CALLS RRS.
- *
- * MACROS ENDMS, MONITOR.
- CAM1 LDN 1 SET FILE NOT PURGED
- CAM SUBR ENTRY/EXIT
- LDM CASS CHECK PURGE BIT
- SHN 21-5
- PJN CAM1 IF PURGE BIT NOT SET
- SHN -21+5+22 CHECK IF ACTIVE USERS
- LPN 32
- ADM UCSS+1
- ADM UCSS+2
- ADM UCSS+3
- ADM UCSS+4
- NJN CAMX IF ACTIVE USERS
- RJM RRS
- ENDMS
- LDD T6 RELEASE FILE SPACE
- STD CM+2
- LDD T5
- STD CM+1
- MONITOR DTKM
- * LDN 0 CLEAR TRACK INTERLOCK STATUS
- STD PF
- UJN CAMX RETURN
- CFI SPACE 4,10
- ** CFI - CLEAR FLAG REGISTER INTERLOCKS HELD BY *1MR*.
- *
- * ENTRY (CFIA) = LINK DEVICE EST ORDINAL, IF ECS MMF.
- * = 0, IF ISD MMF.
- *
- * USES T2.
- *
- * CALLS CFR, SCI.
- CFI SUBR ENTRY/EXIT
- RJM SCI CLEAR *CMS* INTERLOCK
- LDC ** CHECK TYPE OF MMF OPERATION
- CFIA EQU *-1 (LINK DEVICE EST ORDINAL, IF ECS MMF)
- ZJN CFIX IF NOT EXTENDED MEMORY MMF
- LDC TFRB-3 CLEAR FLAG REGISTER INTERLOCKS
- STD T2
- CFI1 LDN 3
- RAD T2
- LDI T2
- ZJN CFIX IF END OF FLAG BITS
- LPN 40
- ZJN CFI1 IF NOT SET
- LMI T2
- RJM CFR
- UJN CFI1
- CQF SPACE 4,15
- ** CQF - CHECK QUEUE FILE.
- *
- * ENTRY (MI) = ID OF DOWN MACHINE.
- * (QF) = FIRST TRACK OF *IQFT* IF INITIALIZED.
- * (T4) = CHANNEL (RESERVED).
- * (T5) = EST ORDINAL.
- * (CT) = (T6) = FIRST TRACK OF PRESERVED FILE.
- * (BFMS) = PRESERVED FILE SYSTEM SECTOR.
- *
- * EXIT (A) = 0 IF NOT QUEUE FILE.
- * (FT) = FILE TYPE.
- *
- * USES T1, T2, T3.
- *
- * CALLS IQF, WQF, WSS.
- *
- * MACROS ENDMS, FILEREC, SETMS.
- CQF6 LDN 0 INDICATE NON-QUEUE FILE
- CQF SUBR ENTRY/EXIT
- LDM FNSS+4 EXTRACT FILE TYPE
- SHN -6
- STD FT
- LDN RDATL SET LENGTH OF QUEUE FILE TABLE
- STD T3
- CQF1 SOD T3 DECREMENT INDEX
- MJN CQF6 IF END OF TABLE
- LDM RDAT,T3
- LMD FT
- NJN CQF1 IF NOT MATCHING FILE TYPE
- LDM FGSS
- LPN 2
- ZJN CQF2 IF INACTIVE QUEUE FILE
- LDM RMSS
- LMD MI
- NJN CQF6 IF NOT ACTIVE QUEUE FILE ON DOWN MACHINE
- LCN 2 SET QUEUE FILE INACTIVE
- RAM FGSS
- RJM WSS REWRITE SYSTEM SECTOR
- CQF2 LDD QF
- NJN CQF3 IF QUEUE FILE PROCESSING INITIATED
- ENDMS
- RJM IQF INITIALIZE *IQFT*
- CQF3 LDM RMSS SET MACHINE ID
- STM FMSS+4
- LDM FLSS SET FILE LENGTH
- STM CDSS
- LDM FLSS+1
- STM CDSS+1
- LDC IOSS SYSTEM SECTOR ADDRESS OF QFT ENTRY
- STD T1
- LDC QBUF+2 SET BUFFER ADDRESS
- CQFC EQU *-1
- STD T2
- ADN 5*QFTE END OF QFT ENTRY
- STD T3
- ADN 5*10-5*QFTE END OF MAXIMUM SIZE QFT ENTRY
- STM CQFD
- * MOVE IQFT ENTRY TO BUFFER.
- CQF4 LDI T1 MOVE QFT ENTRY
- STI T2
- AOD T1 ADVANCE BUFFER ADDRESSES
- AOD T2
- LMD T3
- NJN CQF4 IF NOT END OF QFT ENTRY
- LDN 5
- STD T1
- LDD MA MOVE REMAINDER OF IQFT ENTRY
- CWM CDSS,ON
- CWM FMSS,ON
- CWM FDSS,ON
- CWM ACSS,ON
- CWM FOSS,ON
- SBN 5
- CRM QBUF+2+5*10,T1
- CQFD EQU *-1
- LDC 5*QFEWL ADVANCE BUFFER ADDRESS
- RAM CQFC
- LDN QFEWL ADVANCE SECTOR LENGTH
- RAM QBUF+1
- SHN -6
- ZJN CQF5 IF NOT FULL SECTOR
- RJM WQF WRITE *IQFT* SECTOR
- ZJN CQF5 IF SECTOR WRITTEN
- LJM IQF2 END OF SPACE ON *IQFT*
- CQF5 LDD CT RESET CURRENT TRACK
- STD T6
- LJM CQFX RETURN
- FILEREC
- DAP SPACE 4,10
- ** DAP - DELAY AND PAUSE.
- *
- * EXIT (A) = 0 IF *ODET* OR ERROR .GE. *SPET* SET.
- DAP SUBR ENTRY/EXIT
- DELAY
- PAUSE
- LDD CM+1
- SBN ODET
- ZJN DAPX IF OPERATOR DROP
- SBN SPET-ODET
- SHN -21 (A) = 1 IF NO ERROR *SPET* OR ABOVE
- UJN DAPX RETURN
- DPS SPACE 4
- ** DPS - DETERMINE IF PRESERVED FILE AND RESERVATION BIT
- * IS SET FOR TRACK SPECIFIED.
- *
- * ENTRY (T6) = TRACK.
- *
- * EXIT (A, BIT 21) = RESERVATION BIT.
- * (A, BIT 7) = PRESERVED FILE BIT.
- * (A, BIT 3) = TRACK INTERLOCK BIT.
- *
- * USES CM - CM+4.
- DPS SUBR ENTRY/EXIT
- LDD T6 READ TRT WORD
- SHN -2
- DPSA ADC TRTS
- CRD CM
- LDD T6 SET SHIFT COUNT
- LPN 3
- ADC SHNI+16
- STM DPSB
- LDD CM+4
- DPSB SHN 16
- UJN DPSX RETURN
- IQF SPACE 4,15
- ** IQF - INITIALIZE *IQFT*.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (QF) = (QT) = FIRST TRACK OF *IQFT*.
- * (QS) = FIRST SECTOR OF *IQFT*.
- *
- * USES T3, T6.
- *
- * CALLS RSS, WSS.
- *
- * MACROS SETMS.
- IQF SUBR ENTRY/EXIT
- IQF2 LDM PFBA
- STD T6 SET *IQFT* TRACK
- STD QF
- STD QT
- LDC 500
- STD T3
- IQF4 LDN 0 CLEAR SYSTEM SECTOR BUFFER
- STM BFMS+1,T3
- STM QBUF+1,T3 CLEAR IQFT BUFFER
- SOD T3
- NJN IQF4 LOOP TO START OF BUFFER
- STM QBUF+1 CLEAR SECTOR WORD COUNT
- 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 *IQF* SECTOR
- STD QS
- LDD CT RESTORE CURRENT TRACK
- STD T6
- SETMS POSITION
- * LDN 0 REREAD QUEUE FILE SYSTEM SECTOR
- RJM RSS
- LJM IQFX RETURN
- IQFA VFD 42/0LQUEUES,6/1,6/SYFT,6/0
- MRM SPACE 4
- ** MRM - ISSUE MRT ERROR MESSAGE.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE.
- * (T6) = TRACK.
- * (EQ) = EST ORDINAL TO BE INSERTED IN MESSAGE.
- *
- * USES T1.
- *
- * CALLS C2D, DFM.
- MRM SUBR ENTRY/EXIT
- STD T1 SAVE MESSAGE ADDRESS
- STM MRMA
- LDD EQ CONVERT UPPER DIGIT OF EST ORDINAL
- SHN -6
- ADC 2RQ0
- STM 1,T1
- LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM 2,T1
- LDD T1
- LMC MRTC
- ZJN MRM1 IF NO TRACK IN MESSAGE
- LDD T6 CONVERT TRACK MESSAGE
- RJM C2D
- STM 6,T1
- LDD T6
- SHN -6
- RJM C2D
- STM 5,T1
- LDD T1 ISSUE MESSAGE TO ERRLOG
- LMC ERLN
- RJM DFM
- MRM1 LDC * ISSUE MESSAGE TO DAYFILE
- MRMA EQU *-1
- RJM DFM
- LJM MRMX RETURN
- MRT SPACE 4
- ** MRT - PROCESS MRT.
- *
- * ENTRY (T6) = MRT TRACK NUMBER.
- * (NT) = NUMBER OF TRACKS ON DEVICE BEING RECOVERED.
- * (EQ) = EST ORDINAL BEING PROCESSED.
- *
- * EXIT TO *MSR* IF LINK DEVICE ERROR.
- *
- * USES AD, BY, TC, T5, T6, CM - CM+4.
- *
- * CALLS MRM, PTR, RSC, WDS.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- MRT8 LDD MA RESET MRT TRACK AND SECTOR
- CWM MRTB,ON
- SBN 1
- CRD T3
- SETMS IO,(NS,RW)
- LDC BUFS SET BUFFER ADDRESS
- RJM WDS WRITE SECTOR
- MJN MRT9 IF ERROR
- ENDMS
- UJN MRTX RETURN
- MRT9 LDC MRTC SET MESSAGE ADDRESS
- RJM MRM ISSUE ERROR MESSAGE
- MRT SUBR ENTRY/EXIT
- LDD EQ UPDATE TRT FOR DEVICE
- STD CM+1
- LDN UTRS
- STD CM+3
- MONITOR STBM
- * LDN 0 SET FIRST TRACK
- STD TC
- STD BY
- LDD LK READ MRT SECTOR FROM LINK DEVICE
- STD T5
- LDD SD
- ZJN MRT1 IF NOT ISD
- LDN /MMF/MRTL-/MMF/MRST
- MRT1 ADN /MMF/MRST-1 SET MRT SECTOR
- ADD MD
- STD T7
- SETMS IO,NS
- LDC BUFS+2+4 SET FIRST MRT BYTE TO PROCESS
- STD AD
- SBN 2+4 READ MRT SECTOR
- RJM RSC
- LDD MA SAVE MRT TRACK AND SECTOR
- CWD T3
- CRM MRTB,ON
- ENDMS
- LDD EQ SET EST ORDINAL
- STD T5
- SETMS IO,RW
- MRT2 LDI AD
- NJN MRT4 IF BITS SET IN BYTE
- MRT3 SOD AD
- LDN 14 INCREMENT TRACKS
- RAD TC
- AOD BY INCREMENT BYTE WITHIN WORD
- LMN 3
- NJN MRT2 IF NOT DONE WITH CM WORD
- * LDN 0
- STD BY RESET BYTE COUNTER
- LDN 10
- RAD AD
- LCN 4 ADJUST TRACK COUNT
- RAD TC
- SBD NT
- MJN MRT2 IF MORE TRACKS TO CHECK
- LJM MRT8
- MRT4 LDN 1 INITIALIZE MASK
- STM MRTA
- SHN 13-0 SET TRACK
- ADD TC
- STD T6
- MRT5 LDI AD
- ZJN MRT3 IF NO MORE TRACK BITS IN MRT BYTE
- LPC 0
- MRTA EQU *-1
- ZJN MRT6 IF TRACK BIT NOT SET
- LMI AD CLEAR TRACK BIT
- STI AD
- RJM PTR PROCESS TRACK RESERVATION
- MJN MRT6 IF VALID TRACK ASSIGNMENT
- LDC MRTD ISSUE ERROR MESSAGE
- RJM MRM
- MRT6 AOD T6 ADVANCE TRACK
- LDM MRTA
- RAM MRTA ADJUST MASK FOR NEXT MRT BIT
- SHN -14
- ZJN MRT5 IF NOT ZERO MASK
- LJM MRT3 SET NEXT MRT BYTE
- MRTB BSS 5 TEMPORARY STORAGE
- MRTC DATA C* EQXXX, MRT PROCESSED BUT NOT REWRITTEN.*
- MRTD DATA C* EQXXX, TKYYYY, INCORRECT LOCAL FILE.*
- MSR SPACE 4
- ** MSR - RETURN ERROR TO *MREC*.
- *
- * ENTRY (A) = ERROR CODE.
- *
- * EXIT ERROR RETURN WORD RETURNED TO *MREC*.
- *
- * CALLS CFR.
- MSR STD T5 SAVE ERROR CODE
- LDN ZERL
- CRD T0
- LDD RA RETURN ERROR WORD TO *MREC*
- SHN 6
- ADC /MRT/ERRW
- CWD T1
- MSR1 LJM DROP DROP PP
- PFB SPACE 4
- ** PFB - CLEAN UP DIRECT ACCESS FILE SYSTEM SECTORS.
- *
- * ENTRY (EQ) = EST ORDINAL TO PROCESS.
- * (NT) = NUMBER OF TRACKS ON DEVICE.
- *
- * EXIT (A) = 0 IF DEVICE CLEANUP COMPLETED.
- *
- * USES BY, CT, NT, PF, TC, T2, T5, T6, T7, CM - CM+4.
- *
- * CALLS CAM, CQF, C2D, DPS, FAT, PFA, RRS, RSS, SSE, STB,
- * STI, TQF, USC, WDS.
- *
- * MACROS ENDMS, PAUSE, SETMS.
- PFB SUBR ENTRY/EXIT
- LDD EQ SET EST ORDINAL
- STD T5
- SHN -6 CONVERT UPPER DIGIT OF EST ORDINAL
- ADC 2RQ0
- STM PFBB+10
- STM PFBC+13
- LDD EQ CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM PFBB+11
- STM PFBC+14
- SETMS IO,(NS,RW)
- LDN 0
- STD BY PRESET FILES PROCESSED COUNT
- STD EF
- LDD CM+4 GET *IQFT* POINTER FROM MST
- STM PFBD
- PFB0 SHN 3
- ADN ACGL
- CRD CM
- LDD CM+3 SET *IQFT* TRACK
- STM PFBA
- STD T6 INTERLOCK *IQFT*
- RJM STI
- ZJN PFB1 IF TRACK INTERLOCKED
- LDD CP
- ADN MS2W STORE WAITING MESSAGE
- CWM PFBC,TR
- DELAY 10*100D DELAY 100 MS
- PAUSE NE
- LDC ** LOAD MST ADDRESS
- PFBD EQU *-1
- UJN PFB0 LOOP ON INTERLOCK
- PFB1 STD PF
- LDC PFB18 SET WRITE ERROR PROCESSING RETURN
- STM WDSA
- LDD MD SET MACHINE INDEX*5
- STD TC
- SHN 2
- RAD TC
- ADC UCSS SET BEGINNING OF DOWNED MACHINE ENTRY
- STM USCA
- LDC 4000-1 SET INITIAL TRACK
- STD CT
- ADN 1 SET LAST TRACK + 1
- RAD NT
- PFB2 AOD CT ADVANCE TRACK NUMBER
- LMD NT
- NJN PFB3 IF NOT END OF TRT
- STD CM
- LDC WDSX RESET ERROR RETURN
- STM WDSA
- LDD CP CLEAR CONTROL POINT MESSAGE
- ADN MS2W
- CWD CM
- RJM TQF TERMINATE *IQFT*
- LDD EF
- LJM PFBX RETURN
- PFB3 LDD CT SET NEXT TRACK
- STD T6
- LMC 0
- PFBA EQU *-1
- ZJN PFB2 IF *IQFT* TRACK
- RJM DPS DETERMINE TRACK STATUS
- SHN 21-7
- PJN PFB2 IF NOT FIRST TRACK OF PRESERVED FILE
- * READ AND VERIFY SYSTEM SECTOR.
- AOD BY INCREMENT SYSTEM SECTORS PROCESSED
- LMN NFTP
- NJN PFB4 IF NOT TIME TO PAUSE
- STD BY RESET COUNTER
- PAUSE NE
- PFB4 LDD T6 SET TRACK NUMBER IN MESSAGE
- RJM C2D
- STM PFBB+16
- LDD T6
- SHN -6
- RJM C2D
- STM PFBB+15
- LDD CP ISSUE MESSAGE
- ADN MS2W
- CWM PFBB,TR
- SETMS POSITION
- * LDN 0
- RJM RSS
- ZJN PFB7 IF VALID SYSTEM SECTOR
- PFB5 ENDMS
- LDD PF
- ZJN PFB6 IF TRACK NOT INTERLOCKED
- LDN CTIS
- RJM STB CLEAR TRACK INTERLOCK
- * LDN 0
- STD PF
- PFB6 LJM PFB2 LOOP FOR NEXT PRESERVED FILE
- PFB7 RJM CQF CHECK FOR QUEUE FILE
- NJN PFB5 IF QUEUE FILE PROCESSED
- LDD FT CHECK FILE TYPE
- LMN PMFT
- ZJN PFB10 IF DIRECT ACCESS FILE
- LMN FAFT&PMFT
- NJN PFB5 IF NOT FAST ATTACH FILE
- RJM RRS
- LDD SD
- NJN PFB9 IF ISD
- LDM FISS
- LPC 3777
- ZJN PFB10 IF NOT GLOBAL ATTACH FILE
- RJM FAT PROCESS FAST ATTACH FILE
- PFB8 NJN PFB5 IF FILE STILL IN FAST ATTACH STATUS
- LJM PFB14 REWRITE SECTOR
- PFB9 RJM PFA PROCESS FAST ATTACH FILE ON ISD
- NJN PFB8 IF SYSTEM SECTOR UPDATE NOT REQUIRED
- UJN PFB14 REWRITE SYSTEM SECTOR
- * UPDATE USER COUNTS IN SYSTEM SECTOR.
- PFB10 LDM UCSS,TC CHECK IF ALL COUNTS ZERO
- LPN 1
- STD T2
- ADM UCSS+1,TC
- ADM UCSS+2,TC
- ADM UCSS+3,TC
- ADM UCSS+4,TC
- NJN PFB12 IF NECESSARY TO UPDATE SECTOR
- RJM CAM CHECK ACCESS MODE BITS
- NJN PFB8 IF FILE NOT PURGED
- PFB11 LJM PFB2 LOOP FOR NEXT PRESERVED FILE
- PFB12 RJM RRS REREAD SYSTEM SECTOR WITH INTERLOCK
- LDN 0
- STM FISS
- RJM USC UPDATE SYSTEM SECTOR COUNTS
- LDC PMFT*100
- STM FNSS+4
- PFB14 RJM CAM CHECK ACCESS MODE BITS
- ZJN PFB11 IF FILE PURGED
- * WRITE SECTOR BACK TO DEVICE.
- LDN 0 RESET SECTOR
- STD T7
- LDC BFMS WRITE SECTOR
- RJM WDS
- ZJN PFB16 IF NO ERRORS
- ENDMS
- RJM SSE
- PFB16 LJM PFB5 CLEAR TRACK INTERLOCK
- PFB18 AOD EF SET ERROR FLAG
- LDD NT
- SBN 1 ENABLE IMMEDIATE RETURN
- STD CT
- UJN PFB16 COMPLETE OPERATIONS ON DEVICE
- PFBB DATA C* RECOVERING PF.EQXXX, TRK YYYY.*
- PFBC DATA C*$INTERLOCKING IQFT, EQXXX.*
- PTR SPACE 4,15
- ** PTR - PROCESS TRACK RESERVATION.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = CURRENT TRACK.
- * (SD) = INDEPENDENT SHARED DEVICE STATUS.
- *
- * EXIT (A) .GE. 0 IF INCORRECT LOCAL FILE.
- *
- * USES CM - CM+4.
- *
- * CALLS DPS, RSS, STB.
- *
- * MACROS ENDMS, MONITOR.
- PTR1 LDN CTIS CLEAR INTERLOCK
- RJM STB
- PTR3 LCN 0 SET EXIT CONDITION
- PTR SUBR ENTRY/EXIT
- RJM DPS DETERMINE TRACK STATUS
- SHN 21-3
- MJN PTR1 IF TRACK INTERLOCKED
- SHN 3-21+22
- PJN PTRX IF TRACK NOT RESERVED
- SHN 21-7
- MJN PTRX IF FILE PRESERVED
- LDN 0 READ SYSTEM SECTOR
- RJM RSS
- LPC 7777
- NJN PTRX IF SYSTEM SECTOR ERROR
- ENDMS
- LDD T6 RELEASE LOCAL FILE DISK SPACE
- STD CM+2
- LDD T5
- LMC 2000 SET TRACK DROP FOR ANOTHER MACHINE
- STD CM+1
- MONITOR DTKM
- UJN PTR3 RETURN
- RRS SPACE 4,15
- ** RRS - REREAD SYSTEM SECTOR IF TRACK INTERLOCK NOT SET.
- *
- * ENTRY (PF) = TRACK INTERLOCK STATUS.
- *
- * EXIT TO CALLER IF TRACK INTERLOCKED ON ENTRY.
- *
- * EXIT (A) = (T6) IF TRACK NO LONGER RESERVED.
- * = RESPONSE FROM *RSS*.
- * TO PREVIOUS *RSS* CALLER IF TRACK NOT ALREADY
- * INTERLOCKED.
- *
- * CALLS RSS, STI.
- *
- * MACROS ENDMS.
- RRS SUBR ENTRY/EXIT
- LDD PF
- NJN RRSX IF FIRST TRACK INTERLOCKED
- ENDMS
- LDM RSS CHANGE RETURN TO LAST *RSS* CALLER
- STM RRS
- RJM STI SET TRACK INTERLOCK
- NJN RRSX IF TRACK NO LONGER RESERVED
- * LDN 0 REREAD SYSTEM SECTOR
- RJM RSS
- UJN RRSX RETURN
- RSC SPACE 4,10
- ** RSC - READ SECTOR AND CHECK FOR ERRORS.
- *
- * ENTRY (A) = BUFFER ADDRESS.
- * (T5 - T7) = DRIVER PARAMETERS.
- *
- * ERROR TO *MSR* IF READ ERROR.
- *
- * CALLS RDS.
- *
- * MACROS ENDMS.
- RSC SUBR ENTRY/EXIT
- RJM RDS READ SECTOR
- PJN RSCX IF NO ERROR
- RSC1 ENDMS
- LDN /MRT/RER SET READ ERROR
- LJM MSR PROCESS ERROR
- SCI SPACE 4,15
- ** SCI - INCREMENT/DECREMENT *MREC* ACTIVITY COUNT.
- *
- * *CMS* WILL WAIT ON THE ACTIVITY COUNT IN *INWL* BEFORE AN
- * UNLOAD WILL BE PROCESSED.
- *
- * EXIT (A) = 0.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- SCI SUBR ENTRY/EXIT
- SCIA LDD MA INCREMENT/DECREMENT *MREC* COUNT
- * UJN SCIX (NOT *PMT* OR *UMT* FUNCTION)
- CWM SCIB,TW
- SBN 1
- CRD CM
- MONITOR UADM
- LDD CM+1
- ZJN SCIX IF NO OVERFLOW/UNDERFLOW
- SCI1 MONITOR HNGM
- UJN SCI1 HANG
- SCIB VFD 12/LIOS,12/INWL,6/18D,6/6,24/0 INCREMENT ACTIVITY
- *SCIB VFD 12/LDOS,12/INWL,6/18D,6/6,24/0 (DECREMENT ACTIVITY)
- VFD 12/0,12/1,12/1,24/0
- SDP SPACE 4,15
- ** SDP - SET DEVICE PARAMETERS.
- *
- * ENTRY (EQ) = EQUIPMENT.
- *
- * EXIT (A) = PF CATALOG SIZE.
- * = 0, 8 WORD CATALOGS.
- * = 1000, 16 WORD CATALOGS.
- * (DF) = DAF COUNT.
- * (NT) = NUMBER OF TRACKS ON DEVICE.
- * (DPSA - DPSA+1) = TRT ADDRESS.
- *
- * USES T0 - T6, CN - CN+4.
- *
- * MACROS SFA.
- *
- * CALLS CAT.
- SDP SUBR ENTRY/EXIT
- SFA EST,EQ SET DEVICE PARAMETERS
- ADK EQDE
- CRD CN
- LDD CN+4
- SHN 3
- ADN MDGL
- CRD T0
- SBN MDGL-TDGL
- CRD T1
- ADN ACGL-TDGL
- CRD CN SET DAF COUNT
- ADN TRLL-ACGL
- RJM CAT CALCULATE FWA OF TRT
- SBD TH
- STM DPSA+1
- SHN -14
- LMC ADCI
- STM DPSA
- LDD T1+2
- SHN 2
- STD NT NUMBER OF TRACKS
- SHN 21-13
- PJN SDP1 IF NOT FULL-LENGTH TRT
- SOD NT SET (NT) = 3777
- SDP1 LDD CN+2
- STD DF DAF COUNT
- LDD T0 GET PFC SIZE
- LPC 1000
- LJM SDPX RETURN
- STB SPACE 4,15
- ** STB - SET TRACK BIT.
- *
- * ENTRY (A) = *STBM* SUBFUNCTION CODE.
- * (T5) = EST ORDINAL.
- * (T6) = TRACK NUMBER.
- *
- * EXIT (A) = MONITOR RESPONSE.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- STB SUBR ENTRY/EXIT
- STD CM+3 SET SUBFUNCTION CODE
- LDD T6 SET TRACK
- STD CM+2
- LDD T5 SET EST ORDINAL
- LMC 1S10
- STD CM+1
- MONITOR STBM ISSUE REQUEST
- LDD CM+1
- UJN STBX RETURN
- STI SPACE 4,15
- ** STI - SET TRACK INTERLOCK.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = TRACK.
- *
- * EXIT (A) = 0 IF TRACK INTERLOCKED.
- * = (T6) IF TRACK NOT RESERVED.
- * (PF) = (T6) IF TRACK INTERLOCKED.
- *
- * ERROR TO *ERR* IF *ORET* ERROR FLAG DETECTED.
- *
- * CALLS STB.
- *
- * MACROS DELAY, PAUSE.
- STI2 LDD T6 FLAG TRACK INTERLOCKED
- STD PF
- STI3 LMD T6 RETURN INTERLOCK STATUS
- STI SUBR ENTRY/EXIT
- STI1 LDN STIS ATTEMPT TRACK INTERLOCK
- RJM STB
- ZJN STI2 IF INTERLOCK SET
- LMN 2
- ZJN STI3 IF TRACK NOT RESERVED
- DELAY 250D*10
- PAUSE
- LDD CM+1 CHECK ERROR FLAG
- LMN ORET
- NJN STI1 IF NOT OPERATOR OVERRIDE
- LJM ERR PROCESS ERROR FLAG TERMINATION
- TQF SPACE 4,15
- ** TQF - TERMINATE *IQFT*.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (QF) = FIRST TRACK OF *IQFT*.
- * (QT) = CURRENT *IQFT* TRACK.
- * (QS) = CURRENT *IQFT* SECTOR.
- *
- * EXIT (QF) = 0.
- *
- * USES T1, T6, T7.
- *
- * CALLS STB, WEI, WQF.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- TQF2 LDM PFBA
- ZJN TQFX IF *IQFT* NOT INTERLOCKED
- STD T6
- LDN CTIS CLEAR TRACK INTERLOCK
- RJM STB
- * LDN 0 CLEAR *IQFT* PROCESSING INITIATED
- STD QF
- STM PFBA CLEAR TRACK INTERLOCKED FLAG
- TQF SUBR ENTRY/EXIT
- LDD QF
- ZJN TQF2 IF NO QUEUE FILE PROCESSING
- LDC 500
- STD T1
- TQF1 LDN 0 CLEAR EOI SECTOR BUFFER
- STM BFMS+1,T1
- SOD T1
- NJN TQF1 LOOP TO START OF BUFFER
- RJM WQF WRITE LAST *IQFT* SECTOR
- LDD MA MOVE FILE NAME TO BUFFER
- CWM IQFA,ON
- SBN 1
- CRM BFMS+FNEI,ON
- LDD T5 SETUP EOI SECTOR BUFFER
- STM BFMS+FSEI
- LDD QF
- STM BFMS+FTEI
- LDD QT SET CURRENT *IQFT* TRACK AND SECTOR
- STD T6
- LDD QS
- STD T7
- SETMS POSITION
- RJM WEI WRITE EOI SECTOR
- ENDMS
- LDD T5 SET EOI IN TRT
- LMC 1S11
- STD CM+1
- LDD QT
- LPC 3777
- STD CM+2
- LDD QS
- STD CM+3
- MONITOR DTKM
- LJM TQF2 CLEAR TRACK INTERLOCK
- USC SPACE 4,10
- * USC - UPDATE SYSTEM SECTOR COUNTS.
- *
- * ENTRY (T2) = WRITE MODE FLAG FROM UCSS OF DOWN MACHINE.
- * (TC) = MACHINE INDEX*5.
- * (MI) = MACHINE INDEX.
- * (UCSA) = ADDRESS IN BUFFER OF DOWN MACHINE PF COUNTS.
- * (BFMS) = SYSTEM SECTOR.
- *
- * EXIT COUNTS UPDATED AND ENTRY CLEARED FOR DOWN MACHINE.
- USC SUBR ENTRY/EXIT
- LDN 0 SUBTRACT DOWN MACHINE COUNTS FROM TOTAL
- SBM UCSS+1,TC
- RAM UCSS+1
- LDN 0
- SBM UCSS+2,TC
- RAM UCSS+2
- LDN 0
- SBM UCSS+3,TC
- RAM UCSS+3
- LDN 0
- SBM UCSS+4,TC
- RAM UCSS+4
- LDM UCSS,TC
- LPN 2
- ZJN USC1 IF LOCAL UTILITY ATTACH FLAG NOT SET
- LDM CASS CLEAR GLOBAL UTILITY ATTACH FLAG
- LPC 7677
- STM CASS
- USC1 LDN ZERL CLEAR ENTRY FOR DOWNED MACHINE
- CRM *,ON
- USCA EQU *-1
- LDD T2
- ZJN USC2 IF WRITE MODE NOT SET
- LDM CASS CLEAR WRITE MODE BITS IN ACCESS WORD
- LPC 7541
- STM CASS
- USC2 LJM USCX RETURN
- WQF SPACE 4,15
- ** WQF - WRITE *IQFT* SECTOR.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (QT) = CURRENT *IQFT* TRACK.
- * (QS) = CURRENT *IQFT* SECTOR.
- *
- * EXIT (A) = 0 IF SECTOR WRITTEN.
- *
- * USES T6, T7, CM - CM+4.
- *
- * CALLS WDS.
- *
- * MACROS ENDMS, MONITOR.
- WQF SUBR ENTRY/EXIT
- LDD QT SET CURRENT *IQFT* TRACK
- STD T6
- LDC QBUF+2 RESET BUFFER POINTER
- STM CQFC
- LDD QS SET *IQFT* SECTOR
- STD T7
- ADN 1 SET SECTOR LINKAGE
- STM QBUF
- STD QS SET NEXT *IQFT* SECTOR
- LMM SLM
- NJN WQF1 IF NOT SECTOR LIMIT
- ENDMS
- * LDN 0
- STD CM+3
- STD CM+4
- STD QS
- LDD T5 REQUEST NEXT *IQFT* TRACK
- STD CM+1
- LDD T6
- STD CM+2
- MONITOR RTCM
- LDD CM+4 SET NEXT TRACK IN SECTOR LINKAGE
- STM QBUF
- ZJN WQF3 IF NO TRACK AVAILABLE
- STD QT
- WQF1 SETMS POSITION
- LDC QBUF+WLSF WRITE *IQFT* SECTOR
- RJM WDS
- ENDMS
- * LDN 0
- STM QBUF+1
- WQF2 LJM WQFX RETURN
- WQF3 LDD T7 SAVE LAST SECTOR FOR EOI
- STD QS
- UJN WQF2 RETURN
- TITLE EXTENDED MEMORY MMF SUBROUTINES.
- SPACE 4,10
- *** EXTENDED MEMORY MMF SUBROUTINES.
- *
- * THE FOLLOWING CODE IS USED ONLY FOR ECS MMF ENVIRONMENTS.
- * IT IS OVERLAID BY ISD MMF CODE IF RUNNING IN AN ISD SYSTEM.
- USE OVERLAY
- OVLA EQU *+5 *2MR* LOAD ADDRESS
- CFR SPACE 4,10
- ** CFR - CLEAR FLAG REGISTER BIT.
- *
- * ENTRY (A) = BIT NUMBER TO CLEAR.
- *
- * USES CM - CM+4.
- *
- * CALLS TFR.
- *
- * MACROS MONITOR.
- CFR SUBR ENTRY/EXIT
- RJM TFR TOGGLE FLAG REGISTER BIT
- LDD T1 BIT NUMBER
- SHN 6
- STD CM+1
- LDN CFRS SET TO CLEAR FLAG REGISTER BIT
- SHN 11
- STD CM+3
- MONITOR ECSM
- UJN CFRX RETURN
- DAT SPACE 4,10
- ** DAT - READ(WRITE) DAT ENTRY (2 WORDS).
- *
- * ENTRY (A) = EST ORDINAL OF EQUIPMENT.
- * (T3) = RECS*1000 IF READ, WECS*1000 IF WRITE.
- * DAT IN CM BUFFER (MA - MA+1) IF WRITE.
- *
- * EXIT (BUFD) = 2 WORD DAT ENTRY. (READ ONLY)
- *
- * CALLS ECS.
- *
- * USES CM - CM+4, T1.
- *
- * MACROS SFA.
- DAT SUBR ENTRY/EXIT
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+4 READ MST FOR DAT INDEX
- SHN 3
- ADN MDGL
- CRD CM
- LDD CM SET DAT INDEX
- LPC 377
- SHN 1
- ADD DA+1
- STD CM+4
- SHN -14
- ADD T3 SET TO READ/WRITE EXTENDED MEMORY
- ADD DA
- STD CM+3
- LDN 2-1 READ TWO WORDS
- RJM ECS READ(WRITE) EXTENDED MEMORY
- LDD T3
- LMD WE
- ZJN DATX IF WRITE
- LDD MA
- CRM BUFD,TW
- UJN DATX RETURN
- ECS SPACE 4,10
- ** ECS - READ/WRITE EXTENDED MEMORY.
- *
- * ENTRY (A) = WORD COUNT - 1.
- * (CM+3 - CM+4) = PARAMETERS FOR *ECSM* FUNCTION.
- *
- * EXIT (A) = 0.
- *
- * ERROR TO *MSR* IF TRANSFER ERROR.
- ECS SUBR ENTRY/EXIT
- SHN 6
- STD CM+1 SET WORD COUNT
- LDD MA
- STD CM+2 SET BUFFER ADDRESS
- MONITOR ECSM
- LDD CM+1
- ZJN ECSX IF NO ERRORS
- LDN /MRT/RER SET READ ERROR
- LJM MSR PROCESS ERROR
- FAT SPACE 4,10
- ** FAT - PROCESS FAST ATTACH PERMANENT FILES.
- *
- * ENTRY (A) = INDEX OF FAT ENTRY IN EXTENDED MEMORY.
- * SYSTEM SECTOR IN BFMS.
- *
- * EXIT (A) = 0 IF REMOVE FILE FROM FAST ATTACH STATUS.
- *
- * USES T2, T3, T7, CM - CM+4.
- *
- * CALLS CFR, ECS, SFR, WFW.
- *
- * MACROS ENDMS.
- FAT SUBR ENTRY/EXIT
- STD T3
- LDK MMFL
- CRD CM
- LDD CM+1
- SHN 21-12
- PJN FAT1 IF NOT LSPMMF
- SHN 12-21
- LPC 777
- LMD T5
- NJN FAT1 IF FILE DOES NOT RESIDE ON LINK DEVICE
- ENDMS
- FAT1 LDN /MMF/FATI OBTAIN *FATI* INTERLOCK
- RJM SFR
- LDN 0 SET FAT WORD TO READ
- STD T2
- FAT2 LDD T3 SET FAST ATTACH TRACK ADDRESS
- SHN /MMF/FATS
- ADD T2
- ADD DA+1
- ADC /MMF/FAST*100
- STD CM+4
- SHN -14
- ADD DA
- ADD RE READ EXTENDED MEMORY
- STD CM+3
- LDN 1-1 SET WORD COUNT
- RJM ECS READ FAT WORD
- LDD T2 READ FAT ENTRY INTO BUFFER
- SHN 2
- ADD T2
- ADC BUFS
- STM FATA
- LDD MA
- CRM BUFS,ON
- FATA EQU *-1
- AOD T2
- LMN /MMF/MXMF+2
- NJN FAT2 IF NOT END OF WORDS TO READ
- LDD MD SET INDEX INTO ENTRY FOR DOWNED MACHINE
- SHN 2
- ADD MD
- STD T2
- STD T7 PRESET EXIT CONDITION
- LDN 0 ADJUST COUNTS
- SBM BUFS+5+2,T2
- RAM BUFS+5+2
- LDN 0
- SBM BUFS+5+3,T2
- RAM BUFS+5+3
- LDN 0
- SBM BUFS+5+4,T2
- RAM BUFS+5+4
- LDD MA WRITE GLOBAL COUNTS TO EXTENDED MEMORY
- CWM BUFS+5,ON
- LDN 1
- RJM WFW WRITE FAT WORD
- LDN ZERL
- CRD CM
- LDD MA
- CWD CM
- LDD MD
- ADN 1
- RJM WFW WRITE FAT WORD
- LDN 0
- STM BUFS+5,T2 ZERO SLOT FOR THIS MACHINE
- STD T2
- FAT3 LDM BUFS+2*5,T2
- NJN FAT4 IF FILE STILL ATTACHED
- LDN 5
- RAD T2
- LMK 5*/MMF/MXMF
- NJN FAT3 IF NOT END OF MACHINES TO CHECK
- STM FISS CLEAR FAST ATTACH STATUS
- STD T7 SET EXIT CONDITION
- LDN ZERL CLEAR ENTRY IN EXTENDED MEMORY
- CRD CM
- LDD MA
- CWD CM
- LDN 0
- RJM WFW WRITE WORD 0 OF FAT
- LDC PMFT*100 RESET FILE TYPE
- STM FNSS+4
- LDM CASS CLEAR WRITE MODE BITS IN ACCESS WORD
- LPC 7541
- STM CASS
- FAT4 LDN /MMF/FATI CLEAR *FATI* INTERLOCK
- RJM CFR
- LDD T7
- LJM FATX RETURN
- PDT SPACE 4,10
- ** PDT - CLEAR DEVICE ACCESSED BIT IN DAT FOR DOWNED MACHINE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- *
- * EXIT (A) = 0 IF NOT PROCESSING DEVICE.
- * (T6) = MST TRACK IF PROCESSING DEVICE.
- *
- * USES T3, T6.
- *
- * CALLS CKP, DAT.
- PDT SUBR ENTRY/EXIT
- LDD MK
- STM PDTA SET DOWNED MACHINE MASK
- LDD RE
- STD T3 SET READ OF DAT
- LDD EQ
- RJM DAT
- LDM BUFD+5+4 CHECK IF DOWNED MACHINE ACCESSING DEVICE
- LPC *
- PDTA EQU *-1
- ZJN PDTX IF DEVICE ACCESS NOT SET
- LMM BUFD+5+4
- STM BUFD+5+4
- LDM BUFD+4 SET MST TRACK FOR DEVICE
- STD T6
- RJM CKP SET CHECKPOINT BIT
- LDN 1
- UJN PDTX RETURN
- SFR SPACE 4,10
- ** SFR - SET FLAG REGISTER BIT.
- *
- * ENTRY (A) = BIT NUMBER TO SET.
- *
- * ERROR TO *ERR* IF ERROR FLAG SET.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS DAP, TFR.
- *
- * MACROS MONITOR.
- SFR2 LDD CP CLEAR MESSAGE
- ADN MS2W
- CWD CM
- SFR SUBR ENTRY/EXIT
- RJM TFR TOGGLE FLAG REGISTER BIT
- SFR1 LDD T1 SET BIT NUMBER
- SHN 6
- STD CM+1
- LDC SFRS*1000
- STD CM+3
- MONITOR ECSM
- LDD CM+1
- ZJN SFR2 IF BIT SET
- LDD CP
- ADN MS2W
- CWM SFRA,TR
- RJM DAP DELAY AND PAUSE
- NJN SFR1 IF NO OPERATOR DROP
- LDD T1 RESET BIT INTERLOCKED FLAG
- RJM TFR TOGGLE FLAG REGISTER BIT
- LJM ERR ERROR FLAG TERMINATION
- SFRA DATA C*WAITING FOR XXXI INTERLOCK.*
- TFRB SPACE 4,10
- ** TFRB - TABLE OF FLAG REGISTER BIT INTERLOCKS.
- *
- * ENTRY = 3 WORDS.
- *T, TFRB 6/,1/I ,5/N ,24/FLAG BIT MNEMONIC
- * I FLAG BIT INTERLOCKED FLAG
- * N BIT NUMBER
- TFRB BSS 0 TABLE OF FLAG REGISTER BIT INTERLOCKS
- VFD 12//MMF/DATI,24/0LDATI DAT INTERLOCK
- VFD 12//MMF/FATI,24/0LFATI FAST ATTACH TRACK INTERLOCK
- VFD 12//MMF/BDTI,24/0LBDTI BDT INTERLOCK
- CON 0 TERMINATOR
- TFR SPACE 4,10
- ** TFR - TOGGLE FLAG REGISTER BIT.
- *
- * ENTRY (A) = FLAG BIT NUMBER.
- *
- * USES T1, CM+2.
- TFR SUBR ENTRY/EXIT
- STD T1
- LDC TFRB-3 INITIALIZE BIT SEARCH
- STD CM+2
- TFR1 LDN 3 SEARCH FOR FLAG BIT
- RAD CM+2
- LDI CM+2
- ZJN * IF BIT NOT FOUND
- LMD T1
- LPN 37
- NJN TFR1 IF NOT FOUND
- LDI CM+2 TOGGLE BIT
- LMN 40
- STI CM+2
- LDM 1,CM+2 SET BIT MNEMONIC IN MESSAGE
- STM SFRA+6
- LDM 2,CM+2
- STM SFRA+7
- UJN TFRX RETURN
- WFW SPACE 4,10
- ** WFW - WRITE FAT WORD.
- *
- * ENTRY (A) = RELATIVE FAT WORD TO WRITE.
- * (T3) = FAT INDEX.
- * MESSAGE BUFFER CONTAINS WORD TO WRITE.
- *
- * USES CM+3, CM+4.
- *
- * CALLS ECS.
- WFW SUBR ENTRY/EXIT
- SHN 22-/MMF/FATS
- ADD T3
- SHN /MMF/FATS
- ADD DA+1 SET FAST ATTACH TRACK ADDRESS
- ADC /MMF/FAST*100
- STD CM+4
- SHN -14
- ADD DA
- ADD WE
- STD CM+3
- LDN 1-1 WORD COUNT
- RJM ECS WRITE EXTENDED MEMORY
- UJN WFWX RETURN
- SPACE 4,5
- E1MR BSS 0 END OF ECS MMF CODE
- TITLE FUNCTION 0 - RETRIEVE DISPLAY INFORMATION.
- RDI SPACE 4,10
- ** RDI - RETRIEVE DISPLAY INFORMATION. (FUNCTION 0)
- *
- * ENTRY (IR+3 - IR+4) = ADDR.
- *
- * ADDR ADDRESS OF TABLE OF SHARED DEVICES FOR THIS MACHINE.
- *
- * CALLS CAA, DAT.
- *
- * MACROS SFA.
- RDI SUBR ENTRY/EXIT
- LDK EFRL READ MACHINE STATE TABLE
- CRD CM
- LDN /MMF/MXMF SET MAXIMUM NUMBER OF MAINFRAMES
- STD T1
- LDD CM
- SHN 14
- LMD CM+1
- CRM BFMS,T1
- LDD RA WRITE STATE TABLE TO CM TABLE
- SHN 6
- ADK /MRT/TMID
- CWM BFMS,T1
- * RETURN MASKS OF MACHINES SHARING DEVICES WITH THIS MACHINE.
- LCN 0 SET TABLE INDEX
- STD SC
- RDI1 AOD SC INCREMENT TABLE INDEX
- RJM CAA
- ADD SC
- CRD CN READ TABLE ENTRY
- LDD CN+4
- ZJN RDIX IF END OF TABLE
- SFA EST
- ADK EQDE READ EST ENTRY
- CRD CM
- LDD CM
- SHN 21-6
- MJN RDI1 IF DEVICE UNAVAILABLE
- LDD RE
- STD T3 SET READ OPERATION
- LDD CN+4
- RJM DAT READ DAT ENTRY
- LDM BUFD+5+4
- LMC 0 CLEAR MASK OF THIS MACHINE
- RDIA EQU *-1
- STD CN SET MACHINE MASK
- RJM CAA
- ADD SC WRITE ENTRY BACK TO *MREC*
- CWD CN
- UJP RDI1 LOOP FOR NEXT DEVICE
- ERRNG BUFD-* CODE OVERFLOWS BUFFER
- TITLE FUNCTION 3 - CLEAR DEVICE INTERLOCKS.
- CDV SPACE 4,10
- ** CDV - CLEAR DEVICE INTERLOCKS. (FUNCTION 3)
- *
- * ENTRY (IR+4) = MACHINE INDEX FOR WHICH TO CLEAR INTERLOCKS.
- *
- * EXIT TO *MRP2*.
- *
- * MACROS MONITOR.
- CDV8 MONITOR HNGM
- CDV9 LDK EFRL CHANGE STATE OF DOWN MACHINE
- CRD CM
- LDD CM
- SHN 14
- LMD CM+1
- ADD IR+4
- ADK /MMF/MFST-1
- CRD CN
- LDD CN+4
- LMN /MMF/MFMR
- NJN CDV8 IF NOT IN PROPER STATE
- * LDN /MMF/MFDN SET *1MR* DONE STATE
- ERRNZ /MMF/MFDN CODE DEPENDS ON VALUE OF TAG
- STD CN+4
- LDD CM WRITE STATE WORD
- SHN 14
- LMD CM+1
- ADD IR+4
- ADK /MMF/MFST-1
- CWD CN
- LJM MRP2 EXIT TO DROP PP ONLY
- CDV SUBR ENTRY/EXIT
- LDK ESTP PRESET EQUIPMENT SEARCH
- CRD CM
- LDD CM+3
- STD EQ
- CDV1 SOD EQ
- ZJN CDV9 IF END OF EQUIPMENTS
- SFA EST
- ADK EQDE
- CRD CN
- LDD CN
- LPC 5020
- LMC 5000
- NJN CDV1 IF NOT MMF SHARED DEVICE
- * OBTAIN DEVICE INTERLOCK WHILE PROCESSING TRACK INTERLOCKS.
- RJM CBI CLEAR SHARED BUFFERED DEVICE INTERLOCKS
- LDD EQ SET EST ORDINAL
- STD CM+1
- LDN SDIS INTERLOCK DEVICE
- STD CM+3
- MONITOR STBM
- LDD CN+4 GET TRT ADDRESS
- SHN 3
- ADK TDGL
- CRD T1
- ADK SDGL-TDGL
- CRD T6 (T6 - T6+1) = EM ADDRESS OF MST
- ADK TRLL-SDGL
- CRD CN+3-4 (CN+2 - CN+3) = TRT ADDRESS
- LDD T1+2 SET TRT LENGTH
- STD TC
- LDN 0 SET CURRENT TRT WORD
- STD CN
- UJN CDV3 ENTER LOOP
- * LOOP THROUGH TRT WORDS CHECKING FOR INTERLOCKED TRACKS.
- CDV2 AOD CN ADVANCE TRT WORD
- SBD TC
- PJP CDV4 IF END OF TRT
- CDV3 LDD CN+2 READ TRT WORD
- SHN 14
- LMD CN+3
- ADD CN
- CRD T1
- LDD T1+4
- SHN -4
- LPN 17
- ZJN CDV2 IF NO TRACK INTERLOCK BITS SET
- * INTERLOCKED TRACK(S) FOUND, CHECK IF HELD BY DOWN MACHINE.
- ADC TCDVB GET INTERLOCK BITS IN MRT ORDER
- STD T0
- LDI T0
- STM CDVB (CDVB) = TRACK INTERLOCK BITS (MRT ORDER)
- LDD IR+4 COMPUTE EXTENDED MEMORY MRT ADDRESS
- SHN 6+3
- ADD CN
- SHN -3
- ADC /MMF/MRST*100-100
- STD SC ADDRESS OF MRT WORD IN TRACK
- ADD T6+1
- STD CM+4
- SHN -14
- ADD T6
- ADD RE
- STD CM+3
- LDD MA SET CM ADDRESS
- STD CM+2
- LDN 0 SET WORD COUNT TO 1
- STD CM+1
- MONITOR ECSM
- LDD MA READ MRT WORD
- CRD CM
- * CHECK MRT WORD OF DOWN MACHINE TO SEE IF IT HAS INTERLOCKS.
- LDD CN COMPUTE MRT BYTE
- LPN 7
- STD BI
- LDM TCDV,BI SET BYTE FROM TABLE
- STD BY
- LDM TCDVA,BI SET MRT SHIFTS
- STM CDVA
- LMN 77
- STM CDVC
- LDI BY
- CDVA SHN ** SHIFT MRT BITS TO BITS 4 - 7
- LPC **
- CDVB EQU *-1
- ZJP CDV2 IF NO INTERLOCKS HELD BY THIS MACHINE
- STD T0 SAVE INTERLOCKS CLEARED
- CDVC SHN ** SHIFT BACK
- LMI BY
- STI BY
- * CLEAR TRACK INTERLOCK BITS IN TRT WORD.
- LDD T0 GET INTERLOCK BITS CLEARED IN TRT ORDER
- SHN -4
- ADC TCDVB
- STD T0
- LDI T0
- LMD T1+4
- STD T1+4
- LDD CN+2 WRITE TRT WORD
- SHN 14
- ADD CN+3
- ADD CN
- CWD T1
- * REWRITE MRT WORD TO EXTENDED MEMORY.
- LDD MA SET CM ADDRESS
- CWD CM WRITE MRT WORD TO MB
- STD CM+2
- LDD SC SET ADDRESS OF MRT WORD
- ADD T6+1
- STD CM+4
- SHN -14
- ADD T6
- ADD WE
- STD CM+3
- LDN 0 SET WORD COUNT TO 1
- STD CM+1
- MONITOR ECSM
- LJM CDV2 PROCESS NEXT TRT WORD
- * ADJUST *PFM* ACTIVITY COUNTS.
- CDV4 LDN GLGL-LLLL COMPUTE EM ADDRESS OF LOCAL MST
- STD SC
- LDN 0
- STD T0
- CDV5 LDN LLLL
- RAD SC
- AOD T0
- LMD IR+4
- NJN CDV5 IF NOT END OF COMPUTATION
- ERRNG 6-LLLL LOCAL MST EXCEEDS MESSAGE BUFFER
- LDD SC SET EXTENDED MEMORY ADDRESS FOR *ECSM*
- ADD T6+1
- STD CM+4
- SHN -14
- ADD T6
- ADD RE
- STD CM+3
- LDD MA SET CM ADDRESS
- STD CM+2
- LDC LLLL*100-100
- STD CM+1
- MONITOR ECSM
- LDD MA READ LOCAL AREA
- CRM MBUF,SX
- * SUBTRACT LOCAL PF COUNTS FROM GLOBAL.
- LDD CN+4 READ GLOBAL COUNT WORD FROM CM MST
- SHN 3
- ADK TDGL
- CRD CM
- LDD CM+1
- ZJN CDV7 IF NO COUNTS SET
- SBM MBUF+DULL*5-GLGL*5+1
- MJN CDV6 IF COUNTER UNDERFLOW
- STD CM+1
- CDV6 LDN 0
- STM MBUF+DULL*5-GLGL*5+1
- LDD CN+4
- SHN 3
- ADK TDGL
- CWD CM
- * WRITE LOCAL MST BACK TO EXTENDED MEMORY.
- LDD MA WRITE LOCAL AREA
- STD CM+2
- CWM MBUF,SX
- LDD SC SET EXTENDED MEMORY ADDRESS FOR *ECSM*
- ADD T6+1
- STD CM+4
- SHN -14
- ADD T6
- ADD WE
- STD CM+3
- LDC LLLL*100-100
- STD CM+1
- MONITOR ECSM
- * CLEAR DEVICE INTERLOCK. NOTE THAT THE TRT AND GLOBAL MST
- * ARE WRITTEN TO EXTENDED MEMORY BY THIS FUNCTION.
- CDV7 LDD EQ
- ADC 4000 SET CHECKPOINT BIT
- STD CM+1
- LDN CDIS
- STD CM+3
- MONITOR STBM
- LJM CDV1 PROCESS NEXT EQUIPMENT
- TCDV CON CM+4,CM+4,CM+4,CM+3,CM+3,CM+3,CM+2,CM+2
- TCDVA CON SHNI+4,SHNI,SHNI+73,SHNI+4,SHNI,SHNI+73,SHNI+4,SHNI
- TCDVB CON 00,200,100,300,40,240,140,340
- CON 20,220,120,320,60,260,160,360
- TITLE *CDV* SUBROUTINES.
- ABE SPACE 4,10
- ** ABE - ACCESS *BDT* ENTRY.
- *
- * ENTRY (A) = READ/WRITE FUNCTION CODE (*RE* OR *WE*).
- * (SC) = *DAT* INDEX.
- * (ABEA) = *BDT* TRACK.
- *
- * USES CM+3, CM+4, T6, T7.
- *
- * CALLS CEA, ECS.
- ABE SUBR ENTRY/EXIT
- ADC ADDI
- STM ABEB
- LDC ** (*BDT* TRACK)
- ABEA EQU *-1
- STD T6
- LDN 0
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDD SC ADD *DAT* INDEX
- RAD CM+4
- SHN -14
- ABEB ADD RE READ FUNCTION
- * ADD WE (WRITE FUNCTION)
- RAD CM+3
- LDN 1-1 READ OR WRITE ONE WORD
- RJM ECS READ OR WRITE *BDT* ENTRY
- UJN ABEX RETURN
- CBI SPACE 4,10
- ** CBI - CLEAR SHARED BUFFERED DEVICE INTERLOCKS.
- *
- * ENTRY (MD) = MACHINE INDEX OF DOWNED MACHINE.
- * (EQ) = EST ORDINAL.
- * (CN - CN+4) = EST ENTRY.
- *
- * USES SC, CM - CM+4, T1 - T5.
- *
- * CALLS ABE, CFR, SFR.
- *
- * MACROS CMSTF, MONITOR.
- CBI SUBR ENTRY/EXIT
- LDD CN
- SHN 21-5
- PJN CBIX IF NOT SHARED BUFFERED DEVICE
- LDN ZERL
- CRD CM
- LDD MD SET MACHINE INDEX OF DOWNED MACHINE
- STD CM+2
- LDD EQ SET EST ORDINAL
- STD CM+4
- LDN CBRS CLEAR *BAT* READ ACCESS PERMISSIONS
- STD CM+1
- MONITOR MTEM
- LDD CN+4
- SHN 3
- ADN MDGL
- CRD CM
- LDD CM GET *DAT* INDEX
- LPC 377
- STD SC
- LDN /MMF/BDTI SET *BDT* INTERLOCK
- RJM SFR
- LDN RE READ *BDT* ENTRY
- RJM ABE
- LDD MA
- CRD T1
- LDD T1 CHECK ERROR PROCESSING INTERLOCK
- ZJN CBI1 IF INTERLOCK NOT SET
- LPN 7
- LMD MD
- NJN CBI1 IF INTERLOCK NOT HELD BY DOWNED MACHINE
- STD T1 CLEAR INTERLOCK
- CMSTF GDER CLEAR ERROR PROCESSING BIT IN *ACGL*
- CBI1 LDD T2 CHECK RESTORE PARITY INTERLOCK
- ZJN CBI2 IF INTERLOCK NOT SET
- LPN 7
- LMD MD
- NJN CBI2 IF INTERLOCK NOT HELD BY DOWNED MACHINE
- STD T1+1 CLEAR INTERLOCK
- STD T1+2 CLEAR CONTROLLER SERIAL NUMBER
- STD T1+3
- STD T1+4
- CMSTF GDUR CLEAR RESTORE IN PROGRESS BIT IN *ACGL*
- CMSTF GDRI CLEAR RESTORE INITIATION BIT IN *ACGL*
- CBI2 LDD MA
- CWD T1
- LDN WE REWRITE *BDT* ENTRY
- RJM ABE
- LDN /MMF/BDTI CLEAR *BDT* INTERLOCK
- RJM CFR
- CMSTF GPDA CLEAR MMF PARITY DEVICE ACCESS FLAG
- CBIA EQU *-3 (BIT NUMBER FOR DOWNED MAINFRAME)
- UJP CBIX RETURN
- SPACE 4,10
- * COMMON DECKS.
- QUAL COMPTGB
- QUAL$ EQU 0 PREVENT FURTHER QUALIFICATION
- T5 EQU EQ USE *EQ* AS EST ORDINAL IN *COMPTGB*
- *CALL COMPTGB
- QUAL *
- TGB EQU /COMPTGB/TGB
- SPACE 4,10
- MBUF BSS 0
- TITLE PRESET.
- PRS SPACE 4,10
- ** PRS - PRESET PROGRAM.
- *
- * EXIT (ID) = MID OF THIS MACHINE.
- * (LK) = EST ORDINAL OF LINK DEVICE.
- * (MD) = MACHINE INDEX OF DOWNED MACHINE.
- * (MK) = MACHINE MASK OF DOWNED MACHINE.
- * (MI) = MID OF DOWNED MACHINE.
- * (AD) = FUNCTION CODE.
- * (QF) = 0.
- * (TW) = CONSTANT TWO.
- * (SX) = CONSTANT SIX.
- * (DT) = DAT / FAT TRACK.
- * (RE) = *ECSM* READ FUNCTION.
- * (WE) = *ECSM* WRITE FUNCTION.
- * (DA - DA+1) = DEVICE ACCESS TABLE ADDRESS.
- * (ET - ET+1) = ENVIRONMENT TABLE ADDRESS.
- *
- * CALLS AST, CEA, DAP, SCI.
- *
- * MACROS SFA.
- PRS SUBR ENTRY/EXIT
- LDN 2
- STD TW
- LDD IR+3
- SHN -6
- STD AD
- SBN /MRT/MFUN
- MJN PRS0 IF LEGAL FUNCTION
- LDC PRSA * INCORRECT 1MR FUNCTION.*
- LJM ABT ABORT
- PRS0 LDD AD CHECK FUNCTION CODE
- LMN /MRT/PMT
- ZJN PRS0.1 IF *PMT* FUNCTION
- LMN /MRT/UMT&/MRT/PMT
- ZJN PRS0.1 IF *UMT* FUNCTION
- ISTORE SCIA,(UJN SCIX) DISABLE *CMS* INTERLOCK CODE
- LJM PRS3 READ MULTIMAINFRAME INFORMATION
- * WAIT FOR *CMS* TO COMPLETE.
- PRS0.1 LDC FEAF*10000+MSSI
- RJM AST CHECK FOR *CMS* ACTIVE
- ZJN PRS2 IF *CMS* NOT ACTIVE
- RJM DAP DELAY AND PAUSE
- NJN PRS1 IF NO ERROR FLAG SET
- STD CM CLEAR MESSAGE
- LDD CP
- ADK MS2W
- CWD CM
- LJM MRP2 DROP PP
- PRS1 LDD CP * WAITING FOR *CMS* TO FINISH.*
- ADK MS2W
- CWM PRSC,TR
- LDN ZERL
- CRD CM
- LDD MA
- CWD IR
- MONITOR RECM RECALL *1MR*
- LJM PPR RETURN TO RESIDENT
- PRS2 STD CM CLEAR MESSAGE
- LDD CP
- ADK MS2W
- CWD CM
- RJM SCI SET *CMS* INTERLOCK
- * LDN 0
- STD QF
- LDN LDOS SET TO DECREMENT ACTIVITY COUNT
- STM SCIB
- * READ MULTIMAINFRAME INFORMATION.
- PRS3 LDK MMFL READ LINK DEVICE EST ORDINAL
- CRD CM
- LDD CM STORE MID OF THIS MACHINE
- STD ID
- LDD CM+3 SET MACHINE MASK
- STM RDIA
- LDD CM+1 CHECK FOR SHARED BUFFERED DEVICES
- SHN 21-11
- MJN PRS3.1 IF SHARED BUFFERED DEVICES DEFINED
- AOM PRSE DISABLE SHARED BUFFERED DEVICE PROCESSING
- PRS3.1 LDD CM+1 STORE EST ORDINAL OF LINK DEVICE
- LPC 777
- STD LK SET LINK EST ORDINAL
- STM CFIA
- ZJN PRS4 IF NO LINK DEVICE
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CN
- LDD CN+4 READ MST TO OBTAIN LABEL TRACK
- SHN 3
- ADN ALGL
- CRD CN
- LDD CN+4 SET DAT/FAT TRACK
- STD DT
- LDD CN+1 SET LABEL TRACK
- STD T6
- LDN /MMF/ETLT SET ENVIRONMENT TABLE SECTOR
- STD T7
- RJM CEA CONVERT TO EXTENDED MEMORY ADDRESS
- LDD CM+3
- STD ET
- LDD CM+4
- STD ET+1
- LDD DT SET DAT/FAT TRACK ADDRESS
- STD T6
- LDN 0
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDD CM+4
- STD DA+1
- LDD CM+3
- STD DA
- PRS4 LDD AD
- LMN /MRT/CDV
- NJN PRS5 IF NOT CLEAR DEVICE INTERLOCK FUNCTION
- LDD IR+4
- UJN PRS6 SET MACHINE INDEX OF DOWNED MACHINE
- PRS5 LDD RA SET MACHINE INDEX OF DOWNED MACHINE
- SHN 6
- ADC /MRT/MASK
- CRD CM
- LDD CM+4
- PRS6 STD MD
- ADN GPDA-1 SET BIT NUMBER FOR *CMSTF* REQUEST
- LMC LCNI
- STM CBIA
- LDM PRSB-1,MD SET MASK OF DOWNED MACHINE
- STD MK
- LDD CM SET MID OF DOWNED MACHINE
- STD MI
- LDN 6
- STD SX
- LDC RECS*1000
- STD RE
- LDC WECS*1000
- STD WE
- PRSE LDN 0
- * LDN 1 (SHARED BUFFERED DEVICES NOT DEFINED)
- NJN PRS7 IF SHARED BUFFERED DEVICES NOT DEFINED
- LDD ET+1
- ADN /MMF/BAET SET ADDRESS OF ENVIRONMENT TABLE WORD
- STD CM+4
- SHN -14
- ADD ET
- ADD RE
- STD CM+3
- LDN 1-1 READ ONE WORD FROM EXTENDED MEMORY
- RJM ECS
- LDD MA
- CRD CM
- LDD CM+1 SET *BDT* FIRST TRACK
- STM ABEA
- * CHECK FOR ISD ENVIRONMENT.
- PRS7 LDM PRSD,AD SET ADDRESS OF FUNCTION PROCESSOR
- STM MRPA
- LDD LK
- NJP MRP IF EXTENDED MEMORY MMF
- LDC MRP
- STM EXR SET RETURN ADDRESS
- EXECUTE 2MR,*
- LJM EXR+1 LOAD ISD MMF SUBROUTINES
- PRSA DATA C* INCORRECT 1MR FUNCTION.*
- * TABLE OF MACHINE MASKS (INDEXED BY MACHINE INDEX).
- PRSB BSS 0
- .1 SET 1
- DUP MXMF,2
- CON .1
- .1 SET .1+.1
- PRSC DATA 30L WAITING FOR *CMS* TO FINISH.
- * TABLE OF FUNCTION PROCESSOR ADDRESSES.
- PRSD INDEX
- INDEX /MRT/RDI,RDI RETRIEVE DISPLAY INFORMATION
- INDEX /MRT/PMT,PMT PROCESS DAT, FAT, MRT-S
- INDEX /MRT/UMT,UMT UPDATE MST ENTRIES IN CM
- INDEX /MRT/CDV,CDV CLEAR DEVICE INTERLOCKS
- INDEX /MRT/PRB,PRB PROCESS RESERVES AND BAT-S
- INDEX /MRT/MFUN
- SPACE 4,10
- * PRESET COMMON DECKS.
- *CALL COMPAST
- SPACE 4,10
- OVERFLOW
- TTL 1MR/2MR - PROCESS ISD RECOVERY.
- TITLE ISD MMF SUBROUTINES.
- IDENT 2MR,OVLA
- *COMMENT 1MR - PROCESS ISD RECOVERY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** 2MR - PROCESS ISD RECOVERY.
- * D. K. ELDRED. 82/12/01.
- SPACE 4,10
- *** ISD MMF SUBROUTINES.
- *
- * THE FOLLOWING CODE IS USED ONLY FOR ISD MMF ENVIRONMENTS.
- * IT OVERLAYS THE EXTENDED MEMORY MMF SUBROUTINES IN *1MR*.
- ORG OVLA
- TMR SUBR ENTRY/EXIT
- UJN TMRX RETURN
- CTC SPACE 4,15
- ** CTC - COPY DISK TABLES TO CENTRAL MEMORY.
- *
- * ENTRY (T3) = MST POINTER.
- * (T5) = EST ORDINAL.
- * (T6) = LABEL TRACK.
- * (CT) = LAST TRT SECTOR + 1.
- * (WB+2) = TRT LENGTH.
- * (WB+3) = LABEL SECTOR NUMBER.
- *
- * USES CT, T7, WB, WB+1.
- *
- * CALLS CAT, RDS.
- CTC1 LDD WB+2 ADJUST WORD COUNT
- LPN 77
- ZJN CTCX IF END OF TRT ON SECTOR BOUNDARY
- STD WB
- CTC2 LDC BUFS READ SECTOR OF TRT DATA
- RJM RDS
- LDD T3 SET MST POINTER TO TRT
- SHN 3
- ADN TRLL CALCULATE TRT ADDRESS
- RJM CAT
- ADD WB+1 WRITE TRT DATA TO CENTRAL MEMORY
- CWM BUFS+2,WB
- LDD HN ADVANCE TRT OFFSET
- RAD WB+1
- CTC3 AOD T7 ADVANCE SECTOR NUMBER
- SBD CT
- MJN CTC2 IF ANOTHER FULL SECTOR
- ZJN CTC1 IF PARTIAL SECTOR
- CTC SUBR ENTRY/EXIT
- LDN 0
- STD WB+1 INITIALIZE TRT OFFSET
- LDD HN
- STD WB SET FULL SECTOR WORD COUNT
- LDD WB+3
- STD T7 SET LABEL SECTOR
- SOD CT
- UJN CTC3 COPY TRT
- CUC SPACE 4,10
- ** CUC - COMPARE UPDATE COUNTS.
- *
- * ENTRY (A) = ADDRESS OF COUNTER IN *BFMS* BUFFER.
- * (BUFS) = TRT / MRT SECTOR.
- *
- * EXIT (A) = 0 IF COUNTS MATCH.
- *
- * USES T1.
- CUC SUBR ENTRY/EXIT
- STD T1
- LDI T1 COMPARE UPDATE COUNTS
- LMM BUFS+2+5*77+2
- NJN CUCX IF NO MATCH
- LDM 1,T1
- LMM BUFS+2+5*77+3
- NJN CUCX IF NON-MATCHING COUNTS
- LDM 2,T1
- LMM BUFS+2+5*77+4
- SCN 77
- UJN CUCX RETURN
- PFA SPACE 4,15
- ** PFA - PROCESS FAST ATTACH FOR ISD.
- *
- * ENTRY (TC) = MACHINE INDEX*5.
- * SYSTEM SECTOR IN BFMS.
- *
- * EXIT (A) = 0 IF REWRITE SYSTEM SECTOR.
- *
- * CALLS USC.
- *
- * USES T2.
- PFA3 LDN 1 SET NO SYSTEM SECTOR REWRITE
- PFA SUBR ENTRY/EXIT
- LDM UCSS,TC
- SHN 21-2
- PJN PFA3 IF NO ENTRY FOR DOWNED MACHINE
- SHN -21+2+22
- LPN 1
- STD T2
- RJM USC UPDATE SYSTEM SECTOR COUNTS
- LDN 0 PRESET COUNTER
- STD T2
- PFA1 LDM UCSS+5,T2
- NJN PFA2 IF FILE STILL BEING ACCESSED
- LDN 5 ADVANCE COUNTER
- RAD T2
- LMC /MMF/MMPF*5
- NJN PFA1 IF NOT ALL MAINFRAMES CHECKED
- STM FISS CLEAR FAST ATTACH STATUS
- LDC PMFT*100 RESET FILE TYPE
- STM FNSS+4
- PFA2 LDN 0 SET TO REWRITE SYSTEM SECTOR
- UJN PFAX RETURN
- RMI SPACE 4,10
- ** RMI - RELEASE MST INTERLOCKS.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (MD) = DOWNED MACHINE INDEX.
- *
- * EXIT TO *MSR* IF LABEL SECTOR ERROR.
- *
- * USES T6, T7, CM - CM+4.
- * CALLS CDC, CLC, CTC, C2D, DAP, RSC, UDT, VDT, WDS.
- *
- * MACROS ENDMS, SETMS.
- RMI SUBR ENTRY/EXIT
- LDD T5 CONVERT UPPER DIGIT OF EST ORDINAL
- SHN -6
- ADC 2RQ0
- STM RMIB+1
- LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM RMIB+2
- SETMS IO,(NS,DE,RW)
- LDD CM+4 SET MST ADDRESS
- STD T3
- SHN 3
- ADN ALGL READ DEVICE ALLOCATION WORD
- CRD CM
- LDD CM+1 SET LABEL TRACK
- STD T6
- LDN /MMF/LSLT
- STD T7
- LDD CP WRITE MESSAGE TO B-DISPLAY
- ADN MS2W
- CWM RMIB,TR
- RMI1 LDC BFMS READ LABEL SECTOR
- RJM RSC
- RJM VDT VERIFY DISK TABLES
- ZJN RMI2 IF RESERVE HELD BY DOWN MACHINE
- MJN RMI4 IF DEVICE NOT INTERLOCKED
- ENDMS
- RJM DAP DELAY
- NJP RMI1 IF NO OPERATOR DROP
- LJM ERR PROCESS OPERATOR DROP
- RMI2 LDD WB+3
- ZJN RMI3 IF PRIMARY MRT CURRENT
- LDN 0
- SBD WB+3 SET PRIMARY MRT SECTOR
- RAD T7
- LDC BUFS COPY MRT TO PRIMARY LOCATION
- RJM WDS
- RMI3 LDM N4SS+5*SDGL+4
- SCN 77 CLEAR DOWN MACHINE INTERLOCK
- SHN -1
- LMD WB+4 SET THIS MACHINE-S INTERLOCK
- SHN 1
- STM N4SS+5*SDGL+4
- LDN /MMF/LSLT SET PRIMARY LABEL SECTOR
- STD T7
- RJM CLC COMPUTE LABEL CHECKSUM
- STM CKSS
- RMI4 LDD MD
- SHN 2 DOWN MACHINE INDEX * 5
- ADD MD
- ADC DISS-5 SET DIT ENTRY ADDRESS
- STD T0
- STM RMIA
- LDI T0 EXTRACT ACTIVITY COUNT
- LPN 77
- LMC -0 DECREMENT PFM ACTIVITY COUNT
- RAM N4SS+TDGL*5+1
- * CLEAR PF INTERLOCK AND INSTALL INTERLOCK IF HELD
- * BY DOWN MACHINE.
- LDI T0
- LPC 300
- LMM N4SS+5*TDGL+1 CLEAR PF AND INSTALL INTERLOCKS
- STM N4SS+5*TDGL+1
- LDN ZERL CLEAR DIT ENTRY
- CRM **,ON
- RMIA EQU *-1
- LDN /MMF/LSLT SET PRIMARY LABEL SECTOR
- STD T7
- RJM CDC COMPUTE LABEL CHECKSUM
- STM CKSS
- LDC BFMS+WLSF WRITE LABEL SECTOR
- RJM WDS
- PJN RMI6 IF NO WRITE ERROR
- LDN /MRT/WER SET WRITE ERROR
- LJM MSR RETURN ERROR TO *MREC*
- RMI6 LDD WB
- NJN RMI8 IF NOT UPDATING TABLES IN CM
- AOM N4SS+5*SDGL+4
- LDD T3 CALCULATE FWA OF TRT
- SHN 3
- ADK TDGL SET DEVICE INTERLOCK IN CM
- CWM N4SS,TR
- RJM CTC COPY TRT TO CENTRAL MEMORY
- ENDMS
- RJM UDT UPDATE DEVICE INFORMATION TABLE
- LDN CDIS
- STD CM+3 SET *STBM* SUBFUNCTION
- LDD T5
- STD CM+1 REBUILD TABLES ON DISK
- MONITOR STBM
- RMI8 ENDMS RELEASE MASS STORAGE RESOURCES
- * LDN 0
- STD CM
- LDD CP
- ADN MS2W CLEAR MESSAGE
- CWD CM
- LJM RMIX RETURN
- RMIB DATA C* EQXXX, CLEARING MST INTERLOCKS.*
- SDM SPACE 4,15
- ** SDM - CHECK DEVICE SHARED TO DOWN MF.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (MI) = MID OF DOWN MAINFRAME.
- *
- * EXIT (A) = 0, DEVICE SHARED TO DOWN MF.
- * = 1, DEVICE NOT SHARED TO DOWN MF.
- * (MD) = MACHINE INDEX.
- *
- * USES RE, T6, CM - CM+4.
- *
- * MACROS SFA.
- *
- * CALLS CAT.
- SDM SUBR ENTRY/EXIT
- SFA EST,T5
- ADK EQDE READ EST ENTRY
- CRD CM
- LDD CM CHECK DEVICE ATTRIBUTES
- LPC 4120
- LMC 4020
- NJN SDM2 IF NOT MASS STORAGE / AVAILABLE / ISD
- LDD CM+4
- STD RE SAVE MST ADDRESS / 10
- SHN 3
- ADK TDGL FETCH TRT LENGTH
- CRD CM
- LDD CM+2 DETERMINE LENGTH OF MRT
- ADN 7
- SHN -3
- ADD CM+2 ADD LENGTH OF THE TRT
- SBN 1
- STD T6 SET DIT OFFSET
- LDN /MMF/MMPF
- STD MD MAXIMUM MACHINE CONFIGURATION
- SDM1 LDD RE
- SHN 3
- ADN TRLL
- RJM CAT CALCULATE FWA OF TRT
- ADD T6
- ADD MD
- CRD CM READ DIT ENTRY
- LDD CM+4
- LMD MI
- ZJN SDM3 IF MATCHING MACHINE ID-S
- SOD MD
- NJN SDM1 IF MORE TO CHECK
- SDM2 LDN 1
- SDM3 LJM SDMX RETURN
- UDT SPACE 4,10
- ** UDT - UPDATE DEVICE INFORMATION TABLE IN CM.
- *
- * ENTRY (T3) = MST POINTER.
- * (WB+2) = TRT LENGTH.
- * (BFMS) = LABEL SECTOR.
- *
- * USES T1, WB+2.
- *
- * CALLS CAT.
- UDT SUBR ENTRY/EXIT
- LDN /MMF/MISD
- STD T1 DIT LENGTH
- LDD WB+2
- ADN 7 CALCULATE DIT OFFSET
- SHN -3
- RAD WB+2 APPEND MRT LENGTH TO TRT LENGTH
- LDD T3
- SHN 3
- ADN TRLL CALCULATE FWA OF TRT
- RJM CAT
- ADD WB+2 COPY DIT TO CENTRAL MEMORY
- CWM DISS,T1
- UJN UDTX RETURN
- VDT SPACE 4,25
- ** VDT - VERIFY DISK TABLES.
- *
- * ENTRY (MD) = DOWN MACHINE INDEX FOR SPECIFIED DEVICE.
- * (T3) = MST POINTER.
- * (T5) = EST ORDINAL.
- * (T6) = LABEL TRACK.
- * (T7) = 0.
- * (BFMS) = FIRST LABEL SECTOR.
- *
- * EXIT (A) .LT. 0 IF DEVICE NOT INTERLOCKED.
- * .GT. 0 IF INTERLOCK HELD BY ACTIVE MACHINE.
- * .EQ. 0 IF INTERLOCK HELD BY DOWN MACHINE.
- * (T7) = MRT SECTOR NUMBER IF TABLES VERIFIED.
- * (WB) = 0 IF DEVICE INTERLOCK HELD BY DOWN MACHINE.
- * (WB+2) = TRT LENGTH.
- * (WB+3) = LABEL SECTOR NUMBER IF TABLES VERIFIED.
- * (WB+4) = THIS MACHINE INDEX FOR SPECIFIED DEVICE.
- * (BFMS) = LABEL SECTOR.
- * (BUFS) = MRT SECTOR IF DOWN MACHINE HAS INTERLOCK.
- *
- * USES CT, CM - CM+4, WB - WB+4.
- *
- * CALLS CLC, CTC, CUC, RSC.
- *
- * MACROS ENDMS.
- VDT8 LCN 1 INDICATE DEVICE NOT INTERLOCKED
- VDT SUBR ENTRY/EXIT
- LDD T3
- SHN 3
- ADK TDGL FETCH TRT LENGTH
- CRD WB
- ADN DULL-TDGL GET DEVICE USAGE WORD
- CRD CM
- LDD CM+2 EXTRACT DIT ORDINAL
- LPN 17
- ADN 1 SET MACHINE INDEX
- STD WB+4
- LDM N4SS+5*SDGL+4 CHECK SOFTWARE RESERVE
- LPN 77
- ZJN VDT8 IF DEVICE NOT INTERLOCKED
- SHN -1
- LMD MD CHECK DEVICE HOLDING INTERLOCK
- STD WB
- NJN VDTX IF NOT HELD BY DOWN MACHINE
- VDT1 STD WB+3
- RJM CLC COMPUTE LABEL CHECKSUM
- LMM CKSS
- NJN VDT3 IF CHECKSUM ERROR
- * READ ENTIRE TRT TO ENSURE NO DISK ERRORS FOR *CTC*.
- AOD T7 SET FIRST SECTOR OF TRT
- LDD WB+2
- SHN -6 CALCULATE LAST SECTOR OF TRT
- ADN 2
- ADD WB+3 INCLUDE ALTERNATE TABLES BIAS
- STD CT
- VDT2 LDC BUFS READ TRT SECTOR
- RJM RSC
- AOD T7 ADVANCE SECTOR NUMBER
- LMD CT
- NJN VDT2 IF NOT END OF TRT SECTOR
- * VERIFY UPDATE COUNTS BETWEEN MST AND TRT.
- LDC N4SS+5*SDGL+2 COMPARE UPDATE COUNTS
- RJM CUC
- VDT3 NJN VDT4 IF NON-MATCHING COUNTS
- LDN /MMF/MRTL-1
- ADD MD
- ADD WB+3 SET MRT SECTOR OF DOWN MACHINE
- STD T7
- LDC BUFS READ MRT SECTOR
- RJM RSC
- * VERIFY UPDATE COUNTS BETWEEN DIT AND MRT.
- LDD MD CALCULATE ADDRESS OF DIT ENTRY
- SHN 2
- ADD MD
- ADC /LSD/DISS-5+1 COMPARE UPDATE COUNTS
- RJM CUC
- ZJP VDTX IF MATCHING COUNTS
- VDT4 LDD WB+3
- ZJN VDT5 IF ALTERNATE LABEL NOT CHECKED
- ENDMS
- LJM RSC1 PROCESS READ ERROR
- VDT5 LDD T3 READ MST
- SHN 3
- ADN DULL SET ALTERNATE LABEL SECTOR
- CRD T7
- LDC BFMS READ LABEL SECTOR
- RJM RSC
- LDD T7
- LJM VDT1 VERIFY ALTERNATE LABEL TABLES
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCLC
- SPACE 4,5
- ERRNG QBUF-* CODE OVERFLOW INTO BUFFERS
- SCP SPACE 4,10
- ** SCP - SET / CLEAR PP PAUSE FLAG.
- *
- * ENTRY (A) = 0 IF CLEARING PP PAUSE FLAG.
- * = 1 IF SETTING PP PAUSE FLAG.
- *
- * USES CM - CM+4.
- SCP SUBR ENTRY/EXIT
- STD T0
- LDD CP FETCH SENSE SWITCH WORD
- ADN SNSW
- CRD CM
- LDD CM+3 SET / CLEAR PAUSE FLAG
- SCN 1
- LMD T0
- STD CM+3
- LDD CP STORE SENSE SWITCH WORD
- ADN SNSW
- CWD CM
- UJN SCPX RETURN
- TITLE FUNCTION 2 - UPDATE MST ENTRIES IN CM.
- UMT SPACE 4,10
- ** UMT - UPDATE MST ENTRIES IN CM. (FUNCTION 2)
- *
- * EXIT MST-S FOR INDEPENDENT SHARED DEVICES UPDATED IN CM.
- *
- * USES T1, T5, T6, WB+2, CM - CM+4, CN - CN+4.
- *
- * CALLS C2D, RLS, SCP, SDM, UDT, VDT.
- *
- * MACROS DELAY, EXECUTE, SFA.
- UMT8 LDN 0 CLEAR PP PAUSE FLAG
- RJM SCP
- UMT SUBR ENTRY/EXIT
- EXECUTE 2MS
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD T5
- LDN 0 CLEAR TRACK POINTER (FOR *STB*)
- STD T6
- LDN ESTP GET EST POINTERS
- CRD CN
- UMT1 AOD T5 ADVANCE EST ORDINAL
- LMD CN+3
- ZJN UMT8 IF END OF MASS STORAGE DEVICES
- RJM SDM
- NJN UMT1 IF NOT AVAILABLE ISD SHARED WITH DOWN MF
- LDD T5
- SHN -6
- ADC 2RQ0 CONVERT UPPER DIGIT OF EST ORDINAL
- STM UMTA+1
- STM UMTB+1
- LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM UMTA+2
- STM UMTB+2
- LDN 1 SET PP PAUSE FLAG
- RJM SCP
- UMT2 RJM RLS READ LABEL SECTOR
- NJN UMT4 IF READ ERRORS
- RJM VDT VERIFY DISK TABLES
- ENDMS
- RJM UDT UPDATE DIT IN CENTRAL MEMORY
- UMT3 LJM UMT1 PROCESS NEXT EST ENTRY
- UMT4 LPN 77 EXTRACT ERROR CODE
- LMN CRSE
- NJN UMT5 IF CONTROLLER NOT RESERVED
- LDD T4
- RJM C2D CONVERT CHANNEL FOR MESSAGE
- STM UMTA+5
- LDD CP WRITE MESSAGE TO B-DISPLAY
- ADN MS2W
- CWM UMTA,TR
- UJN UMT6 CHECK FOR CLEARED PP PAUSE FLAG
- UMT5 LMN RESE&CRSE
- NJP RSC1 IF UNIT NOT RESERVED
- LDM RLSA+5
- STM UMTB+5 SET UNIT NUMBER IN MESSAGE
- LDD CP
- ADN MS2W COPY MESSAGE TO B-DISPLAY
- CWM UMTB,TR
- UMT6 DELAY
- LDD CP READ SENSE SWITCH WORD
- ADN SNSW
- CRD CM
- LDD CM+3 CHECK FOR PAUSE FLAG CLEARED
- SHN 21-0
- MJP UMT2 IF *GO* COMMAND NOT ISSUED
- UMT7 LJM UMT1 PROCESS NEXT EST ENTRY
- UMTA DATA C* EQXXX, CHYY, CONTROLLER RESERVED.*
- UMTB DATA C* EQXXX, UNYY, UNIT RESERVED.*
- SPACE 4,10
- E2MR BSS 0 END OF ISD RECOVERY CODE
- OVERFLOW OVLA
- OVLB MAX E1MR+5,E2MR+5 *2MS* LOAD ADDRESS
- TTL 1MR/2MS - HARDWARE RESERVE ROUTINES.
- TITLE COMMON SUBROUTINES.
- IDENT 2MS,OVLB
- *COMMENT 1MR - HARDWARE RESERVE ROUTINES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** 2MS - HARDWARE RESERVE ROUTINES.
- ORG OVLB
- TMS SUBR ENTRY/EXIT
- UJN TMSX RETURN AFTER LOAD
- RES SPACE 4,15
- ** RES - PROCESS UNIT AND CONTROLLER RESERVES.
- *
- * ENTRY (IR+3 - IR+4) = FWA OF TABLE OF DEVICES TO RECOVER.
- *
- * EXIT RETURN TO *MREC* FOR OPERATOR ACTION IF THERE IS
- * A UNIT OR CONTROLLER RESERVE WHICH CANNOT BE CLEARED.
- *
- * USES SC, T5, T6, CM - CM+4, CN -CN+4.
- *
- * CALLS CAA, CBW, RLS, SDM, *0RI*.
- *
- * MACROS EXECUTE.
- RES SUBR ENTRY/EXIT
- EXECUTE 0RI,BUFS+1
- STM RESA SET PROCESSOR ADDRESS
- LCN 0
- STD SC
- RES1 AOD SC ADVANCE TABLE INDEX
- RJM CAA
- ADD SC READ TABLE ENTRY FOR NEXT SHARED DEVICE
- CRD CN
- LDD CN+4 SET EST ORDINAL
- STD T5
- ZJN RESX IF END OF DEVICES TO RECOVER
- LDD CN+3
- ZJN RES2 IF NOT ISD
- RJM SDM
- NJN RES1 IF NOT SHARED WITH DOWN MF
- RES2 LDD CN
- ZJN RES3 IF DEVICE HAS NOT YET BEEN PROCESSED
- SBN /MRT/REL
- MJN RES1 IF IGNORE OR DEVICE ALREADY PROCESSED
- RES3 RJM CBW CLEAR BAT WRITE PERMISSIONS
- RJM RLS READ LABEL SECTOR
- ZJN RES4 IF NO ERRORS
- LPN 77
- LMN CRSE
- ZJN RES7 IF CONTROLLER RESERVED
- LMN RESE&CRSE
- ZJN RES5 IF UNIT RESERVED
- RES4 LDN /MRT/PRO SET DEVICE PROCESSED
- STD CN
- RJM CAA WRITE ENTRY BACK TO TABLE
- ADD SC
- CWD CN
- LJM RES1 CHECK NEXT EQUIPMENT
- RES5 LDD BI CHECK EQUIPMENT TYPE
- SHN 21-7
- PJN RES8 IF NOT *LDAM* EQUIPMENT
- LDD CN CHECK FOR RELEASE REQUESTED
- SBN /MRT/REL
- NJN RES8 IF OPERATOR DID NOT SELECT RELEASE
- STD CN
- RJM * EXECUTE *0RI* TO RELEASE RESERVE
- RESA EQU *-1
- UJN RES3 RECHECK RESERVE
- RES7 LDD T4 RETURN CHANNEL NUMBER
- STD CN+1
- LDN /MRT/CRS SET CONTROLLER RESERVED
- UJN RES9 CONTINUE
- RES8 LDN /MRT/URS SET UNIT RESERVED
- RES9 STD CN+4
- LDD T5 SET EQUIPMENT
- STD CN+3
- LDD SC SET INDEX INTO DEVICE TABLE
- STD CN+2
- LDN 0
- STD CN
- LDD RA RETURN ERROR WORD TO *MREC*
- SHN 6
- ADC /MRT/ERRW
- CWD CN
- LJM DROP DROP PP
- CBW SPACE 4,10
- ** CBW - CLEAR BAT WRITE ACCESS PERMISSIONS.
- *
- * ENTRY (T5) = EST ORDINAL FOR DEVICE.
- * (MD) = MACHINE INDEX OF DOWNED MACHINE.
- *
- * USES CM - CM+4, WB - WB+4.
- *
- * MACROS MONITOR, SFA.
- CBW SUBR ENTRY/EXIT
- SFA EST,T5 SET DEVICE PARAMETERS
- ADK EQDE
- CRD WB
- LDD WB
- SHN 21-11
- PJN CBWX IF NOT ECS MMF SHARED DEVICE
- SHN 21-5-21+11
- PJN CBWX IF NOT SHARED BUFFERED DEVICE
- LDN ZERL
- CRD CM
- LDD MD SET MACHINE INDEX OF DOWNED MACHINE
- STD CM+2
- LDD T5 SET EST ORDINAL
- STD CM+4
- LDN CBWS CLEAR BAT WRITE ACCESS PERMISSIONS
- STD CM+1
- MONITOR MTEM
- UJN CBWX RETURN
- CLU SPACE 4,10
- ** CLU - CLEAR UTILITY / DEVICE INTERLOCKS.
- *
- * USES SC, CM - CM+4, CN - CN+4, T2 - T7.
- *
- * CALLS CEA, ECS, RSC, WSC.
- *
- * MACROS ENDMS, SETMS.
- CLU SUBR ENTRY/EXIT
- LDD ET+1
- ADN /MMF/DAET SET ADDRESS OF ENVIRONMENT TABLE WORD
- STD CM+4
- SHN -14
- ADD ET
- ADD RE
- STD CM+3
- LDN 1-1 READ ONE WORD FROM EXTENDED MEMORY
- RJM ECS
- * LDN 0 SET FIRST SECTOR
- STD T7
- LDD MA GET WORD FROM CM BUFFER
- CRD CM
- LDD CM+4 NUMBER OF WORDS IN DAT
- SHN -1
- STD SC NUMBER OF DAT ENTRIES
- LDD DT SET DAT TRACK
- STD T6
- LDD LK READ FIRST SECTOR OF DAT
- STD T5
- SETMS IO,RW
- CLU1 LDC BFMS READ EXTENDED MEMORY SECTOR
- RJM RSC
- LDN 100/2 SET NUMBER OF DAT ENTRIES
- STD T2
- LDN 1 SKIP HEADER BYTES
- STD T3
- CLU2 LDN 12 INCREMENT POSITION IN BUFFER
- RAD T3
- LDM BFMS-11,T3
- ZJN CLU4 IF HOLE
- LDM BFMS,T3
- LMD MK
- NJN CLU4 IF NOT ONLY DOWNED MACHINE USING DEVICE
- * LDN 0
- STM BFMS,T3 CLEAR STATUS BYTE
- LDM BFMS-5,T3
- NJN CLU6 IF SHARED DEVICE
- * LDN 0
- STM BFMS-11,T3 CLEAR *DAT* ENTRY
- CLU4 SOD SC
- NJN CLU5 IF MORE DAT ENTRIES
- * LDN 0
- RJM WSC REWRITE SECTOR
- ENDMS
- LJM CLUX RETURN
- CLU5 SOD T2
- NJN CLU2 IF NOT END OF SECTOR
- * LDN 0
- RJM WSC REWRITE SECTOR
- AOD T7
- LJM CLU1 READ NEXT SECTOR
- * CLEAR INTERLOCKS IN *ACGL* AND *SDGL*.
- CLU6 LDD T7 SAVE DAT SECTOR
- STD CN+1
- LDD T2 SAVE POSITION IN DAT
- STD CN
- LDM BFMS-5,T3 SET MST TRACK
- STD T6
- LDN /MMF/MSST SET MST SECTOR
- STD T7
- LDC BUFS READ MST SECTOR
- RJM RSC
- LDN 0 SET LOCAL AREA OFFSET
- STD T1
- LDD MD SET LOCAL AREA COUNT
- STD T2
- CLU7 LDN 0 CLEAR LOCAL INTERLOCKS
- STM BUFS+2+5*DULL+1,T1
- LDK LLLL*5 ADVANCE OFFSET
- RAD T1
- SOD T2
- NJN CLU7 IF NOT END OF MACHINES
- * LDN 0
- STM BUFS+2+5*TDGL+1 CLEAR GLOBAL INTERLOCKS
- LDM BUFS+2+5*SDGL+4
- SCN 77 CLEAR SOFTWARE RESERVE
- STM BUFS+2+5*SDGL+4
- LDN ZERL CLEAR DEVICE DESCRIPTION
- CRM BUFS+2+5*PFGL,ON
- LDM BUFS+2+5*ACGL+4
- LPK MGLAP
- LMK MGUNL SET GLOBAL UNLOAD
- STM BUFS+2+5*ACGL+4
- LDC BUFS REWRITE MST SECTOR
- RJM WSC
- LDD DT RESTORE DAT TRACK
- STD T6
- LDD CN+1 RESTORE DAT SECTOR
- STD T7
- LDD CN RESTORE DAT POSITION
- STD T2
- UJP CLU4 PROCESS NEXT DAT ENTRY
- RLS SPACE 4,20
- ** RLS - READ LABEL SECTOR.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (A) = 0 IF NO ERROR.
- * = (RDCT) IF ERROR.
- * (T3) = MST POINTER.
- * (T6) = LABEL TRACK.
- * (BI) = BYTE 0 OF EST ENTRY FOR DEVICE.
- * (CN+1) = PHYSICAL UNIT NUMBER IF UNIT RESERVED.
- * (BFMS) = FIRST LABEL SECTOR.
- *
- * CALLS C2D, RDS.
- *
- * USES QS, T1, T7, CM - CM+4, WB - WB+4.
- *
- * MACROS ENDMS, SETMS.
- RLS SUBR ENTRY/EXIT
- SETMS IO,(NS,RR)
- LDD CM SAVE BYTE 0 OF *EQDE* WORD
- STD BI
- LDD CM+4 SAVE MST POINTER
- STD T3
- SHN 3
- ADN ALGL FETCH LABEL TRACK
- CRD T6
- ADN MDGL-ALGL GET SECTOR LIMITS
- CRD CM
- ADN DDLL-MDGL READ UNIT LIST
- CRD WB
- LDD T7 SET LABEL TRACK
- STD T6
- LDD CM+1 EXTRACT SINGLE UNIT SECTOR LIMIT
- LPC 3777
- STD QS
- LDD CM+4 SET LAST LABEL SECTOR
- SBD QS
- STD T7
- LDD T5 CONVERT UPPER DIGIT OF EST ORDINAL
- SHN -6
- ADC 2RQ0
- STM RLSA+1
- LDD T5 CONVERT LOWER TWO DIGITS OF EST ORDINAL
- RJM C2D
- STM RLSA+2
- LDD WB EXTRACT UNIT COUNT
- LPN 7
- LMN 7 INVERT COUNT
- STD WB
- * READ LABEL SECTOR.
- RLS1 SHN 21-0 SET UNIT LIST INDEX
- STD T1
- SCN 3 MERGE BYTE FROM UNIT LIST
- LMM WB+1,T1
- MJN RLS2 IF UNIT PACKED LOW
- SHN -6
- RLS2 LPN 77 EXTRACT UNIT NUMBER
- STD CN+1
- RJM C2D
- STM RLSA+5
- LDD CP WRITE MESSAGE TO B-DISPLAY
- ADN MS2W
- CWM RLSA,TR
- LDC BFMS READ SECTOR
- RJM RDS
- PJN RLS4 IF NO ERROR
- LPN 77
- LMN CRSE
- ZJN RLS3 IF CONTROLLER RESERVED
- LMN RESE&CRSE
- NJN RLS4 IF NOT UNIT RESERVED
- RLS3 ENDMS
- * LDN 0
- STD CM
- LDD CP CLEAR MESSAGE
- ADN MS2W
- CWD CM
- LDM RDCT SET ERROR STATUS
- LJM RLSX RETURN
- * ADVANCE TO NEXT UNIT OF MULTI-UNIT DEVICE.
- RLS4 LDD T7 DECREMENT SECTOR ADDRESS
- SBD QS
- MJN RLS3 IF END OF UNITS
- STD T7
- AOD WB
- LJM RLS1 LOOP FOR NEXT UNIT
- RLSA DATA C* EQXXX, UNYY, CHECKING RESERVE.*
- WSC SPACE 4,10
- ** WSC - WRITE EXTENDED MEMORY SECTOR.
- *
- * ENTRY (A) = 0 IF DATA IN *BFMS*.
- * (T4 - T7) = DRIVER PARAMETERS.
- *
- * EXIT TO *MSR* IF UNRECOVERED WRITE ERROR.
- *
- * CALLS WDS, MSR.
- WSC SUBR ENTRY/EXIT
- NJN WSC1 IF ALTERNATE BUFFER
- LDC BFMS SET BUFFER ADDRESS
- WSC1 RJM WDS WRITE SECTOR
- PJN WSCX IF NO ERROR
- LDN /MRT/WER SET LINK DEVICE WRITE ERROR
- LJM MSR PROCESS ERROR
- ERRNG BUFS-* CODE OVERFLOWS BUFFER
- TTL 1MR - MACHINE RECOVERY PROCESSOR.
- SPACE 4,10
- END
cdc/nos2.source/opl871/1mr.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator