IDENT 0DF,DRFX
PERIPH J
BASE MIXED
SST
*COMMENT 0DF - DROP FILE.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 0DF - DROP FILE.
SPACE 4,10
*** 0DF - DROP FILE.
* G. R. MANSFIELD. 70/07/30.
* R. E. TATE. 70/11/30.
* M. E. MADDEN. 73/04/01.
* D. D. SADLER 75/01/18.
* P. D. HAAS. 85/01/20.
SPACE 4,10
*** 0DF IS A LOCATION FREE ROUTINE TO BE USED FOR
* DROPPING ANY SYSTEM FILE.
*
* ALL FILES ARE REMOVED FROM THE LOCAL FNT
* AND THE ASSIGNED EQUIPMENT OR TRACKS WILL BE RELEASED.
* THE JOBS MASS STORAGE PRU LIMIT IS ALSO INCREMENTED, UNLESS
* BIT 0 OF ((LA)-1) IS SET.
* *0DF* DOES NOT SET THE FILE BUSY BEFORE DROPPING.
* NOTE - *0DF* WILL HANG WITH AN *HNGM* MONITOR FUNCTION
* FOR THE FOLLOWING CONDITIONS -
* 1. FNT ADDRESS FOR FILE TO BE DROPPED IS ZERO.
* 2. FILE TYPE IN FNT ENTRY IS ILLEGAL.
* 3. PROCESSOR IS NOT DEFINED FOR THE FILE TYPE.
SPACE 4,10
*** ENTRY CONDITIONS.
*
*
* (FA) = 12/FNT ENTRY RELATIVE ADDRESS IN NFL
*
* ((LA)-1) = 10/, 1/D, 1/R
*
* WHERE -
*
* D = PROCESS *ROFT* FILES. THIS SHOULD ONLY BE SET BY
* *1RO* DURING ERROR PROCESSING OR BY *1AJ* DURING
* *DMP=* PROGRAM ABNORMAL TERMINATION PROCESSING TO
* ALLOW THE DM* FILE TO BE RELEASED.
*
* R = RESOURCE UPDATE CONTROL. FOR MAGNETIC TAPE
* FILES AND PERMANENT FILES ON PACKS (FOR
* SUBSEQUENT CALL TO *0RF*/*0RT*).
* 0 = *RETURN* FILE.
* 1 = *UNLOAD* FILE (DOES NOT DECREMENT RESOURCE
* FILE COUNT).
SPACE 4,10
*** EXIT CONDITIONS.
*
*
* (A) = (FA) = 0 IF OPERATION COMPLETED SUCCESSFULLY.
*
* (A) .LT. 0 IF MASS STORAGE DEVICE INACCESSIBLE.
* (T5) = EST ORDINAL OF INACCESSIBLE DEVICE, IF INACCESSIBLE.
* NOTE - THE INACCESSIBLE DEVICE MAY BE A DEVICE OTHER
* THAN THE ONE ON WHICH THE FILE BEING RETURNED
* RESIDES.
* (FA) = FNT ORDINAL, IF DEVICE INACCESSIBLE.
* FNT LEFT BUSY, IF DEVICE INACCESSIBLE.
* (FS - FS+4) = FST WORD OF FNT ENTRY.
SPACE 4,10
** 0-LEVEL OVERLAYS CALLED.
*
*
* *0DQ*, *0FA*, *0PT*, *0RF*, *0RP*, *0RT*.
SPACE 4,10
** COMMON DECKS.
*CALL COMPMAC
*CALL COMPREL
*CALL COMSCPS
*CALL COMSLFD
*CALL COMSZOL
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
T8 EQU 16 CHECKPOINT REQUEST
FS EQU 20 - 24 FST INFORMATION (5 LOCATIONS)
QA EQU 26
FA EQU 57 FNT ENTRY RELATIVE ADDRESS IN NFL
****
TITLE MAIN ROUTINE.
DRF SPACE 4,10
** DRF - MAIN ROUTINE.
ORG 5
DRF SUBR ENTRY/EXIT
LJM IFP IDENTIFY AND EXECUTE FILE PROCESSOR
EZO SPACE 4,25
** EZO - EXECUTE ZERO-LEVEL OVERLAY.
*
* ENTRY (A) = OVERLAY NAME.
* (FA) = RELATIVE FNT ADDRESS IN NFL.
* (FS - FS+4) = FST INFORMATION.
* ((OVL)-1) = FLAGS.
*
* EXIT (A) = (FA) = 0.
*
* ERROR TO *DRFX* IF MASS STORAGE DEVICE INACCESSIBLE.
*
* CALLS EXR, *0DQ*, *0FA*, *0PT*, *0RF*, *0RP*, *0RT*.
*
* MACROS EXECUTE.
EZO BSS 0
EXECUTE 0DQ,=
EXECUTE 0FA,=
EXECUTE 0PT,=
EXECUTE 0RF,=
EXECUTE 0RP,=
EXECUTE 0RT,=
RJM. EXR
PJN DRF2 IF NO INACCESSIBLE DEVICE ERROR
NFA FA,R
ADN FSTL RESTORE FST INFORMATION
CRD FS
LCN 0
DRF1 UJN DRFX EXIT
DRF2 UJN *+2 CHECK EQUIPMENT ASSIGNED
DRFA EQU DRF2
UJN PFT4 CONTINUE WITH *0RF* CALL
DRF3 LDC 0
DRFB EQU *-1
ZJN DRF4 IF NOT TO RELEASE EQUIPMENT
STD CM+1
MONITOR DEQM RELEASE ASSIGNED EQUIPMENT
* CLEAR FNT ENTRY IN NFL.
DRF4 LDD FA SET RELATIVE FNT ADDRESS
STD CM+4
LDN DLFS SELECT DELETE LOCAL FILE
STD CM+1
MONITOR PLFM CLEAR FNT ENTRY
* LDN 0
STD FA
UJN DRFX EXIT
PFT SPACE 4,30
** PFT - RELEASE PERMANENT FILE.
*
* USES CM - CM+4.
*
* CALLS EZO.
*
* MACROS MONITOR, NFA, SFA.
*
* NOTE LOADING *0FA*, *0OD*, *0PT*, *0RF*, *0RP*, OR *0RT*
* AND THEIR PARAMETERS OVERLAYS CODE STARTING AT *PFT*.
*
* *0FA* IS CALLED TO RETURN A PERMANENT FILE FOR
* WHICH A MATCHING FAST-ATTACH FNT ENTRY WAS FOUND.
*
* *0OD* IS CALLED TO RETURN ALL OPTICAL DISK FILES.
* *OPT* IS CALLED TO CLEAR THE PRIMARY FILE POINTERS
* IN THE JOB EJT ENTRY WHEN DROPPING THE PRIMARY FILE.
*
* *0RP* IS CALLED TO RETURN ALL OTHER PERMANENT FILES.
*
* *0RF* IS CALLED AFTER *0RP* TO DECREMENT THE JOB
* RESOURCE COUNTS WHENEVER THE PERMANENT FILE IS THE
* LAST DIRECT ACCESS FILE ATTACHED TO THIS JOB THAT
* RESIDES ON A SPECIFIC REMOVABLE AUXILIARY PACK.
*
* *0RT* IS CALLED FOR ALL FILES ASSIGNED TO TAPE
* EQUIPMENT (*MT*, *NT*, *CT*, *AT* OR *TE*) TO CLEAR
* THE ASSOCIATED VSN FILE ENTRY AND TO DECREMENT THE
* JOB RESOURCE COUNTS.
PFT4 LDN 5 FLAG *0RP* PROCESSING COMPLETED
STD FS+1
NFA FA,R STORE FST (FIRST TRACK BYTE CLEAR)
ADN FSTL
CWD FS
AOM DRFA-OVL ENABLE DELETION OF FNT ENTRY
PFT5 LDM -1-OVL GET *0DF* PARAMETER WORD
LPN 1
STM -1 SET RESOURCE UPDATE CONTROL
LDC 3R0RF
LJM EZO-OVL LOAD AND EXECUTE *0RF*
OVL EQU *+1 ZERO-LEVEL OVERLAY LOAD ADDRESS
PFT BSS 0 ENTRY
LDD CM+3 SET FILE MODE
LPN 77
STM OVL-1 SET *0RP* PARAMETER WORD
LDD FS+4 CHECK FILE TYPE
SHN 21-12
PJN PFT1 IF NOT FAFT
LDC 2RFA SET *0FA* CALL
STM EZOA
PFT1 SFA EST,FS FETCH EST ENTRY
ADK EQDE
CRD CM
LDD CM+4
SHN 3
ADN MDGL
CRD CM
LDD CM
SHN 0-12
LMN 3
NJN DRF5 IF NOT REMOVABLE AUXILIARY DEVICE
LDD FA
STD CM+4 SET RELATIVE FNT ADDRESS
LDN DLCS
STD CM+1
MONITOR PLFM COUNT FILES ATTACHED ON DEVICE
SOD CM+3
NJN DRF5 IF NOT LAST FILE
* PROCESS LAST FILE ON A REMOVABLE AUXILIARY DEVICE.
LDD FS+1
SHN 0-13
NJN PFT3 IF *0RP* NOT YET CALLED
LDN OVL
RAD LA
LDD FS+1
NJN PFT2 IF INTERMEDIATE PROCESSING STATE
LJM PFT4-OVL DECREMENT RESOURCE COUNTS
PFT2 LJM PFT5-OVL CONTINUE PROCESSING
PFT3 SOM DRFA ENABLE *0RF* PROCESSING
* SET ZERO-LEVEL OVERLAY ENTRY CONDITIONS.
DRF5 LDN OVL ADJUST LOAD ADDRESS
RAD LA
LDC 3R0RP SET OVERLAY NAME
EZOA EQU *-1
LJM EZO-OVL EXECUTE OVERLAY
IFP SPACE 4,15
** IFP - IDENTIFY FILE PROCESSOR.
*
* ENTRY (FA) = FNT ENTRY RELATIVE ADDRESS IN NFL.
*
* EXIT TO FILE PROCESSORS WITH FOLLOWING -
* (A) = 2.
* (T8) = CHECKPOINT REQUEST.
* (CM - CM+4) = FNT ENTRY.
* (FS - FS+4) = FST INFORMATION.
*
* USES T1.
*
* MACROS MONITOR, NFA.
IFP BSS 0 ENTRY
LDM -1 CHECK *DROP ROFT* FLAG
LPN 2
NJN IFP1 IF *ROFT* FILE TO BE DROPPED
STM TFTY+ROFT CLEAR PROCESSOR
IFP1 LDD FA
ZJN IFP2 IF NO FNT ADDRESS
NFA FA,R
CRD CM READ FNT
ADN FSTL
CRD FS
LDD CM+4 GET FILE TYPE
SHN -6
SBN MXFT
PJN IFP2 IF ILLEGAL FILE TYPE
ADC TFTY+MXFT SET TABLE ADDRESS
ADD LA
STD T1
LDI T1
NJN IFP3 IF PROCESSOR PRESENT
IFP2 MONITOR HNGM HANG PP
* LDN 0
LJM DRFX EXIT
IFP3 LPC 3777 SET PROCESSOR ADDRESS
STM IFPA
LMI T1 SET CHECKPOINT REQUEST
STD T8
LDN 2
LJM * EXIT TO FILE PROCESSOR
IFPA EQU *-1
TFTY SPACE 4,10
** TFTY - TABLE OF FILE TYPE PROCESSORS.
*
* ENTRY 1 WORD.
* INDEXED BY FILE TYPE.
*
*T, 1/C, 11/ADDR
*
* C = CHECKPOINT REQUEST.
* ADDR = ADDRESS OF FILE PROCESSOR.
TFTY INDEX
INDEX INFT,INP+4000 INPUT
INDEX QFFT,QUE+4000 QUEUED = DROP FILE
INDEX ROFT,RFA ROLLOUT = RELEASE FILE
* INDEX ROFT,0 (IF *ROFT* FILE ILLEGAL)
INDEX LIFT,LIB LIBRARY
INDEX PTFT,PTY PRIMARY
INDEX PMFT,PFT PERMANENT = 0RP
INDEX SYFT,SYS SYSTEM FILE TYPE
INDEX LOFT,RFA LOCAL FILE TYPE = DROP FILE
INDEX MXFT
LIB TITLE FILE TYPE PROCESSORS.
LIB SPACE 4,20
** LIB - PROCESS LIBRARY FILE.
*
* EXIT TO *SYS*.
* IF THE TRACK INTERLOCK BIT (BIT 11 OF FST BYTE 4)
* IS SET, THE TRACK INTERLOCK ON THE FIRST TRACK IS
* CLEARED. IF THE PF ACTIVITY BIT (BIT 3 OF FUT BYTE 2)
* IS SET, THE PF ACTIVITY COUNT FOR THAT EQUIPMENT
* IS DECREMENTED.
*
* USES CM - CM+4.
*
* MACROS MONITOR, NFA.
LIB BSS 0 ENTRY
LDD FS+4 CHECK TRACK INTERLOCK
SHN 21-11
PJN LIB1 IF INTERLOCK NOT SET
LDD FS+1
STD CM+2
LDD FS SET EST ORDINAL
STD CM+1
LDN CTIS SELECT CLEARING OF TRACK INTERLOCK
STD CM+3
MONITOR STBM CLEAR INTERLOCK
LIB1 NFA FA,R READ *FUTL* WORD OF FNT
ADN FUTL
CRD CM
LDD CM+2
LPN 10
ZJN LIB2 IF PF ACTIVITY BIT NOT SET
LDD FS
STD CM+1
LDN DPAS DECREMENT PF ACTIVITY
STD CM+3
MONITOR STBM
LIB2 LJM SYS RETURN SYSTEM FILE
INP SPACE 4,15
** INP - PROCESS INPUT FILE.
*
* EXIT TO *DRFX*, IF INPUT FILE IS CONTROL STATEMENT FILE.
* TO *RFA*, IF NOT CONTROL STATEMENT FILE.
*
* MACROS NFA.
INP BSS 0 ENTRY
LDC FNTN CHECK FNT RELATIVE ADDRESS
LMD FA
NJN INP2 IF NOT CONTROL STATEMENT FILE
LDD CM+4
SCN 77 CHANGE FILE NAME TO -INPUT*-
RAM INPB+4
AOD FS+4 SET STATUS COMPLETE
LDD LA
RAM INPA
NFA FA,R
CWM. INPB,ON REWRITE FILE NAME
INPA EQU *-1
ADK FSTL-1 STORE FILE STATUS
CWD FS
LDN 0
LJM DRFX EXIT
INP2 LDN 0
UJN RFA RELEASE FILE ASSIGNMENT
INPB VFD 42/6LINPUT*,6/1,12/NDST
PTY SPACE 4,10
** PTY - PROCESS PRIMARY FILE.
*
* EXIT TO *RFA*.
*
* USES CM - CM+4.
PTY BSS 0 ENTRY
LDD CP
ADN TFSW
CRD CM
LDN 0 CLEAR PRIMARY FILE RELATIVE ADDRESS
STD CM+1
LDD CP
ADN TFSW
CWD CM
LDN 1
* UJN RFA RELEASE FILE ASSIGNMENT
QUE SPACE 4,10
** QUE - PROCESS QUEUE FILE.
*
* EXIT TO *RFA*.
QUE EQU INP2
SYS SPACE 4,10
** SYS - PROCESS SYSTEM FILE.
*
* EXIT TO *DRF3*.
SYS EQU DRF3
RFA SPACE 4,25
** RFA - RELEASE FILE ASSIGNMENT.
*
* ENTRY (A) = 0 IF QUEUE FILE.
* = 1 IF PRIMARY FILE.
* = 2 FOR OTHER FILE TYPES.
* (T8) = CHECKPOINT REQUEST.
* (FA) = FNT ADDRESS.
* (FS - FS+4) = FST INFORMATION.
*
* EXIT TO *DRF5* TO LOAD AND EXECUTE -
* *0DQ* IF QUEUE FILE.
* *0OD* IF OPTICAL DISK FILE.
* *0PT* IF PRIMARY FILE.
* *0RT* IF TAPE FILE.
* TO *SYS* FOR ALL OTHER FILES.
*
* USES T2, QA, CM - CM+4.
*
* CALLS RMS.
*
* MACROS SFA.
RFA BSS 0 ENTRY
STD T2
LDM -1 SET RETURN / UNLOAD FLAG
LPN 1
STM OVL-1
LDD FS
ZJN RFA3 IF EST ORDINAL ZERO
SFA EST
ADK EQDE READ EST ENTRY
CRD CM
LDD CM CHECK EQUIPMENT TYPE
SHN 21-13
PJN RFA6 IF NOT MASS STORAGE
SOD T2
MJN RFA2 IF QUEUE FILE
RJM RMS RELEASE MASS STORAGE SPACE
LDD T2
NJN RFA3 IF NOT PRIMARY FILE
STD FS
STD FS+1
LDC 2RPT SELECT *0PT*
RFA1 STM EZOA
LJM DRF5 LOAD AND EXECUTE OVERLAY
RFA2 LDD FS+1
NJN RFA4 IF FILE USED
RFA3 LJM SYS DELETE FNT ENTRY
RFA4 LDN 0 SELECT QFT SEARCH
STD QA
STM OVL-1 RELEASE DISK SPACE
LDC 2RDQ
UJN RFA1 LOAD AND EXECUTE *0DQ*
RFA6 LDD CM+3 CHECK DEVICE TYPE
LMC 2RNT
ZJN RFA8 IF TAPE DEVICE
LMC 2RMT&2RNT
ZJN RFA8 IF TAPE DEVICE
LMC 2RCT&2RMT
ZJN RFA8 IF TAPE DEVICE
LMC 2RAT&2RCT
ZJN RFA8 IF TAPE DEVICE
LDD CM
SHN 21-12
MJN RFA7 IF ALLOCATABLE DEVICE
LDD FS
LPC 777
STM DRFB SET EQUIPMENT TO RELEASE
RFA7 LDD CM+3 CHECK DEVICE TYPE
LMC 2RTE
ZJN RFA8 IF *TE*
LMC 2ROD&2RTE
NJP RFA3 IF NOT *OD*
LDC 2ROD SET *0OD* OVERLAY
STM RFAA
RFA8 LDD FS+2
LPN 77 ISOLATE RANDOM ADDRESS
STD FS+2
LDD FS+4
SHN 21-2
MJN RFA9 IF PREVIOUS *0RT* REJECT
SHN 2-21
STD FS+4
RFA9 LDC 2RRT
* LDC 2ROD (IF OPTICAL DISK)
RFAA EQU *-1
UJP RFA1 LOAD AND EXECUTE *0RT* OR *0OD*
RMS SPACE 4,15
** RMS - RELEASE MASS STORAGE.
*
* ENTRY (FA) = FNT ENTRY RELATIVE ADDRESS IN NFL.
* (T8) = CHECKPOINT REQUEST.
* (FS - FS+4) = FST INFORMATION.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
RMS SUBR ENTRY/EXIT
LDD FS+1
ZJN RMSX IF FILE UNUSED
STD CM+2
LDD FS
LMD T8 MERGE CHECKPOINT REQUEST
STD CM+1
MONITOR DTKM DROP TRACKS
* INCREMENT PRU LIMIT FIELD IN CONTROL POINT AREA.
* ACTUAL COUNT OF SECTORS RETURNED VIA DTKM IS IN CM+3 - CM+4.
LDN CICS INCREMENT CP AREA FIELD FUNCTION CODE
STD CM
LDK ACLW ADDRESS OF MASS STORAGE SECTOR LIMIT
STD CM+1
LDN 0D*100+18D POSITION AND WIDTH OF LIMIT FIELD
STD CM+2
LDD MA UADM FUNCTION MESSAGE BUFFER CONTENTS
CWD CM
LDN 1 SET UADM REQUEST COUNT AND NO DROP OF PPU
STD CM+1
STD CM+2
MONITOR UADM INCREMENT MASS STORAGE SECTOR LIMIT
* LDN 0
UJN RMSX RETURN
SPACE 4,10
RSTR RESTORE INSTRUCTIONS
OVERFLOW SPACE 4,10
** OVERFLOW CHECKS.
*
* BYTES WHICH CAN BE ADDED BEFORE *OVL* IN *0DF*
* AND STILL ALLOW *0DQ*, *0FA*, *0PT*, *0RF*, *0RP*, AND
* *0RT* TO LOAD.
ERRNG ZDFL-OVL-ZDQL CHECK LENGTH OF *0DQ*
ERRNG ZDFL-OVL-ZFAL CHECK LENGTH OF *0FA*
ERRNG ZDFL-OVL-ZODL CHECK LENGTH OF *0OD*
ERRNG ZDFL-OVL-ZPTL CHECK LENGTH OF *0PT*
ERRNG ZDFL-OVL-ZRFL CHECK LENGTH OF *0RF*
ERRNG ZDFL-OVL-ZRPL CHECK LENGTH OF *0RP*
ERRNG ZDFL-OVL-ZRTL CHECK LENGTH OF *0RT*
ERRNG ZDFL-* BYTES WHICH CAN BE ADDED TO *0DF*
END