cdc:nos2.source:opl871:1ck
Table of Contents
1CK
Table Of Contents
- [00007] 1CK - SYSTEM CHECKPOINT.
- [00009] SYSTEM CHECKPOINT.
- [00151] MTBL - GENERATE TABLE OF PARALLEL MST ADDRESSES.
- [00177] SUBSYST - GENERATE SUBSYSTEM TABLE.
- [00226] MAIN PROGRAM.
- [00228] CKP - MAIN PROGRAM.
- [00324] SUBROUTINES.
- [00326] ABT - ABORT THE OPERATION.
- [00340] CBP - CLEAR *BAT* PERMISSIONS UNCONDITIONALLY.
- [00364] CDB - CHECK IF DEVICE IS BUFFERED.
- [00381] CIL - CLEAR INTERLOCKS.
- [00413] DDB - DROP DISK BUFFERS.
- [00436] FIB - FLUSH I/O BUFFERS.
- [00491] FWB - FLUSH WRITE BUFFERS.
- [00513] RBP - RELEASE *BAT* AND *BST* PERMISSIONS.
- [00536] SDP - SET DEVICE PARAMETERS.
- [00566] SMD - SELECT MASS STORAGE DEVICE.
- [00645] WLS - WRITE LABEL SECTORS.
- [00685] WMS - WRITE MASS STORAGE.
- [00699] WNS - WRITE NEXT SECTOR.
- [00739] WSE - WRITE ERROR PROCESSOR.
- [00779] WTB - WRITE TABLE.
- [00828] WTT - WRITE TRT.
- [00923] PRESET.
- [00925] PRS - PRESET PROGRAM.
- [01001] TFCN - FUNCTION PROCESSOR TABLE.
- [01056] MAIN ROUTINES.
- [01247] SUBROUTINES.
- [01251] ERR - PROCESS ERRORS.
- [01285] ACF - ALLOCATE CHECKPOINT FILE.
- [01330] CAD - CHECK ACTIVE DAYFILES.
- [01371] CBD - CHECK BUFFERED DISKS.
- [01393] CUA - CALCULATE UEM ADDRESS.
- [01435] FDB - FLUSH DAYFILE BUFFERS.
- [01465] FTB - FILL TRACK BUFFER.
- [01499] GLS - GET LOCAL AREA SECTOR.
- [01544] GSC - GET SECTOR COUNT.
- [01599] SCD - SET CHECKPOINT BITS.
- [01657] TUT - TRANSFER UEM TRACK TO DISK.
- [01706] UCP - CHECKPOINT UEM.
- [01778] WLA - WRITE LOCAL AREAS.
- [01907] WST - WRITE SYSTEM TABLES.
- [02123] ASW - ABORT SUBSYSTEMS WHERE JOB SCHEDULING IS REQUIRED FOR
- [02222] CCA - COMPUTE CPA/PCPA ADDRESS.
- [02241] CCP - CHANGE CONTROL POINT ASSIGNMENT.
- [02272] CCS - COMPUTE CHECKPOINT FILE SIZE.
- [02348] CET - COMPUTE ELAPSED TIME.
- [02367] CSC - CHANGE TO SYSTEM CONTROL POINT.
- [02384] CSS - CHECK FOR SPECIAL SUBSYSTEM.
- [02411] DEL - DELAY.
- [02418] DRJ - DISPOSE OF REMAINING JOBS.
- [02450] FJO - FIND JOB.
- [02507] ROJ - ROLLOUT NON-SUBSYSTEM JOBS.
- [02542] WFJ - WAIT FOR JOBS TO ROLLOUT OR TERMINATE.
- [02606] PRESET.
- [02608] PRS - PRESET.
- [02728] MAIN ROUTINES.
- [02849] SUBROUTINES.
- [02851] IDI - INITIALIZE DEVICE INFORMATION SECTOR.
Source Code
- 1CK.txt
- 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
cdc/nos2.source/opl871/1ck.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator