User Tools

Site Tools


cdc:nos2.source:opl871:qrec

Table of Contents

QREC

Table Of Contents

  • [00007] QREC - QUEUE RECOVERY PROCESSOR.
  • [00009] QUEUE RECOVERY PROCESSOR.
  • [00177] PROGRAM CONSTANTS.
  • [00183] RESERVED LOCATIONS AND FETS.
  • [00216] MAIN LOOP.
  • [00326] REQUEUE/DEQUEUE PROCESSOR.
  • [00328] GRD - REQUEUE AND DEQUEUE.
  • [00430] RECOVER/DEQUEUE SUBROUTINES.
  • [00432] DEQ - DEQUEUE DEVICE.
  • [00587] PIQ - PROCESS IQFT FILE.
  • [00758] LIST/PAGING PROCESSORS.
  • [00760] LST - LIST INACTIVE QUEUES.
  • [00892] PAG - PAGE RIGHT SCREEN K-DISPLAY.
  • [00929] RELEASE PROCESSOR.
  • [00931] OUT - RELEASE OUTPUT FILE.
  • [00974] UTILITY SUBROUTINES.
  • [00976] CME - CHECK FOR MASS STORAGE ERROR.
  • [01013] CIN - COPY OLD IQFT TO NEW IQFT.
  • [01060] EMG - ERROR MESSAGE ISSUED.
  • [01142] ERR - ERROR EXIT PROCESSING.
  • [01167] GKD - GENERATE K - DISPLAY.
  • [01274] IDM - ISSUE DAYFILE MESSAGES.
  • [01364] PGQ - PURGE QUEUED FILE.
  • [01400] EQB - ENTER IQFT ENTRY INTO BUFFER.
  • [01438] REQ - REQUEUE FILE.
  • [01493] RFB - REQUEUE FILES IN BUFFER.
  • [01568] WIE - WRITE INACTIVE ENTRY TO NEW IQFT.
  • [01603] WPH - WRITE PAGE HEADER.
  • [01700] WOF - WRITE OUTPUT FILE.
  • [01737] COMMON DECKS.
  • [01760] BUFFERS.
  • [01781] PRESET.
  • [01783] PRS - PRESET.

Source Code

