IDENT 1CK,CKP
PERIPH
BASE MIXED
SST
*COMMENT 1CK - SYSTEM CHECKPOINT.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 1CK - SYSTEM CHECKPOINT.
SPACE 4,10
*** 1CK - SYSTEM CHECKPOINT.
*
* G. R. MANSFIELD. 70/12/10.
* J. L. WARDELL. 72/08/20.
* P. D. HAAS. 74/09/16.
* R. E. TATE. 75/04/12.
* S. L. BETH. 75/05/15.
SPACE 4,10
*** *1CK* IS CALLED TO CHECKPOINT MASS STORAGE DEVICES.
*
*
* FUNCTION 0 DEADSTART CHECKPOINT.
* ALLOCATES SPACE FOR SYSTEM TABLES
* AND COPIES THEM TO DISK, CHECKPOINTS
* TRT ON SYSTEM DEVICES AND LOCAL AREAS
* ON DEVICES WITH ACTIVE DAYFILES.
*
* FUNCTION 1 SYSTEM CHECKPOINT.
* IDLES THE SYSTEM AND CHECKPOINTS SYSTEM
* TABLES AND TRTS ON ALL SYSTEM DEVICES.
*
* FUNCTION 2 CHECKPOINT DEVICE.
* CHECKPOINT TRT TO ALL DEVICES WITH
* CHECKPOINT REQUESTS SET.
*
* FUNCTION 3 ALTERNATE LIBRARY CHECKPOINT.
* SAME AS FUNCTION 1 BUT THE SYSTEM
* IS NOT IDLED.
*
* FUNCTION 4 CHECKPOINT LOCAL AREA.
* THE LOCAL AREA ON THE SPECIFIED
* DEVICE IS COPIED TO THE LOCAL AREA
* SECTOR. THE TRT IS ALSO CHECKPOINTED.
*
* FUNCTION 5 CHECKPOINT INITIALIZED DEVICE.
* SAME AS FUNCTION 2 EXCEPT THAT ONLY
* THE DEVICE SPECIFIED IN CALL FROM
* *IMS* IS PROCESSED.
*
* FUNCTION 6 RECOVERY ABORT CHECKPOINT.
* PROCESSES OUTSTANDING CHECKPOINT REQUESTS
* VIA FUNCTION 2 WHEN IT IS IMPOSSIBLE TO
* COMPLETE A CM (LEVEL 3) RECOVERY.
*
* FUNCTION 7 RECOVERY ABORT CHECKPOINT.
* SAME AS FUNCTION 6 EXCEPT BUFFERED DEVICES
* ARE NOT CHECKPOINTED.
*
* FUNCTION 10 IDLE SYSTEM CHECKPOINT.
* SAME AS FUNCTION 1 EXCEPT *1MB* WILL BE
* CALLED INTO THIS PP AT COMPLETION.
*
* FUNCTION 11 FATAL IOU ERROR CHECKPOINT.
* SAME AS FUNCTION 2 EXCEPT *1MB* WILL BE
* CALLED INTO THIS PP AT COMPLETION.
*
* FUNCTION 12 REWRITE LABEL TRACK.
* SAME AS FUNCTION 2 EXCEPT THAT ONLY THE
* DEVICE SPECIFIED IN THE CALL FROM *1MV* IS
* PROCESSED.
* *1MV* CALLS *1CK* VIA AN *EXECUTE* MACRO
* TO INITIATE THIS FUNCTION. IT WILL BE
* CALLED BACK INTO THIS PP AT COMPLETION.
*
* FUNCTION 13 LONG POWER WARNING CHECKPOINT.
* SAME AS FUNCTION 1 EXCEPT THAT ONLY 834
* AND 836 DEVICES WILL BE CHECKPOINTED, AND
* *1MB* WILL BE CALLED INTO THIS PP AT THE
* COMPLETION OF THE CHECKPOINT.
SPACE 4,10
*** ENTRY CONDITIONS.
*
*
* (IR+2) = FUNCTION CODE.
* (IR+3) = EST ORDINAL (FUNCTIONS 4, 5 AND 12.)
* = *1MB* FUNCTION CODE (FUNCTIONS 10, 11 AND 13).
* (IR+4) = NUMBER OF DAYFILE POINTER TO UPDATE (FUNCTION 4).
* = PREVIOUS ACCESS STATUS (MMF) (FUNCTION 5).
SPACE 4,10
*** DAYFILE MESSAGES.
*
* *ALL EQ-S CHECKPOINTED.* (CONSOLE LINE 1)
* *RECOVERY ABORTED.* (CONSOLE LINE 2)
* ALL DEVICES WERE SUCCESSFULLY CHECKPOINTED
* AND RECOVERY WAS ABORTED.
*
* * CHECKPOINT ABORTED.* = ERROR FLAG WAS SET.
*
* *CHECKPOINT COMPLETE.* = NORMAL COMPLETION.
*
* *EQXXX, CHECKPOINT ABORTED.* = UNRECOVERED ERROR WRITING
* SYSTEM SECTOR ON EST ORDINAL XXX.
*
* *EQXXX, LOCAL AREA OVERFLOW.* = LOCAL AREA SECTOR WAS FULL
* (40B MACHINE ID-S ALREADY PRESENT).
*
* *EQXXX, LOCAL AREA SECTOR ERROR.* = UNRECOVERED READ ERROR ON
* SECTOR OF LOCAL AREAS.
*
* *EQXXX, TRACK LIMIT.* = NO TRACKS WERE AVAILABLE ON EST
* ORDINAL XXX.
*
* *NON-BUFFERED EQ-S CHECKPOINTED.* (CONSOLE LINE 1)
* *RECOVERY ABORTED.* (CONSOLE LINE 2)
* NON-BUFFERED DEVICES WERE SUCCESSFULLY
* CHECKPOINTED AND RECOVERY WAS ABORTED.
*
* * SYSTEM CHECKPOINT ABORT.* = MESSAGE ISSUED TO SUBSYSTEMS
* WHICH ARE ABORTED DURING A SYSTEM CHECKPOINT.
SPACE 4,10
*** OPERATOR MESSAGES.
*
* NONE.
SPACE 4,10
** ROUTINES USED.
*
*
* 0TD - TERMINATE DAYFILES.
* 5ME - FORMAT ERROR MESSAGES.
SPACE 4,10
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSDFS
*CALL COMSDSL
*CALL COMSDST
*CALL COMSEVT
*CALL COMSHIO
*CALL COMSLSD
*CALL COMSMMF
*CALL COMSMSC
*CALL COMSMSP
*CALL COMSMST
*CALL COMSPIM
QUAL SCD
*CALL COMSSCD
QUAL *
*CALL COMSSSD
*CALL COMSWEI
*CALL COMSZOL
SPACE 4,10
** MACRO DEFINITIONS.
MTBL SPACE 4,10
** MTBL - GENERATE TABLE OF PARALLEL MST ADDRESSES.
*
* N = TABLE NAME.
* A = NOS MST ADDRESS.
* B = K21 MST ADDRESS.
* C = REPEAT COUNT.
NOREF .I,.X,.Y
MACRO MTBL,N,A,B,C
IFC NE,*N**,1
N BSS 0
)3 IFC NE,*C**
.I SET C
)3 ELSE 1
.I SET 1
.X SET NMSS+5*A
.Y SET MTSS+5*/K21/B
)D DUP .I
CON .X,.Y
.X SET .X+1
.Y SET .Y+1
)D ENDD
ENDM
SUBSYST SPACE 4,10
** SUBSYST - GENERATE SUBSYSTEM TABLE.
*
* SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
*
* ENTRY *ABT* = *NA*, IF SUBSYSTEM NOT TO BE ABORTED
* BY CHECKPOINT.
*
* TABLE OF SUBSYSTEM ID-S OF SUBSYSTEMS NOT TO BE ABORTED.
*
*T 12/ SSID
PURGMAC SUBSYST
SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
.A IFC EQ,$AB$NA$
.SUB RMT
CON ID
.SUB RMT
.A ENDIF
SUBSYST ENDM
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
T8 EQU 16 TEMPORARY STORAGE
T9 EQU 17
RI EQU T8 - T9 RANDOM INDEX
CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
NC EQU 25 NUMBER OF CONTROL POINTS
NT EQU 26 NEXT TRACK POINTER
EI EQU 27 EQUIPMENT INDEX
ES EQU 30 - 34 EST ENTRY (5 LOCATIONS)
DT EQU ES+3 DEVICE TYPE
MS EQU ES+4 MST ADDRESS / 10B
LT EQU 35 LABEL TRACK
DI EQU 36 DAYFILE INDEX
UI EQU 37 UTILITY ACTIVE INTERLOCK FLAG
FS EQU 40 - 44 CM WORD BUFFER (5 LOCATIONS)
LS EQU 45 LAST SECTOR FLAG
PA EQU 46 PROCESSOR ADDRESS
TS EQU 47 LABEL TRACK INTERLOCK STATUS
FA EQU 57 FST ADDRESS
LO EQU 60 LAST MASS STORAGE ORDINAL + 1
ST EQU 62 SYSTEM TABLE TRACK
CA EQU 63 - 67 CENTRAL ADDRESS (2 LOCATIONS)
EC EQU CA+2 MANAGED TABLE ENTRY COUNT
LM EQU CA+3 - CA+4 LIMIT ADDRESS (2 LOCATIONS)
****
TITLE MAIN PROGRAM.
CKP SPACE 4,10
** CKP - MAIN PROGRAM.
ORG PPFW
CKP LJM PRS PRESET PROGRAM
DPP LJM PRS5 PRESET *1MV* SPECIAL CALL
ERRNZ CKP+2-DPP FUNCTION 12 DEPENDS ON VALUE
DPPA EQU *-1 (EXIT PROCESSING ADDRESS)
DPP1 MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
DSC SPACE 4
*** FUNCTION 0.
* DEAD START CHECK POINT.
DSC EXECUTE 3CK
SYC SPACE 4,10
*** FUNCTIONS 1, 3, 10, 13.
* SYSTEM CHECK POINT.
* ALTERNATE LIBRARY CHECKPOINT.
* IDLE SYSTEM CHECKPOINT.
* LONG POWER WARNING CHECKPOINT.
SYC EQU DSC
PFC SPACE 4
*** FUNCTION 2.
* CHECK POINT PERMANENT FILE DEVICES.
PFC2 LDD T5 SET EST ORDINAL
STD CM+1
STD IR+3
LDN VEIS VALIDATE EQUIPMENT
STD CM+3
MONITOR VMSM
LDD CM+1
NJN PFC1 IF VALIDATION ERRORS
PFC3 RJM CDB CHECK FOR DISK BUFFERED
ZJN PFC4 IF DEVICE IS NOT TO BE CHECKPOINTED
AOM UERR SET *RETURN ON NOT READY* FLAG
ERRNZ EPNR-1 CODE DEPENDS ON VALUE
RJM WTT WRITE MASS STORAGE TABLES
PFC4 RJM FIB FLUSH I/O BUFFERS
RJM CIL CLEAR INTERLOCKS
PFC RJM SMD SELECT MASS STORAGE DEVICE
NJN PFC2 IF NOT END OF MS ENTRIES
* NJN PFC3 (MASS STORAGE VALIDATION DISABLED)
PFCA EQU *-1
LJM DPP DROP PP
PFCB EQU *-1
* LJM /3CK/RAC1 (RECOVERY ABORT CHECKPOINT)
PFC1 STD IR+2 STORE ERROR CODES
LDN STVE SET ERROR STATUS IN MST
RJM SES
EXECUTE 5ME PROCESS ERRLOG MESSAGES
UJN PFC4 CLEAR INTERLOCKS
SPACE 4
*** FUNCTION 4.
* UPDATE LOCAL AREA SECTOR.
*
* (IR+3) = EQUIPMENT.
ULA EQU DSC
SPACE 4
*** FUNCTION 5.
* CHECKPOINT INITIALIZED DEVICE.
*
* ENTRY (IR+3) = EST ORDINAL.
IDC EXECUTE 3CL
RAC SPACE 4,10
*** FUNCTION 6 AND 7.
* RECOVERY ABORT CHECKPOINT.
RAC EQU IDC
FIC SPACE 4,10
*** FUNCTION 11.
* FATAL IOU ERROR CHECKPOINT.
FIC EQU DSC
RLT SPACE 4,10
*** FUNCTION 12.
* REWRITE LABEL TRACK.
RLT EQU IDC
TITLE SUBROUTINES.
ABT SPACE 4,10
** ABT - ABORT THE OPERATION.
*
* ENTRY (T5) = EST ORDINAL.
ABT LDC ABTB
RJM DFM
RJM CIL CLEAR INTERLOCKS
SMSTF LCKP RESET CHECKPOINT REQUEST
LJM DPP
ABTA DATA H*EQXXX,*
ABTB DATA C* CHECKPOINT ABORTED.*
CBP SPACE 4,15
** CBP - CLEAR *BAT* PERMISSIONS UNCONDITIONALLY.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* EXIT *BAT* PERMISSIONS FOR THIS MAINFRAME CLEARED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CBP SUBR ENTRY/EXIT
LDN ZERL
CRD CM
CBPA LDN ** SET MACHINE INDEX
STD CM+2
LDD T5 SET EST ORDINAL
STD CM+4
LDN CBWS CLEAR *BAT* PERMISSIONS UNCONDITIONALLY
STD CM+1
MONITOR MTEM
UJN CBPX RETURN
CDB SPACE 4,10
** CDB - CHECK IF DEVICE IS BUFFERED.
*
* ENTRY (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF DEVICE IS NOT TO BE CHECKPOINTED.
CDB1 LDN 1 INDICATE DEVICE MAY BE CHECKPOINTED
CDB SUBR ENTRY/EXIT
LDD ES CHECK IF BUFFERED DEVICE
LPN 40
ZJN CDB1 IF NOT A BUFFERED DEVICE
LDD IR+2
LMN 7 ZERO IF BUFFERED DEVICES NOT TO BE FLUSHED
UJN CDBX RETURN
CIL SPACE 4,15
** CIL - CLEAR INTERLOCKS.
*
* ENTRY (T5) = EST ORDINAL.
* (LT) = LABEL TRACK.
* (TS) = LABEL TRACK INTERLOCK STATUS.
* = 4000, IF CHECKPOINT ABORT PROCESSING.
* (UI) = UTILITY ACTIVE INTERLOCK STATUS.
*
* EXIT (A) = (TS) = (UI) = 0 (INTERLOCKS CLEARED).
* (TS) = 4000, IF CHECKPOINT ABORT PROCESSING.
*
* CALLS CTI.
CIL2 LDN 0
CIL SUBR ENTRY/EXIT
LDD UI
ZJN CIL1 IF UTILITY ACTIVE INTERLOCK NOT SET
CMSTF LUAI CLEAR UTILITY ACTIVE INTERLOCK
* LDN 0 CLEAR INTERLOCK STATUS
STD UI
CIL1 LDD TS
ZJN CILX IF LABEL TRACK NOT INTERLOCKED
SHN 21-13
MJN CIL2 IF CHECKPOINT ABORT PROCESSING
LDD LT CLEAR TRACK INTERLOCK
RJM CTI
* LDN 0 CLEAR INTERLOCK STATUS
STD TS
UJN CILX RETURN
DDB SPACE 4,15
** DDB - DROP DISK BUFFERS.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF ALL DISK BUFFERS RELEASED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
DDB SUBR ENTRY/EXIT
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
LDD CM+4 GET *BFMM* STATUS
UJN DDBX RETURN
FIB SPACE 4,15
** FIB - FLUSH I/O BUFFERS.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* EXIT ONE OR MORE OF THE FOLLOWING WILL BE PERFORMED,
* BASED ON THE *1CK* FUNCTION.
* - DISK BUFFERS FLUSHED.
* - DISK BUFFERS RELEASED.
* - *BAT*/*BST* PERMISSIONS RELEASED.
* - *BAT* PERMISSIONS UNCONDITIONALLY CLEARED.
*
* USES T1, T2, CM - CM+4.
*
* MACROS DELAY, MONITOR, PAUSE.
FIB SUBR ENTRY/EXIT
LDD TH SET MAXIMUM RETRY COUNT
STD T1
LDD ES CHECK IF BUFFERED DEVICE
LPN 40
ZJN FIBX IF NOT A BUFFERED DEVICE
LJM ** PROCESS DEVICE BASED ON *1CK* FUNCTION
FIBA EQU *-1 (PROCESSING ADDRESS)
* FUNCTIONS 0, 2, 3, 5, 10 AND 11.
FIB1 RJM FWB FLUSH WRITE BUFFERS
UJN FIBX RETURN
* FUNCTIONS 1 AND 6.
FIB2 LDD ES
SHN 21-11
MJN FIB3 IF SHARED BUFFERED DEVICE
RJM FWB FLUSH WRITE BUFFERS
RJM DDB DROP DISK BUFFERS
UJN FIB4 CHECK STATUS
FIB3 RJM RBP RELEASE *BAT*/*BST* PERMISSIONS
FIB4 ZJN FIB5 IF SUCCESSFUL
DELAY 200B DELAY 16 MILLISECONDS
SOD T1
NJN FIB2 IF RETRY COUNT NOT EXHAUSTED
FIB5 UJP FIBX RETURN
* FUNCTION 7.
FIB6 LDD ES
SHN 21-11
PJN FIB7 IF NOT SHARED BUFFERED DEVICE
RJM CBP CLEAR *BAT* PERMISSIONS UNCONDITIONALLY
FIB7 LJM FIBX RETURN
FWB SPACE 4,15
** FWB - FLUSH WRITE BUFFERS.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* EXIT WRITE BUFFERS FLUSHED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
FWB SUBR ENTRY/EXIT
LDN ZERL CLEAR ASSEMBLY AREA
CRD CM
LDD T5 SET EST ORDINAL
STD CM+3
LDC BMFW*100 FLUSH ALL WRITE BUFFERS
STD CM+4
MONITOR BFMM
UJN FWBX RETURN
RBP SPACE 4,15
** RBP - RELEASE *BAT* AND *BST* PERMISSIONS.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF ALL PERMISSIONS RELEASED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
RBP SUBR ENTRY/EXIT
LDN ZERL
CRD CM
LDD T5 SET EST ORDINAL
STD CM+4
LDN RBPS RELEASE *BAT*/*BST* ACCESS PERMISSIONS
STD CM+1
MONITOR MTEM
LDD CM+4 GET *MTEM* STATUS
UJN RBPX RETURN
SDP SPACE 4,15
** SDP - SET DEVICE PARAMETERS.
*
* ENTRY (IR+3) = EST ORDINAL.
*
* EXIT (A) = 0 IF DEVICE IS ACCESSIBLE.
* (LT) = (T6) = LABEL TRACK.
* (ES - ES+4) = EST ENTRY.
* DRIVER LOADED/PRESET.
*
* USES CM - CM+4.
*
* MACROS SETMS, SFA.
SDP SUBR ENTRY/EXIT
LDD IR+3 SET EST ORDINAL
STD T5
SFA EST READ EST ENTRY
ADK EQDE
CRD ES
LDD ES+4 GET DEVICE ALLOCATION WORD FROM MST
SHN 3
ADN ALGL
CRD CM
LDD CM+1 SET LABEL TRACK
STD LT
STD T6
SETMS IO,(ND,NS,RW),WBUF
UJN SDPX RETURN
SMD SPACE 4,20
** SMD - SELECT MASS STORAGE DEVICE.
*
* ENTRY (EI) = LAST EQUIPMENT PROCESSED.
*
* EXIT (A) = 0 IF END OF MASS STORAGE DEVICES.
* (T5) = (EI) = EST ORDINAL.
* (T6) = (LT) = LABEL TRACK
* (UI) = UTILITY ACTIVE INTERLOCK STATUS.
* (ES - ES+4) = EST ENTRY.
* (FS - FS+4) = *STLL* WORD OF MST.
* DRIVER PRESET.
*
* USES EI, LT, UI, T5, T6, CM - CM+4, CN - CN+4, ES - ES+4,
* FS - FS+4.
*
* CALLS SES.
*
* MACROS SETMS, SFA, SMSTF.
SMD SUBR ENTRY/EXIT
SMD1 AOD EI ADVANCE EST INDEX
STD T5
LMD LO
ZJN SMDX IF END OF MASS STORAGE EST
SFA EST,T5 READ EST ENTRY
ADK EQDE
CRD ES
LDD ES CHECK EQUIPMENT
SHN 21-13
PJN SMD1 IF NOT MASS STORAGE
SHN 13-21
LPC 103
SBN 3
PJN SMD1 IF DEVICE UNAVAILABLE OR DOWN
LDD IR+2 CHECK FUNCTION CODE
LMN 13
NJN SMD2 IF NOT A LONG POWER WARNING CHECKPOINT
LDD ES+3
LMC 2RDD
ZJN SMD2 IF 834 (DD) DEVICE
LMN 2RDG&2RDD
SMD1.1 NJN SMD1 IF NOT 836 (DG) DEVICE
SMD2 LDD ES+4
SHN 3
ADN ACGL
CRD CM
ADN ALGL-ACGL
CRD CN
ADN STLL-ALGL
CRD FS
SMDA LDD FS LOOK AT CHECKPOINT REQUESTED
* UJN SMD4 (CHECKPOINT REQUESTED FLAG IMMATERIAL)
LPN MLIRP+MLCKP
LMN MLCKP
SMD3 NJN SMD1.1 IF INITIALIZE / NO CHECKPOINT PENDING
SMD4 LDD CM+4
LPC MGDEI+MGRDR
NJN SMD3 IF ERROR IDLE OR REDEFINITION REQUESTED
LDD FS+1
LPN 77
ZJN SMD5 IF NO ERROR FLAG
LDD ES
LPN 2
NJN SMD3 IF DEVICE OFF OR DOWN
* LDN 0 CLEAR ERROR STATUS IN *STLL*
RJM SES
SMDB EQU *
SMD5 SMSTF LUAI SET UTILITY ACTIVE INTERLOCK
* UJN SMD6 (UTILITY INTERLOCK NOT REQUIRED)
LDD CM+1
NJN SMD3 IF LOCAL UTILITY ACTIVE
AOD UI
SMD6 SETMS IO,(ND,NR,NS,RW),WBUF
LDD CN+1
STD LT SET LABEL TRACK
STD T6
LJM SMDX RETURN
WLS SPACE 4,15
** WLS - WRITE LABEL SECTORS.
*
* ENTRY LABEL SECTOR CONTENTS IN (BFMS)
* (ES - ES+4) = EST ENTRY
* (T6) = LABEL TRACK
*
* EXIT LABEL SECTOR WRITTEN TO ALL UNITS OF DEVICE.
*
*
* USES T7, CA - CA+1, CM - CM+4.
*
* CALLS WMS.
WLS SUBR ENTRY EXIT
LDD ES+4 READ MDGL FROM MST
SHN 3
ADN MDGL
CRD CM
LDD CM+1 SET UNIT SECTOR LIMIT
LPC 3777
STD CA+1
SBM SLM
ZJN WLSX IF SINGLE UNIT DEVICE
LDC 3777 SET SYSTEM SECTOR CONTROL BYTE
STM BFMS
LDN 77 SET WORD COUNT
STM BFMS+1
LDN 0
STD T7
WLS1 LDD CA+1
RAD T7 SET SECTOR
SBM SLM
PJN WLSX IF END OF UNITS
LDN 10 ADVANCE RELATIVE UNIT
RAM N4SS+5*PFGL+4
LDC BFMS+WLSF WRITE LABEL SECTOR
RJM WMS
UJN WLS1 LOOP FOR NEXT UNIT
WMS SPACE 4,10
** WMS - WRITE MASS STORAGE.
*
* ENTRY (A) = BUFFER ADDRESS.
*
* EXIT TO *WSE* IF WRITE ERRORS.
*
* CALLS WDS.
WMS SUBR ENTRY/EXIT
RJM WDS WRITE MASS STORAGE
PJN WMSX IF NO ERRORS
LJM WSE PROCESS WRITE ERROR
WNS SPACE 4,15
** WNS - WRITE NEXT SECTOR.
*
* ENTRY SECTOR DATA STORED IN (BUF+2 - BUF+N)
* (T4 - T7) = MASS STORAGE PARAMETERS.
* (NT) = TRACK BUFFER POINTER.
*
* EXIT (T6, T7) UPDATED.
* TO *WSE* IF NEXT TRACK UNAVAILABLE.
*
* USES T1, T6, T7, NT, CM - CM+4.
*
* CALLS FTB, WMS.
*
* MACROS MONITOR.
WNS3 LDC BUF+WCSF WRITE SECTOR
RJM WMS
AOD T7 ADVANCE SECTOR
LMM SLM
NJN WNSX IF NOT END OF TRACK
STD T7
LDM BUF SET NEXT TRACK
STD T6
WNS SUBR ENTRY/EXIT
LDD T7 SET NEXT SECTOR
ADN 1
WNS1 STM BUF
LMM SLM
NJN WNS3 IF NOT END OF TRACK
WNS2 AOD NT INCREMENT TRACK BUFFER POINTER
LDI NT
LMC 7777
ZJN WSE IF END OF TRACK CHAIN
LDI NT
NJN WNS1 IF TRACK AVAILABLE
RJM /3CK/FTB FILL TRACK BUFFER
UJN WNS2 CONTINUE
WSE SPACE 4,15
** WSE - WRITE ERROR PROCESSOR.
*
* ENTRY (T4) = CHANNEL.
* (NC) = SYSTEM CONTROL POINT NUMBER.
* (T5) = EST ORDINAL.
* (WSEA) = ADDRESS OF POST ERROR PROCESSOR.
* WRITE ERROR PROCESSING ENABLED.
*
* CALLS CIL, C2D, DFM, SES.
*
* MACROS ENDMS.
WSE BSS 0 ENTRY
ENDMS
RJM CIL CLEAR INTERLOCKS
LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
SHN -3
RJM C2D
STM ABTA+1
LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
LPN 7
SHN 6
ADC 2R0,
STM ABTA+2
LDD NC DISPLAY MESSAGE AT SYSTEM CP
SHN 7
ADN MS2W
CWM ABTA,TR
LDN STCA SET ERROR STATUS IN MST
RJM SES
LDC ABTA+ERLN *EQXXX, CHECKPOINT ABORTED.*
RJM DFM
LDN ZERL INITIATE *CMS*
CRD CM
ADN RDSL-ZERL
CWD CM
LJM DPP EXIT TO POST ERROR PROCESSING
WSEA EQU *-1 (POST PROCESSOR ADDRESS)
WTB SPACE 4,15
** WTB - WRITE TABLE.
*
* ENTRY (A) = 1/TRT FLAG, 17/WORD COUNT.
* (CA - CA+1) = TABLE ADDRESS.
* (T4 - T7) = MASS STORAGE PARAMETERS.
*
* EXIT (T6 - T7) UPDATED.
*
* USES LS, LM - LM+1.
*
* CALLS WNS.
WTB SUBR ENTRY/EXIT
STD LM+1 SET WORD COUNT
SHN -6 SET SECTOR COUNT
STD LM
LPC 4000 GET TRT FLAG
RAD LM
SHN -14
STD LS
LDD HN SET FULL WORD COUNT
STM BUF+1
LDD LM CHECK SECTOR COUNT
WTB1 MJN WTBX RETURN IF LAST SECTOR WRITTEN
NJN WTB2 IF NOT LAST SECTOR
LDD LM+1 SET SHORT COUNT
LPN 77
STM BUF+1
AOD LS SET LAST SECTOR FLAG
WTB2 LDD CA READ DATA BLOCK
SHN 14
ADD CA+1
CRM BUF+2,HN
LDD LS CHECK FOR LAST SECTOR OF TRT
SHN -1
ZJN WTB3 IF NOT LAST SECTOR OF TRT
LDD MA
CWM N4SS+5*SDGL,ON
SBN 1 MOVE *SDGL* COUNTER TO LAST WORD OF SECTOR
CRM BUF+2+5*77,ON
WTB3 RJM WNS WRITE NEXT SECTOR
LDD HN ADVANCE CENTRAL ADDRESS
RAD CA+1
SHN -14
RAD CA
SOD LM DECREMENT SECTOR COUNT
UJP WTB1 LOOP
WTT SPACE 4,10
** WTT - WRITE TRT.
*
* ENTRY (LT) = LABEL TRACK.
* (ES - ES+4) = EST ENTRY.
*
* USES T1, T6, T7, CA - CA+1, CM - CM+4.
*
* CALLS STI, RLS, WEI, WSE, WTB.
*
* MACROS CMSTF, MONITOR.
WTT7 CMSTF LCKP CLEAR CHECKPOINT REQUEST
WTT SUBR ENTRY/EXIT
LDD LT
STD T6
LDD TS
NJN WTT2 IF LABEL TRACK INTERLOCKED
RJM STI SET TRACK INTERLOCK
ZJN WTT1 IF ERROR FLAG NOT SET
LJM ABT ABORT OPERATION
WTT1 AOD TS SET LABEL TRACK INTERLOCK STATUS
WTT2 LDK LSLT SET LABEL SECTOR
STD T7
ADK 0-LSLT
WTT3 RAD T7
RJM RLS RECREATE LABEL SECTOR
LDD ES
SHN 21-4
PJN WTT4 IF NOT ISHARED
LDM N4SS+STLL*5
LPN MLPTU
ZJN WTT7 IF *LPTU* FLAG NOT SET
WTT4 LDC 400 SET SYSTEM LEVEL
RAM N4SS+5*MDGL
LDC BFMS+WCSF WRITE LABEL SECTOR
RJM WMS
AOD T7 WRITE TRT
LDM N4SS+5*TDGL+2
LMC 400000 SET TRT FLAG
RJM WTB
RJM WEI WRITE EOI
LDM N4SS+5*DULL GET FIRST SECTOR OF SECOND COPY
SBD T7
PJN WTT3 IF SECOND COPY HAS NOT BEEN WRITTEN
ENDMS
LDM N4SS+STLL*5
LPN MLPTU
ZJN WTT5 IF *LPTU* FLAG NOT SET
LDD IR+2
LMN 5
NJN WTT5 IF NOT INITIALIZE CHECKPOINT
CMSTF LPTU CLEAR FLAG
WTT5 LDM N4SS+5*MDGL
SHN 21-12
MJN WTT6 IF AUXILIARY DEVICE
LDM N4SS+5*PUGL+4 GET DEVICE MASK
LPC 377
NJN WTT6 IF MASTER DEVICE
LDD T5 SET EQUIPMENT
STD CM+1
LDD T6 SET EOI STATUS
LPC 3777
STD CM+2
LDD T7
STD CM+3
MONITOR DTKM
WTT6 LJM WTT7 CLEAR CHECKPOINT REQUEST
SPACE 4
** COMMON DECKS.
RLS$ EQU 1 ASSEMBLE *RLS*
*CALL COMPCLC
*CALL COMPCTI
*CALL COMPC2D
*CALL COMPSES
*CALL COMPSTI
*CALL COMPTGB
*CALL COMPTLB
QUAL WMS
QUAL$ EQU 1
WDS EQU WMS
*CALL COMPWEI
WCS$ EQU 1 CONSECUTIVE SECTORS AFTER SYSTEM SECTOR
*CALL COMPWSS
QUAL *
WEI EQU /WMS/WEI
WSS EQU /WMS/WSS
LITERAL SPACE 4
USE LITERALS
OVLA EQU *+5 OVERLAY LOAD ADDRESS
TITLE PRESET.
PRS SPACE 4,10
** PRS - PRESET PROGRAM.
PRS5 LDD IA PRESET *1MV* CALL
CRD CM
LDN 12 REWRITE LABEL TRACK FUNCTION
STD IR+2 SET THE FUNCTION CODE
LDD CM+2
STD IR+3 SET EST ORDINAL
PRS LDC DPP1 RESTORE *DPP* JUMP
STM DPPA
LDN ESTP SET LAST MASS STORAGE ORDINAL
CRD LO-3
LDN 0 CLEAR FST ADDRESS
STD FA
STD TS CLEAR LABEL TRACK INTERLOCK STATUS
STD UI
LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD EI
LDK MMFL
CRD CM
LDD CM+4 SET MACHINE INDEX
LPN 77
RAM CBPA
LDN SSTL CHECK SYSTEM STATUS
CRD CM
LDD CM
LPN 14
ZJN PRS1 IF MS VALIDATION ENABLED
LDC *
ORG *-1
LOC PFCA
NJN PFC3 IF NOT END OF MS ENTRIES
LOC *O
STM PFCA
PRS1 LDN NCPL SET NUMBER OF CONTROL POINTS
CRD CM
AOD CM+1
STD NC
SHN 7
LMD CP
ZJN PRS2 IF SYSTEM CP
LDD IR+2
SBN 2
MJN PRS4 IF FUNCTION 0 OR 1
SBN 10-2
ZJN PRS4 IF FUNCTION 10
LDD CP
ADN JCIW
CRD CM
LDD CM+2
ZJN PRS4 IF NOT SUBSYSTEM / SSJ JOB
PRS2 LDD IR+2
SHN 2
STD T1
SBN TFCNL
PJN PRS4 IF INVALID FUNCTION
LDM TFCN+1,T1 SET PROCESSOR ADDRESS
STD PA
LDM TFCN+2,T1 SET ERROR RETURN
STM WSEA
LDM TFCN+3,T1 SET *FIB* PROCESSING ADDRESS
STM FIBA
LDM TFCN,T1
STM PRSA
LJM PRS4 EXIT TO PROCESSOR
PRSA EQU *-1
PRS4 LDN 0 SET NO ERROR FLAG
STD CM+2
LDC * ADDRESS WHERE ERROR DETECTED
STD CM+1
MONITOR CHGM CONDITIONALLY HANG PP
LJM DPP DROP PP
TFCN SPACE 4,10
** TFCN - FUNCTION PROCESSOR TABLE.
*
* ENTRY = 4 WORDS.
*
*T 12/ PP,12/ PA,12/ PE,12/ FA
* PP PREPROCESSOR ADDRESS
* PA PROCESSOR ADDRESS
* PE POST ERROR PROCESSING ADDRESS
* FA SUBROUTINE *FIB* PROCESSING ADDRESS.
TFCN BSS 0
LOC 0
CON DSC,/3CK/DSC,/3CK/DSC1,FIB1
CON SYC,/3CK/SCK,/3CK/SCK2,FIB2
CON PFC,PFC,PFC,FIB1
CON SYC,/3CK/SCK2,/3CK/SCK2,FIB1
CON ULA,/3CK/ULA,DPP,FIBX
CON IDC,/3CL/IDC,/3CL/IDC1,FIB1
CON RAC,/3CL/RAC,PFC,FIB2
CON RAC,/3CL/RAC,PFC,FIB6
CON SYC,/3CK/SCK,/3CK/SCK2,FIB1
CON FIC,/3CK/FIC,PFC,FIB1
CON RLT,/3CL/RLT,/3CL/RLT1,FIBX
CON SYC,/3CK/SCK,/3CK/SCK2,FIBX
TFCNL BSS 0
LOC *O
SPACE 4,10
* CHECK FOR OVERFLOW.
OVERFLOW PPFW,EPFW
TTL 1CK/3CK - CHECKPOINT FUNCTION PROCESSORS.
TITLE
QUAL 3CK
IDENT 3CK,OVLA
*COMMENT 1CK - CHECKPOINT FUNCTION PROCESSORS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1995.
SPACE 4,10
*** 3CK - CHECKPOINT FUNCTION PROCESSORS.
SPACE 4,10
ORG OVLA
SPACE 4,10
* COMMON DECKS.
SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO
QUAL$ EQU 1 AVOID COMMON DECK QUALIFICATION
*CALL COMSSSD
SPACE 4,10
ENT SUBR ENTRY
RJM PRS PRESET
LJM 0,PA PROCESS SELECTED FUNCTION
TITLE MAIN ROUTINES.
DSC SPACE 4,10
** FUNCTION 0.
* DEAD START CHECKPOINT.
DSC BSS 0 ENTRY
RJM CCS COMPUTE CHECKPOINT FILE SIZE
DSC1 RJM SMD SELECT MASS STORAGE DEVICE
ZJN DSC5 IF NO DEVICES REMAIN
LDD ES
SHN 21-2
PJN DSC2 IF NOT CHECKPOINT DEVICE
RJM ACF ALLOCATE CHECKPOINT FILE
RJM WST WRITE SYSTEM TABLES
UJN DSC4 CHECKPOINT DEVICE
DSC2 RJM CAD CHECK ACTIVE DAYFILES
ZJN DSC3 IF NO ACTIVE DAYFILES ON DEVICE
RJM WLA WRITE LOCAL AREA
UJN DSC4 CHECKPOINT DEVICE
DSC3 LDD FS
LPN MLCKP
ZJN DSC1 IF CHECKPOINT NOT REQUESTED
ERRNZ EPNR-1 CODE DEPENDS ON VALUE
AOM UERR SET *RETURN ON NOT READY* FLAG
DSC4 RJM WTT WRITE TRT
RJM FIB FLUSH I/O BUFFERS
RJM CIL CLEAR INTERLOCKS
UJN DSC1 SELECT NEXT DEVICE
DSC5 LDN JSCL READ SCHEDULER CONTROL
CRD CM
LDD CM CLEAR SCHEDULER ACTIVE
LPC 3777
STD CM
LDN JSCL STORE SCHEDULER CONTROL
CWD CM
LDD MA
CWM DSCA,ON
LDN 0 CLEAR DROP PP OPTION
STD CM+1
MONITOR RPPM CALL *1PP*
LJM DPP DROP PP
DSCA VFD 18/3L1PP,42/0
SCK SPACE 4,10
** FUNCTIONS 1, 3, 10 AND 13.
* SYSTEM CHECK POINT.
* ALTERNATE LIBRARY CHECKPOINT.
* IDLE SYSTEM CHECKPOINT.
* LONG POWER WARNING CHECKPOINT.
SCK BSS 0 ENTRY
LDN 4
STD T1
LDD NC WRITE MESSAGE AT SYSTEM CONTROL POINT
SHN 7
ADN MS1W
CWM SCKC,T1
LDN 0 SET CHECKPOINT IN PROGRESS
RJM SCD
RJM CBD CHECK BUFFERED DISKS
RJM ASW ABORT SUBSYSTEMS REQUIRING JOB FLOW
LDN 1
STD CM+1 SET NUMBER OF OPTIONS
STD CM+2 DO NOT DROP PPU
LDD MA
CWM SCKA,ON
MONITOR UADM DISABLE JOB SCHEDULING
SCK1 PAUSE NE
LDN JSCL CHECK SCHEDULER ACTIVE
CRD CM
LDD CM
SHN 21-13
MJN SCK1 IF SCHEDULER ACTIVE
LDN 1 SET *CPD* DROP FLAG
STD CM+1
STD CM+2
LDD MA
CWM SCKB,ON
MONITOR UADM
* LDN 0
RJM ROJ ROLLOUT NON-SUBSYSTEM JOBS
* LDN 0
RJM DRJ DISPOSE OF REMAINING JOBS
RJM WFJ WAIT FOR JOBS TO ROLL OR TERMINATE
RJM FDB FLUSH DAYFILE BUFFERS
* CHECKPOINT MASS STORAGE DEVICES.
SCK2 RJM SMD SELECT NEXT DEVICE
ZJN SCK3 IF END OF MASS STORAGE DEVICES
RJM WTT WRITE TRT
RJM FIB FLUSH I/O BUFFERS
RJM CIL CLEAR INTERLOCK
UJN SCK2 CHECKPOINT NEXT DEVICE
SCK3 LDN NOPE-1
STD EI
LDC SCK4 SET I/O ERROR EXIT
STM WSEA
SCK4 RJM SMD SELECT NEXT DEVICE
ZJN SCK6 IF END OF MASS STORAGE DEVICES
* WRITE CHECKPOINT FILE ON EACH CHECKPOINT DEVICE.
LDD ES
SHN 21-2
PJN SCK4 IF NOT CHECKPOINT DEVICE
RJM ACF CLEAR *VALID CHECKPOINT FILE* FLAG IN MST
* WRITE CHECKPOINT FILE. ROUTINE *WST* SETS
* *VALID CHECKPOINT FILE* FLAG IN MST TO PERMIT
* LEVEL 3 RECOVERY FROM THAT DEVICE.
RJM WST WRITE SYSTEM TABLES
RJM CBD ENSURE BUFFERS FLUSHED
RJM CIL CLEAR INTERLOCKS
UJN SCK4 PROCESS NEXT CHECKPOINT DEVICE
SCK6 LDD IR+2
LMN 3
SCK7 ZJN SCK9 IF ALTERNATE LIBRARY CHECKPOINT
LDN SSTL
CRD CM
LDD CM CHECK SYSTEM STATUS WORD
LPN 1
NJN SCK9 IF SPINDOWN DISABLED
LDN 20 SPIN DOWN ISMD DEVICES
RJM SUD
SCK9 LDC SCKD *CHECKPOINT COMPLETE.*
RJM DFM
LDN 1 SET CHECKPOINT COMPLETE
RJM SCD
LDD NC
SHN 7
ADN MS1W
CWM SCKD,TR *CHECKPOINT COMPLETE.*
LJM DPP
SCK8 LDD IA RELOAD *1MB*
CWM SCKE,ON
LJM PPR EXIT TO PP RESIDENT
SCKA CON LIOS INCREMENT BY ONE
CON INWL WORD ADDRESS
CON 13D*100+1 BIT POSITION AND FIELD WIDTH
CON 0
CON 0
SCKB CON LIOS
CON INWL
CON 2*100+1
CON 0
CON 0
SCKC DATA C*PROCESSING SYSTEM CHECKPOINT.*
SCKD DATA C*CHECKPOINT COMPLETE.*
SCKE VFD 18/3L1MP,6/0,12/0,24/0
SPACE 4
** FUNCTION 4.
* UPDATE LOCAL AREA SECTOR.
*
* ENTRY (IR+3) = EQUIPMENT.
* (IR+4) = NUMBER OF DAYFILE POINTER TO UPDATE.
ULA RJM SDP SET DEVICE PARAMETERS
NJN ULA1 IF DEVICE INACCESSIBLE
LDD IR+4
LPN 7
RAM WLAB
RJM WLA WRITE LOCAL AREA
RJM WTT WRITE TRT
RJM CIL CLEAR INTERLOCKS
ULA1 LJM DPP EXIT
FIC SPACE 4,10
** FUNCTION 11.
* FATAL IOU ERROR CHECKPOINT.
FIC LDC SCK8 SET RETURN FROM *PFC*
STM PFCB
LDC LDDI+FS ENABLE CHECKPOINT FLAG REQUIRED
STM SMDA
LJM PFC PROCESS OUTSTANDING CHECKPOINT REQUESTS
TITLE SUBROUTINES.
LDM MSD
LPC 100
ERR SPACE 4,15
** ERR - PROCESS ERRORS.
*
* ENTRY (A) = ADDRESS OF MESSAGE.
* ((A)) = *EQXXX, DETAILS.*.
* (ES - ES+4) = EST ENTRY.
*
* EXIT TO *DPP*.
*
* USES T7.
*
* CALLS DFM, CIL.
ERR STD T7 SAVE MESSAGE ADDRESS
LDD T5 CONVERT UPPER TWO DIGITS OF EST ORDINAL
SHN -3
RJM C2D
STM 1,T7
LDD T5 CONVERT LOWER DIGIT OF EST ORDINAL
LPN 7
SHN 6
ADC 2R0,
STM 2,T7
LDD ES+3 SET EQUIPMENT TYPE
LPC 3777
STI T7
LDD T7 ISSUE MESSAGE
RJM DFM
LDD T7 ISSUE MESSAGE TO ERRLOG
LMC ERLN
RJM DFM
RJM CIL CLEAR INTERLOCKS
LJM DPP
ACF SPACE 4,15
** ACF - ALLOCATE CHECKPOINT FILE.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
*
* EXIT (ST) = CHECKPOINT FILE POINTER.
* TO *WSE* IF TRACK LIMIT REACHED.
*
* USES ST, CM - CM+4, CN - CN+4.
*
* MACROS MONITOR.
ACF SUBR ENTRY/EXIT
LDD ES+4
SHN 3
ADN DULL
CRD CN
LDD CN+3
NJN ACF1 IF CHECKPOINT FILE ALREADY ASSIGNED
STD CM+2
LDC ** SET SECTOR COUNT
ACFA EQU *-1
STD CM+4
SHN -14
STD CM+3
LDD T5 SET EST ORDINAL
STD CM+1
MONITOR RTCM
LDD CM+4
NJN ACF1 IF TRACK ASSIGNED
LJM WSE PROCESS CHECKPOINT ABORT
* CLEAR *VALID CHECKPOINT FILE* FLAG IN MST.
ACF1 STD ST
LPC 3777
STD CM+2
LDD T5 SET EST ORDINAL
STD CM+1
LDK USTS SET SUBFUNCTION
STD CM+3
MONITOR SMDM
LJM ACFX RETURN
CAD SPACE 4,10
** CAD - CHECK ACTIVE DAYFILES.
*
* ENTRY (T5) = EST ORDINAL.
*
* EXIT (A) = (T3) = NUMBER OF ACTIVE DAYFILES ON DEVICE.
* (CADA) = FIRST TRACKS OF DAYFILES.
*
* USES CM - CM+4, CN - CN+4.
CAD1 LDN 3 ADVANCE ADDRESS TO NEXT DAYFILE
RAD CN+1
SHN -14
CAD2 RAD CN
SHN 14
LMD CN+1
ADN 2 READ DAYFILE STATUS WORD
CRD CM
LDD T5 CHECK EQUIPMENT
LMD CM
NJN CAD3 IF DAYFILE NOT ON CURRENT DEVICE
LDD CM+1 SET FIRST TRACK OF DAYFILE
STM CADA,CN+3
AOD T3 ADVANCE COUNT OF ACTIVE DAYFILES FOUND
CAD3 AOD CN+3
LMN EXDF
NJN CAD1 IF NOT END OF EXCESS DAYFILES
LDD T3
CAD SUBR ENTRY/EXIT
LDN DFPP READ DAYFILE POINTER WORD
CRD CN
LDN ZERL CLEAR DAYFILE LIST
CRM CADA,ON
LDN 0 CLEAR ACTIVE DAYFILE COUNT
STD T3
STD CN+3
UJN CAD2 CHECK SYSTEM DAYFILE
CADA BSS 5 ACTIVE DAYFILE LIST
CBD SPACE 4,10
** CBD - CHECK BUFFERED DISKS.
*
* EXIT BUFFERED DISKS FLUSHED IF PRESENT.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CBD SUBR ENTRY/EXIT
LDK BIOL
CRD CM
LDD CM+1
ADD CM+2
ZJN CBDX IF NO BUFFERED I/O
LDN ZERL
CRD CM
LDC BMFW*100 FLUSH ALL WRITE BUFFERS
STD CM+4
MONITOR BFMM
UJN CBDX RETURN
CUA SPACE 4,15
** CUA - CALCULATE UEM ADDRESS.
*
* ENTRY (T8) = TRACK.
* (CA, CA+1) = UEM BASE ADDRESS.
*
* EXIT (A) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS.
* (CA+2 - CA+3) = BITS 27 - 6 OF ABSOLUTE UEM ADDRESS
* (TO BE USED IN *R* REGISTER).
* (CA+4) = BITS 5 - 0 OF ABSOLUTE UEM ADDRESS
* (TO BE USED IN *A* REGISTER).
*
* USES CA+2 - CA+4.
CUA SUBR ENTRY/EXIT
LDD T8 CALCULATE TRACK * 2020
SHN 6 * 100
ADD T8 * 101
STD CA+3
CUAA SHN -10
* SHN -10+EMSC -10 + EXTENDED MEMORY SHIFT COUNT
STD CA+2 * 2020 HIGH BITS
LDD CA+3
CUAB SHN 4 (A) = * 2020 LOW BITS
* SHN 4+EMSC 4 + EXTENDED MEMORY SHIFT COUNT
LPC 7777
ADD CA+1 ADD UEM BASE ADDRESS
STD CA+4 LOW LOW BITS FOR *A* REGISTER
SHN -14
ADD CA
RAD CA+2 HIGH BYTE ABSOLUTE UEM ADDRESS
SHN 6 SHIFT RESULT FOR *R* REGISTER
STD CA+3
SHN 6
STD CA+2
LDD CA+4
SHN 14
RAD CA+3
SHN -14
STD CA+4 SET LOW 6 BITS FOR *A* REGISTER
UJN CUAX RETURN
FDB SPACE 4,15
** FDB - FLUSH DAYFILE BUFFERS.
*
* EXIT SYSTEM DAYFILE BUFFERS FLUSHED TO DISK.
*
* USES CM+1, DI.
*
* CALLS DFM, *0TD*.
*
* MACROS EXECUTE.
FDB1 EXECUTE 0TD,OVL0 TERMINATE DAYFILE
AOD DI ADVANCE DAYFILE INDEX
FDB2 STM OVL0-1 SET POINTER ADDRESS FOR *0TD*
LMN EXDF+1
NJN FDB1 IF NOT END OF SYSTEM DAYFILES
FDB SUBR ENTRY/EXIT
LDN FDBAL SET MESSAGE LENGTH
STD CM+1
LDC BMLN+FDBA ISSUE CHECKPOINT MESSAGE TO THE *BML*
RJM DFM
LDN 1 INITIALIZE DAYFILE INDEX
STD DI
UJN FDB2 FLUSH MASTER DAYFILE BUFFER
FDBA CON DM0406,DS0112 *BML* SYSTEM CHECKPOINT MESSAGE
BSSZ FDBA+6-* ZERO FILL MESSAGE
FDBAL EQU *-FDBA LENGTH OF MESSAGE
FTB SPACE 4,10
** FTB - FILL TRACK BUFFER.
*
* ENTRY (T6) = LAST TRACK USED.
*
* EXIT (NT) = *TBUF*.
*
* USES NT, T0, T1, CM - CM+4.
FTB SUBR ENTRY/EXIT
LDC TBUF SET TRACK BUFFER POINTER
STD NT
STD T0
LDD T6
SHN 6
FTB1 SHN -6 STORE TRACK IN BUFFER
STI T0
SHN -2 READ TRT WORD TO GET NEXT TRACK
ADC TRTS
FTBA EQU *-2
CRD CM
LDI T0 SET BYTE INDEX
LPN 3
STD T1
AOD T0 ADVANCE BUFFER POINTER
LMC TBUF+TBUFL-1
ZJN FTB2 IF TRACK BUFFER FULL
LDM CM,T1
SHN 6
MJN FTB1 IF NOT EOI
LCN 0 INHIBIT REFILLING BUFFER
FTB2 STI T0 MARK END OF BUFFER
UJN FTBX RETURN
GLS SPACE 4,15
** GLS - GET LOCAL AREA SECTOR.
*
* ENTRY (T5) = EQUIPMENT.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = READ ERROR INDICATION.
* (BFMS) = LOCAL AREA SECTOR.
*
* USES CM - CM+4.
*
* CALLS RDS.
*
* MACROS SETMS, SMSTF.
GLS2 SETMS IO,(ND,NS) READ SECTOR OF LOCAL AREAS
LDC BFMS
RJM RDS
MJN GLSX IF READ ERROR
LDM BFMS
NJN GLSX IF FORMATTED SECTOR OF LOCAL AREAS
ENDMS
SMSTF GDEI SET ERROR IDLE
LCN 0
GLS SUBR ENTRY/EXIT
LDD ES+4 CHECK IF SECTOR EXISTS
SHN 3
ADN ACGL
CRD CM
LDD CM+4
LPC MGLAP
NJN GLS2 IF SECTOR EXISTS
LDC 501
STD CM
GLS1 LDN 0 CLEAR SECTOR BUFFER
STM BFMS,CM
SOD CM
NJN GLS1 IF NOT START OF BUFFER
LDN LMLT SET SYSTEM LEVEL IN LINKAGE
STM BFMS
SMSTF GLAP FLAG SECTOR OF LOCAL AREAS PRESENT
* LDN 0
UJN GLSX
GSC SPACE 4,10
** GSC - GET SECTOR COUNT.
*
* ENTRY (T8) = UEM TRACK POINTER.
* (FS+1) = LAST TRACK + 1 OF USER EXTENDED MEMORY.
* (FS+2) = UEM SECTOR LIMIT.
* (FS+3) = TRT LENGTH.
*
* EXIT (A) = NUMBER OF SECTORS IN USE IN TRACK.
*
* USES T2, T8, CM - CM+4.
GSC SUBR ENTRY/EXIT
GSC1 AOD T8
LMD FS
NJN GSC2 IF NOT FIRST TRACK OF USER EXTENDED MEMORY
LDD FS+1
STD T8 SKIP TO END OF USER EXTENDED MEMORY
GSC2 LDD T8
SHN -2 COMPUTE TRT WORD OFFSET
STD T2
LMD FS+3
ZJN GSCX IF END OF TRT
LDC TRTS READ TRT WORD
GSCA EQU *-2
ADD T2
CRD CM
LDD T8 COMPUTE BYTE NUMBER
LPN 3
STD T2
ADC SHNI+16 SET TRACK RESERVATION CHECK
STM GSCB
LDD CM+4
SHN **
GSCB EQU *-1
GSC3 PJN GSC1 IF TRACK NOT RESERVED
LDM CM,T2
* TEST FOR LABEL TRACK WHICH CONTAINS A 0 AT DEADSTART TIME.
* NOTE: EOI TRACKS WILL ALSO BE PICKED UP - A 1 IN *SLM*
* CHANCE FOR EACH FILE, WHERE *SLM* IS THE UEM SECTOR LIMIT.
ZJN GSC5 IF LABEL TRACK
LMC 3777
ZJN GSC3 IF TRACK FLAWED
LMC 3777
SHN 21-13
MJN GSC5 IF ENTIRE TRACK IN USE
SHN 14
ADN 1
GSC4 LJM GSCX RETURN
GSC5 LDD FS+2
UJN GSC4 RETURN SECTOR COUNT FOR FULL TRACK
SCD SPACE 4,10
** SCD - SET CHECKPOINT BITS.
*
* ENTRY (A) = OPERATION TO PERFORM.
* = 0, SET CHECKPOINT IN PROGRESS.
* = 1, SET CHECKPOINT COMPLETED.
*
* USES T1, CM - CM+4, CN - CN+4.
*
* MACROS MONITOR.
SCD4 LDD CM SET CHECKPOINT IN PROGRESS
SCN 4
LMN 4
SCD5 STD CM STORE CHECKPOINT FLAGS
LDD CN+3
SHN 14
ADD CN+4
ADN D7ST
CWD CM WRITE UPDATED STATUS WORD
SCD SUBR ENTRY/EXIT
STD T1 SAVE OPERATION
ZJN SCD1 IF SET CHECKPOINT IN PROGRESS
LDN LDOS SET DECREMENT BY ONE
STM SCDA
SCD1 LDN 1 SET NUMBER OF OPTIONS
STD CM+1
STD CM+2 DO NOT DROP PPU
LDD MA
CWM SCDA,ON
MONITOR UADM SET GLOBAL CHECKPOINT IN PROGRESS FLAG
LDK EIBP
CRD CN
LDD CN+3
SHN 14
ADD CN+4
SCD2 ZJN SCDX IF NO *EICB*
ADN D7ST
CRD CM
LDD T1
NJN SCD3 IF SET CHECKPOINT COMPLETE
LJM SCD4 SET CHECKPOINT IN PROGRESS
SCD3 LDD CM
LPN 4
ZJN SCD2 IF CHECKPOINT IN PROGRESS FLAG NOT SET
LDD CM
SCN 10
LMN 10
LJM SCD5 SET CHECKPOINT COMPLETE
SCDA CON LIOS INCREMENT BY ONE
CON INWL WORD ADDRESS
CON 4*100+1 BIT POSITION AND FIELD WIDTH
CON 0
CON 0
TUT SPACE 4,10
** TUT - TRANSFER UEM TRACK TO DISK.
*
* ENTRY (A) = NUMBER OF SECTORS TO TRANSFER.
* (T8) = UEM TRACK NUMBER.
* (FS+2) = UEM SECTOR LIMIT.
*
* USES CA+2, CA+3, T9.
*
* CALLS CUA, WNS.
*
* NOTES IF THE UEM TRACK SIZE IS 100B OR 200B SECTORS, THE 1ST
* SECTOR WILL CONTAIN ONLY THE TRACK DESCRIPTION, AND
* ALL LINKAGE WORDS WILL FOLLOW IN THE NEXT 1 OR 2
* SECTORS, PROCESSED AS IF DATA SECTORS.
TUT SUBR ENTRY/EXIT
STD T9 SET SECTOR COUNT
LDD FS+2 ADD LINKAGE WORDS TO SECTOR COUNT
SHN -6
RAD T9
STM BUF+3
LDD T8 SET TRACK NUMBER
STM BUF+2
RJM CUA CALCULATE FWA OF UEM TRACK
LDD FS+2
LPN 77
STM BUF+1 SET SINGLE SECTOR LINKAGE WORD COUNT
ZJN TUT1 IF TOO MANY WORDS FOR ONE SECTOR
RAD CA+4 ADVANCE UEM ADDRESS FOR PARTIAL SECTOR
SBD FS+2
ADC 400000 SET 2**17
LRD CA+2
CRM BUF+4,FS+2 READ LINKAGE WORDS
TUT1 RJM WNS WRITE 1ST (OR ONLY) LINKAGE SECTOR
LDD HN SET WORD COUNT FOR REMAINING SECTORS
STM BUF+1
TUT2 LDD CA+4
ADC 400000
LRD CA+2 READ DATA SECTOR
CRM BUF+2,HN
RJM WNS WRITE NEXT SECTOR
AOD CA+3 ADVANCE UEM ADDRESS
SHN -14
RAD CA+2
SOD T9 DECREMENT SECTOR COUNT
NJN TUT2 IF NOT FINISHED WITH TRACK
UJP TUTX RETURN
UCP SPACE 4,10
** UCP - CHECKPOINT UEM.
*
* ENTRY (T4 - T7) = DISK PARAMETERS FOR CURRENT CHECKPOINT
* DEVICE.
*
* USES T8, T9, CA, CA+1, CM - CM+7, CN - CN+4, FS - FS+3.
*
* CALLS GSC, TUT, WEI, WLA.
*
* MACROS ENDMS, SFA.
UCP4 RJM TUT TRANSFER UEM TRACK TO DISK
UCP5 RJM GSC GET SECTOR COUNT OF NEXT TRACK
NJN UCP4 IF NOT END OF UEM
UCP SUBR ENTRY/EXIT
LDK UEML SET UEM BASE ADDRESS
CRD CM
LDD CM
SHN 21-2
STD CA
SHN -6
SCN 7
STD CA+1
LDC 0 SET UEM MST ADDRESS
UCPA EQU *-1
SHN 3
ADK MDGL
CRD CM+3
SBN MDGL-ACGL
CRD CM
ADK TDGL-ACGL
CRD CM+2
ADK TRLL-TDGL
CRD CN
LDD CM+3+4 SET SECTOR LIMIT
STD FS+2
LDD CM+2+2 SET TRT LENGTH
STD FS+3
LDD CN+3 SET TRT FWA
LPN 77
LMC LDCI
STM GSCA
LDD CN+4
STM GSCA+1
LCN 0
STD T8 INITIALIZE UEM FIRST TRACK
STD FS PRESET USER AREA FIRST TRACK
LDD CM+1 SET FIRST TRACK OF USER AREA
ZJN UCP3 IF NO USER AREA
LPC 3777 SET FIRST TRACK OF USER AREA
STD FS+1
ADN 1 CAUSE USER AREA FIRST TRACK TO BE WRITTEN
STD FS
LDK ECRL
CRD CN
LDD CN+1
UCPB SHN 5
* SHN 5-EMSC+UESC
STD CN+1
SHN -14
STD CN
UCP2 AOD FS+1 ADVANCE TRACK POINTER
LDC -101
RAD CN+1
PJN UCP2 IF NOT UNDERFLOW
AOD CN+1
SOD CN
PJN UCP2 IF NOT END OF CONVERSION
UCP3 LJM UCP5 TRANSFER UEM DATA TO DISK
WLA SPACE 4,15
** WLA - WRITE LOCAL AREAS.
*
* ENTRY (T4) = CHANNEL.
* (T5) = EQUIPMENT.
* (ES - ES+4) = EST ENTRY.
* (LT) = LABEL TRACK.
*
* EXIT (A) = 0.
* (TS) = LABEL TRACK INTERLOCKED STATUS.
*
* USES T1, T2, T6, T7, CM - CM+7.
*
* CALLS ABT, CAD, ERR, GLS, STI, UMS.
*
* MACROS ENDMS, SETMS.
WLA11 LJM ABT ABORT OPERATION
WLA SUBR ENTRY/EXIT
LDD LT
STD T6
LDD TS
NJN WLA1 IF LABEL TRACK INTERLOCKED
RJM STI SET TRACK INTERLOCK
NJN WLA11 IF ERROR FLAG SET
AOD TS SET LABEL TRACK INTERLOCK STATUS
WLA1 LDN LMLT SET LOCAL AREA SECTOR
STD T7
RJM GLS GET LOCAL AREA SECTOR
PJN WLA4 IF NO ERROR
WLA2 ENDMS
LDC WLAE *EQXXX, LOCAL AREA SECTOR ERROR.*
WLAA EQU *-1
* LDC WLAF (*EQXXX, LOCAL AREA OVERFLOW.*)
LJM ERR ISSUE THE ERROR MESSAGE
* MAKE A NEW ENTRY IN THE SECTOR.
WLA3 LDN 2 BUMP SECTOR WORD COUNT
RAM BFMS+1
SBD HN
MJN WLA6 IF ROOM FOR A NEW ENTRY
LDC WLAF *EQXXX, LOCAL AREA OVERFLOW.*
STM WLAA
UJN WLA2 PROCESS ERROR
* SEARCH FOR MATCH ON MACHINE ID.
WLA4 LCN 2*5-1 INITIALIZE SEARCH INDEX
STD T2
LCN 2-1
STD T1
LDC MMFL GET MACHINE ID
CRD CM
WLA5 LDN 2*5 BUMP SEARCH INDEX
RAD T2
LDN 2
RAD T1
LDD T1
SBM BFMS+1 SUBTRACT SECTOR WORD COUNT
PJN WLA3 IF END OF SECTOR DATA
LDM BFMS+2,T2 COMPARE ID CODE
LMD CM
NJN WLA5 IF NO MATCH
* UPDATE LOCAL AREA DATA.
LDM BFMS+2+2,T2
NJN WLA6 IF POST LEVEL 509 ENTRY
STM BFMS+2+10,T2
WLA6 LDD T2
ADC BFMS+2+5
STM WLAC
STM WLAD
LDD CM SET MACHINE ID
STM BFMS+2,T2
LDN LMLT SET SYSTEM LEVEL IN ENTRY
STM BFMS+2+2,T2
LDD ES+4 READ DULL WORD
SHN 3
ADN DULL
CRD CM+3
ADN STLL-DULL
CRD CM
LDD CM+3 SET USER COUNT
STM BFMS+2+4,T2
LDD CM+6 SET SYSTEM TABLE TRACK
LPC 3777
* UJN *+2 (FUNCTIONS 0 AND 1)
WLAG EQU *-2
STM BFMS+2+1,T2
LDD CM+7 SET FAMILY COUNT
STM BFMS+2+3,T2
LDC 0 UEM SECTOR OFFSET
WLAH EQU *-1
STM BFMS+2+11,T2
RJM CAD CHECK ACTIVE DAYFILES
WLAB LDN 0
ZJN WLA7 IF NO DAYFILE POINTER UPDATE
SBN 1
STD T1
LDN 0 CLEAR DAYFILE POINTER
STM *,T1
WLAC EQU *-1
WLA7 STD T2
LDD T3
ZJN WLA10 IF NO ACTIVE DAYFILES ON DEVICE
* MOVE ACTIVE DAYFILE TRACKS TO SECTOR OF LOCAL AREAS.
WLA8 LDM CADA,T2
ZJN WLA9 IF DAYFILE NOT PRESENT
STM *,T2
WLAD EQU *-1
WLA9 AOD T2 ADVANCE DAYFILE INDEX
LMN EXDF
NJN WLA8 IF NOT END OF EXCESS DAYFILES
WLA10 SETMS IO,(ND,NS,RW),WBUF
LDC BFMS+WLSF REWRITE SECTOR
RJM WMS
ENDMS
* LDN 0
STM WLAH
LJM WLAX RETURN
WLAE DATA C*EQXXX, LOCAL AREA SECTOR ERROR.*
WLAF DATA C*EQXXX, LOCAL AREA OVERFLOW.*
WST SPACE 4,20
** WST - WRITE SYSTEM TABLES.
*
* ENTRY (T5) = EST ORDINAL.
* (ES - ES+4) = EST ENTRY.
* (ST) = CHECKPOINT FILE FIRST TRACK.
* (LT) = LABEL TRACK.
* (FS - FS+4) = STLL WORD.
*
* USES T6, CA - CA+4, CM - CM+4, CN - CN+4.
*
* CALLS FTB, WSS, WTB.
*
* MACROS CFI, ENDMS, MONITOR, SETMS.
WST SUBR ENTRY/EXIT
LDD ST
STD T6
LDD ES+4 GET TRT ADDRESS
SHN 3
ADK TRLL
CRD CM
LDD CM+3 SET TRT ADDRESS FOR *FDB*
LPN 77
SHN 14
LMD CM+4
SBD TH COMPENSATE FOR UPPER BIT OF TRACK
STM FTBA+1
STM SRAA+1
SHN -14
LMC ADCI
STM FTBA
STM SRAA
RJM FTB FILL TRACK BUFFER
SETMS IO,(ND,NS),WBUF
LDD MA ENTER NAME
CWM WSTB,ON
SBN 1
CRM FNSS,ON
RJM WSS WRITE SYSTEM SECTOR
LDN 0 WRITE POINTER AREA
STD CA
STD CA+1
LDC BQRL
RJM WTB
* WRITE EQUIPMENT STATUS TABLE.
LDN ESTP SET EST ADDRESS
CRD CA
CFI EST,EC,EC SET EST LENGTH
RJM WTB WRITE TABLE
* WRITE CHANNEL INTERLOCK TABLES.
LDC CHTP SET CHANNEL TABLE ADDRESS
CRD CM
LDD CM+2
STD CA
LDD CM+3
STD CA+1
LDN CTALL*2 TABLE LENGTH
RJM WTB WRITE TABLE
* WRITE EVENT TABLE.
LDK EVTP FETCH EVENT TABLE POINTER
CRD CM
LDD CM SET TABLE ADDRESS
STD CA
LDD CM+1
STD CA+1
LDN EVTLL WRITE EVENT TABLE
RJM WTB
* WRITE SUBSYSTEM CONTROL TABLES.
LDC SSCP FETCH SUBSYSTEM CONTROL TABLE POINTER
CRD CM
LDD CM+2 SET ADDRESS OF TABLES
STD CA
LDD CM+3
STD CA+1
LDN SSCTL*2 WRITE SSCT AND SSAT
RJM WTB
* WRITE SERVICE CLASS AND JOB CONTROL TABLES.
LDK JBCP FETCH CONTROL TABLE POINTER
CRD CA
LDK JCBE*/SCD/MXJC WRITE CONTROL TABLES
RJM WTB
* WRITE SABB TABLE.
LDK SABL
CRD CA
LDD CA+2
RJM WTB
* WRITE STATISTICAL DATA AREA.
LDC SDAP SET STATISTICAL AREA ADDRESS
CRD CA
LDN SDAL WRITE STATISTICAL DATA AREA
RJM WTB
* WRITE MANAGED TABLES.
LDN QFTP FETCH QFT POINTER
CRD CA
CFI QFT,EC,EC SET QFT LENGTH
STD CN+1
SHN -14
STD CN
LDC CLTP READ CLT POINTER
CRD CM
CFI CLT,CM+2 APPEND COMMON LIBRARIES TABLE LENGTH
RAD CN+1
SHN -14
RAD CN
LDC LIDP FETCH LID TABLE POINTER
CRD CM
LDD CM+2 APPEND LID TABLE LENGTH
RAD CN+1
SHN -14
RAD CN
LDN EJTP FETCH EJT POINTER
CRD CA
CFI EJT,EC,EC APPEND EJT LENGTH
RAD CN+1
SHN -14
RAD CN
LDN FNTP FETCH FNT POINTER
CRD CM
ADN FOTP-FNTP READ FOT POINTER
CRD CA
CFI FNT,CM+2,CM+2 ADD FNT LENGTH
SHN 6
ADD CN
SHN 14
ADD CN+1
ADD EC ADD FOT LENGTH
RJM WTB
* WRITE LIBRARIES AND DIRECTORIES.
LDC RPLP FETCH RPL POINTER
CRD CA
LDN CMRL READ CMR LENGTH
CRD CM
LDD CM+4
SHN 14
SBD CA
SHN 14
SBD CA+1
RJM WTB
* WRITE BUFFERED DEVICE POINTER TABLE.
LDC BIOL FETCH BUFFERED I/O STATUS
CRD CM
LDD CM+1 SET ADDRESS OF TABLES
STD CA
SHN 14
LMD CM+2
STD CA+1
ZJN WST1 IF NO BUFFERED I/O
LDN BDTL
RJM WTB WRITE TABLE
WST1 ENDMS
LDD T5 SET EQUIPMENT
STD CM+1
LDD ST SET SYSTEM TABLE TRACK
STD CM+2
LDN USTS UPDATE SYSTEM TABLE TRACK
STD CM+3
MONITOR SMDM
WSTA UJN WST2 AVOID UEM CHECKPOINT
* LDD ST (UEM PRESENT AND FUNCTION 0 OR 1)
RJM SRA COMPUTE UEM SECTOR OFFSET
LDD RI+1
STM WLAH
RJM UCP WRITE UEM TO CHECKPOINT FILE
WST2 RJM WEI WRITE EOI
ENDMS
RJM WLA WRITE SECTOR OF LOCAL AREAS
LJM WSTX RETURN
WSTB VFD 42/0LSYSTAB,6/1,6/SYFT,6/0
SPACE 4,10
** COMMON DECKS.
IFP$ EQU 1 ASSEMBLE *COMPGFP* INITIALIZATION REMOTELY
EJT$ EQU 1 ASSEMBLE EJT ACCESS ROUTINE
*CALL COMPGFP
*CALL COMPSRA
*CALL COMPSUD
SPACE 4
* BUFFER ASSIGNMENTS.
USE LITERALS
QUAL
BUF BSS 0
WBUF EQU BUF+502 WRITE ERROR PROCESSING BUFFER
ERRNG BFMS-WBUF-502 BUFFER OVERFLOW
TBUF EQU WBUF+502 TRACK BUFFER
TBUFL EQU BFMS-TBUF TRACK BUFFER LENGTH
ERRNG TBUFL-20 INADEQUATE TRACK BUFFER
OVL0 EQU BUF+1 ZERO LEVEL OVERLAY LOAD ADDRESS
QUAL *
3CK TITLE OVERLAYED SUBROUTINES.
ASW SPACE 4,15
** ASW - ABORT SUBSYSTEMS WHERE JOB SCHEDULING IS REQUIRED FOR
* CLEANUP OF CONNECTED JOBS.
*
* ENTRY (NC) = NUMBER OF CONTROL POINTS.
*
* EXIT (A) = 0.
*
* USES T1, T7, CM - CM+4, ES - ES+4.
*
* CALLS CCP, CET, CSC, DEL, DFM, FJO.
*
* MACROS MONITOR.
ASW5 LDN ASWX-ASW5
RAM ASWD
LDM ASWF
STM ASWE
LDK RTCL GET STARTING TIME
CRD ES
UJN ASW1 SCAN CONTROL POINTS
ASW6 RJM CSC CHANGE TO SYSTEM CP
RJM DEL DELAY FOR 50 MS
ASW7 RJM CET COMPUTE ELAPSED TIME
MJN ASW1 IF NOT TIMEOUT
ASW SUBR ENTRY/EXIT
ASW1 LDN 0 INITIALIZE CP NUMBER
STD T7
ASW2 RJM FJO FIND JOB
ZJN ASW5 IF SCAN COMPLETE
* ZJN ASWX (AFTER FIRST CP SCAN)
ASWD EQU *-1
LCN 1
STD T1
ASW3 LDN 2
RAD T1
LDM ASWB,T1
ZJN ASW2 IF END OF LIST
LMD CN+2
NJN ASW3 IF NOT SELECTED SUBSYSTEM
RJM CCP CHANGE CONTROL POINT ASSIGNMENT
ZJN ASW2 IF JOB GONE
LDM ASWB+1,T1
* UJN ASW6 (AFTER FIRST CP SCAN)
ASWE EQU *-2
ZJN ASW4 IF NO SENSE SWITCHES TO CHANGE
SCN 77
STM ASWA SET SWITCH MASK
LDM ASWB+1,T1
SHN 6
STM ASWB+1,T1 ISOLATE SWITCHES TO SET
LDD T7 SET SENSE SWITCHES
SHN 7
ADN SNSW
CRD CM
LDD CM+4
LPC ** PRESERVE SELECTED SWITCHES
ASWA EQU *-1
LMM ASWB+1,T1 SET SELECTED SWITHES
STD CM+4
LDD T7
SHN 7
ADN SNSW
CWD CM
ASW4 LDN ODET ABORT SUBSYSTEM
STD CM+1
MONITOR CEFM
LDC ASWC * SYSTEM CHECKPOINT ABORT.*
RJM DFM
RJM CSC CHANGE TO SYSTEM CP
LJM ASW2 FIND NEXT JOB
** TABLE OF SENSE SWITCHES TO CLEAR/SET ON SUBSYSTEMS.
*
*T ASWB 12/ ID, 6/ MSK, 6/ SET
*
* ID = SUBSYSTEM ID.
* MSK = SENSE SWITCH MASK - SEE NOTE.
* SET = SENSE SWITCHES TO SET.
*
* NOTE - *MSK* MUST INCLUDE SWITCHES WHICH WILL BE SET AS WELL
* AS SWITCHES TO BE CLEARED. OTHERWISE, *SET* WILL CAUSE
* SWITCHES TO BE TOGGLED.
ASWB BSS 0
VFD 12/IFSI IAF
VFD 6/56 CLEAR SWITCHES 5 AND 1
VFD 6/1 SET SWITCH 1
CON 0 END OF LIST
ASWC DATA C* SYSTEM CHECKPOINT ABORT.*
ASWF BSS 0
LOC ASWE
UJN ASW6 CONTINUE
LOC *O
CCA SPACE 4,10
** CCA - COMPUTE CPA/PCPA ADDRESS.
*
* ENTRY (A) = CP/PCP NUMBER.
* (NC) = NUMBER OF CONTROL POINTS.
*
* EXIT (A) = CPA/PCPA ADDRESS.
CCA1 ADD NC
SHN 7
CCA SUBR ENTRY/EXIT
SBD NC
MJN CCA1 IF CONTROL POINT
ZJN CCA1 IF SYSTEM CONTROL POINT
SHN 7
CCAA ADC ** (PCP AREAS BASE ADDRESS)
UJN CCAX RETURN
CCP SPACE 4,10
** CCP - CHANGE CONTROL POINT ASSIGNMENT.
*
* ENTRY (T7) = CONTROL POINT NUMBER.
*
* EXIT (A) = EJT ORDINAL IF CHANGE MADE.
* = 0 IF JOB GONE.
*
* USES CM - CM+4, CN - CN+4.
*
* CALLS DEL.
*
* MACROS MONITOR.
CCP2 LDD CN
CCP SUBR ENTRY/EXIT
CCP1 LDD T7
STD CM+1
MONITOR CCAM
LDD T7
SHN 7
ADK TFSW
CRD CN
LDD CN
ZJN CCPX IF JOB GONE
LDD CM+1
ZJN CCP2 IF CHANGE MADE
RJM DEL DELAY FOR 5O MS
UJN CCP1 RETRY
CCS SPACE 4,20
** CCS - COMPUTE CHECKPOINT FILE SIZE.
*
* COMPUTE CHECKPOINT FILE SIZE BASED ON THE
* FOLLOWING FORMULA -
*
* SECTORS = (CMR + TOTAL UEM - USER UEM
* + 1/2 (RPL + RCL + PLD))/100B
*
* ERROR TO *DPP* IF CHECKPOINT FILE TOO LARGE.
*
* USES T8, T9, CM - CM+4, CN - CN+4, ES - ES+4, T0 - T0+4.
*
* CALLS DFM.
CCS SUBR ENTRY/EXIT
LDK RPLP GET RPL FWA
CRD CM
ADK PSTP-RPLP GET LWA+1 OF PLD
CRD CN
LDD CN+2 COMPUTE 1/2 * (RPL + RCL + PLD)/100B
SBD CM
SHN 14
ADD CN+3
SBD CM+1
SHN -6-1 1/2 * (RPL + RCL + PLD)/100B
STD T9
SHN -14
STD T8
* ADD (TOTAL UEM - USER UEM)/100B.
LDM UCPA MST ADDRESS FOR UEM
ZJN CCS1 IF NO EST ENTRY FOR UEM
SHN 3 GET TOTAL UEM SIZE
ADK TDGL
CRD ES
LDK ECRL GET USER UEM SIZE
CRD T0
AOD ES UEM TRACKS
SHN 6
ADD ES TRACKS * 101
CCSB ADN ** ROUND UP
* ADN 3 (TRACK SHIFT COUNT = 0)
* ADN 1 (TRACK SHIFT COUNT = 1)
* ADN 0 (TRACK SHIFT COUNT .GE. 2)
CCSC SHN ** TOTAL NUMBER OF SECTORS IN UEM
* SHN EMSC-2
CCSD SHN **-3+22 CONVERT TO *USER EM* SIZED BLOCKS
* SHN -UESC-3+22
SBD T0+1 SUBTRACT NUMBER OF *USER EM* BLOCKS
CCSE SHN **+3 CONVERT TO SECTORS
* SHN UESC+3
RAD T9
SHN -14
RAD T8
* ADD CMR SIZE/100B.
CCS1 LDK CMRL
CRD CM
LDD CM+4
RAD T9
STM ACFA
SHN -14
RAD T8
SCN 77
ZJN CCS2 IF SECTOR COUNT NOT TOO LARGE
LDC ABTB * CHECKPOINT ABORTED.*
RJM DFM
LJM DPP DROP PP
CCS2 LDD T8 SET HIGH BYTE OF SECTOR COUNT
RAM ACFA-1
LJM CCSX RETURN
CET SPACE 4,10
** CET - COMPUTE ELAPSED TIME.
*
* ENTRY (ES - ES+4) = *RTCL*.
*
* EXIT (A) .GE. 0 IF TIMEOUT.
*
* USES CM - CM+4.
CET SUBR ENTRY/EXIT
LDK RTCL
CRD CM
LDD CM+1
SBD ES+1
PJN CET1 IF NO ROLLOVER
ADC 10000
CET1 SBK MXTT
UJN CETX RETURN
CSC SPACE 4,10
** CSC - CHANGE TO SYSTEM CONTROL POINT.
*
* ENTRY (NC) = SYSTEM CONTROL POINT NUMBER.
*
* EXIT (A) = 0.
*
* USES CM+1.
*
* MACROS MONITOR.
CSC SUBR ENTRY/EXIT
LDD NC
STD CM+1
MONITOR CCAM
UJN CSCX RETURN
CSS SPACE 4,10
** CSS - CHECK FOR SPECIAL SUBSYSTEM.
*
* ENTRY (CN+2) = BYTE 2 OF WORD *JCIW*.
*
* EXIT (A) .NE. 0 IF SPECIAL SUBSYSTEM.
* .EQ. 0 OTHERWISE.
*
* USES T1.
CSS SUBR ENTRY/EXIT
LCN 1
STD T1
CSS1 AOD T1 INCREMENT INDEX
LDM CSSA,T1
ZJN CSSX IF END OF SPECIAL SUBSYSTEMS
LMD CN+2
NJN CSS1 IF NOT THIS SPECIAL SUBSYSTEM
LDN 1
UJN CSSX RETURN WITH SPECIAL SUBSYSTEM
CSSA BSS 0
LIST D
.SUB HERE
LIST *
CON 0 END OF TABLE
DEL SPACE 4,10
** DEL - DELAY.
DEL SUBR ENTRY/EXIT
DELAY 64D*8D DELAY 64 MILLISECONDS
UJN DELX RETURN
DRJ SPACE 4,15
** DRJ - DISPOSE OF REMAINING JOBS.
*
* THIS ROUTINE ABORTS JOBS STILL AT CONTROL POINT THAT ARE
* NOT IN THE PROCESS OF ROLLING. ONLY THOSE SUBSYSTEMS THAT
* MAY BE NEEDED FOR JOB TERMINATION ARE LEFT UNAFFECTED.
*
* ENTRY (A) = 0.
*
* USES T7, CM - CM+7.
*
* CALLS CSS, DFM, FJO.
*
* MACROS MONITOR, SFA.
DRJ SUBR ENTRY/EXIT
* LDN 0
STD T7
DRJ1 RJM FJO FIND JOB
ZJN DRJX IF NO MORE JOBS
RJM CSS CHECK FOR SPECIAL SUBSYSTEM
NJN DRJ1 IF SPECIAL SUBSYSTEM
LDC 4000+SSET ABORT JOB
STD CM+1
LDD CA STORE EJT ORDINAL IN *CEFM* REQUEST
STD CM+2
SFA EJT STORE JSN IN *CEFM* REQUEST
ADK JSNE
CRD CM+3
MONITOR CEFM
UJN DRJ1 CHECK NEXT JOB
FJO SPACE 4,20
** FJO - FIND JOB.
*
* THIS ROUTINE LOOKS FOR JOBS ASSIGNED TO CONTROL POINTS OR
* PSEUDO-CONTROL POINTS. IT WILL RETURN TO THE CALLER ONLY
* UPON FINDING AN ACTIVE CP/PCP OR REACHING THE END OF ITS
* SCAN.
*
* ENTRY (T7) = STARTING CP/PCP NUMBER - 1.
*
* EXIT (A) .NE. 0 IF ACTIVE CP/PCP FOUND.
* = 0 IF END OF SCAN REACHED AND NO ACTIVE CP/PCP
* FOUND.
* (NC) = NUMBER OF CONTROL POINTS.
* (T7) = CP/PCP NUMBER IF ACTIVE ONE FOUND.
* (CA - CA+4) = WORD *TFSW* OF CPA/PCPA.
* (CN - CN+4) = WORD *JCIW* OF CPA/PCPA.
* (FS - FS+4) = WORD *STSW* OF CPA/PCPA.
*
* USES T7, CA - CA+4, CN - CN+4, FS - FS+4.
*
* CALLS CCA.
FJO SUBR ENTRY/EXIT
FJO1 AOD T7 ADVANCE CP/PCP NUMBER
LMD NC
ZJN FJO1 IF SYSTEM CONTROL POINT
LMD NC
LMC **
FJOB EQU *-1 (SCAN LIMIT)
ZJN FJOX IF END OF SCAN
FJO2 LDD T7 SET CP/PCP ADDRESS
RJM CCA
ADK STSW
CRD FS
ADN JCIW-STSW
CRD CN
ADN TFSW-JCIW
CRD CA
LDD CA
ZJN FJO1 IF NO JOB
LDD FS+1
LMK PEET
ZJN FJO1 IF CM PARITY ERROR
LDN 0
* LDN 1 (WAIT MODE)
FJOA EQU *-1
NJN FJOX IF WAIT MODE
LDD FS+1
LMN SSET
ZJN FJO1 IF *SSET* ALREADY SET
LDD FS+2
LPN 1
NJN FJO1 IF ROLLOUT REQUESTED
LDN 1 INDICATE ACTIVE CP/PCP FOUND
UJP FJOX RETURN
ROJ SPACE 4,15
** ROJ - ROLLOUT NON-SUBSYSTEM JOBS.
*
* ENTRY (A) = 0.
*
* EXIT (A) = 0.
*
* USES T1, T7, CM+1, CM+2.
*
* CALLS DEL, FJO.
*
* MACROS MONITOR.
ROJ SUBR ENTRY/EXIT
* LDN 0
STD T7
ROJ1 RJM FJO FIND JOB
ZJN ROJX IF END OF SCAN
LDD CN+2
SBK LSSI+1
PJN ROJ1 IF NOT TO BE ROLLED
LDN 10D SET *ROCM* RETRY COUNT
STD T1
ROJ2 LDC ROSR+4000 SELECT JOB SCHEDULER, ALTERNATE CP/PCP
STD CM+1
LDD T7 SET CP/PCP NUMBER
STD CM+2
MONITOR ROCM
LDD CM+1
ZJN ROJ1 IF *ROCM* ACCEPTED
SOD T1
MJN ROJ1 IF RETRY LIMIT REACHED
RJM DEL DELAY 50 MS
UJN ROJ2 RETRY
WFJ SPACE 4,20
** WFJ - WAIT FOR JOBS TO ROLLOUT OR TERMINATE.
*
* THIS ROUTINE ALLOWS ALL JOBS *MXTT*
* SECONDS TO TERMINATE. ANY JOB STILL AT A
* CONTROL POINT AND NOT ROLLING AFTER *MXTT*
* SECONDS HAVE ELAPSED WILL BE ROLLED. THIS
* ROUTINE WILL NOT BE EXITED UNTIL ALL
* CONTROL POINTS ARE CLEAR (JOBS WITH
* *PEET* ERROR FLAG SET MAY BE LEFT AT CONTROL
* POINT).
*
* EXIT (A) = 0.
*
* USES T7, CM - CM+4, ES - ES+4.
*
* CALLS CET, CSS, DEL, FJO.
*
* MACROS DELAY, MONITOR.
WFJ SUBR ENTRY/EXIT
LDK RTCL SET TIMEOUT
CRD ES
AOM FJOA INDICATE WAIT MODE
WFJ1 LDN 0
STD T7
WFJ2 RJM FJO FIND JOB
NJN WFJ3 IF JOB FOUND
UJN WFJX RETURN
* UJN *+1 (TIMEOUT)
WFJA EQU *-1
ERRPL WFJ6-WFJB-40 RANGE ERROR
LDC UJNI+WFJ6-WFJB
STM WFJB
LDN 77-WFJA+WFJX-1
ERRNG 40-WFJA+WFJX RANGE ERROR
RAM WFJA
UJN WFJ1 WAIT FOR CLEAR CONTROL POINTS
WFJ3 RJM CSS CHECK FOR SELECTED SUBSYSTEM
* UJN WFJ6 (TIMEOUT/ONLY SELECTED SUBSYSTEMS REMAIN)
WFJB EQU *-2
ZJN WFJ4 IF NOT SELECTED SUBSYSTEM
LDC UJNI+1
STM WFJA
UJN WFJ2 CHECK NEXT JOB
* CALCULATE ELAPSED TIME.
WFJ4 RJM CET COMPUTE ELAPSED TIME
MJN WFJ7 IF NOT TIMEOUT YET
LDC UJNI+1
STM WFJA
WFJ6 LDD FS+2
LPN 1
ADD FS+1
NJN WFJ7 IF ROLLOUT REQUESTED OR ERROR FLAG SET
LDC ROSR+4000 SELECT SCHEDULER ROLLOUT, ALTERNATE CP/PCP
STD CM+1
LDD T7 SET CP/PCP NUMBER
STD CM+2
MONITOR ROCM
WFJ7 RJM DEL DELAY 50 MS
LJM WFJ1 FIND JOB
TITLE PRESET.
PRS SPACE 4,10
** PRS - PRESET.
*
* USES T1, T2, CM - CM+4, ES - ES+4, T3 - T3+4.
*
* CALLS IFP.
*
* MACROS SFA.
PRS SUBR ENTRY/EXIT
RJM IFP INITIALIZE *COMPGFP*
LDK PCPP SET FWA OF PCPA-S
CRD CM
LDD CM+3
SHN 14
LMD CM+4
SBK 200B
STM CCAA+1
SHN -14
RAM CCAA
LDD CM+2
ERRNZ MCTP-PCPP CODE DEPENDS ON VALUE
STM FJOB STORE TOTAL OF CP-S + PCP-S + 2
ISTORE SMDA,(UJN SMD4) CHECKPOINT REQUESTED FLAG IMMATERIAL
ISTORE SMDB,(UJN SMD6) SKIP UTILITY INTERLOCK
LDD NC SET CONTROL POINT NUMBER IN *1MB* CALL
RAM SCKE+1
LDD IR+3 SET *1MB* FUNCTION CODE
STM SCKE+2
LDK MEFL GET TRACK SHIFT COUNT AND USER EM SHIFT
CRD CM
LDD CM+2 TRACK SHIFT COUNT (EMSC)
SHN -5
LPN 3
STD T1
RAM CUAB
LDD T1
RAM CUAA
LDD T1
SBN 2 SET ROUND UP
PJN PRS1 IF NO ROUND UP NEEDED
STD T0
SHN 1
LPN 3 3 IF EMSC=0, 1 IF EMSC=1
RAM CCSB
LDD T0
LPN 77
PRS1 RAM CCSC
LDD CM+2 USER SHIFT COUNT (UESC)
SHN -11
STD T2
SBD T1
RAM UCPB
LDD T2
RAM CCSE
LDN 0
SBD T2
RAM CCSD
LDD IR+2 CHECK FUNCTION CODE
SBN 2
MJN PRS3 IF FUNCTION 0 OR 1
SBN 10-2
ZJN PRS2 IF FUNCTION 10
SBN 13-10
NJP PRSX IF NOT FUNCTION 13
PRS2 LDC SCK8 SET EXIT PROCESSING ADDRESS
STM DPPA
PRS3 LDC UJNI+2 ENABLE SETTING *VALID CHECKPOINT FILE*
STM WLAG
LDN ESTP SEARCH FOR UEM EQUIPMENT
CRD T3
LDN NOPE-1
STD T5
PRS4 AOD T5
LMD T6
ZJN PRS5 IF NO UEM EQUIPMENT
SFA EST,T5
ADK EQDE
CRD ES
LDD ES
SHN 21-13
PJN PRS4 IF NOT MASS STORAGE
LDD ES+4 CHECK MEMORY TYPE
SHN 3
ADN DILL
CRD CM
LDD CM+3
SHN -6
LPN 7
LMN 4
NJN PRS4 IF NOT UEM MEMORY TYPE
LDC LDDI+ST ENABLE UEM CHECKPOINT
STM WSTA
LDD ES+4 SET UEM MST ADDRESS
STM UCPA
PRS5 LJM PRSX RETURN
SPACE 4,10
IFP HERE REMOTE *IFP* ASSEMBLY
SPACE 4,10
* OVERFLOW CHECKS.
ERRNG EPFW-OVL0-ZTDL *0TD* OVERFLOW
ERRNG EPFW-OVL0-ZSDL *0SD* OVERFLOW
OVERFLOW OVLA,EPFW
TTL 1CK/3CL - ADDITIONAL CHECKPOINT FUNCTIONS.
TITLE
QUAL 3CL
IDENT 3CL,OVLA
*COMMENT 1CK - ADDITIONAL CHECKPOINT FUNCTIONS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1995.
SPACE 4,10
*** 3CL - ADDITIONAL CHECKPOINT FUNCTIONS.
SPACE 4,10
ORG OVLA
SPACE 4,10
ENT SUBR ENTRY
LJM 0,PA PROCESS SELECTED FUNCTION
TITLE MAIN ROUTINES.
IDC SPACE 4,10
** FUNCTION 5.
* INITIALIZED DEVICE CHECKPOINT.
*
* ENTRY (IR+3) = EST ORDINAL.
* (IR+4) = PREVIOUS ACCESS STATUS (MMF).
IDC BSS 0 ENTRY
RJM SDP SET DEVICE PARAMETERS
NJP DPP IF DEVICE IS INACCESSIBLE
RJM WTT WRITE TRT
SETMS IO,(ND,NS),WBUF
RJM WLS WRITE LABEL SECTORS
RJM IDI INITIALIZE DEVICE INFORMATION SECTOR
RJM FIB FLUSH I/O BUFFERS
RJM CIL CLEAR INTERLOCKS
CMSTF LIPF CLEAR PF INITIALIZATION FLAG
CMSTF LIAL CLEAR FULL INITIALIZE FLAG
CMSTF LIHD CLEAR HALF TRACK INITIALIZE FLAG
CMSTF LIFD CLEAR FULL TRACK INITIALIZE FLAG
RJM SDA SET DEVICE AVAILABLE
LDD ES+4 READ FAMILY NAME
SHN 3
ADN PFGL
CRD CA
ADN MDGL-PFGL GET PF STATUS OF DEVICE
CRD CM
LDD CM
LPC 2000
NJN IDC1 IF AUXILIARY DEVICE
RJM GFO ENTER FAMILY NAME IN FOT
SCN 1
ZJN IDC1 IF ENTRY FOUND/CREATED
LDN STFF SET ERROR FLAG = *FOT FULL*
RJM SES
IDC1 LDC MMFL READ MMF STATUS WORD
CRD CN
SOD CN+2 DECREMENT INITIALIZED DEVICE COUNT
MJN IDC3 IF NOT MMF SYSTEM
LMC 4000
NJN IDC2 IF NOT END OF DEVICE INITIALIZATION
STD CN+2
LCN DATI CLEAR FLAG REGISTER INTERLOCK
RJM IFR
IDC2 LDC MMFL STORE MMF STATUS WORD
CWD CN
LDD IR+4
ZJN IDC3 IF NO PREVIOUS ACCESS IN DAT
LDD ES CHECK DEVICE STATUS
SHN 21-11
PJN IDC4 IF NON-SHARED DEVICE
LDD ES+4 READ MST ACTIVITY WORD
SHN 3
ADN SDGL
CRD CM
LDD CM CHECK ECS POINTER
ADD CM+1
IDC3 NJN IDC4 IF MST/TRT ECS RESIDENT
LDD IR+3
STD CM+1
LDN SB0S
STD CM+2
LDD HN SET DEVICE UNAVAILABLE
STD CM+4
LMC -0
STD CM+3
MONITOR SEQM
IDC4 LJM DPP DROP PP
RAC SPACE 4,10
** FUNCTIONS 6 AND 7.
* RECOVERY ABORT CHECKPOINT.
RAC BSS 0 ENTRY
LDC 4000 FLAG CHECKPOINT ABORT PROCESSING
STD TS
LDC RAC1 SET RETURN FROM *PFC*
STM PFCB
LJM PFC CHECKPOINT ALL DEVICES
RAC1 LDN MS2W-MS1W
STD T1
LDD IR+2
LMN 7
NJN RAC2 IF BUFFERED DEVICES CHECKPOINTED
LDC =C*NON-BUFFERED EQ-S CHECKPOINTED.*
STM RACA
RAC2 LDC DSCP*CPAS+MS1W
CWM =C*ALL EQ-S CHECKPOINTED.*,T1
RACA EQU *-1
CWM RACB,TR *RECOVERY ABORTED.*
UJN * HANG DEADSTART
RACB DATA C*RECOVERY ABORTED.*
RLT SPACE 4,10
*** FUNCTION 12.
* REPAIR LABEL TRACK.
*
* ENTRY (IR+3) = EST ORDINAL.
RLT BSS 0 ENTRY
RJM SDP SET DEVICE PARAMETERS
SETMS IO,(AD,DF,ND,RW),WBUF
RJM WTT WRITE TRT
SETMS IO,(AD,DF,ND),WBUF
RJM WLS WRITE LABEL SECTORS
ENDMS
RLT1 RJM CIL CLEAR INTERLOCKS
LDD IA SET REPAIR-ATTEMPTED FLAG FOR *1MV*
CRD IR
LDD IR+3
SCN 40
LMN 40
STD IR+3
LDD IA
CWD IR
LJM PPR RETURN TO *1MV*
TITLE SUBROUTINES.
IDI SPACE 4,10
** IDI - INITIALIZE DEVICE INFORMATION SECTOR.
*
* ENTRY (T4) = CHANNEL.
* (T5) = EQUIPMENT.
* (T6) = LABEL TRACK.
* LABEL TRACK INTERLOCKED.
*
* USES T1, T7.
*
* CALLS WMS.
*
* MACROS ENDMS, SETMS.
IDI SUBR ENTRY/EXIT
LDC 100*5 CLEAR SECTOR
STD T1
IDI1 LDN 0
STM BFMS+2-1,T1
SOD T1
NJN IDI1 IF NOT COMPLETE
LDN DILT SET SECTOR
STD T7
ADN 1 SET CONTROL BYTES
STM BFMS
LDD HN
STM BFMS+1
SETMS IO,(ND,NS,RW)
LDC BFMS+WLSF WRITE SECTOR
RJM WMS
ENDMS
UJN IDIX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPIFR
*CALL COMPSDA
QUAL UFT
QUAL$ EQU 0 DONT REQUALIFY COMMON DECK
GFO$ EQU 0 DEFINE FOT ACCESS ROUTINE
FN EQU CA CM WORD BUFFER (5 LOCATIONS)
*CALL COMPUFT
QUAL *
GFO EQU /UFT/GFO
SPACE 4,10
* OVERFLOW CHECKS.
ERRNG BUF-* OVERFLOW INTO COMMON BUFFER AREA
OVERFLOW OVLA,EPFW
SPACE 4
TTL 1CK - SYSTEM CHECKPOINT.
END