IDENT QREC1,FWA,QREC,01,00 ABS SST SYSCOM B1 *COMMENT QREC - QUEUE RECOVERY PROCESSOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE QREC - QUEUE RECOVERY PROCESSOR. SPACE 4 *** QREC - QUEUE RECOVERY PROCESSOR. * D. A. COAPSTICK 74/09/16. * R. A. JAPS. 75/02/19. SPACE 4,4 *** *QREC* IS A QUEUE RECOVERY UTILITY PROGRAM THAT ACTIVATES OR * DEACTIVATES QUEUED FILES AND/OR PROVIDES A LIST OF RELATIVE * INFORMATION PERTAINING TO INACTIVE QUEUES. SPACE 4 *** *QREC* MAY BE CALLED BY THE QUEUED FILE SUPERVISOR PROGRAM OR * COMMAND. *QREC* WILL ALSO BE CALLED BY A * COMMAND CALL TO *QLIST*. THE FOLLOWING PARAMETERS ARE * VALID FOR *QREC*. * * MI=MACHINE ID. * FM=FAMILY NAME. * DN=DEVICE NUMBER (FAMILY ENTRY MUST BE SPECIFIED). * FU=FAMILY NAME FOR USER INDEX REQUEUING. * UI=USER INDEX RANGE (E.G., UI=3-177). * DA=REQUEUING DATE. MAY BE A SINGLE ENTRY (DA=740916) OR A * RANGE ENTRY (DA=740911-740916) OR (DA=ALL). * FS=FILE SIZE RANGE (0-777777B). * IF 777777B IS SPECIFIED, ALL SIZES LARGER ARE INCLUDED. * I = ALTERNATE DIRECTIVE INPUT FILE. THIS IS A * COMMAND PARAMETER SPECIFYING WHAT FILE SHOULD * BE READ FOR INPUT DIRECTIVES. THESE DIRECTIVES * CONSIST OF ANY LEGAL K-DISPLAY INPUT OR COMMANDS. * THESE DIRECTIVES WILL BE PROCESSED AFTER THE * COMMAND DIRECTIVES BUT BEFORE ANY * K-DISPLAY INPUT IS ACCEPTED. * JSN=JOB SEQUENCE NUMBER. UP TO FIVE JSN-S. * ID=BATCH ID RANGE. * LA = LOWER SECURITY ACCESS LEVEL. * UA = UPPER SECURITY ACCESS LEVEL. * TUI=DESTINATION USER INDEX RANGE FOR SELECTING FILES * IN THE REMOTE BATCH QUEUE (*TF* MUST BE SPECIFIED). * TF=DESTINATION FAMILY FOR TERMINAL FOR SELECTING FILES * IN THE REMOTE BATCH QUEUE. * FC=FORMS CODE. MAY BE A SINGLE ENTRY (FC=F1), A LIST * (FC=F1/F2/F3), OR A RANGE (FC=F1-F2) WHERE F1 IS 2 * CHARACTERS, ALL, OR NULL (SPECIFIED BY **). * L=LFN. FILE TO RECEIVE OUTPUT. * OP=XX. REQUEUING OPTIONS. * RP - REQUEUE SPECIFIED FILES, PURGE OTHERS. * RI - REQUEUE SPECIFIED FILES, IGNORE OTHERS. * PI - PURGE SPECIFIED FILES, IGNORE OTHERS. * DI - DEQUEUE SPECIFIED FILES, IGNORE OTHERS. * DS=DT. SELECT FILE DESTINATION BY DISPOSITION TYPE. * FILE DESTINATION TYPES INCLUDE - * BC - BATCH. * RB - REMOTE BATCH. * DISPOSITION TYPES INCLUDE- * SF SPECIAL INSTALLATION DEFINED QUEUE FILES * IN INPUT * PU PUNCH * PL PLOT * PR PRINT - ANY PRINTER * P2 PRINT - 512 PRINTER * LR PRINT - 580-12 PRINTER * LS PRINT - 580-16 PRINTER * LT PRINT - 580-20 PRINTER * LX PRINT - 5870 NIP * LY PRINT - 5970 NIP * WT WAIT * PRINT ALL PRINT TYPES * ALL ALL TYPES * NONE NO TYPES * * DEFAULT VALUES DEFINED IN *QFSP* SPACE 4 ** ENTRY CONDITIONS. * * *QREC* IS ENTERED VIA A *RJ* FROM *QFSP*. * * *TARA* = FWA OF THE PARAMETER TABLE. * *QFTA* = *QFTP* WORD FROM CENTRAL MEMORY RESIDENT. * *TDAA* = FWA OF DEVICE ACCESS LEVEL TABLE. * *TEQA* = MASS STORAGE EQUIPMENT TABLE. * *TMSA* = MASS STORAGE DESCRIPTION TABLE. * *FOTA* = FAMILY ORDINAL TABLE. SPACE 4 *** DAYFILE MESSAGES. * * * * QFT THRESHOLD LIMIT.* = QFT HAS REACHED THE LIMIT * ALLOCATED FOR QUEUED FILES. RETRY WHEN SYSTEM IS NOT AS BUSY. * * * DNYY FM AAAAAAA NO IQFT FILE.* = NO IQFT * FILE EXISTS FOR SPECIFIED DEVICE. * * * DNYY FM AAAAAAA INCORRECT ACCESS LEVEL.* * THE JOB DOING THE *QREC* IS NOT VALIDATED FOR THE * ACCESS LEVELS OF THE DEVICE. * * * DNYY FM AAAAAAA IQFT INTERLOCKED.* = IQFT * FILE TRACK INTERLOCK SET. COULD MEAN IQFT * IS CURRENTLY BEING USED BY ANOTHER UTILITY. RETRY AT A * LATER TIME. * * * DNYY FM AAAAAAA FNT/QFT FULL.* = THE FNT OR QFT WAS * FILLED WHILE RECOVERING SPECIFIED DEVICE. * RETRY WHEN SYSTEM IS NOT AS BUSY. * * * DNYY FM AAAAAAA MS ERROR.* = MASS * STORAGE ERROR ON IQFT FILE THIS DEVICE. * * * DNYY FM AAAAAAA IGNORED - ERROR IDLE.* = QUEUES ON * THE SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE * HAD AN ERROR IDLE CONDITION. * * * DNYY FM AAAAAAA IGNORED - REMOVABLE.* = QUEUES ON * SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE IS * REMOVABLE. * * * DNYY FM AAAAAAA IGNORED - UNAVAILABLE.* = QUEUES ON * SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE IS * UNAVAILBLE. * * * DNYY FM AAAAAAA UNDEFINED ERROR.* * * * FOT FULL - FILES IGNORED.* - SOME OF THE QUEUED FILES * WERE NOT PROCESSED BECAUSE THERE WAS NO FOT ENTRY FOR THE * CREATION AND/OR THE DESTINATION FAMILY AND THE FOT WAS * FULL (MESSAGE ISSUED BY *COMCVQF*). * * * QREC/QLIST ABORTED.* * * * QUEUE STATUS INDEFINITE.* = REFLECTS QUEUE * STATUS IN EVENT OF ABNORMAL ABORT. * * * XXXX FILES ACTIVATED DNYY FM AAAAAAA.* = NUMBER * OF QUEUED FILES ACTIVATED THIS DEVICE. * * * XXXX FILES DEQUEUED DNYY FM AAAAAAA.* = NUMBER * OF QUEUED FILES DEQUEUED THIS DEVICE. * * * XXXX FILES IGNORED DNYY FM AAAAAAA.* = NUMBER * OF QUEUED FILES REMAINING INACTIVE THIS DEVICE. * * * XXXX FILES PURGED DNYY FM AAAAAAA.* = NUMBER * OF QUEUED FILES PURGED THIS DEVICE. * * * QUEUES UNRECOVERABLE THIS DEVICE.* = SOME OR ALL * QUEUE FILES LOST DUE TO A MASS STORAGE ERROR ON * THE IQFT FILE (ACCOMPANIES MS ERROR MESSAGE). * * * JSN EQNNNN TRACK TTTT LENGTH ERROR.* = PHYSICAL EOI * AND LOGICAL EOI(TRT) ARE NOT IDENTICAL. * * * NO INACTICE QUEUES PRESENT.* = NO INACTIVE WERE FOUND WHEN * PROCESSING A LIST COMMAND. (TO CONTROL POINT DAYFILE ONLY). * * * FILE NAME CONFLICT.* = FILE TO RECEIVE OUTPUT CAN * NOT BE NAMED *IQF*, OR *NIQFT*. SPACE 4 ** COMMON DECKS. *CALL COMCCMD *CALL COMCMAC *CALL COMSACC *CALL COMSDSP *CALL COMSJIO LIST X *CALL COMSIOQ *CALL COMSQFS *CALL COMSSFM LIST -X *CALL COMSMLS *CALL COMSSCD TITLE PROGRAM CONSTANTS. * PROGRAM CONSTANTS. BUFL EQU 1001B BUFFER LENGTHS LLIM EQU TPPA+PPPL LINE LIMIT PDFE EQU TPPA+PPPD PRINT DENSITY FORMAT EFFECTOR TITLE RESERVED LOCATIONS AND FETS. * RESERVED LOCATIONS. ORG OVLA FWA BSS 0 * INACTIVE QUEUED FILE ENTRY. (WORKING BUFFER). IQFE BSS QFEWL SPACE 4 * FETS. IQ BSS 0 OLD IQFT FILE "RFIQ" RFILEB IBUF,BUFL,EPR,(FET=8) NIQ BSS 0 NEW IQFT FILE "RFNI" FILEB NBUF,BUFL,(FET=9) O BSS 0 OUTPUT FILE OUTPUT FILEB OBUF,BUFL,(FET=7) R BSS 0 REACTIVATE FILE RECV FILEB RBUF,BUFL,(FET=8) P BSS 0 PURGE FILE PUR FILEB PBUF,BUFL,(FET=8) RPVB SPACE 4,10 * REPRIEVE BLOCK. RPVB VFD 36/0,12/31B,12/0 VFD 30/0,30/ERR BSSZ 27B TITLE MAIN LOOP. ** MAIN LOOP. * * ENTRY PARAMETER BLOCK DEFINED IN *COMSQFS* (TARA) * MASS STORAGE TABLE (TEQA) * * EXIT (X2) = K - DISPLAY ADDRESS. * (X5) = TERMINATING MESSAGE. * * USES X - 0, 1, 2, 3, 4, 5, 6. * A - 1, 2, 3, 4, 6. * B - 1, 3. * * CALLS CTF, PRS. * * MACROS MESSAGE, RECALL. * RETURN FROM PROCESSORS. QRE5 BX2 X2-X2 SET PRIMARY RIGHT SCREEN DISPLAY QREC SUBR ENTRY/EXIT SB1 1 SA1 QFTS QFT LENGTH NZ X1,QRE1 IF PRESET UNNECESSARY RJ PRS PRESET * DETERMINE FUNCTIONAL ROUTINE. QRE1 SA2 TARA+ARFC MX0 -12 BX2 -X0*X2 SA3 X2+TFCN SX6 X3+ SAVE PROCESSOR ADDRESS SA6 QREB SX1 X3-PAG ZR X1,QRE4 IF PAGE OPTION * SET OUTPUT FILE NAME. RECALL O MX0 42 SA4 O GET CURRENT FILENAME BX6 X6-X6 SA2 TARA+ARLL BX1 X4-X2 BX4 X0*X1 ZR X4,QRE2 IF NO FILE NAME CHANGE SA1 IQ CHECK FOR FILE NAME CONFLICTS BX4 X1-X2 BX4 X0*X4 ZR X4,QRE1.1 IF FILE NAME CONFLICT SA1 NIQ BX4 X1-X2 BX4 X0*X4 NZ X4,QRE1.2 IF NO FILE NAME CONFLICT QRE1.1 SX5 =C* FILE NAME CONFLICT.* MESSAGE X5 MX2 1 NO K - DISPLAY CHANGE JP QRECX RETURN QRE1.2 SA6 LSTA INITIALIZE LIST FLAGS SA6 GRDE QRE2 SX1 3 SET FILENAME IN FET BX6 X1+X2 SA6 A4 * DETERMINE IF REQUEUE/DEQUEUE FUNCTION. SX1 X3-GRD NZ X1,QRE4 IF NOT GO COMMAND PROCESSOR * SET PROPER PROCESSING ROUTINE. SA2 TARA+AROP OPTION PARAMETER SX3 DEIG IX3 X2-X3 ZR X3,QRE3 IF DEQUEUE OPTION SX3 PGIG IX2 X2-X3 ZR X2,QRE2.1 IF NOT REQUEUE RJ CTF CREATE TABLE OF ACTIVE FAMILIES BX6 X6-X6 CLEAR FOT FULL FLAG SA6 FOTF QRE2.1 SX3 B1 QRE3 SA3 X3+QREA BX6 X3 SA6 GRDA QRE4 SA3 QREB SB3 X3+ JP B3 JUMP TO PROCESSOR * FUNCTION TABLE. TFCN BSS 0 LOC 0 CON GRD GO COMMAND PROCESSOR CON PAG PAGE K-DISPLAY PROCESSOR CON LST LIST INACTIVE QUEUES PROCESSOR CON OUT DISPOSE OUTPUT FILE PROCESSOR LOC *O TFCNL EQU *-TFCN QREA BSS 0 + RJ DEQ DEQUEUE FILES + RJ PIQ PROCESS INACTIVE QUEUE FILES QREB CON 0 PROCESSOR ADDRESS TITLE REQUEUE/DEQUEUE PROCESSOR. GRD SPACE 4,20 ** GRD - REQUEUE AND DEQUEUE. * * *GRD* PERFORMS THE COMMON FUNCTIONS OF REQUEUING AND * DEQUEUING. * * EXIT TO *QRE5*. * (X5) = TERMINATING MESSAGE. * * USES X - 2, 3, 5, 6, 7. * A - 2, 3, 6, 7. * B - 0. * * CALLS DEQ, DND, EMG, IDM, PIQ, RAF. * * MACROS CLOCK, DATE, REPRIEVE, RETURN, REWIND, SETFS, * SKIPEI, WRITER. GRD BSS 0 * PRESET MULTIPLE EQUIPMENT INDEX. SX7 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH SA7 CEQP * WRITE REPORT PAGE HEADER. DATE WPHC1 SET DATE IN HEADER CLOCK WPHC2 SET TIME IN HEADER REWIND O SKIPEI O SX7 B1 SA7 LSTB INITIALIZE LINE NUMBER BX6 X6-X6 SA7 WPHA INITIALIZE PAGE COUNT SA6 WPHB CLEAR LINE COUNT SA7 PDFE+1 SET PRINT DENSITY FORMAT CONTROL FLAG SA6 NAQS CLEAR NUMBER OF AVAILABLE QFT SLOTS * CLEAN UP FILES. GRD2 SX3 IQ RETURN ATTACHED FILE RJ RAF RETURN NIQ RETURN IQF REWIND NIQ * DETERMINE NEXT DEVICE. GRD3 RJ DND DETERMINE NEXT DEVICE ZR X4,GRD6 IF END OF OPERATION SA3 X6+TMSA CHECK ERROR IDLE STATUS BX7 X4 LX3 59-11 SA7 GRDD *TEQA* TABLE ENTRY PL X3,GRD4 IF NO ERROR IDLE ON DEVICE SX5 EIDE*2000B *IGNORED - ERROR IDLE.* RJ EMG EQ GRD3 DETERMINE NEXT DEVICE GRD4 REPRIEVE RPVB,SET,237B SET REPRIEVE PROCESSING * BEGIN QUEUE OPERATION. GRDA RJ PIQ PROCESS IQFT FILE * RJ DEQ DEQUEUE REPRIEVE RPVB,SET,0 CLEAR REPRIEVE PROCESSING RJ IDM ISSUE DAYFILE MESSAGES. * DETERMINE IF END OF OPERATION. SA3 TARA+AROP SX2 X3-PGIG ZR X2,GRD5 IF PURGE/IGNORE OPTION SA2 NAQS CHECK NUMBER OF AVAILABLE QFT SLOTS SX5 PIQA * QFT THRESHOLD LIMIT.* PL X2,GRD5 IF THRESHOLD NOT REACHED BX6 X5 FLAG OPERATOR ACTION REQUIRED SA6 OPAM EQ GRD7 CONTINUE GRD5 SA2 TARA+ARDN ZR X2,GRD2 IF NO SPECIFIC DEVICE GRD6 SB0 0 SX5 =C* QREC COMPLETE. * GRD7 WRITER O FLUSH OUTPUT BUFFER SX6 B1 SA6 GRDE FLAG FILE WRITTEN BX7 X7-X7 SA7 LSTA CLEAR LIST FILE WRITTEN FLAG SA3 TARA+ARFC PL X3,QRE5 IF NOT COMMAND CALL SETFS O,0 JP QRE5 RETURN - COMPLETE GRDD BSS 1 *TEQA* TABLE ENTRY GRDE CON 0 *REQUEUE/DEQUEUE* FLAG TITLE RECOVER/DEQUEUE SUBROUTINES. DEQ SPACE 4,15 ** DEQ - DEQUEUE DEVICE. * * *DEQ* DEACTIVATES ALL QUEUES THAT MATCH THE PARAMETERS * FOR A SPECIFIC DEVICE. * * ENTRY (X7) AND (GRDD) = *TEQA* TABLE ENTRY. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 3, 5, 6. * * CALLS ATT, CAF, CLD, DAL, EMG, RQT, SPF, VQE, WOF. * * MACROS MOVE, QCALL, READ, READW, RECALL, REWIND, * SKIPEI, WRITER, WRITEW. DEQ10 RJ EMG ISSUE ERROR MESSAGES DEQ SUBR ENTRY/EXIT SX5 RDVE*2000B LX7 59-1 NG X7,DEQ10 IF REMOVABLE DEVICE LX7 59-0-59+1 SX2 X2+7000B SET ASSIGN-BY-ORDINAL FLAG SX5 FNFE*2000B PL X7,DEQ10 IF NO IQFT FILE ON DEVICE SA2 CEQP EST ORDINAL SX3 IQ ATTACH IQFT FILE AS *IQ* RJ ATT NZ X5,DEQ10 IF ERROR IN ATTACH SKIPEI X3,R POSITION FILE * DEQUEUING LOOP. REWIND NIQ RJ RQT READ QFT INTO *RBUF* SA2 QFTS SB5 RBUF SB6 X2+RBUF END OF QFT RECALL NIQ * BUILD CANDIDATE ENTRIES. DEQ3 SB5 B5+QFTE ADDRESS OF QFT ENTRY BX6 X6-X6 CLEAR RERUN FLAG SA6 DEQA LE B6,B5,DEQ5 IF END OF QFT SA5 B5+ READ QFT ENTRY MX0 -12 CLEAR LINKAGE FIELD BX1 X0*X5 ZR X1,DEQ3 IF EMPTY QFT SLOT LX5 59-1 NG X5,DEQ3 IF ATTACHED TO A JOB SX4 B1 SET CHECK FOR LID IN TABLE SA3 B5+2 CHECK LOGICAL IDENTIFIER RJ CLD NZ X3,DEQ3 IF NO MATCH SA1 TARA+AROP SELECT ORIGIN TYPE ACCESS LEVEL CHECK SB2 B0+ PRESET NO ORIGIN TYPE CHECK SX1 X1-2 PL X1,DEQ3.0 IF NOT REQUEUE SB2 B1+ SET ORIGIN TYPE CHECK DEQ3.0 SA1 TARA+ARUA SET ACCESS LEVEL LIMITS SA2 TARA+ARLA SA3 B5+INSQ GET *INSQ* WORD OF QFT ENTRY RJ CAF CHECK ACCESS LEVEL OF FILE NZ X1,DEQ3 IF FILE NOT SELECTED SX1 B5+ BX5 X1 RJ VQE VERIFY QFT ENTRY SB5 X5+ NZ X1,DEQ3 IF ENTRY DOES NOT MATCH SA3 CEQP CHECK EST ORDINAL BX1 X3-X2 NZ X1,DEQ3 IF NOT THIS EQUIPMENT * FILE MATCHES CRITERIA - CREATE PSEUDO IQFT ENTRY. SA4 NIQ+2 IN POINTER SX6 X4+QFEWL ADVANCE IN POINTER SA3 A4+2 LIMIT SX3 X3 IX2 X3-X6 LIMIT - (IN+QFEWL) SB3 X2 LE B3,DEQ4 IF NO ROOM IN BUFFER SA6 A4 SX6 B5-RBUF SET QFT ORDINAL IN ENTRY SX1 QFTE IX6 X6/X1 SA6 X4+QFEWL-1 SB3 QFEWL-QFTE-1 NUMBER OF WORDS TO CLEAR BX6 X6-X6 DEQ3.1 SB3 B3-B1 SA6 A6-B1 NZ B3,DEQ3.1 IF MORE WORDS TO CLEAR MOVE QFTE,B5,X4 MOVE QFT ENTRY TO *NBUF* JP DEQ3 LOOP FOR NEXT ENTRY * SET RERUN THIS DEVICE - NEW IQFT BUFFER FULL. DEQ4 SX3 B6 SAVE (B5) AND (B6) SX6 B5 LX6 18 BX6 X3+X6 SA6 DEQA * QFT ENTRYS PROCESSED - SET *QFM* PARAMETERS. DEQ5 SA1 NIQ RJ SPF * *QFM* BUILDS IQFT ENTRIES FOR SELECTED FILES. QCALL DEQF,NIQ DEQUEUE LIST * COPY DEQUEUED ENTRIES TO IQFT. READ NIQ,* DEQ6 READW NIQ,IQFE,QFEWL NZ X1,DEQ7 IF END OF BUFFER SA2 IQFE ZR X2,DEQ6 IF ENTRY NOT AVAILABLE WRITEW IQ,IQFE,QFEWL SA5 IDMB SA3 DEQC SX7 X5+B1 INCREMENT COUNT SA7 A5 SX5 WPHG SET FWA OF PAGE HEADER RJ WOF WRITE OUTPUT FILE JP DEQ6 DEQ7 SA5 IDMB ZR X5,DEQ8 IF NO FILES DEQUEUED WRITER IQ,R DEQ8 SA3 DEQA SB6 X3 LX3 -18 SB5 X3-QFTE NZ X3,DEQ3 IF MORE QFT-S TO PROCESS THIS DEVICE * RETURN EXISTING IQFT FILE/SET TRACK POINTER FOR NEW FILE. QCALL DTQF,IQ DETACH IQFT FILE BX6 X6-X6 SA6 ATTA CLEAR ATTACHED FLAG JP DEQX RETURN DEQA BSS 1 RERUN INDICATOR DEQB BSS 1 RETURN/PURGE FUNCTION DEQC DATA H*DEQUEUED* PIQ SPACE 4,20 ** PIQ - PROCESS IQFT FILE. * * *PIQ* PERFORMS WHATEVER OPTION IS SELECTED ON THE IQFT * FILE FOR A PARTICULAR DEVICE. * * ENTRY (X7) = *TEQA* TABLE ENTRY. * (CEQP) = EST ORDINAL. * * USES X - ALL. * A - 0, 1, 2, 3, 5, 6, 7. * B - 3. * * CALLS ATT, CAF, CAS, CIN, CLD, CME, EMG, PLE, RFB, VIE. * * MACROS QCALL, READEI, READW, RECALL, REQUEST, REWIND * WRITER, WRITEW. PIQ12 RJ EMG ISSUE ERROR MESSAGES PIQ SUBR ENTRY/EXIT LX7 59-0 PL X7,PIQX IF NO IQFT FILE ON THIS DEVICE LX7 59-1-59+0 SX5 RDVE*2000B NG X7,PIQ12 IF REMOVABLE DEVICE PIQ1 RJ CAS CALCULATE NUMBER OF AVAILABLE QFT SLOTS SA1 NIQ+1 CREATE NEW IQFT FILE SA2 CEQP FORCE NEW IQFT FILE TO SAME DEVICE SA3 TDAA+X2 GET ACCESS LEVEL MX0 12 SX2 X2+7000B SET ASSIGN-BY-ORDINAL FLAG BX1 -X0*X1 LX2 48 BX6 X2+X1 SX4 B1 SET SPECIAL PROCESSING FLAG LX4 39 BX6 X6+X4 SA6 A1 RJ DAL DETERMINE VALID ACCESS LEVEL SX5 NSEE*1S10 * INCORRECT ACCESS LEVEL.* NG X3,PIQ12 IF NO VALID ACCESS LEVEL SA1 NIQ+4 SET ACCESS LEVEL MX0 -3 LX3 36 LX0 36 BX1 X0*X1 BX6 X1+X3 SA6 A1 REQUEST NIQ,U NEW IQFT FILE * ATTACH IQFT FILE. SA2 CEQP EST ORDINAL SX3 IQ ATTACH AS *IQ* RJ ATT NZ X5,PIQ12 IF ERROR ON ATTACH * READ IQFT FILE. READEI X3,R RECALL P SA5 IDMC PIQ2 ZR X5,PIQ2.1 IF END OF IGNORED FILES READW IQ,IQFE,QFEWL WRITEW NIQ,IQFE,QFEWL SX5 X5-1 EQ PIQ2 CHECK FOR MORE IGNORED FILES * PROCESSING MAIN LOOP. PIQ2.1 READW IQ,IQFE,QFEWL RJ CME CHECK FOR MASS STORAGE ERROR NZ X5,PIQ8.1 IF MASS STORAGE ERROR NZ X1,PIQ8.1 IF EOF/EOI SA2 IQFE+8 PL X2,PIQ3 IF NO LENGTH ERROR RJ PLE PROCESS LENGTH ERROR SX2 WIE SET IGNORE OPTION JP PIQ5 * VALIDATE IQFT ENTRY. PIQ3 SA3 IQFE+2 CHECK LOGICAL IDENTIFIER SX4 B1+ SET CHECK FOR LID IN TABLE RJ CLD ZR X3,PIQ3.1 IF MATCH SX2 WIE SET IGNORE OPTION EQ PIQ5 PROCESS IGNORE OPTION PIQ3.1 SA1 TARA+AROP SELECT ORIGIN TYPE ACCESS LEVEL CHECK SB2 B0+ PRESET NO ORIGIN TYPE CHECK SX1 X1-2 PL X1,PIQ3.2 IF NOT REQUEUE SB2 B1+ SET ORIGIN TYPE CHECK PIQ3.2 SA1 TARA+ARUA SET ACCESS LEVEL LIMITS SA2 TARA+ARLA SA3 IQFE+INSQ GET *INSQ* WORD OF QFT ENTRY RJ CAF CHECK ACCESS LEVEL OF FILE ZR X1,PIQ3.3 IF FILE SELECTED SX2 WIE EQ PIQ5 IGNORE FILE PIQ3.3 SA3 TARA+AROP GET OPTION MX0 -12 BX6 -X0*X3 SA6 PIQC SAVE OPTION SX6 X6-PGIG (X6) .EQ. 0 IF NOT REACTIVATE RJ VIE PL X1,PIQ4 IF NO FAMILY OPTION ERROR SX2 WIE SET IGNORE OPTION JP PIQ5 PROCESS IGNORE OPTION PIQ4 SA3 PIQC LX3 1 MULTIPLY BY TWO IX1 X1+X3 INDEX INTO TABLE SA2 X1+QDPT PROCESSING ROUTINE PIQ5 SA0 PIQ6 SET RETURN ADDRESS SB3 X2+ PROCESSING ROUTINE JP B3 JUMP TO PROCESSING ROUTINE * PROCESSING ROUTINES RETURN TO THIS POINT. PIQ6 ZR X1,PIQ2.1 IF PROCESS COMPLETED SATISFACTORILY * LAST ENTRY NOT PROCESSED - BUFFER FULL/QFT THRESHOLD LIMIT. NG X1,PIQ7 IF QFT THRESHOLD LIMIT REACHED * SET RERUN THIS DEVICE. SX7 B1+ SA7 PIQB PIQ7 RJ CIN COPY REMAINING OLD IQFT TO NEW IQFT * REQUEUE FILES. PIQ8.1 SA1 IDMA REACTIVATED COUNT ZR X1,PIQ9 IF NO FILES TO REQUEUE RJ RFB REQUEUE FILES * PURGE FILES. PIQ9 SA1 IDMD ZR X1,PIQ10 IF NO FILES PURGED QCALL RLLF,P PURGE QUEUED FILES * COMPLETE NEW IQFT FILE. PIQ10 WRITER NIQ,R QCALL STQF,NIQ SET NEW IQFT IN MST PIQ11 REWIND P REWIND R SA5 PIQB ZR X5,PIQX IF NO RERUN THIS DEVICE BX6 X6-X6 CLEAR RERUN FLAG SA6 A5 JP PIQ1 PIQA DATA C* QFT THRESHOLD LIMIT. * PIQB BSSZ 1 RERUN DEVICE FLAG PIQC CON 0 OPTION * QUEUE DISPOSITION PROCESSOR TABLE. QDPT CON REQ,PGQ REQUEUE/PURGE CON REQ,WIE REQUEUE/IGNORE CON PGQ,WIE PURGE/IGNORE TITLE LIST/PAGING PROCESSORS. LST SPACE 4,15 ** LST - LIST INACTIVE QUEUES. * * *LST* PRODUCES A ONE RECORD OUTPUT FILE FOR EACH LIST * COMMAND ENTERED. THE OUTPUT RECORD IS READ BACK TO PRODUCE * A RIGHT SCREEN K-DISPLAY. THE OUTPUT FILE POSITION IS * MAINTAINED TO PROPERLY ALLOW FOR SCREEN PAGING. * * EXIT (X5) = TERMINATING MESSAGE. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - 1, 2, 3, 6, 7. * * CALLS ATT, CLD, CME, DND, EMD, GKD, RAF, VIE, WOF. * * MACROS BKSP, CLOCK, DATE, MESSAGE, READEI, READW, * REPRIEVE, REWIND, SETFS, SKIPEI, WRITER. LST BSS 0 * PRESET MULTIPLE EQUIPMENT INDEX. SX7 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH SX6 B1 SA7 CEQP SA6 WPHA PAGE COUNT SA6 LSTB LINE NUMBER SA6 PDFE+1 SET PRINT DENSITY FORMAT CONTROL FLAG * SET UP FILES. REWIND O SKIPEI O * SET UP PAGE HEADER. LST1 DATE WPHC1 SET DATE IN HEADER CLOCK WPHC2 SET TIME IN HEADER BX6 X6-X6 CLEAR LINE COUNT SA6 WPHB SA6 LSTA CLEAR LIST FILE WRITTEN FLAG * DETERMINE NEXT DEVICE TO PROCESS. LST2 RJ DND ZR X4,LST6 IF END OF DEVICES BX7 X4 SA7 GRDD *TEQA* TABLE ENTRY LX7 59-0 NG X7,LST3 IF QUEUES THIS DEVICE SA2 TARA+ARDN ZR X2,LST2 IF NO SPECIFIC DEVICE SX5 =C* NO INACTIVE QUEUES ON DEVICE. * JP QRE5 * ATTACH IQFT FILE. LST3 REPRIEVE RPVB,SET,237B SET REPRIEVE PROCESSING SA2 CEQP EST ORDINAL SX3 IQ ATTACH IQFT FILE RJ ATT NZ X5,LST4.1 IF ERROR IN ATTACHING FILE READEI X3,R READ IQFT FILE * PROCESSING LOOP. LST4 READW IQ,IQFE,QFEWL RJ CME CHECK FOR MASS STORAGE ERROR NZ X5,LST5 IF MASS STORAGE ERROR NZ X1,LST5 IF EOF/EOI * VERIFY FILE AGAINST PARAMETERS. SA3 IQFE+2 CHECK LOGICAL IDENTIFIER SX4 B1+ SET CHECK FOR LID IN TABLE RJ CLD NZ X3,LST4 IF NO MATCH SX6 B0+ RJ VIE NZ X1,LST4 IF FILE DOES NOT MATCH * WRITE OUTPUT FILE. SA3 WPHE SET BLANK DISPOSITION CODE SX5 WPHI SET FWA OF PAGE HEADER RJ WOF WRITE OUTPUT FILE SX7 B1+ SET LIST FILE WRITTEN FLAG SA7 LSTA JP LST4 * PROCESS DEVICE COMPLETE. LST4.1 RJ EMG ISSUE ERROR MESSAGE LST5 SX3 IQ RETURN FILE RJ RAF REPRIEVE RPVB,SET,0 CLEAR REPRIEVE PROCESSING SA2 TARA+ARDN ZR X2,LST2 IF NO SPECIFIC DEVICE * CLEAN UP OUTPUT FILE. LST6 SA1 LSTA NZ X1,LST7 IF LIST WRITTEN SX5 =C* NO INACTIVE QUEUED FILES PRESENT. * MESSAGE X5,3 JP QRE5 LST7 WRITER O SA3 TARA+ARFC PL X3,LST8 IF NOT COMMAND CALL SETFS O,0 SX5 B0 NO MESSAGE FOR *QFSP* JP QRE5 * SET UP K-DISPLAY. LST8 BKSP O LST9 READEI O,R BX6 X6-X6 SA6 WPHB RESET LINES/PAGE COUNT * PRODUCE K- DISPLAY. RJ GKD GENERATE K-DISPLAY NZ X5,QRECX IF ERROR STATUS SET SX5 =C* LIST COMPLETE. * JP QRECX RETURN LSTA CON 0 LIST FILE WRITTEN FLAG LSTB CON 0 LINE NUMBER PAG SPACE 4,15 ** PAG - PAGE RIGHT SCREEN K-DISPLAY. * * *PAG* ADVANCES THE RIGHT SCREEN K-DISPLAY. * * EXIT (X5) = TERMINATING MESSAGE. * * USES X - 2, 5, 6. * A - 2, 6. * * CALLS GKD. * * MACROS BKSP, READEI. PAG BSS 0 SA2 LSTA NZ X2,PAG1 IF LAST RECORD PROPER FORMAT SX5 =C* INCORRECT PAGING ATTEMPT. * JP QRECX * REPOSITION OUTPUT FILE. PAG1 SA2 GKDE ZR X2,PAG3 IF NOT END OF DISPLAY BKSP O PAG2 READEI O,R BX6 X6-X6 SA6 WPHB PRESET LINES/PAGE COUNT * CREATE K-DISPLAY. PAG3 RJ GKD NZ X5,QRECX IF ERROR STATUS SET SX5 =C* PAGING COMPLETE. * JP QRECX RETURN TITLE RELEASE PROCESSOR. OUT SPACE 4,15 ** OUT - RELEASE OUTPUT FILE. * * *OUT* RELEASES THE OUTPUT FILE GENERATED BY THE *LIST* * COMMAND. * * EXIT (X5) = APPROPRIATE COMPLETION MESSAGE. * * USES X - 2, 3, 5, 6, 7. * A - 2, 3, 6, 7. * * CALLS CBL. * * MACROS ROUTE. OUT BSS 0 ENTRY SA2 LSTA LIST FILE WRITTEN FLAG SA3 GRDE REQUEUE/DEQUEUE REPORT FLAG IX2 X3+X2 ZR X2,OUT1 IF NO FILE BX6 X6-X6 SA6 A2 CLEAR FLAGS SX7 -B1 SA6 A3 SA7 A2+B1 LINE NUMBER RJ CBL CLEAR *DSP* PARAMETER BLOCK SA2 O SET UP *DSP* PARAMETER BLOCK MX6 42 BX6 X6*X2 SA6 BLOCK SA2 OUTA SET FLAG BITS BX6 X2 SA6 A6+B1 ROUTE BLOCK,RECALL SX5 =C* OUTPUT FILE RELEASED. * BX2 X2-X2 JP QRECX OUT1 SX5 =C* ERROR ON OUTPUT FILE. * JP QRECX RETURN OUTA VFD 24/0,12/2HPR,6/0,18/FRDC TITLE UTILITY SUBROUTINES. CME SPACE 4,15 ** CME - CHECK FOR MASS STORAGE ERROR. * * ENTRY (X1) = DATA TRANSFER STATUS. * * EXIT (X1) = UNCHANGED. * (X5) .NE. 0, IF MASS STORAGE ERROR. * * USES X - 0, 1, 3, 5, 6. * A - 1, 3, 6. * * CALLS EMG. * * MACROS QCALL. CME SUBR ENTRY/EXIT SA3 IQ MX0 -4 AX3 10 BX6 -X0*X3 ERROR STATUS BITS SX3 11B IX6 X3-X6 BX5 X5-X5 NZ X6,CMEX IF NOT MASS STORAGE ERROR BX6 X1 SAVE DATA TRANSFER STATUS SA6 CMEA QCALL PGQF,IQ PURGE IQFT FILE SX5 RMSE*2000B BX6 X6-X6 CLEAR FILE ATTACHED FLAG SA6 ATTA RJ EMG MESSAGE (=C* QUEUES UNRECOVERABLE THIS DEVICE.*) SA1 CMEA RESTORE DATA TRANSFER STATUS EQ CMEX RETURN CMEA CON 0 DATA TRANSFER STATUS CIN SPACE 4,15 ** CIN - COPY OLD IQFT TO NEW IQFT. * * *CIN* COPIES REMAINING ENTRIES ON THE OLD IQFT FILE TO THE * NEW IQFT FILE. * * ENTRY (IDMC) = CURRENT COUNT OF INACTIVE QUEUES. * * EXIT (IDMC) = UPDATED COUNT OF INACTIVE QUEUES. * * USES X - 2, 3, 5, 7. * A - 2, 3, 7. * * CALLS CME, WOF. * * MACROS READW, WRITEW. CIN SUBR ENTRY/EXIT WRITEW NIQ,IQFE,QFEWL LAST ENTRY NOT PROCESSED EQ CIN2 CHECK THRESHOLD LIMIT * COPY OLD IQFT FILE TO NEW IQFT. CIN1 READW IQ,IQFE,QFEWL RJ CME NZ X5,CINX IF MASS STORAGE ERROR NZ X1,CINX IF EOF/EOI WRITEW NIQ,IQFE,QFEWL * DETERMINE IF PROCESSING THRESHOLD LIMIT. CIN2 SA3 NAQS PL X3,CIN1 IF NOT THRESHOLD LIMIT * INCREMENT *IGNORED* COUNT. SA2 IDMC SX7 X2+B1 SA7 A2 * WRITE ENTRY TO OUTPUT FILE. SA3 WIEA *IGNORED* SX5 WPHG SET FWA OF HEADER RJ WOF EQ CIN1 COPY NEXT ENTRY EMG SPACE 4,20 ** EMG - ERROR MESSAGE ISSUED. * * *EMG* ISSUES AN APPROPRIATE ERROR MESSAGE. * * ENTRY (X5) = ERROR STATUS BITS (10-13). * * EXIT MESSAGE ISSUED. * (X1) = MESSAGE ADDRESS. * * USES X - 0, 1, 2, 4, 5, 6. * A - 2, 5, 6. * B - 2, 5. * * CALLS COD, SFN. * * MACROS MESSAGE. EMG SUBR ENTRY/EXIT AX5 10 SET ERROR CODE SB5 X5-1 MX0 -6 SA5 GRDD FAMILY/DEVICE LX5 48 BX1 -X0*X5 CONVERT DEVICE NUMBER RJ COD MX0 42 LX5 12 BX1 X0*X5 FAMILY MX0 -12 BX4 -X0*X6 SB2 B5-EMGAL LE B2,EMG1 IF LEGAL ERROR CODE SB5 EMGAL UNDEFINED CODE EMG1 SA5 EMGA+B5 SPACE FILL NAME RJ SFN LX4 30 SA2 X5 LX0 30 SA6 X5+B1 BX2 X0*X2 CLEAR OLD FAMILY IX6 X2+X4 SA6 A6-B1 DEVICE NUMBER MESSAGE X5 BX1 X5 EQ EMGX RETURN * TABLE OF ERROR MESSAGE ADDRESSES. EMGA BSS 0 LOC 1 FNFE CON EMGB NO IQFT FILE FAIE CON EMGC IQFT INTERLOCKED TASE CON 0 FTHE CON EMGD FNT/QFT FULL INSE CON 0 RMSE CON EMGE MASS STORAGE ERROR RRAE CON 0 NRAE CON 0 DUNE CON EMGI IGNORED - UNAVAILABLE RDVE CON EMGF IGNORED - REMOVABLE CON 0 FTFE CON 0 EIDE CON EMGH IGNORED - ERROR IDLE DFNE CON 0 NSEE CON EMGAB INCORRECT DEVICE ACCESS LEVEL LOC *O EMGAL EQU *-EMGA CON EMGZ UNDEFINED ERROR EMGB DATA C* DNYY FM AAAAAAA NO IQFT FILE.* EMGC DATA C* DNYY FM AAAAAAA IQFT INTERLOCKED.* EMGD DATA C* DNYY FM AAAAAAA FNT/QFT FULL.* EMGE DATA C* DNYY FM AAAAAAA MS ERROR.* EMGF DATA C* DNYY FM AAAAAAA IGNORED - REMOVABLE.* EMGH DATA C* DNYY FM AAAAAAA IGNORED - ERROR IDLE.* EMGI DATA C* DNYY FM AAAAAAA IGNORED - UNAVAILABLE.* EMGZ DATA C* DNYY FM AAAAAAA UNDEFINED ERROR.* EMGAB DATA C* DNYY FM AAAAAAA INCORRECT ACCESS LEVEL.* ERR SPACE 4,15 ** ERR - ERROR EXIT PROCESSING. * * *ERR* RELEASES THE ATTACHED IQFT FILE AND ISSUES * APPROPRIATE MESSAGES INDICATING ABORT CONDITION. * * ENTRY QREC ABORTED. * * USES X - 3. * * CALLS RAF. * * MACROS ABORT, MESSAGE. ERR BSS 0 SX3 IQ RJ RAF RETURN ATTACHED FILE * ISSUE MESSAGES. MESSAGE (=C* QREC/QLIST ABORTED.*) MESSAGE (=C* QUEUE STATUS INDEFINITE.*) ABORT GKD SPACE 4,15 ** GKD - GENERATE K - DISPLAY. * * *GKD* PRODUCES THE K-DISPLAY IN A SCRATCH BUFFER AND * RETURNS THE ADDRESS OF THE DISPLAY. * * ENTRY OUTPUT FILE APPROPRIATELY POSITIONED. * * EXIT (X2) = DISPLAY ADDRESS. * (X5) = ERROR MESSAGE ADDRESS, IF APPLICABLE. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - 1, 2, 3, 4, 5, 6, 7. * * MACROS MOVE, READW, RECALL. GKD SUBR ENTRY/EXIT SA2 LSTA NZ X2,GKD1 IF FILE PRESENT SX5 =C* NO OUTPUT FILE PRESENT. * EQ GKDX RETURN GKD1 RECALL O * SETUP DISPLAY HEADING. MOVE WPHDL,WPHD,DBUF+1 MOVE WPHEL,WPHE,DBUF+1+WPHDL MOVE WPHFL,WPHF,DBUF+1+WPHDL+WPHEL SX6 KMLL-8 NUMBER OF DISPLAY LINES PER PAGE SA6 GKDA SA3 WPHB SX6 DBUF+WPHDL+WPHEL+WPHFL SA6 A6+1 NEXT LINE ADDRESS NZ X3,GKD4 IF NOT AT PAGE HEADING * BYPASS PAGE HEADING. GKD2 READW O,WPHC-1,WPHCL NZ X1,GKD6 IF EOF/EOI SA1 LLIM GET LINE LIMIT SX7 X1-7 SA7 WPHB LINES/PAGE COUNT * PROCESS INDIVIDUAL LINES. GKD4 READW O,FQOA,FQOAL NZ X1,GKD6 IF EOF/EOI BX6 X6-X6 SET END OF LINE SA6 FQOA+8 SA4 GKDB INCREMENT NEXT LINE ADDRESS SX7 X4+FQOAL-2 SA7 A4+ MOVE FQOAL-2,FQOA+2,X4 * DECREMENT PAGE COUNTS. SA5 WPHB SA3 GKDA SX7 X5-1 SX6 X3-1 SA7 A5 SA6 A3 NZ X6,GKD5 IF NOT END OF DISPLAY PAGE SA4 GKDB MOVE GKDCL,GKDC,X4 *MORE* BX6 X6-X6 SA6 GKDE CLEAR END OF DISPLAY INDICATOR EQ GKD7 SET EXIT CONDITIONS GKD5 NZ X7,GKD4 IF NOT END OF OUTPUT PAGE EQ GKD2 PROCESS NEXT LINE * END OF DISPLAY. GKD6 SA4 GKDB MOVE GKDDL,GKDD,X4 *END OF DISPLAY.* SX6 B1+ SA6 GKDE SET END OF DISPLAY INDICATOR * SET EXIT CONDITIONS. GKD7 SA3 GKDF ENSURE BLANK FILL ON *K-DISPLAY* BX6 X3 BX5 X5-X5 CLEAR ERROR FLAG SA6 FQOA SX2 DBUF SET DISPLAY ADDRESS EQ GKDX RETURN GKDA BSS 1 DISPLAY LINE COUNT GKDB BSS 1 NEXT LINE ADDRESS GKDC DATA C* * DATA C* MORE * CON 0 TERMINATE DISPLAY GKDCL EQU *-GKDC GKDD DATA C* * DATA C* END OF DISPLAY.* CON 0 TERMINATE DISPLAY GKDDL EQU *-GKDD GKDE BSSZ 1 END OF DISPLAY FLAG GKDF DATA H* * BLANK FILL FOR *K-DISPLAY* IDM SPACE 4,20 ** IDM - ISSUE DAYFILE MESSAGES. * * *IDM* FORMATS AND ISSUES MESSAGES APPLICABLE TO THE * COMPLETED QUEUE OPERATION. * * ENTRY (IDMA) = QUEUED FILES REACTIVATED COUNT. * (IDMB) = QUEUED FILES DEQUEUED COUNT. * (IDMC) = QUEUED FILES IGNORED COUNT. * (IDMD) = QUEUED FILES PURGED COUNT. * * EXIT MESSAGES ISSUED. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 6, 7. * * CALLS CDD, COD, SFN. * * MACROS MESSAGE. IDM SUBR ENTRY/EXIT * ISSUE FILE COUNT MESSAGES. SB7 B0+ SB6 TFCRL IDM1 SA1 B7+TFCR ZR X1,IDM2 IF NO FILE COUNT BX6 X6-X6 SA6 A1 CLEAR FILE COUNT RJ CDD CONVERT FILE COUNT SA2 B7+TFCM LX6 30 SA5 X2 MX0 -30 BX6 X0*X6 SA4 GRDD BX5 -X0*X5 MX0 42 IX6 X6+X5 BX1 X0*X4 FAMILY NAME SA6 A5 RJ SFN SPACE FILL FAMILY NAME MX0 48 SA2 A5+3 LX4 48 LX6 54 BX2 -X0*X2 CLEAR PREVIOUS FAMILY BX6 X0*X6 MX0 -6 IX6 X6+X2 APPEND *.* BX1 -X0*X4 SA6 A2+ RJ COD CONVERT DEVICE NUMBER MX0 -12 SA3 A6-B1 BX6 -X0*X6 CLEAR SPACES LX0 24 BX3 X0*X3 CLEAR OLD DEVICE NUMBER LX6 24 IX7 X6+X3 SA7 A3 MESSAGE A5 ISSUE MESSAGE IDM2 SB7 B7+1 NE B7,B6,IDM1 IF MESSAGES NOT COMPLETE EQ IDMX RETURN TFCR BSS 0 FILE COUNT RESULT TABLE IDMA BSS 1 REACTIVATED IDMB BSS 1 INACTIVATED IDMC BSS 1 LEFT INACTIVE IDMD BSS 1 PURGED TFCRL EQU *-TFCR TFCM BSS 0 FILE COUNT MESSAGE TABLE CON MSG1 CON MSG2 CON MSG3 CON MSG4 TFCML EQU *-TFCM MSG1 DATA C* XXXX FILES ACTIVATED DNYY FM AAAAAAA.* MSG2 DATA C* XXXX FILES DEQUEUED DNYY FM AAAAAAA.* MSG3 DATA C* XXXX FILES IGNORED DNYY FM AAAAAAA.* MSG4 DATA C* XXXX FILES PURGED DNYY FM AAAAAAA.* PGQ SPACE 4,20 ** PGQ - PURGE QUEUED FILE. * * *PGQ* ENTERS THE IQFT ENTRY INTO THE LIST OF FILES TO BE * PURGED. * * ENTRY (IQFE - IQFE+15) = IQFT ENTRY. * (IDMD) = CURRENT PURGED FILE COUNT. * (A0) = RETURN ADDRESS. * * EXIT (X1) .EQ. 0, IF ENTRY MADE. * (X1) .NE. 0, IF BUFFER FULL. * (IDMD) INCREMENTED. * * USES X - 1, 3, 5, 6. * A - 1, 3, 6. * B - 6. * * CALLS EQB, WOF. PGQ BSS 0 SA1 P SET FET ADDRESS RJ EQB ENTER IQFT ENTRY INTO BUFFER NZ X1,PGQ1 IF BUFFER FULL SA3 IDMD INCREMENT PURGED COUNT SX6 X3+B1 SA6 A3 SA3 PGQA *PURGED* SX5 WPHG SET FWA OF HEADER RJ WOF BX1 X1-X1 PGQ1 SB6 A0 SET RETURN ADDRESS JP B6 RETURN PGQA DATA H*PURGED* EQB SPACE 4,15 ** EQB - ENTER IQFT ENTRY INTO BUFFER. * * ENTRY (IQFE - IQFE+15) = IQFT ENTRY. * (CEQP) = EST ORDINAL. * (A1) = ADDRESS OF FET. * * EXIT (X1) .EQ. 0, IF ENTRY MADE. * (X1) .GT. 0, IF BUFFER FULL. * * USES X - 0, 1, 2, 5, 6. * A - 1, 2, 5, 6. * B - 3. * * MACROS MOVE. EQB1 SX1 B1 SET ERROR CONDITION EQB SUBR ENTRY/EXIT SA5 A1+2 SA2 A5+2 SX6 X5+QFEWL ADVANCE IN SX2 X2 LIMIT IX2 X2-X6 SB3 X2 LE B3,EQB1 IF BUFFER FULL MX0 12 UPDATE EQUIPMENT FIELD IN IQFT SA6 A5+ UPDATE IN SA1 IQFE+1 SA2 CEQP BX1 -X0*X1 CLEAR OLD EST ORDINAL LX2 48 BX6 X1+X2 SA6 A1 MOVE QFEWL,IQFE,X5 BX1 X1-X1 EQ EQBX RETURN REQ SPACE 4,25 ** REQ - REQUEUE FILE. * * *REQ* ENTERS THE IQFT ENTRY INTO THE BUFFER FOR * REQUEUING. * * ENTRY (A0) = RETURN ADDRESS. * (IQFE - IQFE+15) = IQFT ENTRY. * (IDMA) = CURRENT REQUEUED COUNT. * (NAQS) = AVAILABLE QFT SLOTS. * * EXIT (X1) .EQ. 0, IF ENTRY MADE. * (X1) .LT. 0, IF THRESHOLD LIMIT REACHED. * (X1) .GT. 0, IF BUFFER FULL. * (IDMA) INCREMENTED. * (NAQS) DECREMENTED. * * USES X - 1, 2, 3, 5, 6, 7. * A - 1, 2, 3, 6, 7. * B - 6. * * CALLS EQB, WOF. * * MACROS MESSAGE. REQ BSS 0 * DECREMENT THRESHOLD COUNT. SA3 NAQS NUMBER OF AVAILABLE QFT SLOTS SX7 X3-1 SA7 A3+ PL X7,REQ1 IF THRESHOLD NOT REACHED MESSAGE PIQA * QFT THRESHOLD LIMIT.* MX1 1 SET THRESHOLD LIMIT REACHED JP REQ2 SET RETURN ADDRESS REQ1 SA1 R SET FET ADDRESS RJ EQB ENTER IQFT ENTRY INTO BUFFER NZ X1,REQ2 IF BUFFER FULL SA2 IDMA INCREMENT REACTIVATED COUNT SX6 X2+B1 SA6 A2 * WRITE OUTPUT LINE. SA3 REQA *ACTIVATED* SX5 WPHB SET FWA OF PAGE HEADER RJ WOF BX1 X1-X1 REQ2 SB6 A0 SET RETURN ADDRESS JP B6 REQA DATA H*ACTIVATED* RFB SPACE 4,15 ** RFB - REQUEUE FILES IN BUFFER. * * *RFB* ISSUES THE APPROPRIATE REQUEST TO REQUEUE THOSE * FILES THAT ARE IN THE BUFFER (RBUF). * * EXIT (X5) = 0, IF REQUEUED SUCCESSFULLY. * FILES NOT REQUEUED ARE REPLACED IN *NBUF*. * * USES X - 0, 1, 2, 3, 5, 6, 7. * A - 1, 2, 3, 5, 6, 7. * B - 2, 3, 4. * * CALLS EMG. * * MACROS MOVE, QCALL, REWIND, WRITEW. RFB2 SA3 R+6 ZR X3,RFB3 IF NO FILES IGNORED SA2 IDMA DECREMENT NUMBER OF FILES ACTIVATED IX6 X2-X3 SA6 A2 SA1 IDMC INCREMENT NUMBER OF FILES IGNORED IX7 X1+X3 SA7 A1 RFB3 REWIND R,R REWIND POINTERS RFB SUBR ENTRY/EXIT SA5 R SX0 36000B BX6 -X0*X5 CLEAR ERRORS AND STATUS SA6 A5+ BX7 X7-X7 CLEAR FILE IGNORE COUNT IN FET SA7 R+6 QCALL RQLF,R REQUEUE LIST SA5 A5 BX5 X0*X5 ZR X5,RFB2 IF NO ERRORS RJ EMG ISSUE ERROR MESSAGES * BACK OUT UNREACTIVATED QUEUES. SA2 R+3 OUT POINTER SX6 X2 FIRST ENTRY NOT REQUEUED (SET BY *QFM*) SA3 A2-B1 IN SA6 RFBA BX7 X3 SA7 A6+B1 RFB1 IX1 X6-X3 PL X1,RFB2 IF END OF BUFFER MOVE QFEWL,X6,IQFE WRITEW NIQ,IQFE,QFEWL * ADJUST FILE COUNTS. SA2 IDMA DECREMENT REQUEUE FILE COUNT SX7 X2-1 SA3 IDMC SA7 A2 SX6 X3+B1 INCREMENT LEFT INACTIVE COUNT SA6 A3+ * SEARCH FOR NEXT ENTRY NOT PROCESSED BY *QFM*. SA1 RFBA SX6 X1+QFEWL SA3 A1+B1 SA6 A1 EQ RFB1 LOOP TO END OF BUFFER RFBA BSS 1 CURRENT ENTRY IN REQUEUE BUFFER BSS 1 LWA RECOVERY BUFFER WIE SPACE 4,20 ** WIE - WRITE INACTIVE ENTRY TO NEW IQFT. * * *WIE* WRITES THE IQFT ENTRY TO THE NEW IQFT FILE. * * ENTRY (IQFE - IQFE+15) = IQFT ENTRY. * (IDMC) = IGNORED COUNT. * (A0) = RETURN ADDRESS. * * EXIT ENTRY WRITTEN TO *NIQ*. * (IDMC) INCREMENTED. * * USES X - 1, 3, 5, 6. * A - 3, 6. * B - 6. * * CALLS WOF. * * MACROS WRITEW. WIE BSS 0 SA3 IDMC INCREMENT LEFT INACTIVE COUNT SX6 X3+B1 SA6 A3 WRITEW NIQ,IQFE,QFEWL SA3 WIEA *IGNORED* SX5 WPHG SET FWA OF PAGE HEADER RJ WOF SB6 A0 RESTORE RETURN ADDRESS BX1 X1-X1 JP B6 RETURN WIEA DATA H*IGNORED* WPH SPACE 4,20 ** WPH - WRITE PAGE HEADER. * * *WPH* WRITES A NEW PAGE HEADER ON FILE *OUTPUT*. * * ENTRY (X5) = ADDRESS OF PAGE HEADER. * (WPHC1) = DATE. * (WPHC2) = TIME. * (PDFE+1) = SET IF PRINT DENSITY FORMAT EFFECTOR * NOT YET WRITTEN. * * EXIT PAGE HEADER WRITTEN. * LINE COUNT RESET. * * USES X - 0, 1, 2, 6, 7. * A - 1, 6, 7. * * CALLS CDD. * * MACROS RECALL, WRITEW. WPH SUBR ENTRY/EXIT SA1 WPHA INCREMENT PAGE NUMBER SX7 X1+B1 SA7 A1 RJ CDD MX0 36 SET PAGE NUMBER IN HEADER SA1 WPHC3 BX1 X0*X1 BX6 -X0*X6 BX6 X1+X6 SA6 WPHC3 RECALL O SA1 PDFE+1 GET PRINT DENSITY FORMAT CONTROL FLAG BX7 X7-X7 SA7 A1 WRITEW O,A1-B1,X1 CONDITIONALLY WRITE FORMAT EFFECTOR WRITEW O,WPHH,WPHHL SX2 WPHI IX2 X5-X2 NZ X2,WPH1 IF REQUEUE REPORT WRITEW O,WPHI,WPHIL HEADER FOR *LIST* EQ WPH2 SKIP REQUEUE/DEQUEUE HEADER WPH1 WRITEW O,WPHG,WPHGL HEADER FOR REQUEUE/DEQUEUE WPH2 SA1 LLIM SX7 X1-7 INITIALIZE LINE COUNT SA7 WPHB EQ WPHX RETURN WPHA BSS 1 PAGE COUNT WPHB BSS 1 LINE/PAGE COUNT WPHH BSS 0 WPHC DATA C*1 QREC/QLIST PROCESSOR. YY/MM/DD. HH ,.MM.SS. PAGE * WPHC1 EQU *-4 DATE WPHC2 EQU *-3 TIME WPHC3 EQU *-2 PAGE WPHHL EQU *-WPHH WPHI DATA H*0* CARRIAGE CONTROL WPHD DATA C* * DATA C* INACTIVE QUEUES LIST* DATA C* * WPHDL EQU *-WPHD DATA H* * CARRIAGE CONTROL WPHE DATA C* LENGTH ,ACCESS* WPHEL EQU *-WPHE DATA H* * CARRIAGE CONTROL WPHF DATA C* NUM JSNS MID FAMILY DN DT DS DATE (PRUS) ,LEVEL DISPOSITION* DATA C* * WPHCL EQU *-WPHC WPHIL EQU *-WPHI CON 0 TERMINATE DISPLAY WPHFL EQU *-WPHF WPHG DATA H*0* DATA H* QUEUE DISPOSITION* DATA C* * DATA H* * CARRIAGE CONTROL DATA C* LENGTH ,ACCESS* DATA H* * CARRIAGE RETURN DATA C* NUM JSNS MID FAMILY DN DT DS DATE (PRUS) ,LEVEL DISPOSITION* DATA C* * WPHGL EQU *-WPHG WOF SPACE 4,15 ** WOF - WRITE OUTPUT FILE. * * *WOF* WRITES AN ENTRY TO THE OUTPUT * REPORT FOR THE REQUEUE AND DEQUEUE ROUTINES. * * ENTRY (X3) = DISPOSITION DESCRIPTOR. * (X5) = FWA OF PAGE HEADER. * * USES X - 1, 2, 3, 6. * A - 1, 3, 6. * B - 7. * * CALLS FQO, WPH. * * MACROS WRITEW. WOF SUBR ENTRY/EXIT SA1 WPHB NZ X1,WOF1 IF NOT END OF PAGE BX6 X3 SAVE DISPOSITION DESCRIPTOR SA6 WOFA RJ WPH WRITE PAGE HEADER SA3 WOFA WOF1 SB7 GRDD ADDRESS OF FAMILY/DEVICE SA1 LSTB INCREMENT LINE NUMBER SX6 X1+B1 SA6 A1 SX5 IQFE SET IQFT ENTRY ADDRESS RJ FQO FORMAT OUTPUT LINE WRITEW O,B3,B2 SA3 WPHB DECREMENT LINE/PAGE COUNT SX6 X3-1 SA6 A3 EQ WOFX RETURN WOFA CON 0 SCRATCH TITLE COMMON DECKS. * COMMON DECKS. *CALL COMCCDD *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCEDT *CALL COMCFQO *CALL COMCIQP *CALL COMCLFM *CALL COMCMVE *CALL COMCQFM *CALL COMCQFP *CALL COMCRDW *CALL COMCSCB *CALL COMCSFM *CALL COMCSFN *CALL COMCSYS *CALL COMCVLC *CALL COMCVQF *CALL COMCZTB *CALL COMCWTW TITLE BUFFERS. USE LITERALS * BUFFERS. BLOCK BSS EPBL *DSP* PARAMETER BLOCK DBUF VFD 11/0,1/1,1/1,5/0,18/KTIA,24/0 K-DISPLAY BUFFER NBUF EQU DBUF+BUFL NEW IQFT BUFFER TACF EQU NBUF+BUFL TABLE OF ACTIVE FAMILIES OBUF EQU TACF+ESMX+1 OUTPUT BUFFER IBUF EQU OBUF+BUFL IQFT FILE BUFFER * QFT READ INTO FIELD LENGTH STARTING AT *RBUF*. RBUF EQU IBUF+BUFL RECOVERED FILES BUFFER PBUF EQU RBUF+BUFL PURGED FILES BUFFER BUFLL EQU PBUF+BUFL-DBUF LENGTH OF BUFFERS BUFFL EQU *+BUFLL END OF BUFFERS TITLE PRESET. PRS SPACE 4,20 ** PRS - PRESET. * * PRESET ADJUSTS FIELD LENGTH, PERFORMS THRESHOLD * CALCULATION FOR A GIVEN SIZE QFT, AND SETS UP A * CONTROL WORD TO READ THE QFT. * * ENTRY (QFTA) = *QFTP* WORD IN CMR. * * EXIT (QFTS) = LENGTH OF QFT. * (QFTT) = QFT THRESHOLD. * (RQTA) = *RSB* CONTROL WORD FOR QFT READ. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 2, 6, 7. * * MACROS MEMORY. PRS SUBR ENTRY/EXIT MEMORY CM,,R,BUFFL * SET QFT FWA AND LENGTH. SA2 QFTA *QFTP* WORD MX0 -24 GET FWA OF QFT LX2 24 BX7 -X0*X2 LX2 12 GET MAXIMUM NUMBER OF QFT ENTRIES MX0 -12 BX2 -X0*X2 SX3 QFTE IX6 X2*X3 NUMBER OF ENTRIES * ENTRY LENGTH SA6 QFTS QFT LENGTH * SET UP *RSB* CONTROL WORD TO READ QFT. SX4 100B WORD COUNT LX4 18 BX7 X4+X7 ADD ON QFT FWA SX1 RBUF BUFFER ADDRESS LX7 18 BX7 X7+X1 SA7 RQTA * CALCULATE NUMBER OF RESERVED QFT ENTRIES. SX3 SQTL STATIC QFT THRESHOLD LIMIT SX7 100 IX3 X7-X3 IX3 X2*X3 NUMBER OF QFT ENTRIES * 100-*SQTL* IX6 X3/X7 BX7 X7-X7 CLEAR LID TABLE FULL FLAG SA7 LTFL SA6 QFTT EQ PRSX RETURN SPACE 4,10 ERRPL *-RFL IF DEFAULT FIELD LENGTH TOO SMALL END QREC