QREC.txt
  1. IDENT QREC1,FWA,QREC,01,00
  2. ABS
  3. SST
  4. SYSCOM B1
  5. *COMMENT QREC - QUEUE RECOVERY PROCESSOR.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE QREC - QUEUE RECOVERY PROCESSOR.
  8. SPACE 4
  9. *** QREC - QUEUE RECOVERY PROCESSOR.
  10. * D. A. COAPSTICK 74/09/16.
  11. * R. A. JAPS. 75/02/19.
  12. SPACE 4,4
  13. *** *QREC* IS A QUEUE RECOVERY UTILITY PROGRAM THAT ACTIVATES OR
  14. * DEACTIVATES QUEUED FILES AND/OR PROVIDES A LIST OF RELATIVE
  15. * INFORMATION PERTAINING TO INACTIVE QUEUES.
  16. SPACE 4
  17. *** *QREC* MAY BE CALLED BY THE QUEUED FILE SUPERVISOR PROGRAM OR
  18. * COMMAND. *QREC* WILL ALSO BE CALLED BY A
  19. * COMMAND CALL TO *QLIST*. THE FOLLOWING PARAMETERS ARE
  20. * VALID FOR *QREC*.
  21. *
  22. * MI=MACHINE ID.
  23. * FM=FAMILY NAME.
  24. * DN=DEVICE NUMBER (FAMILY ENTRY MUST BE SPECIFIED).
  25. * FU=FAMILY NAME FOR USER INDEX REQUEUING.
  26. * UI=USER INDEX RANGE (E.G., UI=3-177).
  27. * DA=REQUEUING DATE. MAY BE A SINGLE ENTRY (DA=740916) OR A
  28. * RANGE ENTRY (DA=740911-740916) OR (DA=ALL).
  29. * FS=FILE SIZE RANGE (0-777777B).
  30. * IF 777777B IS SPECIFIED, ALL SIZES LARGER ARE INCLUDED.
  31. * I = ALTERNATE DIRECTIVE INPUT FILE. THIS IS A
  32. * COMMAND PARAMETER SPECIFYING WHAT FILE SHOULD
  33. * BE READ FOR INPUT DIRECTIVES. THESE DIRECTIVES
  34. * CONSIST OF ANY LEGAL K-DISPLAY INPUT OR COMMANDS.
  35. * THESE DIRECTIVES WILL BE PROCESSED AFTER THE
  36. * COMMAND DIRECTIVES BUT BEFORE ANY
  37. * K-DISPLAY INPUT IS ACCEPTED.
  38. * JSN=JOB SEQUENCE NUMBER. UP TO FIVE JSN-S.
  39. * ID=BATCH ID RANGE.
  40. * LA = LOWER SECURITY ACCESS LEVEL.
  41. * UA = UPPER SECURITY ACCESS LEVEL.
  42. * TUI=DESTINATION USER INDEX RANGE FOR SELECTING FILES
  43. * IN THE REMOTE BATCH QUEUE (*TF* MUST BE SPECIFIED).
  44. * TF=DESTINATION FAMILY FOR TERMINAL FOR SELECTING FILES
  45. * IN THE REMOTE BATCH QUEUE.
  46. * FC=FORMS CODE. MAY BE A SINGLE ENTRY (FC=F1), A LIST
  47. * (FC=F1/F2/F3), OR A RANGE (FC=F1-F2) WHERE F1 IS 2
  48. * CHARACTERS, ALL, OR NULL (SPECIFIED BY **).
  49. * L=LFN. FILE TO RECEIVE OUTPUT.
  50. * OP=XX. REQUEUING OPTIONS.
  51. * RP - REQUEUE SPECIFIED FILES, PURGE OTHERS.
  52. * RI - REQUEUE SPECIFIED FILES, IGNORE OTHERS.
  53. * PI - PURGE SPECIFIED FILES, IGNORE OTHERS.
  54. * DI - DEQUEUE SPECIFIED FILES, IGNORE OTHERS.
  55. * DS=DT. SELECT FILE DESTINATION BY DISPOSITION TYPE.
  56. * FILE DESTINATION TYPES INCLUDE -
  57. * BC - BATCH.
  58. * RB - REMOTE BATCH.
  59. * DISPOSITION TYPES INCLUDE-
  60. * SF SPECIAL INSTALLATION DEFINED QUEUE FILES
  61. * IN INPUT
  62. * PU PUNCH
  63. * PL PLOT
  64. * PR PRINT - ANY PRINTER
  65. * P2 PRINT - 512 PRINTER
  66. * LR PRINT - 580-12 PRINTER
  67. * LS PRINT - 580-16 PRINTER
  68. * LT PRINT - 580-20 PRINTER
  69. * LX PRINT - 5870 NIP
  70. * LY PRINT - 5970 NIP
  71. * WT WAIT
  72. * PRINT ALL PRINT TYPES
  73. * ALL ALL TYPES
  74. * NONE NO TYPES
  75. *
  76. * DEFAULT VALUES DEFINED IN *QFSP*
  77. SPACE 4
  78. ** ENTRY CONDITIONS.
  79. *
  80. * *QREC* IS ENTERED VIA A *RJ* FROM *QFSP*.
  81. *
  82. * *TARA* = FWA OF THE PARAMETER TABLE.
  83. * *QFTA* = *QFTP* WORD FROM CENTRAL MEMORY RESIDENT.
  84. * *TDAA* = FWA OF DEVICE ACCESS LEVEL TABLE.
  85. * *TEQA* = MASS STORAGE EQUIPMENT TABLE.
  86. * *TMSA* = MASS STORAGE DESCRIPTION TABLE.
  87. * *FOTA* = FAMILY ORDINAL TABLE.
  88. SPACE 4
  89. *** DAYFILE MESSAGES.
  90. *
  91. *
  92. * * QFT THRESHOLD LIMIT.* = QFT HAS REACHED THE LIMIT
  93. * ALLOCATED FOR QUEUED FILES. RETRY WHEN SYSTEM IS NOT AS BUSY.
  94. *
  95. * * DNYY FM AAAAAAA NO IQFT FILE.* = NO IQFT
  96. * FILE EXISTS FOR SPECIFIED DEVICE.
  97. *
  98. * * DNYY FM AAAAAAA INCORRECT ACCESS LEVEL.*
  99. * THE JOB DOING THE *QREC* IS NOT VALIDATED FOR THE
  100. * ACCESS LEVELS OF THE DEVICE.
  101. *
  102. * * DNYY FM AAAAAAA IQFT INTERLOCKED.* = IQFT
  103. * FILE TRACK INTERLOCK SET. COULD MEAN IQFT
  104. * IS CURRENTLY BEING USED BY ANOTHER UTILITY. RETRY AT A
  105. * LATER TIME.
  106. *
  107. * * DNYY FM AAAAAAA FNT/QFT FULL.* = THE FNT OR QFT WAS
  108. * FILLED WHILE RECOVERING SPECIFIED DEVICE.
  109. * RETRY WHEN SYSTEM IS NOT AS BUSY.
  110. *
  111. * * DNYY FM AAAAAAA MS ERROR.* = MASS
  112. * STORAGE ERROR ON IQFT FILE THIS DEVICE.
  113. *
  114. * * DNYY FM AAAAAAA IGNORED - ERROR IDLE.* = QUEUES ON
  115. * THE SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE
  116. * HAD AN ERROR IDLE CONDITION.
  117. *
  118. * * DNYY FM AAAAAAA IGNORED - REMOVABLE.* = QUEUES ON
  119. * SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE IS
  120. * REMOVABLE.
  121. *
  122. * * DNYY FM AAAAAAA IGNORED - UNAVAILABLE.* = QUEUES ON
  123. * SPECIFIED DEVICE WERE NOT PROCESSED BECAUSE THE DEVICE IS
  124. * UNAVAILBLE.
  125. *
  126. * * DNYY FM AAAAAAA UNDEFINED ERROR.*
  127. *
  128. * * FOT FULL - FILES IGNORED.* - SOME OF THE QUEUED FILES
  129. * WERE NOT PROCESSED BECAUSE THERE WAS NO FOT ENTRY FOR THE
  130. * CREATION AND/OR THE DESTINATION FAMILY AND THE FOT WAS
  131. * FULL (MESSAGE ISSUED BY *COMCVQF*).
  132. *
  133. * * QREC/QLIST ABORTED.*
  134. *
  135. * * QUEUE STATUS INDEFINITE.* = REFLECTS QUEUE
  136. * STATUS IN EVENT OF ABNORMAL ABORT.
  137. *
  138. * * XXXX FILES ACTIVATED DNYY FM AAAAAAA.* = NUMBER
  139. * OF QUEUED FILES ACTIVATED THIS DEVICE.
  140. *
  141. * * XXXX FILES DEQUEUED DNYY FM AAAAAAA.* = NUMBER
  142. * OF QUEUED FILES DEQUEUED THIS DEVICE.
  143. *
  144. * * XXXX FILES IGNORED DNYY FM AAAAAAA.* = NUMBER
  145. * OF QUEUED FILES REMAINING INACTIVE THIS DEVICE.
  146. *
  147. * * XXXX FILES PURGED DNYY FM AAAAAAA.* = NUMBER
  148. * OF QUEUED FILES PURGED THIS DEVICE.
  149. *
  150. * * QUEUES UNRECOVERABLE THIS DEVICE.* = SOME OR ALL
  151. * QUEUE FILES LOST DUE TO A MASS STORAGE ERROR ON
  152. * THE IQFT FILE (ACCOMPANIES MS ERROR MESSAGE).
  153. *
  154. * * JSN EQNNNN TRACK TTTT LENGTH ERROR.* = PHYSICAL EOI
  155. * AND LOGICAL EOI(TRT) ARE NOT IDENTICAL.
  156. *
  157. * * NO INACTICE QUEUES PRESENT.* = NO INACTIVE WERE FOUND WHEN
  158. * PROCESSING A LIST COMMAND. (TO CONTROL POINT DAYFILE ONLY).
  159. *
  160. * * FILE NAME CONFLICT.* = FILE TO RECEIVE OUTPUT CAN
  161. * NOT BE NAMED *IQF*, OR *NIQFT*.
  162. SPACE 4
  163. ** COMMON DECKS.
  164.  
  165. *CALL COMCCMD
  166. *CALL COMCMAC
  167. *CALL COMSACC
  168. *CALL COMSDSP
  169. *CALL COMSJIO
  170. LIST X
  171. *CALL COMSIOQ
  172. *CALL COMSQFS
  173. *CALL COMSSFM
  174. LIST -X
  175. *CALL COMSMLS
  176. *CALL COMSSCD
  177. TITLE PROGRAM CONSTANTS.
  178. * PROGRAM CONSTANTS.
  179.  
  180. BUFL EQU 1001B BUFFER LENGTHS
  181. LLIM EQU TPPA+PPPL LINE LIMIT
  182. PDFE EQU TPPA+PPPD PRINT DENSITY FORMAT EFFECTOR
  183. TITLE RESERVED LOCATIONS AND FETS.
  184. * RESERVED LOCATIONS.
  185.  
  186. ORG OVLA
  187.  
  188. FWA BSS 0
  189.  
  190. * INACTIVE QUEUED FILE ENTRY. (WORKING BUFFER).
  191.  
  192. IQFE BSS QFEWL
  193. SPACE 4
  194. * FETS.
  195.  
  196. IQ BSS 0 OLD IQFT FILE
  197. "RFIQ" RFILEB IBUF,BUFL,EPR,(FET=8)
  198.  
  199. NIQ BSS 0 NEW IQFT FILE
  200. "RFNI" FILEB NBUF,BUFL,(FET=9)
  201.  
  202. O BSS 0 OUTPUT FILE
  203. OUTPUT FILEB OBUF,BUFL,(FET=7)
  204.  
  205. R BSS 0 REACTIVATE FILE
  206. RECV FILEB RBUF,BUFL,(FET=8)
  207.  
  208. P BSS 0 PURGE FILE
  209. PUR FILEB PBUF,BUFL,(FET=8)
  210. RPVB SPACE 4,10
  211. * REPRIEVE BLOCK.
  212.  
  213. RPVB VFD 36/0,12/31B,12/0
  214. VFD 30/0,30/ERR
  215. BSSZ 27B
  216. TITLE MAIN LOOP.
  217. ** MAIN LOOP.
  218. *
  219. * ENTRY PARAMETER BLOCK DEFINED IN *COMSQFS* (TARA)
  220. * MASS STORAGE TABLE (TEQA)
  221. *
  222. * EXIT (X2) = K - DISPLAY ADDRESS.
  223. * (X5) = TERMINATING MESSAGE.
  224. *
  225. * USES X - 0, 1, 2, 3, 4, 5, 6.
  226. * A - 1, 2, 3, 4, 6.
  227. * B - 1, 3.
  228. *
  229. * CALLS CTF, PRS.
  230. *
  231. * MACROS MESSAGE, RECALL.
  232.  
  233.  
  234. * RETURN FROM PROCESSORS.
  235.  
  236. QRE5 BX2 X2-X2 SET PRIMARY RIGHT SCREEN DISPLAY
  237.  
  238. QREC SUBR ENTRY/EXIT
  239. SB1 1
  240. SA1 QFTS QFT LENGTH
  241. NZ X1,QRE1 IF PRESET UNNECESSARY
  242. RJ PRS PRESET
  243.  
  244. * DETERMINE FUNCTIONAL ROUTINE.
  245.  
  246. QRE1 SA2 TARA+ARFC
  247. MX0 -12
  248. BX2 -X0*X2
  249. SA3 X2+TFCN
  250. SX6 X3+ SAVE PROCESSOR ADDRESS
  251. SA6 QREB
  252. SX1 X3-PAG
  253. ZR X1,QRE4 IF PAGE OPTION
  254.  
  255. * SET OUTPUT FILE NAME.
  256.  
  257. RECALL O
  258. MX0 42
  259. SA4 O GET CURRENT FILENAME
  260. BX6 X6-X6
  261. SA2 TARA+ARLL
  262. BX1 X4-X2
  263. BX4 X0*X1
  264. ZR X4,QRE2 IF NO FILE NAME CHANGE
  265. SA1 IQ CHECK FOR FILE NAME CONFLICTS
  266. BX4 X1-X2
  267. BX4 X0*X4
  268. ZR X4,QRE1.1 IF FILE NAME CONFLICT
  269. SA1 NIQ
  270. BX4 X1-X2
  271. BX4 X0*X4
  272. NZ X4,QRE1.2 IF NO FILE NAME CONFLICT
  273. QRE1.1 SX5 =C* FILE NAME CONFLICT.*
  274. MESSAGE X5
  275. MX2 1 NO K - DISPLAY CHANGE
  276. JP QRECX RETURN
  277.  
  278. QRE1.2 SA6 LSTA INITIALIZE LIST FLAGS
  279. SA6 GRDE
  280. QRE2 SX1 3 SET FILENAME IN FET
  281. BX6 X1+X2
  282. SA6 A4
  283.  
  284. * DETERMINE IF REQUEUE/DEQUEUE FUNCTION.
  285.  
  286. SX1 X3-GRD
  287. NZ X1,QRE4 IF NOT GO COMMAND PROCESSOR
  288.  
  289. * SET PROPER PROCESSING ROUTINE.
  290.  
  291. SA2 TARA+AROP OPTION PARAMETER
  292. SX3 DEIG
  293. IX3 X2-X3
  294. ZR X3,QRE3 IF DEQUEUE OPTION
  295. SX3 PGIG
  296. IX2 X2-X3
  297. ZR X2,QRE2.1 IF NOT REQUEUE
  298. RJ CTF CREATE TABLE OF ACTIVE FAMILIES
  299. BX6 X6-X6 CLEAR FOT FULL FLAG
  300. SA6 FOTF
  301. QRE2.1 SX3 B1
  302. QRE3 SA3 X3+QREA
  303. BX6 X3
  304. SA6 GRDA
  305. QRE4 SA3 QREB
  306. SB3 X3+
  307. JP B3 JUMP TO PROCESSOR
  308.  
  309. * FUNCTION TABLE.
  310.  
  311. TFCN BSS 0
  312. LOC 0
  313. CON GRD GO COMMAND PROCESSOR
  314. CON PAG PAGE K-DISPLAY PROCESSOR
  315. CON LST LIST INACTIVE QUEUES PROCESSOR
  316. CON OUT DISPOSE OUTPUT FILE PROCESSOR
  317. LOC *O
  318. TFCNL EQU *-TFCN
  319.  
  320.  
  321. QREA BSS 0
  322. + RJ DEQ DEQUEUE FILES
  323. + RJ PIQ PROCESS INACTIVE QUEUE FILES
  324.  
  325. QREB CON 0 PROCESSOR ADDRESS
  326. TITLE REQUEUE/DEQUEUE PROCESSOR.
  327. GRD SPACE 4,20
  328. ** GRD - REQUEUE AND DEQUEUE.
  329. *
  330. * *GRD* PERFORMS THE COMMON FUNCTIONS OF REQUEUING AND
  331. * DEQUEUING.
  332. *
  333. * EXIT TO *QRE5*.
  334. * (X5) = TERMINATING MESSAGE.
  335. *
  336. * USES X - 2, 3, 5, 6, 7.
  337. * A - 2, 3, 6, 7.
  338. * B - 0.
  339. *
  340. * CALLS DEQ, DND, EMG, IDM, PIQ, RAF.
  341. *
  342. * MACROS CLOCK, DATE, REPRIEVE, RETURN, REWIND, SETFS,
  343. * SKIPEI, WRITER.
  344.  
  345.  
  346. GRD BSS 0
  347.  
  348. * PRESET MULTIPLE EQUIPMENT INDEX.
  349.  
  350. SX7 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  351. SA7 CEQP
  352.  
  353. * WRITE REPORT PAGE HEADER.
  354.  
  355. DATE WPHC1 SET DATE IN HEADER
  356. CLOCK WPHC2 SET TIME IN HEADER
  357. REWIND O
  358. SKIPEI O
  359. SX7 B1
  360. SA7 LSTB INITIALIZE LINE NUMBER
  361. BX6 X6-X6
  362. SA7 WPHA INITIALIZE PAGE COUNT
  363. SA6 WPHB CLEAR LINE COUNT
  364. SA7 PDFE+1 SET PRINT DENSITY FORMAT CONTROL FLAG
  365. SA6 NAQS CLEAR NUMBER OF AVAILABLE QFT SLOTS
  366.  
  367. * CLEAN UP FILES.
  368.  
  369. GRD2 SX3 IQ RETURN ATTACHED FILE
  370. RJ RAF
  371. RETURN NIQ
  372. RETURN IQF
  373. REWIND NIQ
  374.  
  375. * DETERMINE NEXT DEVICE.
  376.  
  377. GRD3 RJ DND DETERMINE NEXT DEVICE
  378. ZR X4,GRD6 IF END OF OPERATION
  379. SA3 X6+TMSA CHECK ERROR IDLE STATUS
  380. BX7 X4
  381. LX3 59-11
  382. SA7 GRDD *TEQA* TABLE ENTRY
  383. PL X3,GRD4 IF NO ERROR IDLE ON DEVICE
  384. SX5 EIDE*2000B *IGNORED - ERROR IDLE.*
  385. RJ EMG
  386. EQ GRD3 DETERMINE NEXT DEVICE
  387.  
  388. GRD4 REPRIEVE RPVB,SET,237B SET REPRIEVE PROCESSING
  389.  
  390. * BEGIN QUEUE OPERATION.
  391.  
  392. GRDA RJ PIQ PROCESS IQFT FILE
  393. * RJ DEQ DEQUEUE
  394.  
  395. REPRIEVE RPVB,SET,0 CLEAR REPRIEVE PROCESSING
  396.  
  397. RJ IDM ISSUE DAYFILE MESSAGES.
  398.  
  399. * DETERMINE IF END OF OPERATION.
  400.  
  401. SA3 TARA+AROP
  402. SX2 X3-PGIG
  403. ZR X2,GRD5 IF PURGE/IGNORE OPTION
  404. SA2 NAQS CHECK NUMBER OF AVAILABLE QFT SLOTS
  405. SX5 PIQA * QFT THRESHOLD LIMIT.*
  406. PL X2,GRD5 IF THRESHOLD NOT REACHED
  407. BX6 X5 FLAG OPERATOR ACTION REQUIRED
  408. SA6 OPAM
  409. EQ GRD7 CONTINUE
  410.  
  411. GRD5 SA2 TARA+ARDN
  412. ZR X2,GRD2 IF NO SPECIFIC DEVICE
  413. GRD6 SB0 0
  414. SX5 =C* QREC COMPLETE. *
  415. GRD7 WRITER O FLUSH OUTPUT BUFFER
  416. SX6 B1
  417. SA6 GRDE FLAG FILE WRITTEN
  418. BX7 X7-X7
  419. SA7 LSTA CLEAR LIST FILE WRITTEN FLAG
  420. SA3 TARA+ARFC
  421. PL X3,QRE5 IF NOT COMMAND CALL
  422. SETFS O,0
  423. JP QRE5 RETURN - COMPLETE
  424.  
  425.  
  426.  
  427. GRDD BSS 1 *TEQA* TABLE ENTRY
  428. GRDE CON 0 *REQUEUE/DEQUEUE* FLAG
  429.  
  430. TITLE RECOVER/DEQUEUE SUBROUTINES.
  431. DEQ SPACE 4,15
  432. ** DEQ - DEQUEUE DEVICE.
  433. *
  434. * *DEQ* DEACTIVATES ALL QUEUES THAT MATCH THE PARAMETERS
  435. * FOR A SPECIFIC DEVICE.
  436. *
  437. * ENTRY (X7) AND (GRDD) = *TEQA* TABLE ENTRY.
  438. *
  439. * USES X - ALL.
  440. * A - 1, 2, 3, 4, 5, 6, 7.
  441. * B - 3, 5, 6.
  442. *
  443. * CALLS ATT, CAF, CLD, DAL, EMG, RQT, SPF, VQE, WOF.
  444. *
  445. * MACROS MOVE, QCALL, READ, READW, RECALL, REWIND,
  446. * SKIPEI, WRITER, WRITEW.
  447.  
  448.  
  449. DEQ10 RJ EMG ISSUE ERROR MESSAGES
  450.  
  451. DEQ SUBR ENTRY/EXIT
  452. SX5 RDVE*2000B
  453. LX7 59-1
  454. NG X7,DEQ10 IF REMOVABLE DEVICE
  455. LX7 59-0-59+1
  456. SX2 X2+7000B SET ASSIGN-BY-ORDINAL FLAG
  457. SX5 FNFE*2000B
  458. PL X7,DEQ10 IF NO IQFT FILE ON DEVICE
  459. SA2 CEQP EST ORDINAL
  460. SX3 IQ ATTACH IQFT FILE AS *IQ*
  461. RJ ATT
  462. NZ X5,DEQ10 IF ERROR IN ATTACH
  463. SKIPEI X3,R POSITION FILE
  464.  
  465. * DEQUEUING LOOP.
  466.  
  467. REWIND NIQ
  468. RJ RQT READ QFT INTO *RBUF*
  469. SA2 QFTS
  470. SB5 RBUF
  471. SB6 X2+RBUF END OF QFT
  472. RECALL NIQ
  473.  
  474. * BUILD CANDIDATE ENTRIES.
  475.  
  476. DEQ3 SB5 B5+QFTE ADDRESS OF QFT ENTRY
  477. BX6 X6-X6 CLEAR RERUN FLAG
  478. SA6 DEQA
  479. LE B6,B5,DEQ5 IF END OF QFT
  480. SA5 B5+ READ QFT ENTRY
  481. MX0 -12 CLEAR LINKAGE FIELD
  482. BX1 X0*X5
  483. ZR X1,DEQ3 IF EMPTY QFT SLOT
  484. LX5 59-1
  485. NG X5,DEQ3 IF ATTACHED TO A JOB
  486. SX4 B1 SET CHECK FOR LID IN TABLE
  487. SA3 B5+2 CHECK LOGICAL IDENTIFIER
  488. RJ CLD
  489. NZ X3,DEQ3 IF NO MATCH
  490. SA1 TARA+AROP SELECT ORIGIN TYPE ACCESS LEVEL CHECK
  491. SB2 B0+ PRESET NO ORIGIN TYPE CHECK
  492. SX1 X1-2
  493. PL X1,DEQ3.0 IF NOT REQUEUE
  494. SB2 B1+ SET ORIGIN TYPE CHECK
  495. DEQ3.0 SA1 TARA+ARUA SET ACCESS LEVEL LIMITS
  496. SA2 TARA+ARLA
  497. SA3 B5+INSQ GET *INSQ* WORD OF QFT ENTRY
  498. RJ CAF CHECK ACCESS LEVEL OF FILE
  499. NZ X1,DEQ3 IF FILE NOT SELECTED
  500. SX1 B5+
  501. BX5 X1
  502. RJ VQE VERIFY QFT ENTRY
  503. SB5 X5+
  504. NZ X1,DEQ3 IF ENTRY DOES NOT MATCH
  505. SA3 CEQP CHECK EST ORDINAL
  506. BX1 X3-X2
  507. NZ X1,DEQ3 IF NOT THIS EQUIPMENT
  508.  
  509. * FILE MATCHES CRITERIA - CREATE PSEUDO IQFT ENTRY.
  510.  
  511. SA4 NIQ+2 IN POINTER
  512. SX6 X4+QFEWL ADVANCE IN POINTER
  513. SA3 A4+2 LIMIT
  514. SX3 X3
  515. IX2 X3-X6 LIMIT - (IN+QFEWL)
  516. SB3 X2
  517. LE B3,DEQ4 IF NO ROOM IN BUFFER
  518. SA6 A4
  519. SX6 B5-RBUF SET QFT ORDINAL IN ENTRY
  520. SX1 QFTE
  521. IX6 X6/X1
  522. SA6 X4+QFEWL-1
  523. SB3 QFEWL-QFTE-1 NUMBER OF WORDS TO CLEAR
  524. BX6 X6-X6
  525. DEQ3.1 SB3 B3-B1
  526. SA6 A6-B1
  527. NZ B3,DEQ3.1 IF MORE WORDS TO CLEAR
  528. MOVE QFTE,B5,X4 MOVE QFT ENTRY TO *NBUF*
  529. JP DEQ3 LOOP FOR NEXT ENTRY
  530.  
  531. * SET RERUN THIS DEVICE - NEW IQFT BUFFER FULL.
  532.  
  533. DEQ4 SX3 B6 SAVE (B5) AND (B6)
  534. SX6 B5
  535. LX6 18
  536. BX6 X3+X6
  537. SA6 DEQA
  538.  
  539. * QFT ENTRYS PROCESSED - SET *QFM* PARAMETERS.
  540.  
  541. DEQ5 SA1 NIQ
  542. RJ SPF
  543.  
  544. * *QFM* BUILDS IQFT ENTRIES FOR SELECTED FILES.
  545.  
  546. QCALL DEQF,NIQ DEQUEUE LIST
  547.  
  548. * COPY DEQUEUED ENTRIES TO IQFT.
  549.  
  550. READ NIQ,*
  551.  
  552. DEQ6 READW NIQ,IQFE,QFEWL
  553. NZ X1,DEQ7 IF END OF BUFFER
  554. SA2 IQFE
  555. ZR X2,DEQ6 IF ENTRY NOT AVAILABLE
  556. WRITEW IQ,IQFE,QFEWL
  557. SA5 IDMB
  558. SA3 DEQC
  559. SX7 X5+B1 INCREMENT COUNT
  560. SA7 A5
  561. SX5 WPHG SET FWA OF PAGE HEADER
  562. RJ WOF WRITE OUTPUT FILE
  563.  
  564. JP DEQ6
  565.  
  566. DEQ7 SA5 IDMB
  567. ZR X5,DEQ8 IF NO FILES DEQUEUED
  568. WRITER IQ,R
  569. DEQ8 SA3 DEQA
  570. SB6 X3
  571. LX3 -18
  572. SB5 X3-QFTE
  573. NZ X3,DEQ3 IF MORE QFT-S TO PROCESS THIS DEVICE
  574.  
  575. * RETURN EXISTING IQFT FILE/SET TRACK POINTER FOR NEW FILE.
  576.  
  577. QCALL DTQF,IQ DETACH IQFT FILE
  578. BX6 X6-X6
  579. SA6 ATTA CLEAR ATTACHED FLAG
  580. JP DEQX RETURN
  581.  
  582.  
  583. DEQA BSS 1 RERUN INDICATOR
  584. DEQB BSS 1 RETURN/PURGE FUNCTION
  585. DEQC DATA H*DEQUEUED*
  586. PIQ SPACE 4,20
  587. ** PIQ - PROCESS IQFT FILE.
  588. *
  589. * *PIQ* PERFORMS WHATEVER OPTION IS SELECTED ON THE IQFT
  590. * FILE FOR A PARTICULAR DEVICE.
  591. *
  592. * ENTRY (X7) = *TEQA* TABLE ENTRY.
  593. * (CEQP) = EST ORDINAL.
  594. *
  595. * USES X - ALL.
  596. * A - 0, 1, 2, 3, 5, 6, 7.
  597. * B - 3.
  598. *
  599. * CALLS ATT, CAF, CAS, CIN, CLD, CME, EMG, PLE, RFB, VIE.
  600. *
  601. * MACROS QCALL, READEI, READW, RECALL, REQUEST, REWIND
  602. * WRITER, WRITEW.
  603.  
  604.  
  605. PIQ12 RJ EMG ISSUE ERROR MESSAGES
  606.  
  607. PIQ SUBR ENTRY/EXIT
  608. LX7 59-0
  609. PL X7,PIQX IF NO IQFT FILE ON THIS DEVICE
  610. LX7 59-1-59+0
  611. SX5 RDVE*2000B
  612. NG X7,PIQ12 IF REMOVABLE DEVICE
  613. PIQ1 RJ CAS CALCULATE NUMBER OF AVAILABLE QFT SLOTS
  614. SA1 NIQ+1 CREATE NEW IQFT FILE
  615. SA2 CEQP FORCE NEW IQFT FILE TO SAME DEVICE
  616. SA3 TDAA+X2 GET ACCESS LEVEL
  617. MX0 12
  618. SX2 X2+7000B SET ASSIGN-BY-ORDINAL FLAG
  619. BX1 -X0*X1
  620. LX2 48
  621. BX6 X2+X1
  622. SX4 B1 SET SPECIAL PROCESSING FLAG
  623. LX4 39
  624. BX6 X6+X4
  625. SA6 A1
  626. RJ DAL DETERMINE VALID ACCESS LEVEL
  627. SX5 NSEE*1S10 * INCORRECT ACCESS LEVEL.*
  628. NG X3,PIQ12 IF NO VALID ACCESS LEVEL
  629. SA1 NIQ+4 SET ACCESS LEVEL
  630. MX0 -3
  631. LX3 36
  632. LX0 36
  633. BX1 X0*X1
  634. BX6 X1+X3
  635. SA6 A1
  636. REQUEST NIQ,U NEW IQFT FILE
  637.  
  638. * ATTACH IQFT FILE.
  639.  
  640. SA2 CEQP EST ORDINAL
  641. SX3 IQ ATTACH AS *IQ*
  642. RJ ATT
  643. NZ X5,PIQ12 IF ERROR ON ATTACH
  644.  
  645. * READ IQFT FILE.
  646.  
  647. READEI X3,R
  648. RECALL P
  649. SA5 IDMC
  650. PIQ2 ZR X5,PIQ2.1 IF END OF IGNORED FILES
  651. READW IQ,IQFE,QFEWL
  652. WRITEW NIQ,IQFE,QFEWL
  653. SX5 X5-1
  654. EQ PIQ2 CHECK FOR MORE IGNORED FILES
  655.  
  656. * PROCESSING MAIN LOOP.
  657.  
  658. PIQ2.1 READW IQ,IQFE,QFEWL
  659. RJ CME CHECK FOR MASS STORAGE ERROR
  660. NZ X5,PIQ8.1 IF MASS STORAGE ERROR
  661. NZ X1,PIQ8.1 IF EOF/EOI
  662. SA2 IQFE+8
  663. PL X2,PIQ3 IF NO LENGTH ERROR
  664. RJ PLE PROCESS LENGTH ERROR
  665. SX2 WIE SET IGNORE OPTION
  666. JP PIQ5
  667.  
  668. * VALIDATE IQFT ENTRY.
  669.  
  670. PIQ3 SA3 IQFE+2 CHECK LOGICAL IDENTIFIER
  671. SX4 B1+ SET CHECK FOR LID IN TABLE
  672. RJ CLD
  673. ZR X3,PIQ3.1 IF MATCH
  674. SX2 WIE SET IGNORE OPTION
  675. EQ PIQ5 PROCESS IGNORE OPTION
  676.  
  677. PIQ3.1 SA1 TARA+AROP SELECT ORIGIN TYPE ACCESS LEVEL CHECK
  678. SB2 B0+ PRESET NO ORIGIN TYPE CHECK
  679. SX1 X1-2
  680. PL X1,PIQ3.2 IF NOT REQUEUE
  681. SB2 B1+ SET ORIGIN TYPE CHECK
  682. PIQ3.2 SA1 TARA+ARUA SET ACCESS LEVEL LIMITS
  683. SA2 TARA+ARLA
  684. SA3 IQFE+INSQ GET *INSQ* WORD OF QFT ENTRY
  685. RJ CAF CHECK ACCESS LEVEL OF FILE
  686. ZR X1,PIQ3.3 IF FILE SELECTED
  687. SX2 WIE
  688. EQ PIQ5 IGNORE FILE
  689.  
  690. PIQ3.3 SA3 TARA+AROP GET OPTION
  691. MX0 -12
  692. BX6 -X0*X3
  693. SA6 PIQC SAVE OPTION
  694. SX6 X6-PGIG (X6) .EQ. 0 IF NOT REACTIVATE
  695. RJ VIE
  696. PL X1,PIQ4 IF NO FAMILY OPTION ERROR
  697. SX2 WIE SET IGNORE OPTION
  698. JP PIQ5 PROCESS IGNORE OPTION
  699.  
  700. PIQ4 SA3 PIQC
  701. LX3 1 MULTIPLY BY TWO
  702. IX1 X1+X3 INDEX INTO TABLE
  703. SA2 X1+QDPT PROCESSING ROUTINE
  704. PIQ5 SA0 PIQ6 SET RETURN ADDRESS
  705. SB3 X2+ PROCESSING ROUTINE
  706. JP B3 JUMP TO PROCESSING ROUTINE
  707.  
  708. * PROCESSING ROUTINES RETURN TO THIS POINT.
  709.  
  710. PIQ6 ZR X1,PIQ2.1 IF PROCESS COMPLETED SATISFACTORILY
  711.  
  712. * LAST ENTRY NOT PROCESSED - BUFFER FULL/QFT THRESHOLD LIMIT.
  713.  
  714. NG X1,PIQ7 IF QFT THRESHOLD LIMIT REACHED
  715.  
  716. * SET RERUN THIS DEVICE.
  717.  
  718. SX7 B1+
  719. SA7 PIQB
  720.  
  721. PIQ7 RJ CIN COPY REMAINING OLD IQFT TO NEW IQFT
  722.  
  723. * REQUEUE FILES.
  724.  
  725. PIQ8.1 SA1 IDMA REACTIVATED COUNT
  726. ZR X1,PIQ9 IF NO FILES TO REQUEUE
  727. RJ RFB REQUEUE FILES
  728.  
  729. * PURGE FILES.
  730.  
  731. PIQ9 SA1 IDMD
  732. ZR X1,PIQ10 IF NO FILES PURGED
  733. QCALL RLLF,P PURGE QUEUED FILES
  734.  
  735. * COMPLETE NEW IQFT FILE.
  736.  
  737. PIQ10 WRITER NIQ,R
  738. QCALL STQF,NIQ SET NEW IQFT IN MST
  739.  
  740. PIQ11 REWIND P
  741. REWIND R
  742. SA5 PIQB
  743. ZR X5,PIQX IF NO RERUN THIS DEVICE
  744.  
  745. BX6 X6-X6 CLEAR RERUN FLAG
  746. SA6 A5
  747. JP PIQ1
  748.  
  749. PIQA DATA C* QFT THRESHOLD LIMIT. *
  750. PIQB BSSZ 1 RERUN DEVICE FLAG
  751. PIQC CON 0 OPTION
  752.  
  753. * QUEUE DISPOSITION PROCESSOR TABLE.
  754.  
  755. QDPT CON REQ,PGQ REQUEUE/PURGE
  756. CON REQ,WIE REQUEUE/IGNORE
  757. CON PGQ,WIE PURGE/IGNORE
  758. TITLE LIST/PAGING PROCESSORS.
  759. LST SPACE 4,15
  760. ** LST - LIST INACTIVE QUEUES.
  761. *
  762. * *LST* PRODUCES A ONE RECORD OUTPUT FILE FOR EACH LIST
  763. * COMMAND ENTERED. THE OUTPUT RECORD IS READ BACK TO PRODUCE
  764. * A RIGHT SCREEN K-DISPLAY. THE OUTPUT FILE POSITION IS
  765. * MAINTAINED TO PROPERLY ALLOW FOR SCREEN PAGING.
  766. *
  767. * EXIT (X5) = TERMINATING MESSAGE.
  768. *
  769. * USES X - 1, 2, 3, 4, 5, 6, 7.
  770. * A - 1, 2, 3, 6, 7.
  771. *
  772. * CALLS ATT, CLD, CME, DND, EMD, GKD, RAF, VIE, WOF.
  773. *
  774. * MACROS BKSP, CLOCK, DATE, MESSAGE, READEI, READW,
  775. * REPRIEVE, REWIND, SETFS, SKIPEI, WRITER.
  776.  
  777.  
  778. LST BSS 0
  779.  
  780. * PRESET MULTIPLE EQUIPMENT INDEX.
  781.  
  782. SX7 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  783. SX6 B1
  784. SA7 CEQP
  785. SA6 WPHA PAGE COUNT
  786. SA6 LSTB LINE NUMBER
  787. SA6 PDFE+1 SET PRINT DENSITY FORMAT CONTROL FLAG
  788.  
  789. * SET UP FILES.
  790.  
  791. REWIND O
  792. SKIPEI O
  793.  
  794. * SET UP PAGE HEADER.
  795.  
  796. LST1 DATE WPHC1 SET DATE IN HEADER
  797. CLOCK WPHC2 SET TIME IN HEADER
  798. BX6 X6-X6 CLEAR LINE COUNT
  799. SA6 WPHB
  800. SA6 LSTA CLEAR LIST FILE WRITTEN FLAG
  801.  
  802. * DETERMINE NEXT DEVICE TO PROCESS.
  803.  
  804. LST2 RJ DND
  805. ZR X4,LST6 IF END OF DEVICES
  806. BX7 X4
  807. SA7 GRDD *TEQA* TABLE ENTRY
  808. LX7 59-0
  809. NG X7,LST3 IF QUEUES THIS DEVICE
  810. SA2 TARA+ARDN
  811. ZR X2,LST2 IF NO SPECIFIC DEVICE
  812. SX5 =C* NO INACTIVE QUEUES ON DEVICE. *
  813. JP QRE5
  814.  
  815. * ATTACH IQFT FILE.
  816.  
  817. LST3 REPRIEVE RPVB,SET,237B SET REPRIEVE PROCESSING
  818. SA2 CEQP EST ORDINAL
  819. SX3 IQ ATTACH IQFT FILE
  820. RJ ATT
  821. NZ X5,LST4.1 IF ERROR IN ATTACHING FILE
  822. READEI X3,R READ IQFT FILE
  823.  
  824. * PROCESSING LOOP.
  825.  
  826. LST4 READW IQ,IQFE,QFEWL
  827. RJ CME CHECK FOR MASS STORAGE ERROR
  828. NZ X5,LST5 IF MASS STORAGE ERROR
  829. NZ X1,LST5 IF EOF/EOI
  830.  
  831. * VERIFY FILE AGAINST PARAMETERS.
  832.  
  833. SA3 IQFE+2 CHECK LOGICAL IDENTIFIER
  834. SX4 B1+ SET CHECK FOR LID IN TABLE
  835. RJ CLD
  836. NZ X3,LST4 IF NO MATCH
  837. SX6 B0+
  838. RJ VIE
  839. NZ X1,LST4 IF FILE DOES NOT MATCH
  840.  
  841. * WRITE OUTPUT FILE.
  842.  
  843. SA3 WPHE SET BLANK DISPOSITION CODE
  844. SX5 WPHI SET FWA OF PAGE HEADER
  845. RJ WOF WRITE OUTPUT FILE
  846. SX7 B1+ SET LIST FILE WRITTEN FLAG
  847. SA7 LSTA
  848. JP LST4
  849.  
  850. * PROCESS DEVICE COMPLETE.
  851.  
  852. LST4.1 RJ EMG ISSUE ERROR MESSAGE
  853. LST5 SX3 IQ RETURN FILE
  854. RJ RAF
  855. REPRIEVE RPVB,SET,0 CLEAR REPRIEVE PROCESSING
  856. SA2 TARA+ARDN
  857. ZR X2,LST2 IF NO SPECIFIC DEVICE
  858.  
  859. * CLEAN UP OUTPUT FILE.
  860.  
  861. LST6 SA1 LSTA
  862. NZ X1,LST7 IF LIST WRITTEN
  863. SX5 =C* NO INACTIVE QUEUED FILES PRESENT. *
  864. MESSAGE X5,3
  865. JP QRE5
  866.  
  867. LST7 WRITER O
  868. SA3 TARA+ARFC
  869. PL X3,LST8 IF NOT COMMAND CALL
  870. SETFS O,0
  871. SX5 B0 NO MESSAGE FOR *QFSP*
  872. JP QRE5
  873.  
  874. * SET UP K-DISPLAY.
  875.  
  876. LST8 BKSP O
  877.  
  878. LST9 READEI O,R
  879. BX6 X6-X6
  880. SA6 WPHB RESET LINES/PAGE COUNT
  881.  
  882. * PRODUCE K- DISPLAY.
  883.  
  884. RJ GKD GENERATE K-DISPLAY
  885. NZ X5,QRECX IF ERROR STATUS SET
  886. SX5 =C* LIST COMPLETE. *
  887. JP QRECX RETURN
  888.  
  889. LSTA CON 0 LIST FILE WRITTEN FLAG
  890. LSTB CON 0 LINE NUMBER
  891. PAG SPACE 4,15
  892. ** PAG - PAGE RIGHT SCREEN K-DISPLAY.
  893. *
  894. * *PAG* ADVANCES THE RIGHT SCREEN K-DISPLAY.
  895. *
  896. * EXIT (X5) = TERMINATING MESSAGE.
  897. *
  898. * USES X - 2, 5, 6.
  899. * A - 2, 6.
  900. *
  901. * CALLS GKD.
  902. *
  903. * MACROS BKSP, READEI.
  904.  
  905.  
  906. PAG BSS 0
  907. SA2 LSTA
  908. NZ X2,PAG1 IF LAST RECORD PROPER FORMAT
  909. SX5 =C* INCORRECT PAGING ATTEMPT. *
  910. JP QRECX
  911.  
  912. * REPOSITION OUTPUT FILE.
  913.  
  914. PAG1 SA2 GKDE
  915. ZR X2,PAG3 IF NOT END OF DISPLAY
  916.  
  917. BKSP O
  918.  
  919. PAG2 READEI O,R
  920. BX6 X6-X6
  921. SA6 WPHB PRESET LINES/PAGE COUNT
  922.  
  923. * CREATE K-DISPLAY.
  924.  
  925. PAG3 RJ GKD
  926. NZ X5,QRECX IF ERROR STATUS SET
  927. SX5 =C* PAGING COMPLETE. *
  928. JP QRECX RETURN
  929. TITLE RELEASE PROCESSOR.
  930. OUT SPACE 4,15
  931. ** OUT - RELEASE OUTPUT FILE.
  932. *
  933. * *OUT* RELEASES THE OUTPUT FILE GENERATED BY THE *LIST*
  934. * COMMAND.
  935. *
  936. * EXIT (X5) = APPROPRIATE COMPLETION MESSAGE.
  937. *
  938. * USES X - 2, 3, 5, 6, 7.
  939. * A - 2, 3, 6, 7.
  940. *
  941. * CALLS CBL.
  942. *
  943. * MACROS ROUTE.
  944.  
  945.  
  946. OUT BSS 0 ENTRY
  947. SA2 LSTA LIST FILE WRITTEN FLAG
  948. SA3 GRDE REQUEUE/DEQUEUE REPORT FLAG
  949. IX2 X3+X2
  950. ZR X2,OUT1 IF NO FILE
  951. BX6 X6-X6
  952. SA6 A2 CLEAR FLAGS
  953. SX7 -B1
  954. SA6 A3
  955. SA7 A2+B1 LINE NUMBER
  956. RJ CBL CLEAR *DSP* PARAMETER BLOCK
  957. SA2 O SET UP *DSP* PARAMETER BLOCK
  958. MX6 42
  959. BX6 X6*X2
  960. SA6 BLOCK
  961. SA2 OUTA SET FLAG BITS
  962. BX6 X2
  963. SA6 A6+B1
  964. ROUTE BLOCK,RECALL
  965. SX5 =C* OUTPUT FILE RELEASED. *
  966. BX2 X2-X2
  967. JP QRECX
  968.  
  969. OUT1 SX5 =C* ERROR ON OUTPUT FILE. *
  970. JP QRECX RETURN
  971.  
  972.  
  973. OUTA VFD 24/0,12/2HPR,6/0,18/FRDC
  974. TITLE UTILITY SUBROUTINES.
  975. CME SPACE 4,15
  976. ** CME - CHECK FOR MASS STORAGE ERROR.
  977. *
  978. * ENTRY (X1) = DATA TRANSFER STATUS.
  979. *
  980. * EXIT (X1) = UNCHANGED.
  981. * (X5) .NE. 0, IF MASS STORAGE ERROR.
  982. *
  983. * USES X - 0, 1, 3, 5, 6.
  984. * A - 1, 3, 6.
  985. *
  986. * CALLS EMG.
  987. *
  988. * MACROS QCALL.
  989.  
  990.  
  991. CME SUBR ENTRY/EXIT
  992. SA3 IQ
  993. MX0 -4
  994. AX3 10
  995. BX6 -X0*X3 ERROR STATUS BITS
  996. SX3 11B
  997. IX6 X3-X6
  998. BX5 X5-X5
  999. NZ X6,CMEX IF NOT MASS STORAGE ERROR
  1000. BX6 X1 SAVE DATA TRANSFER STATUS
  1001. SA6 CMEA
  1002. QCALL PGQF,IQ PURGE IQFT FILE
  1003. SX5 RMSE*2000B
  1004. BX6 X6-X6 CLEAR FILE ATTACHED FLAG
  1005. SA6 ATTA
  1006. RJ EMG
  1007. MESSAGE (=C* QUEUES UNRECOVERABLE THIS DEVICE.*)
  1008. SA1 CMEA RESTORE DATA TRANSFER STATUS
  1009. EQ CMEX RETURN
  1010.  
  1011. CMEA CON 0 DATA TRANSFER STATUS
  1012. CIN SPACE 4,15
  1013. ** CIN - COPY OLD IQFT TO NEW IQFT.
  1014. *
  1015. * *CIN* COPIES REMAINING ENTRIES ON THE OLD IQFT FILE TO THE
  1016. * NEW IQFT FILE.
  1017. *
  1018. * ENTRY (IDMC) = CURRENT COUNT OF INACTIVE QUEUES.
  1019. *
  1020. * EXIT (IDMC) = UPDATED COUNT OF INACTIVE QUEUES.
  1021. *
  1022. * USES X - 2, 3, 5, 7.
  1023. * A - 2, 3, 7.
  1024. *
  1025. * CALLS CME, WOF.
  1026. *
  1027. * MACROS READW, WRITEW.
  1028.  
  1029.  
  1030. CIN SUBR ENTRY/EXIT
  1031. WRITEW NIQ,IQFE,QFEWL LAST ENTRY NOT PROCESSED
  1032. EQ CIN2 CHECK THRESHOLD LIMIT
  1033.  
  1034. * COPY OLD IQFT FILE TO NEW IQFT.
  1035.  
  1036. CIN1 READW IQ,IQFE,QFEWL
  1037. RJ CME
  1038. NZ X5,CINX IF MASS STORAGE ERROR
  1039. NZ X1,CINX IF EOF/EOI
  1040. WRITEW NIQ,IQFE,QFEWL
  1041.  
  1042. * DETERMINE IF PROCESSING THRESHOLD LIMIT.
  1043.  
  1044. CIN2 SA3 NAQS
  1045. PL X3,CIN1 IF NOT THRESHOLD LIMIT
  1046.  
  1047. * INCREMENT *IGNORED* COUNT.
  1048.  
  1049. SA2 IDMC
  1050. SX7 X2+B1
  1051. SA7 A2
  1052.  
  1053. * WRITE ENTRY TO OUTPUT FILE.
  1054.  
  1055. SA3 WIEA *IGNORED*
  1056. SX5 WPHG SET FWA OF HEADER
  1057. RJ WOF
  1058. EQ CIN1 COPY NEXT ENTRY
  1059. EMG SPACE 4,20
  1060. ** EMG - ERROR MESSAGE ISSUED.
  1061. *
  1062. * *EMG* ISSUES AN APPROPRIATE ERROR MESSAGE.
  1063. *
  1064. * ENTRY (X5) = ERROR STATUS BITS (10-13).
  1065. *
  1066. * EXIT MESSAGE ISSUED.
  1067. * (X1) = MESSAGE ADDRESS.
  1068. *
  1069. * USES X - 0, 1, 2, 4, 5, 6.
  1070. * A - 2, 5, 6.
  1071. * B - 2, 5.
  1072. *
  1073. * CALLS COD, SFN.
  1074. *
  1075. * MACROS MESSAGE.
  1076.  
  1077.  
  1078. EMG SUBR ENTRY/EXIT
  1079. AX5 10 SET ERROR CODE
  1080. SB5 X5-1
  1081. MX0 -6
  1082. SA5 GRDD FAMILY/DEVICE
  1083. LX5 48
  1084. BX1 -X0*X5 CONVERT DEVICE NUMBER
  1085. RJ COD
  1086. MX0 42
  1087. LX5 12
  1088. BX1 X0*X5 FAMILY
  1089. MX0 -12
  1090. BX4 -X0*X6
  1091. SB2 B5-EMGAL
  1092. LE B2,EMG1 IF LEGAL ERROR CODE
  1093. SB5 EMGAL UNDEFINED CODE
  1094. EMG1 SA5 EMGA+B5 SPACE FILL NAME
  1095. RJ SFN
  1096. LX4 30
  1097. SA2 X5
  1098. LX0 30
  1099. SA6 X5+B1
  1100. BX2 X0*X2 CLEAR OLD FAMILY
  1101. IX6 X2+X4
  1102. SA6 A6-B1 DEVICE NUMBER
  1103.  
  1104. MESSAGE X5
  1105. BX1 X5
  1106. EQ EMGX RETURN
  1107.  
  1108.  
  1109. * TABLE OF ERROR MESSAGE ADDRESSES.
  1110.  
  1111. EMGA BSS 0
  1112. LOC 1
  1113. FNFE CON EMGB NO IQFT FILE
  1114. FAIE CON EMGC IQFT INTERLOCKED
  1115. TASE CON 0
  1116. FTHE CON EMGD FNT/QFT FULL
  1117. INSE CON 0
  1118. RMSE CON EMGE MASS STORAGE ERROR
  1119. RRAE CON 0
  1120. NRAE CON 0
  1121. DUNE CON EMGI IGNORED - UNAVAILABLE
  1122. RDVE CON EMGF IGNORED - REMOVABLE
  1123. CON 0
  1124. FTFE CON 0
  1125. EIDE CON EMGH IGNORED - ERROR IDLE
  1126. DFNE CON 0
  1127. NSEE CON EMGAB INCORRECT DEVICE ACCESS LEVEL
  1128. LOC *O
  1129. EMGAL EQU *-EMGA
  1130. CON EMGZ UNDEFINED ERROR
  1131.  
  1132. EMGB DATA C* DNYY FM AAAAAAA NO IQFT FILE.*
  1133. EMGC DATA C* DNYY FM AAAAAAA IQFT INTERLOCKED.*
  1134. EMGD DATA C* DNYY FM AAAAAAA FNT/QFT FULL.*
  1135. EMGE DATA C* DNYY FM AAAAAAA MS ERROR.*
  1136. EMGF DATA C* DNYY FM AAAAAAA IGNORED - REMOVABLE.*
  1137. EMGH DATA C* DNYY FM AAAAAAA IGNORED - ERROR IDLE.*
  1138. EMGI DATA C* DNYY FM AAAAAAA IGNORED - UNAVAILABLE.*
  1139. EMGZ DATA C* DNYY FM AAAAAAA UNDEFINED ERROR.*
  1140. EMGAB DATA C* DNYY FM AAAAAAA INCORRECT ACCESS LEVEL.*
  1141. ERR SPACE 4,15
  1142. ** ERR - ERROR EXIT PROCESSING.
  1143. *
  1144. * *ERR* RELEASES THE ATTACHED IQFT FILE AND ISSUES
  1145. * APPROPRIATE MESSAGES INDICATING ABORT CONDITION.
  1146. *
  1147. * ENTRY QREC ABORTED.
  1148. *
  1149. * USES X - 3.
  1150. *
  1151. * CALLS RAF.
  1152. *
  1153. * MACROS ABORT, MESSAGE.
  1154.  
  1155.  
  1156. ERR BSS 0
  1157. SX3 IQ
  1158. RJ RAF RETURN ATTACHED FILE
  1159.  
  1160. * ISSUE MESSAGES.
  1161.  
  1162. MESSAGE (=C* QREC/QLIST ABORTED.*)
  1163. MESSAGE (=C* QUEUE STATUS INDEFINITE.*)
  1164.  
  1165. ABORT
  1166. GKD SPACE 4,15
  1167. ** GKD - GENERATE K - DISPLAY.
  1168. *
  1169. * *GKD* PRODUCES THE K-DISPLAY IN A SCRATCH BUFFER AND
  1170. * RETURNS THE ADDRESS OF THE DISPLAY.
  1171. *
  1172. * ENTRY OUTPUT FILE APPROPRIATELY POSITIONED.
  1173. *
  1174. * EXIT (X2) = DISPLAY ADDRESS.
  1175. * (X5) = ERROR MESSAGE ADDRESS, IF APPLICABLE.
  1176. *
  1177. * USES X - 1, 2, 3, 4, 5, 6, 7.
  1178. * A - 1, 2, 3, 4, 5, 6, 7.
  1179. *
  1180. * MACROS MOVE, READW, RECALL.
  1181.  
  1182.  
  1183. GKD SUBR ENTRY/EXIT
  1184. SA2 LSTA
  1185. NZ X2,GKD1 IF FILE PRESENT
  1186. SX5 =C* NO OUTPUT FILE PRESENT. *
  1187. EQ GKDX RETURN
  1188.  
  1189. GKD1 RECALL O
  1190.  
  1191. * SETUP DISPLAY HEADING.
  1192.  
  1193. MOVE WPHDL,WPHD,DBUF+1
  1194. MOVE WPHEL,WPHE,DBUF+1+WPHDL
  1195. MOVE WPHFL,WPHF,DBUF+1+WPHDL+WPHEL
  1196.  
  1197. SX6 KMLL-8 NUMBER OF DISPLAY LINES PER PAGE
  1198. SA6 GKDA
  1199. SA3 WPHB
  1200. SX6 DBUF+WPHDL+WPHEL+WPHFL
  1201. SA6 A6+1 NEXT LINE ADDRESS
  1202. NZ X3,GKD4 IF NOT AT PAGE HEADING
  1203.  
  1204. * BYPASS PAGE HEADING.
  1205.  
  1206. GKD2 READW O,WPHC-1,WPHCL
  1207. NZ X1,GKD6 IF EOF/EOI
  1208. SA1 LLIM GET LINE LIMIT
  1209. SX7 X1-7
  1210. SA7 WPHB LINES/PAGE COUNT
  1211.  
  1212. * PROCESS INDIVIDUAL LINES.
  1213.  
  1214. GKD4 READW O,FQOA,FQOAL
  1215. NZ X1,GKD6 IF EOF/EOI
  1216. BX6 X6-X6 SET END OF LINE
  1217. SA6 FQOA+8
  1218. SA4 GKDB INCREMENT NEXT LINE ADDRESS
  1219. SX7 X4+FQOAL-2
  1220. SA7 A4+
  1221. MOVE FQOAL-2,FQOA+2,X4
  1222.  
  1223. * DECREMENT PAGE COUNTS.
  1224.  
  1225. SA5 WPHB
  1226. SA3 GKDA
  1227. SX7 X5-1
  1228. SX6 X3-1
  1229. SA7 A5
  1230. SA6 A3
  1231. NZ X6,GKD5 IF NOT END OF DISPLAY PAGE
  1232. SA4 GKDB
  1233. MOVE GKDCL,GKDC,X4 *MORE*
  1234. BX6 X6-X6
  1235. SA6 GKDE CLEAR END OF DISPLAY INDICATOR
  1236. EQ GKD7 SET EXIT CONDITIONS
  1237.  
  1238. GKD5 NZ X7,GKD4 IF NOT END OF OUTPUT PAGE
  1239. EQ GKD2 PROCESS NEXT LINE
  1240.  
  1241. * END OF DISPLAY.
  1242.  
  1243. GKD6 SA4 GKDB
  1244. MOVE GKDDL,GKDD,X4 *END OF DISPLAY.*
  1245. SX6 B1+
  1246. SA6 GKDE SET END OF DISPLAY INDICATOR
  1247.  
  1248. * SET EXIT CONDITIONS.
  1249.  
  1250. GKD7 SA3 GKDF ENSURE BLANK FILL ON *K-DISPLAY*
  1251. BX6 X3
  1252. BX5 X5-X5 CLEAR ERROR FLAG
  1253. SA6 FQOA
  1254. SX2 DBUF SET DISPLAY ADDRESS
  1255. EQ GKDX RETURN
  1256.  
  1257.  
  1258. GKDA BSS 1 DISPLAY LINE COUNT
  1259. GKDB BSS 1 NEXT LINE ADDRESS
  1260.  
  1261. GKDC DATA C* *
  1262. DATA C* MORE *
  1263. CON 0 TERMINATE DISPLAY
  1264. GKDCL EQU *-GKDC
  1265.  
  1266. GKDD DATA C* *
  1267. DATA C* END OF DISPLAY.*
  1268. CON 0 TERMINATE DISPLAY
  1269. GKDDL EQU *-GKDD
  1270.  
  1271. GKDE BSSZ 1 END OF DISPLAY FLAG
  1272. GKDF DATA H* * BLANK FILL FOR *K-DISPLAY*
  1273. IDM SPACE 4,20
  1274. ** IDM - ISSUE DAYFILE MESSAGES.
  1275. *
  1276. * *IDM* FORMATS AND ISSUES MESSAGES APPLICABLE TO THE
  1277. * COMPLETED QUEUE OPERATION.
  1278. *
  1279. * ENTRY (IDMA) = QUEUED FILES REACTIVATED COUNT.
  1280. * (IDMB) = QUEUED FILES DEQUEUED COUNT.
  1281. * (IDMC) = QUEUED FILES IGNORED COUNT.
  1282. * (IDMD) = QUEUED FILES PURGED COUNT.
  1283. *
  1284. * EXIT MESSAGES ISSUED.
  1285. *
  1286. * USES X - ALL.
  1287. * A - 1, 2, 3, 4, 5, 6, 7.
  1288. * B - 6, 7.
  1289. *
  1290. * CALLS CDD, COD, SFN.
  1291. *
  1292. * MACROS MESSAGE.
  1293.  
  1294.  
  1295. IDM SUBR ENTRY/EXIT
  1296.  
  1297. * ISSUE FILE COUNT MESSAGES.
  1298.  
  1299. SB7 B0+
  1300. SB6 TFCRL
  1301. IDM1 SA1 B7+TFCR
  1302. ZR X1,IDM2 IF NO FILE COUNT
  1303. BX6 X6-X6
  1304. SA6 A1 CLEAR FILE COUNT
  1305. RJ CDD CONVERT FILE COUNT
  1306. SA2 B7+TFCM
  1307. LX6 30
  1308. SA5 X2
  1309. MX0 -30
  1310. BX6 X0*X6
  1311. SA4 GRDD
  1312. BX5 -X0*X5
  1313. MX0 42
  1314. IX6 X6+X5
  1315. BX1 X0*X4 FAMILY NAME
  1316. SA6 A5
  1317. RJ SFN SPACE FILL FAMILY NAME
  1318. MX0 48
  1319. SA2 A5+3
  1320. LX4 48
  1321. LX6 54
  1322. BX2 -X0*X2 CLEAR PREVIOUS FAMILY
  1323. BX6 X0*X6
  1324. MX0 -6
  1325. IX6 X6+X2 APPEND *.*
  1326. BX1 -X0*X4
  1327. SA6 A2+
  1328. RJ COD CONVERT DEVICE NUMBER
  1329. MX0 -12
  1330. SA3 A6-B1
  1331. BX6 -X0*X6 CLEAR SPACES
  1332. LX0 24
  1333. BX3 X0*X3 CLEAR OLD DEVICE NUMBER
  1334. LX6 24
  1335. IX7 X6+X3
  1336. SA7 A3
  1337.  
  1338. MESSAGE A5 ISSUE MESSAGE
  1339.  
  1340. IDM2 SB7 B7+1
  1341. NE B7,B6,IDM1 IF MESSAGES NOT COMPLETE
  1342. EQ IDMX RETURN
  1343.  
  1344. TFCR BSS 0 FILE COUNT RESULT TABLE
  1345. IDMA BSS 1 REACTIVATED
  1346. IDMB BSS 1 INACTIVATED
  1347. IDMC BSS 1 LEFT INACTIVE
  1348. IDMD BSS 1 PURGED
  1349. TFCRL EQU *-TFCR
  1350.  
  1351. TFCM BSS 0 FILE COUNT MESSAGE TABLE
  1352. CON MSG1
  1353. CON MSG2
  1354. CON MSG3
  1355. CON MSG4
  1356. TFCML EQU *-TFCM
  1357.  
  1358.  
  1359. MSG1 DATA C* XXXX FILES ACTIVATED DNYY FM AAAAAAA.*
  1360. MSG2 DATA C* XXXX FILES DEQUEUED DNYY FM AAAAAAA.*
  1361. MSG3 DATA C* XXXX FILES IGNORED DNYY FM AAAAAAA.*
  1362. MSG4 DATA C* XXXX FILES PURGED DNYY FM AAAAAAA.*
  1363. PGQ SPACE 4,20
  1364. ** PGQ - PURGE QUEUED FILE.
  1365. *
  1366. * *PGQ* ENTERS THE IQFT ENTRY INTO THE LIST OF FILES TO BE
  1367. * PURGED.
  1368. *
  1369. * ENTRY (IQFE - IQFE+15) = IQFT ENTRY.
  1370. * (IDMD) = CURRENT PURGED FILE COUNT.
  1371. * (A0) = RETURN ADDRESS.
  1372. *
  1373. * EXIT (X1) .EQ. 0, IF ENTRY MADE.
  1374. * (X1) .NE. 0, IF BUFFER FULL.
  1375. * (IDMD) INCREMENTED.
  1376. *
  1377. * USES X - 1, 3, 5, 6.
  1378. * A - 1, 3, 6.
  1379. * B - 6.
  1380. *
  1381. * CALLS EQB, WOF.
  1382.  
  1383.  
  1384. PGQ BSS 0
  1385. SA1 P SET FET ADDRESS
  1386. RJ EQB ENTER IQFT ENTRY INTO BUFFER
  1387. NZ X1,PGQ1 IF BUFFER FULL
  1388. SA3 IDMD INCREMENT PURGED COUNT
  1389. SX6 X3+B1
  1390. SA6 A3
  1391. SA3 PGQA *PURGED*
  1392. SX5 WPHG SET FWA OF HEADER
  1393. RJ WOF
  1394. BX1 X1-X1
  1395. PGQ1 SB6 A0 SET RETURN ADDRESS
  1396. JP B6 RETURN
  1397.  
  1398. PGQA DATA H*PURGED*
  1399. EQB SPACE 4,15
  1400. ** EQB - ENTER IQFT ENTRY INTO BUFFER.
  1401. *
  1402. * ENTRY (IQFE - IQFE+15) = IQFT ENTRY.
  1403. * (CEQP) = EST ORDINAL.
  1404. * (A1) = ADDRESS OF FET.
  1405. *
  1406. * EXIT (X1) .EQ. 0, IF ENTRY MADE.
  1407. * (X1) .GT. 0, IF BUFFER FULL.
  1408. *
  1409. * USES X - 0, 1, 2, 5, 6.
  1410. * A - 1, 2, 5, 6.
  1411. * B - 3.
  1412. *
  1413. * MACROS MOVE.
  1414.  
  1415.  
  1416. EQB1 SX1 B1 SET ERROR CONDITION
  1417.  
  1418. EQB SUBR ENTRY/EXIT
  1419. SA5 A1+2
  1420. SA2 A5+2
  1421. SX6 X5+QFEWL ADVANCE IN
  1422. SX2 X2 LIMIT
  1423. IX2 X2-X6
  1424. SB3 X2
  1425. LE B3,EQB1 IF BUFFER FULL
  1426. MX0 12 UPDATE EQUIPMENT FIELD IN IQFT
  1427. SA6 A5+ UPDATE IN
  1428. SA1 IQFE+1
  1429. SA2 CEQP
  1430. BX1 -X0*X1 CLEAR OLD EST ORDINAL
  1431. LX2 48
  1432. BX6 X1+X2
  1433. SA6 A1
  1434. MOVE QFEWL,IQFE,X5
  1435. BX1 X1-X1
  1436. EQ EQBX RETURN
  1437. REQ SPACE 4,25
  1438. ** REQ - REQUEUE FILE.
  1439. *
  1440. * *REQ* ENTERS THE IQFT ENTRY INTO THE BUFFER FOR
  1441. * REQUEUING.
  1442. *
  1443. * ENTRY (A0) = RETURN ADDRESS.
  1444. * (IQFE - IQFE+15) = IQFT ENTRY.
  1445. * (IDMA) = CURRENT REQUEUED COUNT.
  1446. * (NAQS) = AVAILABLE QFT SLOTS.
  1447. *
  1448. * EXIT (X1) .EQ. 0, IF ENTRY MADE.
  1449. * (X1) .LT. 0, IF THRESHOLD LIMIT REACHED.
  1450. * (X1) .GT. 0, IF BUFFER FULL.
  1451. * (IDMA) INCREMENTED.
  1452. * (NAQS) DECREMENTED.
  1453. *
  1454. * USES X - 1, 2, 3, 5, 6, 7.
  1455. * A - 1, 2, 3, 6, 7.
  1456. * B - 6.
  1457. *
  1458. * CALLS EQB, WOF.
  1459. *
  1460. * MACROS MESSAGE.
  1461.  
  1462.  
  1463. REQ BSS 0
  1464.  
  1465. * DECREMENT THRESHOLD COUNT.
  1466.  
  1467. SA3 NAQS NUMBER OF AVAILABLE QFT SLOTS
  1468. SX7 X3-1
  1469. SA7 A3+
  1470. PL X7,REQ1 IF THRESHOLD NOT REACHED
  1471. MESSAGE PIQA * QFT THRESHOLD LIMIT.*
  1472. MX1 1 SET THRESHOLD LIMIT REACHED
  1473. JP REQ2 SET RETURN ADDRESS
  1474.  
  1475. REQ1 SA1 R SET FET ADDRESS
  1476. RJ EQB ENTER IQFT ENTRY INTO BUFFER
  1477. NZ X1,REQ2 IF BUFFER FULL
  1478. SA2 IDMA INCREMENT REACTIVATED COUNT
  1479. SX6 X2+B1
  1480. SA6 A2
  1481.  
  1482. * WRITE OUTPUT LINE.
  1483.  
  1484. SA3 REQA *ACTIVATED*
  1485. SX5 WPHB SET FWA OF PAGE HEADER
  1486. RJ WOF
  1487. BX1 X1-X1
  1488. REQ2 SB6 A0 SET RETURN ADDRESS
  1489. JP B6
  1490.  
  1491. REQA DATA H*ACTIVATED*
  1492. RFB SPACE 4,15
  1493. ** RFB - REQUEUE FILES IN BUFFER.
  1494. *
  1495. * *RFB* ISSUES THE APPROPRIATE REQUEST TO REQUEUE THOSE
  1496. * FILES THAT ARE IN THE BUFFER (RBUF).
  1497. *
  1498. * EXIT (X5) = 0, IF REQUEUED SUCCESSFULLY.
  1499. * FILES NOT REQUEUED ARE REPLACED IN *NBUF*.
  1500. *
  1501. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1502. * A - 1, 2, 3, 5, 6, 7.
  1503. * B - 2, 3, 4.
  1504. *
  1505. * CALLS EMG.
  1506. *
  1507. * MACROS MOVE, QCALL, REWIND, WRITEW.
  1508.  
  1509.  
  1510. RFB2 SA3 R+6
  1511. ZR X3,RFB3 IF NO FILES IGNORED
  1512. SA2 IDMA DECREMENT NUMBER OF FILES ACTIVATED
  1513. IX6 X2-X3
  1514. SA6 A2
  1515. SA1 IDMC INCREMENT NUMBER OF FILES IGNORED
  1516. IX7 X1+X3
  1517. SA7 A1
  1518. RFB3 REWIND R,R REWIND POINTERS
  1519.  
  1520. RFB SUBR ENTRY/EXIT
  1521. SA5 R
  1522. SX0 36000B
  1523. BX6 -X0*X5 CLEAR ERRORS AND STATUS
  1524. SA6 A5+
  1525. BX7 X7-X7 CLEAR FILE IGNORE COUNT IN FET
  1526. SA7 R+6
  1527. QCALL RQLF,R REQUEUE LIST
  1528.  
  1529. SA5 A5
  1530. BX5 X0*X5
  1531. ZR X5,RFB2 IF NO ERRORS
  1532. RJ EMG ISSUE ERROR MESSAGES
  1533.  
  1534. * BACK OUT UNREACTIVATED QUEUES.
  1535.  
  1536. SA2 R+3 OUT POINTER
  1537. SX6 X2 FIRST ENTRY NOT REQUEUED (SET BY *QFM*)
  1538. SA3 A2-B1 IN
  1539. SA6 RFBA
  1540. BX7 X3
  1541. SA7 A6+B1
  1542. RFB1 IX1 X6-X3
  1543. PL X1,RFB2 IF END OF BUFFER
  1544. MOVE QFEWL,X6,IQFE
  1545. WRITEW NIQ,IQFE,QFEWL
  1546.  
  1547. * ADJUST FILE COUNTS.
  1548.  
  1549. SA2 IDMA DECREMENT REQUEUE FILE COUNT
  1550. SX7 X2-1
  1551. SA3 IDMC
  1552. SA7 A2
  1553. SX6 X3+B1 INCREMENT LEFT INACTIVE COUNT
  1554. SA6 A3+
  1555.  
  1556. * SEARCH FOR NEXT ENTRY NOT PROCESSED BY *QFM*.
  1557.  
  1558. SA1 RFBA
  1559. SX6 X1+QFEWL
  1560. SA3 A1+B1
  1561. SA6 A1
  1562. EQ RFB1 LOOP TO END OF BUFFER
  1563.  
  1564.  
  1565. RFBA BSS 1 CURRENT ENTRY IN REQUEUE BUFFER
  1566. BSS 1 LWA RECOVERY BUFFER
  1567. WIE SPACE 4,20
  1568. ** WIE - WRITE INACTIVE ENTRY TO NEW IQFT.
  1569. *
  1570. * *WIE* WRITES THE IQFT ENTRY TO THE NEW IQFT FILE.
  1571. *
  1572. * ENTRY (IQFE - IQFE+15) = IQFT ENTRY.
  1573. * (IDMC) = IGNORED COUNT.
  1574. * (A0) = RETURN ADDRESS.
  1575. *
  1576. * EXIT ENTRY WRITTEN TO *NIQ*.
  1577. * (IDMC) INCREMENTED.
  1578. *
  1579. * USES X - 1, 3, 5, 6.
  1580. * A - 3, 6.
  1581. * B - 6.
  1582. *
  1583. * CALLS WOF.
  1584. *
  1585. * MACROS WRITEW.
  1586.  
  1587.  
  1588. WIE BSS 0
  1589. SA3 IDMC INCREMENT LEFT INACTIVE COUNT
  1590. SX6 X3+B1
  1591. SA6 A3
  1592.  
  1593. WRITEW NIQ,IQFE,QFEWL
  1594. SA3 WIEA *IGNORED*
  1595. SX5 WPHG SET FWA OF PAGE HEADER
  1596. RJ WOF
  1597. SB6 A0 RESTORE RETURN ADDRESS
  1598. BX1 X1-X1
  1599. JP B6 RETURN
  1600.  
  1601. WIEA DATA H*IGNORED*
  1602. WPH SPACE 4,20
  1603. ** WPH - WRITE PAGE HEADER.
  1604. *
  1605. * *WPH* WRITES A NEW PAGE HEADER ON FILE *OUTPUT*.
  1606. *
  1607. * ENTRY (X5) = ADDRESS OF PAGE HEADER.
  1608. * (WPHC1) = DATE.
  1609. * (WPHC2) = TIME.
  1610. * (PDFE+1) = SET IF PRINT DENSITY FORMAT EFFECTOR
  1611. * NOT YET WRITTEN.
  1612. *
  1613. * EXIT PAGE HEADER WRITTEN.
  1614. * LINE COUNT RESET.
  1615. *
  1616. * USES X - 0, 1, 2, 6, 7.
  1617. * A - 1, 6, 7.
  1618. *
  1619. * CALLS CDD.
  1620. *
  1621. * MACROS RECALL, WRITEW.
  1622.  
  1623.  
  1624. WPH SUBR ENTRY/EXIT
  1625. SA1 WPHA INCREMENT PAGE NUMBER
  1626. SX7 X1+B1
  1627. SA7 A1
  1628. RJ CDD
  1629. MX0 36 SET PAGE NUMBER IN HEADER
  1630. SA1 WPHC3
  1631. BX1 X0*X1
  1632. BX6 -X0*X6
  1633. BX6 X1+X6
  1634. SA6 WPHC3
  1635. RECALL O
  1636. SA1 PDFE+1 GET PRINT DENSITY FORMAT CONTROL FLAG
  1637. BX7 X7-X7
  1638. SA7 A1
  1639. WRITEW O,A1-B1,X1 CONDITIONALLY WRITE FORMAT EFFECTOR
  1640. WRITEW O,WPHH,WPHHL
  1641. SX2 WPHI
  1642. IX2 X5-X2
  1643. NZ X2,WPH1 IF REQUEUE REPORT
  1644. WRITEW O,WPHI,WPHIL HEADER FOR *LIST*
  1645. EQ WPH2 SKIP REQUEUE/DEQUEUE HEADER
  1646.  
  1647. WPH1 WRITEW O,WPHG,WPHGL HEADER FOR REQUEUE/DEQUEUE
  1648. WPH2 SA1 LLIM
  1649. SX7 X1-7 INITIALIZE LINE COUNT
  1650. SA7 WPHB
  1651. EQ WPHX RETURN
  1652.  
  1653.  
  1654. WPHA BSS 1 PAGE COUNT
  1655. WPHB BSS 1 LINE/PAGE COUNT
  1656.  
  1657. WPHH BSS 0
  1658. WPHC DATA C*1 QREC/QLIST PROCESSOR. YY/MM/DD. HH
  1659. ,.MM.SS. PAGE *
  1660. WPHC1 EQU *-4 DATE
  1661. WPHC2 EQU *-3 TIME
  1662. WPHC3 EQU *-2 PAGE
  1663. WPHHL EQU *-WPHH
  1664.  
  1665. WPHI DATA H*0* CARRIAGE CONTROL
  1666.  
  1667. WPHD DATA C* *
  1668. DATA C* INACTIVE QUEUES LIST*
  1669. DATA C* *
  1670. WPHDL EQU *-WPHD
  1671.  
  1672. DATA H* * CARRIAGE CONTROL
  1673.  
  1674. WPHE DATA C* LENGTH
  1675. ,ACCESS*
  1676. WPHEL EQU *-WPHE
  1677.  
  1678. DATA H* * CARRIAGE CONTROL
  1679. WPHF DATA C* NUM JSNS MID FAMILY DN DT DS DATE (PRUS)
  1680. ,LEVEL DISPOSITION*
  1681. DATA C* *
  1682. WPHCL EQU *-WPHC
  1683. WPHIL EQU *-WPHI
  1684. CON 0 TERMINATE DISPLAY
  1685. WPHFL EQU *-WPHF
  1686.  
  1687. WPHG DATA H*0*
  1688. DATA H* QUEUE DISPOSITION*
  1689. DATA C* *
  1690. DATA H* * CARRIAGE CONTROL
  1691.  
  1692. DATA C* LENGTH
  1693. ,ACCESS*
  1694. DATA H* * CARRIAGE RETURN
  1695. DATA C* NUM JSNS MID FAMILY DN DT DS DATE (PRUS)
  1696. ,LEVEL DISPOSITION*
  1697. DATA C* *
  1698. WPHGL EQU *-WPHG
  1699. WOF SPACE 4,15
  1700. ** WOF - WRITE OUTPUT FILE.
  1701. *
  1702. * *WOF* WRITES AN ENTRY TO THE OUTPUT
  1703. * REPORT FOR THE REQUEUE AND DEQUEUE ROUTINES.
  1704. *
  1705. * ENTRY (X3) = DISPOSITION DESCRIPTOR.
  1706. * (X5) = FWA OF PAGE HEADER.
  1707. *
  1708. * USES X - 1, 2, 3, 6.
  1709. * A - 1, 3, 6.
  1710. * B - 7.
  1711. *
  1712. * CALLS FQO, WPH.
  1713. *
  1714. * MACROS WRITEW.
  1715.  
  1716.  
  1717. WOF SUBR ENTRY/EXIT
  1718. SA1 WPHB
  1719. NZ X1,WOF1 IF NOT END OF PAGE
  1720. BX6 X3 SAVE DISPOSITION DESCRIPTOR
  1721. SA6 WOFA
  1722. RJ WPH WRITE PAGE HEADER
  1723. SA3 WOFA
  1724. WOF1 SB7 GRDD ADDRESS OF FAMILY/DEVICE
  1725. SA1 LSTB INCREMENT LINE NUMBER
  1726. SX6 X1+B1
  1727. SA6 A1
  1728. SX5 IQFE SET IQFT ENTRY ADDRESS
  1729. RJ FQO FORMAT OUTPUT LINE
  1730. WRITEW O,B3,B2
  1731. SA3 WPHB DECREMENT LINE/PAGE COUNT
  1732. SX6 X3-1
  1733. SA6 A3
  1734. EQ WOFX RETURN
  1735.  
  1736. WOFA CON 0 SCRATCH
  1737. TITLE COMMON DECKS.
  1738. * COMMON DECKS.
  1739.  
  1740. *CALL COMCCDD
  1741. *CALL COMCCIO
  1742. *CALL COMCCOD
  1743. *CALL COMCCPM
  1744. *CALL COMCEDT
  1745. *CALL COMCFQO
  1746. *CALL COMCIQP
  1747. *CALL COMCLFM
  1748. *CALL COMCMVE
  1749. *CALL COMCQFM
  1750. *CALL COMCQFP
  1751. *CALL COMCRDW
  1752. *CALL COMCSCB
  1753. *CALL COMCSFM
  1754. *CALL COMCSFN
  1755. *CALL COMCSYS
  1756. *CALL COMCVLC
  1757. *CALL COMCVQF
  1758. *CALL COMCZTB
  1759. *CALL COMCWTW
  1760. TITLE BUFFERS.
  1761.  
  1762. USE LITERALS
  1763.  
  1764. * BUFFERS.
  1765.  
  1766. BLOCK BSS EPBL *DSP* PARAMETER BLOCK
  1767.  
  1768. DBUF VFD 11/0,1/1,1/1,5/0,18/KTIA,24/0 K-DISPLAY BUFFER
  1769. NBUF EQU DBUF+BUFL NEW IQFT BUFFER
  1770. TACF EQU NBUF+BUFL TABLE OF ACTIVE FAMILIES
  1771. OBUF EQU TACF+ESMX+1 OUTPUT BUFFER
  1772. IBUF EQU OBUF+BUFL IQFT FILE BUFFER
  1773.  
  1774. * QFT READ INTO FIELD LENGTH STARTING AT *RBUF*.
  1775.  
  1776. RBUF EQU IBUF+BUFL RECOVERED FILES BUFFER
  1777. PBUF EQU RBUF+BUFL PURGED FILES BUFFER
  1778.  
  1779. BUFLL EQU PBUF+BUFL-DBUF LENGTH OF BUFFERS
  1780. BUFFL EQU *+BUFLL END OF BUFFERS
  1781. TITLE PRESET.
  1782. PRS SPACE 4,20
  1783. ** PRS - PRESET.
  1784. *
  1785. * PRESET ADJUSTS FIELD LENGTH, PERFORMS THRESHOLD
  1786. * CALCULATION FOR A GIVEN SIZE QFT, AND SETS UP A
  1787. * CONTROL WORD TO READ THE QFT.
  1788. *
  1789. * ENTRY (QFTA) = *QFTP* WORD IN CMR.
  1790. *
  1791. * EXIT (QFTS) = LENGTH OF QFT.
  1792. * (QFTT) = QFT THRESHOLD.
  1793. * (RQTA) = *RSB* CONTROL WORD FOR QFT READ.
  1794. *
  1795. * USES X - 0, 1, 2, 3, 4, 6, 7.
  1796. * A - 2, 6, 7.
  1797. *
  1798. * MACROS MEMORY.
  1799.  
  1800.  
  1801. PRS SUBR ENTRY/EXIT
  1802. MEMORY CM,,R,BUFFL
  1803.  
  1804. * SET QFT FWA AND LENGTH.
  1805.  
  1806. SA2 QFTA *QFTP* WORD
  1807. MX0 -24 GET FWA OF QFT
  1808. LX2 24
  1809. BX7 -X0*X2
  1810. LX2 12 GET MAXIMUM NUMBER OF QFT ENTRIES
  1811. MX0 -12
  1812. BX2 -X0*X2
  1813. SX3 QFTE
  1814. IX6 X2*X3 NUMBER OF ENTRIES * ENTRY LENGTH
  1815. SA6 QFTS QFT LENGTH
  1816.  
  1817. * SET UP *RSB* CONTROL WORD TO READ QFT.
  1818.  
  1819. SX4 100B WORD COUNT
  1820. LX4 18
  1821. BX7 X4+X7 ADD ON QFT FWA
  1822. SX1 RBUF BUFFER ADDRESS
  1823. LX7 18
  1824. BX7 X7+X1
  1825. SA7 RQTA
  1826.  
  1827. * CALCULATE NUMBER OF RESERVED QFT ENTRIES.
  1828.  
  1829. SX3 SQTL STATIC QFT THRESHOLD LIMIT
  1830. SX7 100
  1831. IX3 X7-X3
  1832. IX3 X2*X3 NUMBER OF QFT ENTRIES * 100-*SQTL*
  1833. IX6 X3/X7
  1834. BX7 X7-X7 CLEAR LID TABLE FULL FLAG
  1835. SA7 LTFL
  1836. SA6 QFTT
  1837. EQ PRSX RETURN
  1838. SPACE 4,10
  1839. ERRPL *-RFL IF DEFAULT FIELD LENGTH TOO SMALL
  1840.  
  1841.  
  1842. END QREC
cdc/nos2.source/opl871/qrec.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator