IDENT 0DQ,DQFX PERIPH J BASE MIXED SST *COMMENT 0DQ - DEQUEUE FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 0DQ - DEQUEUE FILE. SPACE 4,10 *** 0DQ - DROP QUEUE FILE. * * D. R. HILGREN. 79/10/30. * R. M. DESSEL. 81/03/26. * P. D. HAAS. 81/06/18. SPACE 4,10 *** *0DQ* IS A LOCATION-FREE ROUTINE USED TO DROP * A QFT ENTRY. *0DQ* PERFORMS THE FOLLOWING - * 1. SEARCH FOR QFT ENTRY. * 2. CLEAR QFT ENTRY. * 3. DROP DISK SPACE IF REQUESTED. * 4. INCREMENT MASS STORAGE PRU COUNTER IF DISK SPACE DROPPED. * 5. ISSUE ACCOUNT FILE MESSAGE IF FILE REMOVED FROM QUEUE. SPACE 4,15 *** ENTRY CONDITIONS. * * (QA) = 0. USE EQUIPMENT AND FIRST TRACK TO FIND QFT ENTRY. * THE QFT ENTRY WILL BE INTERLOCKED BY *0DQ* PRIOR TO * DELETION FOR FUNCTIONS 0 AND 1. * (QA) = QFT ORDINAL. USE QFT ORDINAL TO FIND ENTRY. THE * CALLER OF *0DQ* MUST INTERLOCK THE QFT ENTRY PRIOR TO * CALLING *0DQ*. * ((LA)-1) = 0 RELEASE QFT ENTRY AND DISK SPACE. * = 1 RELEASE QFT ENTRY ONLY. * = 2 RELEASE DISK SPACE ONLY (FILE NOT IN QFT). * (FS - FS+4) = FST INFORMATION. SPACE 4,10 *** EXIT CONDITIONS. * * (A) = 0 IF REQUESTED DEQUEUEING OPERATION PERFORMED. * .LT. 0 IF QUEUE FILE DEVICE INACCESSIBLE. * (T5) = QUEUE FILE DEVICE EST ORDINAL, IF DEVICE INACCESSIBLE. * * (QA) = QFT ORDINAL, IF QFT ENTRY FOUND AND DEQUEUED. * (QA) = 0, IF QFT ENTRY NOT FOUND. * * THE QUEUED FILE SYSTEM SECTOR WILL BE READ ON A RELEASE QFT * ONLY REQUEST (((LA)-1) =1) ONLY IF CREATION MODE IS NOT SET * IN THE QFT ENTRY. SPACE 4,10 *** USES. * * USES CM - CM+4, T1 - T7. SPACE 4,10 * COMMON DECK MACROS AND DEFINITIONS. *CALL COMPMAC *CALL COMPREL *CALL COMSCPS *CALL COMSSSE *CALL COMSZOL SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. FS EQU 20 - 24 FST INFORMATION (5 LOCATIONS) QA EQU 26 QFT ORDINAL **** TITLE MAIN ROUTINE. ** DQF - MAIN ROUTINE. ORG 5 DQF SUBR ENTRY/EXIT UJN DQF2 CHECK CALL PARAMETERS DQF1 RJM. EXR CALL *0QM* TO ISSUE ACCOUNTING MESSAGE LDN 0 SET OPERATION COMPLETE UJN DQFX RETURN VFD 24/0LAEQP *AEQP* MESSAGE IDENTIFIER OVLA EQU * *0QM* LOAD ADDRESS DQF2 LDD FS+1 STD T6 SET FIRST TRACK ADD QA ZJN DQFX IF FILE UNUSED/NULL REQUEST LDD FS STD T5 SET EST ORDINAL LDM -1 STI LA PRESERVE DEQUEUE OPTION SBN 2 ZJN DQF3 IF FILE NOT IN QFT RJM IFP INITIALIZE QFT PROCESSOR RJM SGQ SEARCH GLOBAL QUEUE ZJN DQFX IF FILE NOT FOUND LDD T4 LPN 4 DQF3 NJN DQF4 IF CREATION MODE RJM RSS READ QUEUE FILE SYSTEM SECTOR MJN DQF6 IF RECOVERABLE MASS STORAGE ERROR NJN DQF4 IF ERROR IN SYSTEM SECTOR LDI LA SBN 1 ZJN DQF4 IF NOT TO DROP DISK SPACE RJM DDS DROP DISK SPACE MJN DQF6 IF DEVICE INACCESSIBLE DQF4 LDI LA SBN 2 ZJN DQF5 IF FILE NOT IN QFT LDD QA STD CM+1 LDN PQFT STD CM+2 MONITOR MTRM RELEASE QFT ENTRY DQF5 LDM FIQF ZJN DQF8 IF FILE NOT QUEUED LDN OVLA SET *0QM* LOAD ADDRESS RAD LA EXECUTE 0QM,* LJM DQF1-OVLA CALL *0QM* TO ISSUE ACCOUNTING MESSAGE DQF6 LDM QFIF ZJN DQF7 IF QFT INTERLOCK NOT SET BY *0DQ* LDN CFIN SET CLEAR INTERLOCK FUNCTION RJM IQF CLEAR QFT INTERLOCK DQF7 LCN 0 SET DEVICE INACCESSIBLE DQF8 LJM DQFX RETURN FIQF CON 0 FILE QUEUED FLAG QFIF CON 0 QFT INTERLOCK SET BY *0DQ* FLAG TITLE SUBROUTINES. DDS SPACE 4,15 ** DDS - DROP QUEUE FILE DISK SPACE. * * ENTRY (FIQF) .NE. 0 IF FILE QUEUED. * * EXIT (A) .GE. 0 IF DISK SPACE DROPPED. * (A) .LT. 0 IF DEVICE INACCESSIBLE. * MASS STORAGE SECTOR LIMIT INCREMENTED IF FILE NOT * QUEUED. * * USES (CM - CM+2). * * MACROS MONITOR. DDS SUBR ENTRY/EXIT LDD T6 STD CM+2 LDD T5 RELEASE TRACK CHAIN LMC 5000 CHECKPOINT / RETURN ON INACCESSIBLE DEVICE STD CM+1 MONITOR DTKM LDD CM+1 SHN 21-11 MJN DDSX IF DEVICE INACCESSIBLE LDM FIQF NJN DDSX IF FILE QUEUED * 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 POSISTION 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 LJM DDSX RETURN IQF SPACE 4,15 ** IQF - SET OR CLEAR QFT INTERLOCK. * * ENTRY (A) = FUNCTION CODE FOR *SFI*. * (QA) = QFT ORDINAL. * * EXIT (A) = 0 IF OPERATION COMPLETE. * (A) .NE. 0 IF ERROR (OPERATOR OVERRIDE). * * USES T1. * * CALLS SFI. * * MACROS SFA. IQF SUBR ENTRY/EXIT STD T1 SET FUNCTION CODE SFA QFT,QA SET QFT ADDRESS RJM SFI INTERLOCK QFT ENTRY UJN IQFX RETURN RSS SPACE 4,20 ** RSS - READ QUEUE FILE SYSTEM SECTOR. * * ENTRY (A) = 0. * (T5) = EST ORDINAL OF QUEUE FILE. * (T6) = FIRST TRACK OF QUEUE FILE. * * EXIT (A) = 0 IF NO ERROR. * (A) .LT. 0 IF RECOVERABLE MASS STORAGE ERROR. * (A) .GT. 0 IF UNRECOVERABLE MASS STORAGE ERROR OR * ERROR IN SYSTEM SECTOR. * (FIQF) .NE. 0 IF FILE QUEUED. * (FIQF) = 0 IF FILE NOT QUEUED. * * USES T7. * * CALLS RDS. * * MACROS ENDMS, SETMS. RSS3 LMC 2000 SHN 21-12 (A) .LT. 0 IF ERROR RECOVERABLE RSS SUBR ENTRY/EXIT STD T7 SET SYSTEM SECTOR READ SETMS IO LDC BFMS READ SYSTEM SECTOR RJP RDS MJN RSS3 IF READ ERROR ENDMS LDP BFMS+1 LMN 77 NJN RSSX IF NOT SYSTEM SECTOR LINKAGE LDP BFMS LMC 3777 NJN RSSX IF NOT SYSTEM SECTOR LINKAGE LDP FTSS LMD T6 RSS1 NJN RSSX IF INCORRECT SYSTEM SECTOR LDP FNSS+4 CHECK FILE TYPE SHN -6 LMN QFFT ZJN RSS2 IF QUEUE FILE LMN INFT&QFFT NJN RSS1 IF NOT QUEUE FILE RSS2 LDP FGSS SET FILE QUEUED STATUS LPN 1 STM FIQF LDN 0 SET NO ERROR LJM RSSX RETURN WITH ERROR STATUS SGQ SPACE 4,25 ** SGQ - SEARCH GLOBAL QUEUE. * * ENTRY (QA) = 0 IF QFT SEARCH REQUIRED. * = QFT ORDINAL IF SPECIFIED. * (FS - FS+4) = FST INFORMATION. * QFT INTERLOCKED IF (QA) .NE. 0. * * EXIT (A) = 0, IF QFT ENTRY NOT FOUND OR ERROR IN * INTERLOCKING QFT ENTRY (OPERATOR OVERRIDE). * (QA) = QFT ORDINAL, IF ENTRY FOUND. * (T4) = CREATION MODE FLAG. * (T5) = EST ORDINAL. * (T6) = FIRST TRACK. * (QFIF) .NE. 0 IF QFT ENTRY INTERLOCKED BY *0DQ*. * * USES QA, CM - CM+4, T0 - T7. * * CALLS IQF. * * MACROS ISTORE, SFA. SGQ1 LDN QFTP READ QFT POINTERS CRD CM SGQ2 AOD QA ADVANCE ORDINAL LMD CM+2 ZJN SGQX IF END OF QFT SGQ3 SFA QFT,QA SET QFT ADDRESS ADK JSNQ READ CREATION MODE FLAG CRD T0 ADN ENTQ-JSNQ READ MASS STORAGE PARAMETERS CRD T5 SGQA LDD T6 COMPARE FIRST TRACK * UJN SGQX (QFT ORDINAL SPECIFIED) LMD FS+1 NJN SGQ2 IF NO MATCH LDD T5 LMD FS NJN SGQ2 IF NOT SAME EQUIPMENT LDN SFIN SET INTERLOCK FUNCTION RJM IQF INTERLOCK QFT ENTRY ZJN SGQ4 IF ENTRY INTERLOCKED LDN 1 SGQ4 LMN 1 STM QFIF SET INTERLOCK FLAG SGQ SUBR ENTRY/EXIT LDD QA ZJN SGQ1 IF QFT ORDINAL NOT SPECIFIED ISTORE SGQA,(UJN SGQX) BYPASS QFT SEARCH UJN SGQ3 FETCH MASS STORAGE PARAMETERS SPACE 4,10 ** COMMON DECKS. QFT$ EQU 1 ASSEMBLE QFT PROCESSOR IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE *CALL COMPGFP *CALL COMPSFI IFP HERE *COMPGFP* INITIALIZATION RSTR SPACE 4,10 ERRNG ZDQL-OVLA-ZQML *0QM* OVERFLOWS *0DQ* OVERFLOW 5,ZDQL SPACE 4,10 END