IDENT 1IS,IOS
PERIPH
BASE M
SST
SYSCOM
TITLE 1IS - INSTALL DEADSTART FILE.
*COMMENT 1IS - INSTALL DEADSTART FILE.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4,10
***** 1IS - INSTALL DEADSTART FILE.
*
* P. D. HAAS. 78/03/16.
* D. R. HILGREN. 78/08/01.
SPACE 4,10
*** *1IS* WORKS IN CONJUNCTION WITH THE CP ROUTINE
* *INSTALL* TO INSTALL THE RUNNING SYSTEM OR USER
* SPECIFIED DEADSTART FILE ON A RMS DEADSTART DEVICE.
SPACE 4,10
*** CALL.
*
*T 18/ *1IS* ,6/0,12/ CODE ,12/ SFA ,12/ IFA
*
* CODE = FUNCTION CODE.
* SFA = SDF FET FWA (IF PRESENT).
* IFA = INSTALL FILE FET FWA (IF PRESENT).
*
*
* FOR FUNCTION CODE *IDF*,
*T,FET+5 48/0,12/ EQ
*
* EQ = EST ORDINAL SPECIFIED ON *INSTALL*.
*
*
* FOR FUNCTION CODE *CFI*,
*T,FET+5 24/ R1 ,12/0,24/ R2
*
* R1 = RANDOM SECTOR ADDRESS OF *OSB*.
* R2 = RELATIVE SECTOR ADDRESS OF EOI.
SPACE 4,10
*** DAYFILE MESSAGES.
*
* * ASSIGNED FILE CONFLICT - SDF.* - A LOCAL FILE NAMED *SDF*
* IS ASSIGNED AT THE CONTROL POINT. *SDF* IS A RESERVED FILE
* NAME.
*
* * INCORRECT SDF DEVICE.* - THE EQUIPMENT SELECTED TO RECEIVE
* A DEADSTART FILE DOES NOT MEET THE REQUIREMENTS OF AN *RMS*
* DEADSTART DEVICE.
*
* * INSTALL FILE NOT FOUND.* - THE FILE TO BE INSTALLED AS A
* DEADSTART FILE WAS NOT FOUND (NOT ASSIGNED TO THE JOB CONTROL
* POINT).
*
* * INSTALL FILE NOT MASS STORAGE.* - THE FILE TO BE INSTALLED
* AS A DEADSTART FILE DOES NOT RESIDE ON MASS STORAGE.
*
* * MS ERROR ON DEADSTART FILE.* - A MASS STORAGE ERROR WAS
* ENCOUNTERED WHILE WRITING THE DEADSTART FILE, OR READING
* THE DEADSTART SECTOR.
*
* * TRACK LIMIT ON SDF DEVICE.* - THE DEVICE SELECTED TO BECOME
* AN *RMS* DEADSTART DEVICE DOES NOT HAVE ENOUGH SPACE TO
* ACCOMMODATE THE DEADSTART FILE.
*
* * 1IS - INCORRECT REQUEST.* - 1IS WAS CALLED WITH AN
* INCORRECT FUNCTION REQUEST.
*
* * INSTALL ABORTED.* - OPERATOR ACTION ABORTED JOB.
SPACE 4,10
*** OPERATOR MESSAGES.
*
* *WAITING - GLOBAL INTERLOCK.* - GLOBAL INTERLOCK IS NOT
* AVAILABLE FOR DEADSTART FILE INSTALLATION. *1IS* ISSUES
* MESSAGE AND GOES ON RECALL.
SPACE 4,10
** ROUTINES USED.
*
* 0BF - BEGIN FILE.
* 0PI - PRESET DRIVER TO READ/WRITE DEADSTART SECTOR.
SPACE 4,10
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSDSL
*CALL COMSLFD
*CALL COMSMSP
*CALL COMSMST
*CALL COMSPIM
*CALL COMSPRD
*CALL COMSSSJ
*CALL COMSWEI
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
FS EQU 20 - 24 FST ENTRY (5 LOCATIONS)
RI EQU 25 - 26 RANDOM INDEX (2 LOCATIONS)
MS EQU 27 MST POINTER
CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
TC EQU 35 TRACK COUNT
CT EQU 36 CURRENT TRACK
FN EQU 40 - 44 FNT ENTRY (5 LOCATIONS)
EQ EQU 45 EST ORDINAL
PA EQU 46 PROCESSOR ADDRESS
FA EQU 57 FST ADDRESS
WB EQU 63 - 67 CM WORD BUFFER (5 LOCATIONS)
****
TITLE MACRO DEFINITIONS.
SPACE 4,10
** ERROR - ERROR MACRO.
*
* ERROR A
*
* *A* = ADDRESS OF ERROR MESSAGE.
PURGMAC ERROR
ERROR MACRO A
LDC A
RJM ABT
ENDM
TITLE MAIN PROGRAM.
IOS SPACE 4,10
** 1IS - MAIN PROGRAM.
ORG PPFW
IOS RJM CRQ CHECK REQUEST
LDM TFCN-1,IR+2 SET PROCESSOR ADDRESS
STD PA
RJM 0,PA EXECUTE PROCESSOR
LDN 1 SET REQUEST COMPLETE
STD IR+4
LDD RA STORE REQUEST COMPLETE
SHN 6
ADN ARGR
CWD IR
MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
SPACE 4,10
TFCN BSS 0 TABLE OF FUNCTION REQUESTS
LOC 1
CON VIF VALIDATE INSTALL FILE
CON IDF INITIALIZE DEADSTART FILE
CON CFI COMPLETE SDF INSTALLATION
CON PME PROCESS MASS STORAGE ERROR
TFCNL BSS 0 TABLE LENGTH
LOC *O
TITLE ERROR PROCESSOR / MESSAGES.
ABT SPACE 4,10
** ABT - ERROR PROCESSOR.
*
* ENTRY (A) = ADDRESS OF ERROR MESSAGE.
*
* EXIT TO *PPR*.
* ERROR MESSAGE ISSUED.
* CONTROL POINT ABORTED.
*
* CALLS DFM.
*
* MACROS MONITOR.
ABT CON 0 ENTRY
RJM DFM ISSUE MESSAGE
MONITOR ABTM ABORT CONTROL POINT
LJM PPR EXIT TO PP RESIDENT
SPACE 4,10
* ERROR MESSAGES.
EILR DATA C* 1IS - INCORRECT REQUEST.*
EISD DATA C* INCORRECT SDF DEVICE.*
EAFC DATA C* ASSIGNED FILE CONFLICT - SDF.*
EFNF DATA C* INSTALL FILE NOT FOUND.*
EFNM DATA C* INSTALL FILE NOT MASS STORAGE.*
EMSE DATA C* MS ERROR ON DEADSTART FILE.*
ETKL DATA C* TRACK LIMIT ON SDF DEVICE.*
EABT DATA C* INSTALL ABORTED.*
TITLE FUNCTION PROCESSORS.
VIF SPACE 4,10
** VIF - VALIDATE INSTALL FILE (FUNCTION 1).
VIF SUBR ENTRY/EXIT
LDD RA GET INSTALL FILE NAME FROM FET
SHN 6
ADD IR+4
CRD FN
ADN 4 READ LIMIT WORD
CRD CN
RJM SAF SEARCH FOR ASSIGNED FILE
NJN VIF1 IF INSTALL FILE FOUND
ERROR EFNF * INSTALL FILE NOT FOUND.*
VIF1 STD CN SET FNT ADDRESS IN LIMIT WORD
NFA CN,R READ INSTALL FILE FST INFORMATION
ADN FSTL
CRD FS
CRD T5
SFA EST,T5 READ EST ENTRY
ADK EQDE
CRD CM
LDD CM
SHN 21-13
MJN VIF3 IF INSTALL FILE ON MASS STORAGE
VIF2 ERROR EFNM * INSTALL FILE NOT MASS STORAGE.*
VIF3 RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
LDD FS+2
ZJN VIF2 IF NO TRACK ASSIGNED
RJM SEI FIND EOI ON INSTALL FILE
LDD T6 SET EOI POSITION IN FST
STD FS+2
LDD T7
STD FS+3
LDN 1
STD FS+4
NFA CN,R STORE INSTALL FILE FST INFORMATION
ADN FSTL
CWD FS
LDD RA STORE LIMIT WORD
SHN 6
ADD IR+4
ADN 4
CWD CN
LJM VIFX RETURN
TITLE FUNCTION PROCESSORS.
IDF SPACE 4,10
** IDF - INITIALIZE DEADSTART FILE (FUNCTION 2).
IDF SUBR ENTRY/EXIT
LDD RA GET SDF FILE NAME FROM FET
SHN 6
ADD IR+3
CRD FN
ADN 4 READ LIMIT WORD
CRD CN
ADN 5-4 READ FET PARAMETER WORD
CRD WB
RJM SAF SEARCH FOR ASSIGNED FILE
ZJN IDF2 IF FILE NOT FOUND
NFA FA,R READ FST INFORMATION
CRD CM
ADN FSTL
CRD FS
LDD CM+4
LPN 77
LMN SSST
ZJN IDF1 IF CREATED BY *1IS* REQUEST
ERROR EAFC * ASSIGNED FILE CONFLICT - SDF.*
IDF1 LDD FS SET EST ORDINAL
STD EQ
UJN IDF3 CREATED BY DEADSTART REQUEST
IDF2 LDD WB+4 CREATE DEADSTART FILE FNT
RJM CDF
LDD EQ SET EST ORDINAL
IDF3 STD T5
LDD FA SET FNT ADDRESS IN LIMIT WORD
STD CN
LDD RA STORE LIMIT WORD
SHN 6
ADD IR+3
ADN 4
CWD CN
RJM SGI SET GLOBAL INTERLOCK
ZJN IDF4 IF INTERLOCK SET
LJM RCL RECALL PP
IDF4 LDD CN CHECK PRESENSE OF SDF
LPC MGDSF
ZJN IDF5 IF NO SDF ON DEVICE
LDN 0 READ DEADSTART SECTOR
RJM RDD
LDN ZERL CLEAR SDF INDICATORS
CRM BFMS+OSBP,ON
LDC BFMS+WLSF REWRITE DEADSTART SECTOR
RJM WMS
ENDMS RELEASE CHANNEL
CMSTF GDSF
LDM BFMS+OSBP+5 EXTRACT FIRST TRACK OF SDF
STD CM+2
SHN 0-13
ZJN IDF5 IF GARBAGE IN DEADSTART SECTOR
LDD T5
LMC 4000 SET CHECKPOINT REQUEST
STD CM+1
MONITOR DTKM RELEASE SDF TRACK CHAIN
IDF5 RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
LDD RA GET NEW DEADSTART FILE LENGTH
SHN 6
ADD IR+4 READ INSTALL FET PARAMETER WORD
ADN 5
CRD CN
RJM DTC DETERMINE TRACK COUNT
LDN ZERL REQUEST TRACK CHAIN FOR DEADSTART FILE
CRD CM
LDD T5
STD CM+1
LCN 1 SELECT RESERVE ALL TRACKS
STD CM+4
SHN -14
STD CM+3
MONITOR RTCM
LDD CM+4 SET FIRST TRACK
STD T6
STD CT
STD T4
ZJN IDF6 IF NO TRACKS AVAILABLE
RJM SEI COUNT TRACKS IN CHAIN
STD T3 SAVE TRACK COUNT
SBD TC
PJN IDF7 IF ENOUGH TRACKS IN CHAIN
LDD T5 DROP TRACK CHAIN
STD CM+1
LDD CT
STD CM+2
MONITOR DTKM
IDF6 RJM CFE CLEAR FNT/FST ENTRY
RJM CGI CLEAR GLOBAL INTERLOCK
ERROR ETKL * TRACK LIMIT ON SDF DEVICE.*
IDF7 ZJN IDF9 IF EXACTLY ENOUGH TRACKS
IDF8 LDD T4 SAVE CURRENT TRACK
STD T6
RJM SNT SET NEXT TRACK
STD T4
SOD T3 DECREMENT TRACK COUNT
LMD TC
NJN IDF8 IF NOT AT REQUIRED TRACK COUNT
* DELINK FIRST PART OF TRACK CHAIN.
STD CM+3
LDD CT SET FIRST TRACK
STD CM+2
LDD T6 SET LAST TRACK TO BE DROPPED
STD CM+4
LDD T5
STD CM+1
MONITOR DLKM DELINK FRONT OF TRACK CHAIN
IDF9 LDD T4 SET FIRST TRACK IN FST
STD FS+1
STD FS+2 SET CURRENT TRACK
LDN FSMS SET FIRST SECTOR
STD FS+3
LDN 1
STD FS+4
LDD EQ SET EST ORDINAL
STD FS
NFA FA,R STORE FST INFORMATION
ADN FSTL
CWD FS
LJM IDFX RETURN
TITLE FUNCTION PROCESSORS.
CFI SPACE 4,10
** CFI - COMPLETE SDF INSTALLATION (FUNCTION 3).
CFI SUBR ENTRY/EXIT
LDD RA READ SDF LIMIT WORD
SHN 6
ADD IR+3
ADN 4
CRD CM
SBD IR+3 READ INSTALL FILE PARAMETER WORD
ADN 5-4
ADD IR+4
CRD RI (RI - RI+1) = RANDOM ADDRESS OF *OSB*
LDD CM SET SDF FNT ADDRESS
STD FA
NFA CM,R READ FNT ENTRY
CRD FN
ADN FSTL
CRD FS
LCN LOFT-LIFT CHANGE FILE TYPE FOR SYSTEM SECTOR
SHN 6
RAD FN+4
LDC BFMS+502-FTSS-1
STD T2
CFI1 LDN 0 CLEAR SYSTEM SECTOR BUFFER
STM FTSS+1,T2
SOD T2
NJN CFI1 LOOP TO START OF BUFFER
LDD FS SET EST ORDINAL
STD T5
STD CM+1
SFA EST READ EST ENTRY
ADK EQDE
CRD WB
LDD FS+1 SET FIRST TRACK
STD CM+2
LDN SPFS PRESERVE SDF TRACK CHAIN
STD CM+3
MONITOR STBM
RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
NFA FA,R STORE FNT ENTRY WITH FILE TYPE *LIFT*
CWD FN
SETMS IO,RW
LDD FS+2 SET EOI TRACK
STD T6
LDD FS+3 SET EOI SECTOR
STD T7
RJM WEI WRITE EOI
SETMS POSITION
LDD FS+1 SET FIRST TRACK
STD T6
RJM WSS WRITE SYSTEM SECTOR
ENDMS RELEASE CHANNEL
LDD T5 SET EOI IN TRT
STD CM+1
LDD FS+2
LPC 3777
STD CM+2
LDD FS+3
STD CM+3
MONITOR DTKM
LDD WB+4 GET ALGORITHM INDEX FROM MST
SHN 3
ADN DILL
CRD WB
ADN DDLL-DILL GET UNIT NUMBER
CRD FN
LDD WB+4 SET ALGORITHM INDEX IN PARAMETER BLOCK
LPN 77
LMD HN ADD SEEK FUNCTION (1 TO 1 INTERLACE)
STD CN+3
LPN 77
SBN AIHT+1
PJN CFI2 IF FULL TRACK DEVICE
LDD HN CHANGE SEEK FUNCTION (2 TO 1 INTERLACE)
RAD CN+3
CFI2 RJM CRA CONVERT RANDOM ADDRESS OF *OSB*
LDD FN+4 SET UNIT NUMBER IN MONITOR REQUEST
LPN 77
STD T3
LDD T6 SET TRACK CONTAINING *OSB*
STD CN+4
LDD MA CONVERT LOGICAL TO PHYSICAL ADDRESS
CWD T4
MONITOR LDAM
LDD MA READ PHYSICAL ADDRESS
ADN 1
CRD CN-2
LDD CN+3
LPN 77
LMN AIDC
NJN CFI3 IF NOT 895 DEVICE
LDC 2000 SET 895 DEADSTART READ FLAG
RAD CN+1
AOM CFIA ADVANCE SHIFTS IF 895
STM CFIB
CFI3 AOD T7 SET ADDRESS OF *DIO*
LMM SLM
NJN CFI4 IF NOT TRACK SWITCH
STD T7
RJM SNT SET NEXT TRACK
STD T6
CFI4 LDD MA CONVERT LOGICAL TO PHYSICAL ADDRESS
CWD T4
MONITOR LDAM
* LDN 0
STD T7
LDD MA READ PHYSICAL ADDRESS
ADN 1
CRD CM
LDD CM+2 SET CYLINDER
STD WB+1
LDD CM+3 PACK TRACK AND SECTOR
CFIA SHN 6
* SHN 7 (IF 895)
LMD CM+4
STD WB+2
RJM SNT SET NEXT TRACK
STD T6
LDD MA CONVERT ADDRESS OF NEXT TRACK SWITCH
CWD T4
MONITOR LDAM
LDD MA READ PHYSICAL ADDRESS
ADN 1
CRD CM
LDD CM+2 SET CYLINDER
STD WB+3
LDD CM+3 PACK TRACK AND SECTOR
CFIB SHN 6
* SHN 7 (IF 895)
LMD CM+4
STD WB+4
LDD FS+1 READ DEADSTART SECTOR
STD WB
RJM RDD
LDD MA MOVE SDF PARAMETERS TO DEADSTART SECTOR
CWD CN
CRM BFMS+OSBP,ON
CWD WB
CRM BFMS+OSBP+5,ON
LDC BFMS+WLSF REWRITE DEADSTART SECTOR
RJM WMS
ENDMS RELEASE CHANNEL
RJM CFE CLEAR FNT/FST ENTRY
SMSTF GDSF SET DEADSTART FILE PRESENT IN MST
SMSTF LCKP SET CHECKPOINT REQUEST
RJM CGI CLEAR GLOBAL INTERLOCK
LJM CFIX RETURN
TITLE FUNCTION PROCESSORS.
PME SPACE 4,10
** PME - PROCESS MASS STORAGE ERROR (FUNCTION 4).
PME SUBR ENTRY/EXIT
LDD RA
SHN 6
CRD WB
ADD IR+3 GET SDF LIMIT WORD
ADN 4
CRD CN
LDD CN SET FNT ADDRESS
STD FA
ZJN PME1 IF NO FNT ENTRY
NFA CN,R READ FST INFORMATION
ADN FSTL
CRD FS
RJM CFE CLEAR FNT/FST ENTRY
LDD FS SET EST ORDINAL
STD T5
STD CM+1
LDD FS+1 SET FIRST TRACK
ZJN PME1 IF TRACK CHAIN NOT ASSIGNED
STD CM+2
MONITOR DTKM DROP TRACK CHAIN
RJM CGI CLEAR GLOBAL INTERLOCK
PME1 LDD WB+2 CHECK ERROR CONDITION
LPN 77
NJN PME2 IF NOT MASS STORAGE ERROR
ERROR EMSE * MS ERROR ON DEADSTART FILE.*
PME2 ERROR EABT * INSTALL ABORTED.*
TITLE SUBROUTINES.
CDF SPACE 4,15
** CDF - CREATE DEADSTART FILE.
*
* ENTRY (A) = EST ORDINAL OF RMS DEADSTART DEVICE.
* (FN - FN+3) = FILE NAME.
*
* EXIT (EQ) = EST ORDINAL.
* (FA) = FNT ADDRESS.
*
* USES FS, T7, CM - CM+4.
*
* CALLS *0BF*.
*
* MACROS ERROR, EXECUTE, NFA.
CDF SUBR ENTRY/EXIT
STD EQ SAVE EST ORDINAL
LDN ESTP CHECK EST ORDINAL
CRD CM
LDD EQ
SBD CM+3
PJN CDF1 IF INCORRECT EQUIPMENT SPECIFIED
SFA EST,EQ
ADK EQDE
CRD CM READ EST ENTRY
LDD CM CHECK EQUIPMENT STATUS
LPC 4312
LMC 4210
NJN CDF1 IF NOT ON/AVAILABLE/LDAM/MS DEVICE
LDD CM+1
SHN 21-5
PJN CDF2 IF NOT A CONCURRENT CHANNEL
LDD CM+2
ZJN CDF1 IF SINGLE ACCESS
SHN 21-5
PJN CDF2 IF BOTH CHANNELS ARE NOT CONCURRENT
CDF1 ERROR EISD * INCORRECT SDF DEVICE.*
CDF2 LDD CM+3 CHECK DEVICE TYPE
LMC 2RDB
ZJN CDF1 IF *DB* DEVICE
LDD CM+4 READ MST
SHN 3
ADN ACGL
CRD T7
ADN PFGL-ACGL
CRD CM
LDD T7 CHECK CTI PACKAGE PRESENT
LPC MGCTI
ZJN CDF1 IF CTI PACKAGE NOT INSTALLED
LDD CM+4 CHECK DEVICE STATUS
LPN 77
NJN CDF1 IF MULTI-UNIT DEVICE
STM OVL-1 SELECT NO RETURN WITHOUT FILE CREATED
LDN NEEQ SET NO MS ALLOCATION
STD FS
EXECUTE 0BF,OVL CREATE FNT/FST ENTRY
LDD EQ
STD FS
NFA FA,R STORE FST INFORMATION
ADN FSTL
CWD FS
LJM CDFX RETURN
CFE SPACE 4,10
** CFE - CLEAR FNT/FST ENTRY.
*
* ENTRY (FA) = FNT ADDRESS.
*
* EXIT (CM - CM+4) = 0.
* FET FNT ADDRESS CLEARED.
*
* MACROS MONITOR.
CFE SUBR ENTRY/EXIT
LDN ZERL
CRD CM
LDD FA SET RELATIVE FNT ADDRESS
STD CM+4
LDN DLFS DELETE LOCAL FNT ENTRY
STD CM+1
MONITOR PLFM
LDD RA CLEAR FNT ADDRESS IN FET
SHN 6
ADD IR+3
ADN 4
CRD CM
LDN 0
STD CM
LDD RA
SHN 6
ADD IR+3
ADN 4
CWD CM
LDN ZERL
CRD CM
UJN CFEX RETURN
CGI SPACE 4,10
** CGI - CLEAR GLOBAL INTERLOCK.
*
* ENTRY (T5) = EST ORDINAL.
*
* EXIT INTERLOCK CLEARED.
* ACTIVE USER COUNT DECREMENTED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CGI SUBR ENTRY/EXIT
LDD T5
STD CM+1
LDN CIIS CLEAR INSTALL INTERLOCK
STD CM+3
MONITOR STBM
LDC 0
CGIA EQU *-1
NJN CGIX IF USER COUNT NOT INCREMENTED
LDD T5
STD CM+1
LDN DUCS DECREMENT ACTIVE USER COUNT
STD CM+3
MONITOR SMDM
UJN CGIX RETURN
DTC SPACE 4,10
** DTC - DETERMINE TRACK COUNT.
*
* ENTRY (SLM) = SECTOR LIMIT.
* (CN+3 - CN+4) = FILE LENGTH IN SECTORS.
*
* EXIT (TC) = TRACK COUNT.
DTC SUBR ENTRY/EXIT
LDN 0 INITIALIZE COUNTER
STD TC
DTC1 AOD TC ADVANCE TRACK COUNT
LDD CN+4 DECREMENT SECTOR COUNT
SBM SLM
STD CN+4
PJN DTC1 IF NO UNDERFLOW
AOD CN+4
SOD CN+3
PJN DTC1 IF COUNT NOT COMPLETE
UJN DTCX RETURN
RCL SPACE 4,10
** RCL - RECALL PP.
*
* EXIT TO *PPR*.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
RCL BSS 0
LDD CP STORE CONTROL POINT MESSAGE
ADN MS2W
CWM RCLA,TR
LDN ZERL
CRD CM
LDD MA STORE PP RECALL REQUEST
CWD IR
MONITOR RECM
LJM PPR EXIT TO PP RESIDENT
RCLA DATA C*$WAITING - GLOBAL INTERLOCK.*
RDD SPACE 4,10
** RDD - READ DEADSTART SECTOR.
*
* ENTRY (A) = FIRST TRACK OF SDF.
* (T5) = EST ORDINAL.
* (FA) = FST ADDRESS.
*
* EXIT (T4) = CHANNEL (RESERVED).
* (T6) = LOGICAL TRACK OF DEADSTART SECTOR.
* (T7) = LOGICAL SECTOR OF DEADSTART SECTOR.
* (CT) = FIRST TRACK OF SDF.
* (BFMS) = DEADSTART SECTOR.
*
* USES CM - CM+4.
*
* CALLS CFE, CGI, *0PI*.
*
* MACROS ERROR, EXECUTE, MONITOR.
RDD SUBR ENTRY/EXIT
STD CT
LDD T5 SET EST ORDINAL FOR *0PI*
LMC 4000 OPTION TO READ DEADSTART SECTOR
STM OVL-1
EXECUTE 0PI,OVL
ZJN RDDX IF A VALID DEADSTART SECTOR FOUND
RDD1 RJM CFE CLEAR FNT ENTRY
LDD CT
ZJN RDD2 IF NO TRACK CHAIN ASSIGNED
STD CM+2
LDD T5
LMC 4000 SET CHECKPOINT REQUEST
STD CM+1
MONITOR DTKM RELEASE SDF TRACK CHAIN
RDD2 RJM CGI CLEAR GLOBAL INTERLOCK
ERROR EMSE * MS ERROR ON DEADSTART FILE.*
SGI SPACE 4,10
** SGI - SET GLOBAL INTERLOCK.
*
* ENTRY (T5) = EST ORDINAL.
*
* EXIT (A) = 0 IF INTERLOCK SET.
* (MP) = MST POINTER.
* (CN - CN+4) = ACGL WORD OF MST.
*
* USES CM - CM+4, WB - WB+4.
*
* CALLS CGI.
*
* MACROS MONITOR.
SGI SUBR ENTRY/EXIT
LDD T5 READ EST ENTRY
STD CM+1
SFA EST
ADK EQDE
CRD WB
LDD WB+4 SET MST POINTER
STD MS
SHN 3 READ MST STATUS WORD
ADN STLL
CRD WB
LDD WB CHECK DEVICE STATUS
LPN MLUNL
NJN SGIX IF UNLOAD REQUESTED
LDN SIIS SET INSTALL INTERLOCK
STD CM+3
MONITOR STBM
LDD CM+1
LPC 200
NJN SGIX IF OS INSTALLATION IN PROGRESS
LDD T5
STD CM+1
LDN IUCS
STD CM+3
MONITOR SMDM
LDD CM+1
STM CGIA
NJN SGI1 IF USER COUNT NOT INCREMENTED
LDD MS
SHN 3
ADN STLL
CRD WB
SBN STLL-ACGL FETCH DEADSTART FILE STATUS
CRD CN
LDD WB CHECK FOR UNLOAD NOW REQUESTED
LPN MLUNL
ZJN SGI2 IF NOT LOCAL UNLOAD REQUEST
SGI1 RJM CGI
LDN 1
SGI2 LJM SGIX RETURN
WMS SPACE 4,15
** WMS - WRITE MASS STORAGE.
*
* ENTRY (A) = BUFFER ADDRESS.
* (CT) = FIRST TRACK OF SDF.
* (T5 - T7) = MASS STORAGE PARAMETERS.
* DRIVER PRESET.
*
* ERROR TO *RDD1* IF MASS STORAGE ERROR.
*
* USES T3, CM - CM+4.
*
* CALLS WDS.
*
* MACROS PAUSE.
WMS3 LDD CP FETCH CONTROL POINT STATUS WORD
ADN STSW
CRD CM
LDD CM+1 CHECK ERROR FLAG
LMN ORET
ZJN WMS2 IF OPERATOR OVERRIDE
LDD T3
LMK WLSF RETRY WRITE
RJM WDS
MJN WMS1 IF WRITE ERRORS
WMS SUBR ENTRY/EXIT
STD T3
RJM WDS
PJN WMSX IF WRITE COMPLETED
WMS1 LPN 77 CHECK MASS STORAGE ERROR CODE
LMN NRDE
ZJN WMS3 IF NOT READY
WMS2 LJM RDD1 ABORT
SPACE 4,10
** COMMON DECKS.
*CALL COMPSAF
*CALL COMPTGB
*CALL COMPTLB
QUAL WMS
QUAL$ EQU 1
WDS EQU WMS
*CALL COMPWEI
*CALL COMPWSS
QUAL *
WEI EQU /WMS/WEI
WSS EQU /WMS/WSS
IRA$ EQU 1 RANDOM ACCESS PROCESSORS INITIALIZED
*CALL COMPCRA
*CALL COMPSEI
*CALL COMPSNT
*CALL COMPIRA
SPACE 4,10
OVL EQU *+1 LOAD ADDRESS FOR ZERO LEVEL OVERLAYS
ERRPL OVL-BFMS OVERFLOW INTO SYSTEM SECTOR BUFFER
CRQ SPACE 4,10
** CRQ - CHECK REQUEST.
*
* ENTRY (IR+2) = FUNCTION REQUEST.
*
* USES CN - CN+4, FS - FS+4.
*
* MACROS ERROR.
CRQ SUBR ENTRY/EXIT
LDD IR+2
ZJN CRQ1 IF INCORRECT FUNCTION CODE
SBN TFCNL
PJN CRQ1 IF INCORRECT FUNCTION CODE
LDD CP CHECK CP PARAMETERS
ADK SEPW
CRD CN
ADK JSCW-SEPW READ SECURITY WORD
CRD FS
LDD CN CHECK CALLING ROUTINE
LPN 4
ZJN CRQ1 IF NOT CALLED BY SPECIAL SYSTEM JOB
LDD CN+3
LPN 37
ADD CN+4
ZJN CRQ1 IF NO SSJ PARAMETER BLOCK
LDK SSML READ SYSTEM SECURITY STATUS
CRD CN
LDD CN
LPN 7
ZJN CRQX IF UNSECURED SYSTEM
LDD FS
SHN 21-13
MJN CRQX IF SECURITY ADMINISTRATOR
CRQ1 ERROR EILR * 1IS - INCORRECT REQUEST.*
END