User Tools

Site Tools


cdc:nos2.source:opl871:pfdump

PFDUMP

Table Of Contents

  • [00005] PFDUMP - PERMANENT FILE DUMP.
  • [00010] PERMANENT FILE DUMP UTILITY.
  • [00402] MACROS.
  • [00404] ARCHIVE - PROCESS ARCHIVE FILE OPERATION.
  • [00440] CWWRITE - CONTROL WORD WRITE WORDS.
  • [00466] PROGRAM CONSTANT SECTION.
  • [00551] MAIN ROUTINES.
  • [00601] PCT - PROCESS CATALOG TRACK.
  • [00724] GENERAL SUBROUTINES.
  • [00726] AAT - ASSIGN ALTERNATE STORAGE TAPE.
  • [00791] ALF - ATTACH LOCK FILE.
  • [00861] APR - ABORT PROCESSOR.
  • [00887] CCR - CHECK CATALOG RESCAN FILE.
  • [00921] CDT - COPY FILE DATA FROM ALTERNATE STORAGE TAPE.
  • [01051] CFD - COMPLETE FILE DUMP.
  • [01101] CID - CHECK INCOMPLETE FILE DUMP.
  • [01146] CSI - CHECK SPECIAL USER INDEX.
  • [01187] CSP - CHECK SELECTION PARAMETERS.
  • [01320] CWW - CONTROL WORD WRITE.
  • [01527] DLY - DELAY.
  • [01542] DSF - DROP STAGED FILES.
  • [01575] DTF - DUMP TAPE RESIDENT FILE.
  • [01695] FAF - FLUSH ARCHIVE FILES.
  • [01714] FCW - FLUSH BUFFER USING CONTROL WORD WRITE.
  • [01738] FTR - FORMAT ALTERNATE STORAGE TAPE REQUEST PARAMETERS.
  • [01761] GLF - GET LOCK FILES.
  • [01875] GRC - GENERATE *RDF* CATALOG RECORDS.
  • [01978] GRE - GENERATE *RDF* EXTRACT RECORD.
  • [02046] IFM - ISSUE FILE COUNT MESSAGES.
  • [02100] IRF - INITILIZE RESCAN FILES.
  • [02128] IRS - INITIALIZE RESCAN FOR STAGED FILES.
  • [02211] MMC - MOVE MEMORY VIA *CMU* OR REGISTERS.
  • [02328] MRE - MAKE DATA READ LIST ENTRY.
  • [02413] OPF - OPEN PERMITS FILE.
  • [02442] OPN - OPEN DEVICE FILES.
  • [02500] PAF - PROCESS ARCHIVE FILE OPERATION.
  • [02529] PAR - POSITION ALTERNATE STORAGE TAPE TO NEXT RECORD.
  • [02552] PAT - PROCESS ALTERNATE STORAGE TAPE.
  • [02682] PFC - PROCESS FILE CATALOG ENTRY.
  • [02804] PFI - PROCESS FILE WITH DUMP INHIBITED.
  • [02828] PPD - PROCESS PFC/PERMITS ONLY DUMP.
  • [02854] PRL - PROCESS DATA READ LIST.
  • [02955] PTF - PROCESS TAPE RESIDENT FILES.
  • [03000] RCP - RECALL *PFU* TO READ DATA FILE.
  • [03031] RCW - READ ARCHIVE FILE BLOCK CONTROL WORD.
  • [03066] RFC - REQUEST FILE COPY FROM TAPE ALTERNATE STORAGE.
  • [03116] RFS - REQUEST FILE STAGING.
  • [03176] RIP - REPRIEVE INTERRUPT PROCESSOR.
  • [03189] RLF - RELEASE LOCK FILES.
  • [03259] RMF - RETURN MASTER DEVICE FILES.
  • [03272] RPF - READ PERMIT FILE.
  • [03411] RPR - READ PRU.
  • [03490] SDI - SET DEVICE INHIBIT DATES.
  • [03534] SDL - SORT DATA LIST.
  • [03572] SDP - SET DATA READ LIST PARAMETERS.
  • [03595] SRS - SELECT RIGHT SCREEN.
  • [03620] STL - SORT TAPE COPY LIST.
  • [03660] TER - TERMINATE ARCHIVE FILE AND RETURN SYSTEM FILES.
  • [03690] UCE - UPDATE CATALOG ENTRY.
  • [03751] WDB - WRITE DATA BLOCK.
  • [03987] WDT - WRITE DUMP TAPE.
  • [04066] WRT - WRITE CONTROL WORD AND DATA.
  • [04099] COMMON DECKS.
  • [04143] MESSAGES.
  • [04210] RESERVED LOCATIONS.
  • [04270] LKC1 - *MSS* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
  • [04271] LKC2 - *MSE* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
  • [04298] UUCW - UTILITY UPDATE CATALOG ENTRY CONTROL WORD.
  • [04316] UULV - UPDATE CATALOG ENTRY LOCATION/VERIFY INFORMATION.
  • [04329] FETS.
  • [04398] BUFFERS.
  • [04412] DLRB - DATA LIST REQUEST BUFFER.
  • [04452] PRESET MAIN LOOP.
  • [04454] PRS - PRESET PROGRAM.
  • [04643] PRESET SUBROUTINES.
  • [04645] CDR - CHECK DESTAGE REQUIREMENTS.
  • [04873] GRH - GENERATE *RDF* HEADER RECORD.
  • [04900] LBL - WRITE PFDUMP ARCHIVE FILE LABEL.
  • [04939] SLP - SET LABEL PARAMETERS.
  • [05016] CATALOG IMAGE RECORD SUBROUTINES.
  • [05018] BCL - BUILD CATALOG LIST.
  • [05072] CCI - CREATE CATALOG IMAGE.
  • [05325] WIB - WRITE CATALOG IMAGE BLOCK.
  • [05381] PRESET MESSAGES.

Source Code

PFDUMP.txt
  1. IDENT PFDUMP1,/COMSPFS/OVLB,PFD,01,00
  2. ABS
  3. SST
  4. SYSCOM B1
  5. TITLE PFDUMP - PERMANENT FILE DUMP.
  6. SPACE 4,10
  7. *COMMENT PFDUMP - PERMANENT FILE DUMP.
  8. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9. SPACE 4,10
  10. *** PFDUMP - PERMANENT FILE DUMP UTILITY.
  11. * D. A. HIVELEY 71/09/30.
  12. * S. T. WORSTELL 72/06/05.
  13. * P. L. VERELL 79/06/28.
  14. * G. S. YODER 87/01/31.
  15. SPACE 4,10
  16. *** *PFDUMP* IS A PERMANENT FILE UTILITY THAT COPIES FILES STORED
  17. * ON A PERMANENT FILE DEVICE TO A BACKUP STORAGE FILE. FILES
  18. * CREATED BY *PFDUMP* MAY BE RELOADED BY THE *PFLOAD* UTILITY
  19. * PROGRAM.
  20. *
  21. * *PFDUMP* MAY BE CALLED BY THE PERMANENT FILE SUPERVISOR *PFS*
  22. * OR BY COMMAND. SEE *COMSPFS* FOR A DESCRIPTION OF THE
  23. * PARAMETERS VALID FOR *PFDUMP*.
  24. *
  25. * PERMANENT FILE DUMPS ARE CLASSIFIED AS ONE OF THE FOLLOWING
  26. * TYPES -
  27. *
  28. * 1. FULL - NO OPTIONS ARE SPECIFIED EXCEPT FOR FAMILY NAME OR
  29. * PACK NAME, MASTER DEVICE NUMBER (*DN*) OR TRUE DEVICE
  30. * NUMBER (*TD*). IF *DN* IS SPECIFIED, IT MUST BE A MASTER
  31. * DEVICE. IF A DEVICE NUMBER IS NOT SPECIFIED, THE ENTIRE
  32. * FAMILY WILL BE PROCESSED.
  33. *
  34. * 2. INCREMENTAL - ALL FILES CHANGED SINCE SOME SPECIFIED DATE
  35. * AND TIME (USUALLY THE PREVIOUS INCREMENTAL OR FULL DUMP)
  36. * ARE DUMPED USING THE *OP=M*, *AD* AND *AT* OPTIONS.
  37. * THE ONLY OTHER OPTIONS THAT ARE SPECIFIED ARE THOSE FOR A
  38. * FULL DUMP.
  39. *
  40. * FULL AND INCREMENTAL DUMPS ARE USED TOGETHER TO RESTORE A
  41. * PERMANENT FILE BASE AFTER A DEVICE FAILURE. IF FULL DUMPS
  42. * ARE PERFORMED BY DEVICE, THE CORRESPONDING INCREMENTAL DUMPS
  43. * SHOULD BE PERFORMED USING THE SAME DEVICE NUMBERS.
  44. *
  45. * 3. PARTIAL - ANY OTHER OPTIONS ARE SPECIFIED TO RESTRICT THE
  46. * FILES SELECTED TO BE DUMPED. PARTIAL DUMPS ARE NOT
  47. * GENERALLY USED AS PART OF A PERMANENT FILE BACKUP SCHEME.
  48. *
  49. *
  50. * PERMANENT FILE DUMPS DO NOT REQUIRE AN IDLE SYSTEM. HOWEVER,
  51. * EACH CATALOG TRACK IS INTERLOCKED WHILE THE FILES CATALOGED
  52. * THERE ARE DUMPED. DURING THIS TIME NO USER MAY PEFORM
  53. * PERMANENT FILE OPERATIONS ON THOSE FILES, ALTHOUGH A
  54. * USER CAN CONTINUE TO ACCESS A DIRECT ACCESS FILES WHICH
  55. * WAS ATTACHED EARLIER. *PFDUMP* WILL NOT DUMP ANY FILE
  56. * WHICH IS CURRENTLY ATTACHED IN WRITE, MODIFY OR APPEND
  57. * MODE; A FILE CURRENTLY ATTACHED IN UPDATE MODE WILL BE
  58. * DUMPED EXCEPT ON A DESTAGE DUMP (*DT* OPTION).
  59. *
  60. * SECURITY CONSIDERATIONS.
  61. *
  62. * IN AN UNSECURED SYSTEM, *PFDUMP* WILL USE THE *LA* AND *UA*
  63. * PARAMETERS AS SELECTION CRITERIA ALONG WITH ANY OTHER
  64. * SPECIFIED PARAMETERS.
  65. *
  66. * IN A SECURE SYSTEM, *PFDUMP* MUST ENSURE TWO THINGS. FIRST,
  67. * THAT THE RANGE OF ACCESS LEVELS DUMPED IS WITHIN THE SYSTEM
  68. * ACCESS LIMITS. SECOND, THAT THE EQUIPMENT TO WHICH THE
  69. * ARCHIVE (AND VERIFY) FILES ARE ASSIGNED HAVE APPROPRIATE
  70. * ACCESS LEVEL LIMITS TO ALLOW PROCESSING OF ALL POTENTIALLY
  71. * DUMPED FILES.
  72. *
  73. * IF THE *LA* AND *UA* PARAMETERS ARE USED TO SELECT THE RANGE
  74. * OF ACCESS LEVELS, *PFS* HAS VERIFIED THAT THEY ARE WITHIN
  75. * THE SYSTEM ACCESS LEVEL LIMITS. IF THESE PARAMETERS ARE NOT
  76. * USED, THE RANGE IS CALCULATED AS THE MAXIMUM RANGE DEFINED BY
  77. * THE DEVICE ACCESS LEVEL LIMITS OF ALL THE DEVICES TO BE
  78. * PROCESSED BY *PFDUMP*.
  79. SPACE 4,30
  80. *** MESSAGE LEGEND.
  81. *
  82. * THE FOLLOWING LEGEND DEFINES PARAMETERS THAT ARE USED IN MANY
  83. * OF THE *PFDUMP* ERROR MESSAGES. THE DESCRIPTIVE CHARACTER
  84. * STRINGS DEFINED HERE ARE REPLACED BY THEIR ACTUAL VALUE WHEN
  85. * A PARTICULAR MESSAGE IS ISSUED. THE _ CHARACTER DOES NOT
  86. * APPEAR IN ACTUAL MESSAGES BUT IS USED IN THE DOCUMENTATION AS
  87. * A DELIMITER TO AVOID AMBIGUITIES.
  88. *
  89. * DD = DEVICE NUMBER.
  90. * EEE = EST ORDINAL.
  91. * MMMMMM = NUMBER OF FILES
  92. * NNNNNNN = PERMANENT FILE NAME.
  93. * RRRRRRRR = RELATIVE PRU OF FILE CONTAINING AN ERROR.
  94. * UUUUUU = USER INDEX.
  95. SPACE 4,10
  96. *** INFORMATIVE DAYFILE MESSAGES.
  97. *
  98. * * MMMMMM FILES SKIPPED WITH ERRORS.*
  99. * THE NUMBER OF SELECTED FILES WHICH COULD NOT BE
  100. * DUMPED.
  101. *
  102. * * MMMMMM FILES DUMPED WITH PERMIT/DATA ERRORS.*
  103. * THE NUMBER OF FILES ON WHICH DISK ERRORS WERE
  104. * ENCOUNTERED DURING THE DUMP PROCESS. IF THESE FILES
  105. * ARE RELOADED, *PFLOAD* WILL SET THE APPROPRIATE ERROR
  106. * FLAGS IN THE FILE-S *PFC* ENTRY (SEE *EO* OPTION
  107. * DOCUMENTATION).
  108. *
  109. * * MMMMMM *PFC ONLY* FILES DUMPED.
  110. * THE NUMBER OF ALTERNATE STORAGE RESIDENT FILES FOR
  111. * WHICH ONLY THE *PFC* AND PERMITS WERE DUMPED.
  112. *
  113. * * MMMMMM FILES SELECTED FOR *PFC ONLY* DUMP.*
  114. * THE NUMBER OF ALTERNATE STORAGE RESIDENT FILES
  115. * SELECTED TO HAVE ONLY THE *PFC* AND PERMITS DUMPED
  116. * WHEN THE *IP* OPTION WAS SPECIFIED.
  117. *
  118. * * MMMMMM FILES DUMPED.*
  119. * THE NUMBER OF FILES DUMPED TO THE ARCHIVE FILE.
  120. *
  121. * * MMMMMM FILES SELECTED FOR DUMP.*
  122. * THE NUMBER OF FILES SELECTED FOR DUMP WHEN THE *IP*
  123. * OPTION WAS SELECTED.
  124. *
  125. * * MMMMMM DUMPED FILES STAGED.*
  126. * THE NUMBER OF FILES WHICH WERE STAGED FROM ALTERNATE
  127. * STORAGE MEDIA TO DUMP THE FILE DATA.
  128. *
  129. * * MMMMMM DUMPED FILES PURGED.*
  130. * THE NUMBER OF FILES PURGED AFTER BEING DUMPED WHEN
  131. * *OP=P* WAS SPECIFIED.
  132. *
  133. * * MMMMMM DUMPED FILES NOT PURGED.*
  134. * THE NUMBER OF FILES WHICH WERE DUMPED BUT NOT PURGED
  135. * WHEN THE *OP=P* OPTION WAS SPECIFIED. THIS WILL OCCUR
  136. * WHEN DATA OR PERMIT ERRORS ARE ENCOUNTERED DURING A
  137. * FILE DUMP OR WHEN A FILE IS PURGED BY A USER BETWEEN
  138. * THE TIME OF THE FILE DUMP AND THE *PFDUMP* PURGE
  139. * PROCESSING.
  140. *
  141. * * MMMMMM DUMPED FILES DESTAGED.*
  142. * THE NUMBER OF DUMPED FILES FOR WHICH THE TAPE
  143. * ALTERNATE STORAGE INFORMATION WAS SET IN THE FILE-S
  144. * *PFC* ENTRY WHEN A DESTAGE DUMP (DT OPTION) WAS
  145. * SPECIFIED.
  146. *
  147. * * MMMMMM DUMPED FILES NOT DESTAGED.*
  148. * THE NUMBER OF DUMPED FILES FOR WHICH THE TAPE
  149. * ALTERNATE STORAGE INFORMATION WAS NOT SET IN THE
  150. * FILE-S *PFC* ENTRY WHEN A DESTAGE DUMP (DT OPTION) WAS
  151. * SPECIFIED. THIS WILL OCCUR WHEN DATA OR PERMIT ERRORS
  152. * ARE ENCOUNTERED DURING A FILE DUMP OR WHEN A FILE IS
  153. * MODIFIED OR PURGED BY A USER BETWEEN THE TIME OF THE
  154. * FILE DUMP AND THE *PFDUMP* ALTERNATE STORAGE UPDATE
  155. * PROCESSING.
  156. *
  157. * * NO FILES PROCESSED.*
  158. * NO FILES WERE DUMPED ON THIS DEVICE.
  159. *
  160. * * PFDUMP COMPLETE.*
  161. * *PFDUMP* TERMINATED WITHOUT FATAL ERRORS.
  162. SPACE 4,10
  163. *** FATAL ERROR DAYFILE MESSAGES.
  164. *
  165. * THESE ERRORS RESULT IN *PFDUMP* ABORTING.
  166. *
  167. * * ACCESS LEVEL LIMITS OUT OF RANGE.*
  168. * THE DEVICE ACCESS LEVELS OF THE DEVICES THAT WILL BE
  169. * PROCESSED CONTAIN A RANGE OF ACCESS LEVELS OUTSIDE THE
  170. * SYSTEM ACCESS LEVEL LIMITS.
  171. *
  172. * * ACCESS LEVELS NOT ALLOWED ON ARCHIVE FILE EQUIPMENT.*
  173. * THE RANGE OF ACCESS LEVELS TO BE DUMPED IS NOT ALLOWED
  174. * ON THE EQUIPMENT WHERE THE ARCHIVE FILE, THE VERIFY
  175. * FILE, THE RELEASE DATA FILE, OR THE SUMMARY FILE
  176. * RESIDES.
  177. *
  178. * * INTERNAL ERROR ON FILE ZZZZZOD.*
  179. * PFDUMP WAS NOT ABLE TO LOCATE THE SPECIFIED OPTICAL
  180. * DISK ARCHIVE FILE IN THE *ZZZZZOD* FILE.
  181. *
  182. * * NO FILES SELECTED.*
  183. * THE FILE SELECTION PARAMETERS SPECIFIED FOR THE DUMP
  184. * WERE SUCH THAT NO DEVICES IN THE SYSTEM COULD CONTAIN
  185. * THE SPECIFIED FILES. THIS MAY BE CAUSED BY
  186. * CONFLICTING SELECTION PARAMETERS.
  187. *
  188. * * NT/CT/AT TAPE OR OD REQUIRED FOR DESTAGE.*
  189. * THE FILE SPECIFIED FOR EITHER THE ARCHIVE FILE OR THE
  190. * VERIFY FILE A DESTAGE DUMP WAS NOT AN *NT*, *CT* OR
  191. * *AT* TAPE OR AN *OD* OPTICAL DISK DEVICE.
  192. *
  193. * * OPTICAL DISK LABEL NOT VALID FOR DESTAGE.*
  194. * THE SPECIFIED OPTICAL DISK ARCHIVE FILE EITHER DOES
  195. * NOT HAVE A RECORDED FILE NAME OF *PFARCHIVE*, DOES NOT
  196. * HAVE AN OWNER IDENTIFIER OF *SYSTEMX*, OR DOES NOT
  197. * HAVE A GROUP IDENTIFIER EQUAL TO THE FAMILY OF THE
  198. * ARCHIVE.
  199. *
  200. * * PARTITION NOT VALID FOR DESTAGE.*
  201. * THE SPECIFIED OPTICAL DISK ARCHIVE FILE WAS NOT ON THE
  202. * *DEFAULT* PARTITION.
  203. *
  204. * * SELECTED MASTER OR TRUE DEVICE NOT FOUND.*
  205. * THE DEVICE SPECIFIED WITH THE *DN* OR *TD* PARAMETER
  206. * WAS NOT FOUND.
  207. *
  208. * * VERSION NUMBER EXCEEDED FOR DESTAGE.*
  209. * THE VERSION NUMBER OF THE ARCHIVE FILE IS GREATER THAN
  210. * 4095.
  211. *
  212. * * VSN NOT VALID FOR DESTAGE.*
  213. * THE TAPE OR OPTICAL DISK VSN WAS NOT IN THE CORRECT
  214. * FORMAT FOR DESTAGE. VSNS MUST BE TWO LETTERS FOLLOWED
  215. * BY 4 NUMBERS OF THE RANGE (0 - 4095).
  216. *
  217. SPACE 4,10
  218. *** NON-FATAL ERROR DAYFILE MESSAGES.
  219. *
  220. * SEE *MESSAGE LEGEND* ABOVE FOR A DESCRIPTION OF PARAMETERS
  221. * APPEARING IN THESE MESSAGES.
  222. *
  223. *
  224. * * ALTERNATE STORAGE TAPE READ ERROR, FN=NNNNNNN, UI=UUUUUU.*
  225. * A READ ERROR OCCURRED WHEN COPYING FILE DATA FROM AN
  226. * ALTERNATE STORAGE TAPE. THE FILE DATA IS TRUNCATED AT
  227. * THE POINT OF THE ERROR.
  228. *
  229. * * BAD SYSTEM SECTOR, FN=NNNNNNN, UI=UUUUUU.*
  230. * THE SYSTEM SECTOR FOR THE SPECIFIED FILE IS NOT IN THE
  231. * CORRECT FORMAT. THE FILE IS NOT DUMPED.
  232. *
  233. * * CATALOG READ ERROR, UI=UUUUUU.
  234. * A MASS STORAGE ERROR OCCURRED WHILE READING THE
  235. * PERMANENT FILE CATALOG TRACK FOR THE INDICATED USER
  236. * INDEX. ANY REMAINING FILES CATALOGED ON THE AFFECTED
  237. * TRACK WILL NOT BE DUMPED.
  238. *
  239. * * CATALOG UPDATE ERROR, FN=NNNNNNN, UI=UUUUUU.*
  240. * A DISK READ/WRITE ERROR HAS OCCURRED WHILE ATTEMPTING
  241. * TO UPDATE THE UTILITY CONTROL DATE/TIME OR THE *TFLOK*
  242. * FLAG IN THE CATALOG ENTRY OF THE SPECIFIED FILE.
  243. * ERROR IDLE STATUS IS SET FOR THE DEVICE IF A WRITE
  244. * ERROR OCCURRED AND DATA ON THE CATALOG FILE HAS BEEN
  245. * CORRUPTED.
  246. *
  247. * * DATA READ ERROR, FN=NNNNNNN, UI=UUUUUU.*
  248. * A MASS STORAGE ERROR OCCURRED WHEN DUMPING THE DATA
  249. * OF FILE NNNNNNN. IF NO DATA WAS TRANSFERRED OR IF THE
  250. * FILE DUMP IS SUPPRESSED WITH THE *EO* OPTION, THE FILE
  251. * IS TRUNCATED AT THE POINT OF THE ERROR. IF THE BAD
  252. * SECTOR DATA WAS TRANSFERRED AND THE FILE DUMP IS NOT
  253. * SUPPRESSED, THE REMAINDER OF THE FILE IS DUMPED IF
  254. * POSSIBLE. IN EITHER CASE, IF THE FILE IS LATER
  255. * RELOADED BY *PFLOAD*, THE DATA ERROR FLAG WILL BE SET
  256. * IN THE FILE-S PFC ENTRY.
  257. *
  258. * * DEVICE NOT FOUND, FN=NNNNNNN, UI=UUUUUU, DN_DD.*
  259. * THE SPECIFIED DIRECT ACCESS FILE, RESIDENT ON DEVICE
  260. * *DD*, WAS TO BE DUMPED BUT DEVICE *DD* COULD NOT BE
  261. * FOUND IN THE SYSTEM. THE FILE IS NOT DUMPED.
  262. *
  263. * * FILE BUSY, FN=NNNNNNN, UI=UUUUUU.*
  264. * THE SPECIFIED DIRECT ACCESS FILE WAS BUSY IN WRITE,
  265. * MODIFY, OR APPEND MODE (ANY DUMP) OR WAS BUSY IN ANY
  266. * WRITEABLE MODE (DESTAGE DUMP - *TA* OPTION). THE FILE
  267. * IS NOT DUMPED.
  268. *
  269. * * FILE NOT FOUND ON ALTERNATE STORAGE TAPE, FN=NNNNNNN,
  270. * UI= UUUUUU.*
  271. * THE DATA FOR THE SPECIFIED FILE WAS NOT FOUND ON THE
  272. * ASSIGNED ALTERNATE STORAGE TAPE. THE FILE IS NOT
  273. * DUMPED.
  274. *
  275. * * FILE LENGTH ERROR, FN=NNNNNNN, UI=UUUUUU.*
  276. * THE NUMBER OF DATA SECTORS READ FOR THE INDICATED FILE
  277. * DID NOT MATCH THE LENGTH DETERMINED FROM THE TRT
  278. * (DIRECT ACCESS) OR FROM THE CATALOG (INDIRECT ACCESS).
  279. * IF THE DATA READ EXCEEDS THE DETERMINED LENGTH, THE
  280. * EXCESS SECTORS ARE TRUNCATED.
  281. *
  282. * * NO DISK OR ALTERNATE STORAGE POINTERS FOR FILE, FN=NNNNNNN,
  283. * UI=UUUUUU.*
  284. * THE SPECIFIED FILE HAS NEITHER A DISK IMAGE NOR AN
  285. * ALTERNATE STORAGE IMAGE. THE FILE IS NOT DUMPED.
  286. *
  287. * * PERMIT FORMAT ERROR, FN=NNNNNNN, UI=UUUUUU.*
  288. * THE LENGTH OF A PERMIT SECTOR IS INCORRECT OR THE USER
  289. * INDEX CONTAINED IN A PERMIT SECTOR DID NOT MATCH THE
  290. * USER INDEX OF THE FILE. NO FURTHER PERMITS ARE DUMPED
  291. * FOR THAT FILE. IF THE FILE IS LATER LOADED BY
  292. * *PFLOAD*, THE PERMITS ERROR FLAG WILL BE SET IN THE
  293. * FILE-S PFC ENTRY.
  294. *
  295. * * PERMIT RANDOM INDEX ERROR, FN=NNNNNNN, UI=UUUUUU.*
  296. * A PERMIT RANDOM INDEX FOR THE INDICATED FILE IS NOT
  297. * WITHIN THE PERMITS CHAIN. NO FURTHER PERMITS ARE
  298. * DUMPED FOR THAT FILE. IF THE FILE IS LATER LOADED BY
  299. * *PFLOAD*, THE PERMITS ERROR FLAG WILL BE SET IN THE
  300. * FILE-S PFC ENTRY.
  301. *
  302. * * PERMIT READ ERROR, FN=NNNNNNN, UI=UUUUUUU.*
  303. * A MASS STORAGE ERROR OCCURRED WHEN READING PERMITS FOR
  304. * THE INDICATED FILE. NEITHER THE BAD PERMIT SECTOR NOR
  305. * ANY FOLLOWING IT ARE DUMPED FOR THAT FILE. IF THE
  306. * FILE IS LATER LOADED BY *PFLOAD*, THE PERMITS ERROR
  307. * FLAG WILL BE SET IN THE FILE-S PFC ENTRY.
  308. *
  309. * * STAGED FILE RESCAN TERMINATED, FN=NNNNNNN, UI=UUUUUU.*
  310. * ISSUED FOR EACH FILE NOT DUMPED DUE TO THE OPERATOR
  311. * DISCONTINUING THE RESCAN OF A GIVEN CATALOG TRACK FOR
  312. * STAGED FILES.
  313. *
  314. * * UNABLE TO STAGE FILE, FN=NNNNNNN, UI=UUUUUU.*
  315. * A CARTRIDGE OR TAPE ALTERNATE STORAGE ERROR CONDITION
  316. * PREVENTS THE FILE FROM BEING STAGED AT THIS TIME. THE
  317. * PFC AND PERMITS ONLY ARE DUMPED FOR THIS FILE.
  318. *
  319. * * ZERO LENGTH FILE, FN=NNNNNNN, UI=UUUUUU.*
  320. * THE SPECIFIED FILE EITHER HAS NO SYSTEM SECTOR OR NO
  321. * EOI SECTOR. THE FILE IS NOT DUMPED.
  322. SPACE 4
  323. *** OPERATOR MESSAGES.
  324. *
  325. * * CLEARING PF ACTIVITY COUNT.*
  326. * *PFDUMP* IS WAITING FOR *PFU* TO DECREMENT THE
  327. * PERMANENT FILE ACTIVITY COUNT SINCE DUMPING HAS BEEN
  328. * COMPLETED.
  329. *
  330. * *DUMPING (FILENAME) (USER INDEX)*
  331. *
  332. * * GENERATING CATALOG IMAGE.*
  333. * THE CATALOG IMAGE RECORD IS BEING WRITTEN TO THE
  334. * ARCHIVE FILE (INCREMENTAL DUMP).
  335. * INDICATES THE FILE CURRENTLY BEING DUMPED.
  336. *
  337. * * RESCAN CATALOG TRACK FOR STAGED FILES.*
  338. * * THE RIGHT SCREEN LISTS YOUR OPTIONS.* - *PFDUMP* IS
  339. * RESCANNING THE PREVIOUSLY PROCESSED CATALOG TRACK
  340. * SEARCHING FOR STAGED FILES NEWLY LINKED TO THEIR
  341. * CATALOG ENTRIES.
  342. *
  343. * THE FOLLOWING RIGHT SCREEN DISPLAY REMINDS THE
  344. * OPERATOR HOW TO DISCONTINUE OR CONTINUE THE RESCAN OF
  345. * A GIVEN CATALOG TRACK FOR STAGED FILES.
  346. *
  347. * RESCAN OPTIONS
  348. *
  349. * ENTER K.RO.
  350. *
  351. * RO DESCRIPTION
  352. *
  353. * GO CONTINUE RESCANNING.
  354. * SKIP SCAN NEXT CATALOG TRACK.
  355. *
  356. * * SETTING PF ACTIVITY COUNT.*
  357. * *PFDUMP* IS WAITING FOR *PFU* TO INCREMENT THE
  358. * PERMANENT FILE ACTIVITY COUNT BEFORE DUMPING A DEVICE.
  359. *
  360. * * WAIT FOR ALTERNATE STORAGE INTERLOCK.*
  361. * *PFDUMP* IS ATTEMPTING TO ATTACH ALTERNATE STORAGE
  362. * CATALOG FILES TO INSURE THEIR INCLUSION ON THE DUMP.
  363. *
  364. * * WAIT FOR CATALOG INTERLOCK.*
  365. * *PFDUMP* IS WAITING FOR *PFU* TO SET A CATALOG TRACK
  366. * INTERLOCK BEFORE DUMPING FILES CATALOGED ON THAT
  367. * TRACK.
  368. *
  369. * * WAIT FOR FILE STAGING.*
  370. * *PFDUMP* HAS GONE INTO RECALL AND RELEASED ALL CATALOG
  371. * TRACK INTERLOCKS TO ALLOW THE ALTERNATE STORAGE
  372. * EXECUTIVE(S) TO LINK ANY STAGED FILES TO THEIR
  373. * RESPECTIVE CATALOG ENTRIES.
  374. SPACE 4,10
  375. * COMMON DECKS.
  376.  
  377.  
  378. *CALL COMCMAC
  379. *CALL COMCCMD
  380. *CALL COMCDCM
  381. *CALL COMSACC
  382. *CALL COMSLFD
  383. *CALL COMSMLS
  384. *CALL COMSMMF
  385. *CALL COMSMST
  386. QUAL COMSMTX
  387. *CALL COMSMTX
  388. QUAL *
  389. *CALL COMSPFM
  390. LIST X
  391. *CALL COMSPFS
  392. LIST *
  393. *CALL COMSPFU
  394. *CALL COMSPRD
  395. *CALL COMSRPV
  396. *CALL COMSPRO
  397. *CALL COMSSFM
  398. *CALL COMSVER
  399. QUAL TFM
  400. *CALL COMSTFM
  401. QUAL *
  402. TITLE MACROS.
  403. ARCHIVE SPACE 4,20
  404. ** ARCHIVE - PROCESS ARCHIVE FILE OPERATION.
  405. *
  406. * ARCHIVE FNC,P1,P2
  407. *
  408. * FNC = FUNCTION CODE MNEMONIC.
  409. * WRITEW = WRITE WORDS ON ARCHIVE FILE.
  410. * P1 = WORKING BUFFER ADDRESS.
  411. * P2 = WORD COUNT.
  412. * WRITER = WRITE EOR ON ARCHIVE FILE. (NO PARAMETERS).
  413. * WRITEF = WRITE EOF ON ARCHIVE FILE. (NO PARAMETERS).
  414. * P1 = FIRST PARAMETER.
  415. * P2 = SECOND PARAMETER.
  416. *
  417. * USES B - 6, 7.
  418. *
  419. * CALLS PAF.
  420.  
  421.  
  422. PURGMAC ARCHIVE
  423. ARCHIVE MACRO FNC,P1,P2
  424. MACREF ARCHIVE
  425. .1 SET 0
  426. ECHO 0,F=(WRITEW,WRITER,WRITEF),B6P=(P1,0,17B),B7P=(P2,-1,-1
  427. ,)
  428. MATCH IFC EQ,$F$FNC$
  429. R= B6,B6P
  430. R= B7,B7P
  431. RJ PAF
  432. .1 SET 1
  433. STOPDUP
  434. MATCH ENDIF
  435. ENDD
  436. IFNE .1,1,1
  437. ERR ARCHIVE - INCORRECT FUNCTION CODE.
  438. ENDM
  439. CWWRITE SPACE 4,20
  440. ** CWWRITE - CONTROL WORD WRITE WORDS.
  441. *
  442. * CWWRITE FET,BUF,BUFL
  443. *
  444. * FET = FET ADDRESS FOR FILE.
  445. * BUF = WORKING BUFFER ADDRESS.
  446. * BUFL = LENGTH OF WORKING BUFFER.
  447. *
  448. * *BUFL* WORDS ARE TRANSFERRED FROM THE WORKING BUFFER *BUF* TO
  449. * THE CIRCULAR BUFFER. BUFFER CONTROL WORDS ARE ADDED AS
  450. * NECESSARY.
  451. *
  452. * USES X - 2.
  453. * B - 6, 7.
  454. *
  455. * CALLS CWW.
  456.  
  457.  
  458. PURGMAC CWWRITE
  459. CWWRITE MACRO FET,BUF,BUFL
  460. MACREF CWWRITE
  461. R= B6,BUF
  462. R= B7,BUFL
  463. R= X2,FET
  464. RJ CWW
  465. ENDM
  466. TITLE PROGRAM CONSTANT SECTION.
  467. SPACE 4,10
  468. * MISCELLANEOUS CONSTANTS.
  469.  
  470. BFAC EQU 1000B BLOCKING FACTOR
  471. DFAC EQU 2500B CATALOG TRACK RESCAN DELAY FACTOR
  472. DLEMX EQU 100B MAXIMUM READ DATA LIST ENTRIES
  473. MSTEL EQU 2 MST TABLE ENTRY LENGTH
  474. MXLRR EQU 5 RETRY LIMIT FOR ARCHIVE FILE LABEL READ
  475. NWCM EQU 100B NUMBER OF WORDS IN A *CMU* MOVE
  476. ERRNZ NWCM-NWCM/10B*10B CHARACTER COUNT = MULTIPLE OF 20B
  477. NWPR EQU 100B NUMBER WORDS/PRU
  478. NWCP EQU NWPR+2 NUMBER WORDS/*CIO* CONTROL WORD PRU
  479. TCRQL EQU 3 LENGTH OF TAPE COPY REQUEST ENTRY
  480.  
  481.  
  482. * BUFFER LENGTHS.
  483.  
  484. CATBL EQU 10*NWCP+1 CATALOG BUFFER LENGTH
  485. CBUFL EQU 10*NWPR CATALOG WORKING STORAGE LENGTH
  486. DBUFL EQU 12001B DATA BUFFER LENGTH
  487. DBUFHL EQU 1101B DATA WORKING STORAGE LENGTH
  488. DLRBL EQU DLEMX+1 DATA LIST REQUEST BUFFER LENGTH
  489. DLCBL EQU DLEMX*NWCE DATA LIST CATALOG BUFFER LENGTH
  490. DLDBL EQU DLEMX DATA LIST DISK ADDRESS BUFFER LENGTH
  491. LKBUFL EQU 401B LOCK BUFFER LENGTH
  492. MSFBL EQU 10001B *COMCMSF* SORT FILES BUFFER LENGTH
  493. ODEBL EQU 20B OPTICAL DISK EXTENSION BUFFER LENGTH
  494. ODFBL EQU 401B OPTICAL DISK MOUNT FILE BUFFER LENGTH
  495. OUTBL EQU 1001B OUTPUT FILE BUFFER LENGTH
  496. PBUFL EQU NWPR+1 PERMIT BUFFER LENGTH
  497. PHBUFL EQU NWPR PERMIT WORKING STORAGE LENGTH
  498. PFLBL EQU 1001B PROCESSED FILES FILE BUFFER LENGTH
  499. PFRBL EQU NWPR+1 *PFM* REQUEST FILE BUFFER LENGTH
  500. RBUFL EQU 4011B RDF BUFFER LENGTH
  501. RDFHL EQU 8 RDF WORKING STORAGE LENGTH
  502. REQBL EQU 101B FILE STAGING REQUEST LIST BUFFER LENGTH
  503. RESBL EQU 101B RESCAN SELECTION SCREEN BUFFER LENGTH
  504. SABFL EQU 1000B SUMMARY FILE ASSEMBLY BUFFER LENGTH
  505. SRTBL EQU 20000B SORT BUFFER LENGTH
  506. SBTCC EQU SRTBL/TCRQL MAXIMUM TAPE COPY REQUESTS IN *SRTB*
  507. SBTCL EQU SBTCC*TCRQL LENGTH OF TAPE COPY REQUESTS IN *SRTB*
  508. SUMBL EQU 1401B SUMMARY FILE BUFFER LENGTH
  509. TBUFL EQU 30061B ARCHIVE (TAPE) FILE BUFFER LENGTH
  510. TCLBL EQU 1001B TAPE COPY FILE LIST BUFFER LENGTH
  511. VBUFL EQU 30061B VERIFY FILE BUFFER LENGTH
  512.  
  513.  
  514. * ARCHIVE FILE CONTROL WORD VALUES.
  515.  
  516. LCWC EQU 01000B LABEL CONTROL WORD
  517. COCW EQU 10000B CATALOG ONLY CONTROL WORD
  518. CCWC EQU 11000B CATALOG CONTROL WORD
  519. PMCW EQU 20000B PERMIT CONTROL WORD
  520. PRCW EQU 21000B PERMIT RECORD CONTROL WORD
  521. DCWC EQU 30000B DATA CONTROL WORD
  522. DRCW EQU 31000B DATA RECORD CONTROL WORD
  523. DFCW EQU 32000B DATA FILE CONTROL WORD
  524. DSCW EQU 34000B DATA SYSTEM SECTOR CONTROL WORD
  525. ERCW EQU 47000B END OF REEL CONTROL WORD
  526. CICW EQU 50000B CATALOG IMAGE CONTROL WORD
  527. CRWC EQU 51000B CATALOG IMAGE RECORD CONTROL WORD
  528. CFCW EQU 52000B CATALOG IMAGE FILE CONTROL WORD
  529. EODC EQU 77000B END OF DUMP CONSTANT
  530.  
  531.  
  532. * RELEASE DATA FILE (RDF) CONTROL WORD VALUES.
  533.  
  534. HCWD EQU 1000B HEADER RECORD CONTROL WORD
  535. ECWD EQU 2007B EXTRACT RECORD CONTROL WORD
  536. CCWD EQU 3000B MSF CATALOG RECORD CONTROL WORD
  537.  
  538.  
  539. * *SETPFP* OPTION CONSTANTS.
  540.  
  541. FMPR EQU 10B FAMILY NAME PARAMETER FLAG
  542. PKPR EQU 4 PACKNAME PARAMETER FLAG
  543. UNPR EQU 2 USER NAME PARAMETER FLAG
  544. UIPR EQU 1 USER INDEX PARAMETER FLAG
  545.  
  546.  
  547. * *COMSPFS* EQUIVALENCES.
  548.  
  549. CPAR EQU /COMSPFS/CPL CONVERTED PARAMETER LIST
  550. IDSA EQU /COMSPFS/PADR
  551. TITLE MAIN ROUTINES.
  552. ** MAIN PROGRAM.
  553. *
  554. * EXIT TO *END*.
  555. *
  556. * CALLS GLF, GRC, OPN, PCF, PCT, PFR, PRS, PSF, PTF, RLF, RMF,
  557. * SDI, SNC, SND, TER.
  558. *
  559. * MACROS MESSAGE, RETURN, SETPFP.
  560.  
  561.  
  562. ORG /COMSPFS/OVLB
  563.  
  564.  
  565. PFD RJ PRS PRESET PROGRAM
  566.  
  567. * PROCESS NEXT DEVICE.
  568.  
  569. PFD1 RJ SND SET NEXT DEVICE
  570. ZR X1,PFD4 IF NO MORE DEVICES
  571. RJ OPN OPEN DEVICE FILES
  572. RJ GLF GET LOCK FILES
  573.  
  574. * PROCESS CATALOG TRACK.
  575.  
  576. PFD2 RJ SNC SET NEXT CATALOG TRACK
  577. RJ PCF POSITION CATALOG FILE
  578. NG X5,PFD3 IF END OF CATALOG TRACKS
  579. RJ PCT PROCESS CATALOG TRACK
  580. EQ PFD2 SET NEXT CATALOG TRACK
  581.  
  582. * GENERATE *RDF* EXTRACT RECORDS AND RELEASE LOCK FILES.
  583.  
  584. PFD3 RJ GRC GENERATE *RDF* CATALOG RECORDS
  585. RJ RLF RELEASE LOCK FILES
  586. RJ RMF RETURN MASTER DEVICE FILES
  587. EQ PFD1 SET NEXT DEVICE
  588.  
  589. * PROCESS TAPE ALTERNATE STORAGE RESIDENT FILES.
  590.  
  591. PFD4 RJ PTF PROCESS TAPE RESIDENT FILES
  592.  
  593. * END OF DUMP.
  594.  
  595. RJ TER TERMINATE ARCHIVE FILE AND RETURN FILES
  596. RJ SDI SET DEVICE INHIBIT DATES
  597. RJ PSF PROCESS SORTED FILE AND STATISTICS OUTPUT
  598. RJ PFR PROCESS *PFM* REQUESTS
  599. EQ END TERMINATE
  600. PCT SPACE 4,20
  601. ** PCT - PROCESS CATALOG TRACK.
  602. *
  603. * EXIT ALL SELECTED FILES CATALOGED ON THIS CATALOG TRACK
  604. * DUMPED EXCEPT FOR FILES WHICH WILL BE COPIED FROM
  605. * ALTERNATE STORAGE TAPES.
  606. *
  607. * USES X - 1, 2, 6, 7.
  608. * A - 1, 6, 7.
  609. * B - 2.
  610. *
  611. * CALLS CSI, CCR, CSP, GRE, IRS, MRE, PFI, PPD, PRL, RCS, RFC,
  612. * RFS, SCA.
  613. *
  614. * MACROS MOVE, READCW.
  615.  
  616.  
  617. PCT SUBR ENTRY/EXIT
  618.  
  619. * INITIALIZE NORMAL CATALOG TRACK SCAN.
  620.  
  621. SX6 B0+ SET NORMAL SCAN MODE
  622. SX7 B0+ SET FIRST CATALOG ON TRACK
  623.  
  624. * INITIALIZE CATALOG SCAN.
  625.  
  626. PCT1 SA6 SCAN SET SCAN MODE
  627. SA7 CTIN SET INITIAL CATALOG TRACK INDEX
  628. SX6 B0+
  629. SA6 RSTS CLEAR STAGE REQUEST
  630. SA1 CATS+FTFT
  631. SX6 X1
  632. SA6 A1+B1 SET IN = FIRST
  633. SA6 A1+2 SET OUT = FIRST
  634. READCW CATS,17B INITIATE CATALOG READ
  635.  
  636. * READ CATALOG SECTOR.
  637.  
  638. PCT2 SA0 CSBF INITIALIZE CATALOG ADDRESS
  639. SX2 CATS SET FET ADDRESS
  640. RJ RCS READ CATALOG SECTOR
  641. ZR X1,PCT3 IF READ COMPLETE
  642. PL X1,PCT11 IF END OF CATALOG TRACK OR FATAL ERROR
  643. SA1 CTIN
  644. SX6 X1+4 COUNT CATALOG ENTRIES IN BAD SECTOR
  645. SA6 A1
  646. EQ PCT2 READ NEXT SECTOR
  647.  
  648. * CHECK FILE SELECTED.
  649.  
  650. PCT3 SA1 SCAN
  651. NZ X1,PCT4 IF CATALOG RESCAN
  652. RJ CSI CHECK SPECIAL USER INDEX
  653. ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
  654. SA1 CPAR+/COMSPFS/CPRD
  655. ZR X1,PCT5 IF RDF NOT REQUESTED
  656. RJ GRE GENERATE RDF EXTRACT RECORD
  657. EQ PCT5 CHECK SELECTIVE PARAMETERS
  658.  
  659. PCT4 RJ CCR CHECK CATALOG RESCAN FILE
  660. ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
  661. NG X6,PCT11 IF END OF RESCAN FILE
  662. PCT5 RJ CSP CHECK SELECTION PARAMETERS
  663. ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
  664. SA3 CPAR+/COMSPFS/CPIP
  665. SB2 X6-2
  666. NZ X3,PCT9 IF PROCESSING INHIBITED
  667. RJ SCA SET CATALOG DISK ADDRESS
  668. ZR B2,PCT6 IF ONLY PFC/PERMITS TO BE DUMPED
  669. EQ B2,B1,PCT7 IF STAGE FILE FROM ALTERNATE STORAGE
  670. GT B2,B1,PCT8 IF COPY FILE FROM ALTERNATE STORAGE TAPE
  671.  
  672. * DUMP FILE WITH DATA.
  673.  
  674. RJ MRE MAKE READ LIST ENTRY
  675. NZ X6,PCT10 IF READ LIST NOT FULL
  676. RJ PRL PROCESS READ LIST
  677. EQ PCT10 ADVANCE CATALOG POINTERS
  678.  
  679. * DUMP PFC AND PERMITS ONLY.
  680.  
  681. PCT6 MOVE NWCE,A0,CATH SAVE CATALOG ENTRY (PFC)
  682. RJ PPD PROCESS PFC/PERMITS ONLY DUMP
  683. EQ PCT10 ADVANCE CATALOG POINTERS
  684.  
  685. * STAGE FILE FROM ALTERNATE STORAGE.
  686.  
  687. PCT7 RJ RFS REQUEST FILE STAGING
  688. EQ PCT10 ADVANCE CATALOG POINTERS
  689.  
  690. * COPY FILE FROM ALTERNATE STORAGE TAPE.
  691.  
  692. PCT8 RJ RFC REQUEST FILE COPY FROM TAPE
  693. EQ PCT10 ADVANCE CATALOG POINTERS
  694.  
  695. * PROCESS DUMP INHIBITED.
  696.  
  697. PCT9 RJ PFI PROCESS FILE WITH DUMP INHIBITED
  698.  
  699. * ADVANCE CATALOG POINTERS.
  700.  
  701. PCT10 SA1 CTIN
  702. SA2 CSLW
  703. SX3 B1
  704. MX7 -2
  705. BX7 -X7*X1 INDEX IN CATALOG SECTOR
  706. IX6 X1+X3 ADVANCE CATALOG TRACK INDEX
  707. LX7 4 WORD OFFSET IN SECTOR
  708. ERRNZ NWCE-20B
  709. SA6 A1
  710. SX7 X7+CSBF+NWCE ADVANCE CATALOG ADDRESS
  711. IX2 X7-X2
  712. SA0 X7 SET CATALOG ADDRESS
  713. NG X2,PCT3 IF MORE ENTRIES IN CURRENT SECTOR
  714. EQ PCT2 READ NEXT CATALOG SECTOR
  715.  
  716. * END OF CATALOG TRACK.
  717.  
  718. PCT11 RJ PRL PROCESS READ LIST
  719. SA1 RSTS
  720. ZR X1,PCTX IF NO FILE STAGE REQUESTED
  721. RJ IRS INITIALIZE RESCAN
  722. NZ X6,PCT1 IF RESCAN NOT TERMINATED
  723. EQ PCTX RETURN
  724. TITLE GENERAL SUBROUTINES.
  725. AAT SPACE 4,10
  726. ** AAT - ASSIGN ALTERNATE STORAGE TAPE.
  727. *
  728. * ENTRY (ASTI) = TAPE REQUEST PARAMETERS FROM REQUEST FILE.
  729. *
  730. * USES X - 1, 2, 5, 6, 7.
  731. * A - 5, 6, 7.
  732. *
  733. * CALLS CDD.
  734. *
  735. * MACROS LABEL.
  736.  
  737.  
  738. AAT SUBR ENTRY/EXIT
  739.  
  740. * SET TAPE DESCRIPTORS.
  741.  
  742. SA5 ASTI
  743. SX7 2450B SET LABELED *GE* TAPE
  744. SX2 /COMSMTX/TFI+5000B SET *I* FORMAT AND OPTIONS
  745. LX5 0-55
  746. MX6 -2
  747. BX6 -X6*X5 CARTRIDGE TAPE FLAGS
  748. LX6 7
  749. ZR X6,AAT1 IF NOT CARTRIDGE TAPE
  750. SX7 X6+2000B SET LABELED *CT* OR *AT* TAPE
  751. AAT1 PL X5,AAT2 IF NOT *LI* FORMAT TAPE
  752. SX2 /COMSMTX/TFLI+5000B SET *LI* FORMAT AND OPTIONS
  753. AAT2 LX7 48
  754. LX2 30-0
  755. BX7 X7+X2 MERGE TAPE DEVICE TYPE AND FORMAT
  756. LX5 0-24-0+55
  757. SA7 AST+10B SET TAPE DEVICE TYPE AND FORMAT
  758.  
  759. * SET VSN.
  760.  
  761. MX6 -12
  762. BX1 -X6*X5 VSN NUMERIC SUFFIX
  763. SX1 X1+10000D FORCE CONVERSION OF LEADING ZEROES
  764. RJ CDD CONVERT VSN SUFFIX
  765. MX7 -24
  766. BX6 -X7*X6 CONVERTED VSN SUFFIX
  767. MX7 12
  768. LX6 24
  769. LX5 36
  770. BX7 X7*X5 VSN PREFIX
  771. BX7 X7+X6 MERGE PREFIX AND SUFFIX
  772. SX6 B0
  773. SA7 AST+11B SET VSN
  774.  
  775. * ASSIGN TAPE.
  776.  
  777. SA6 A7+B1 CLEAR UNUSED FET FIELDS
  778. SA6 A6+B1
  779. SA6 A6+B1
  780. SA6 A6+B1
  781. SA1 AST+1
  782. MX6 -48
  783. BX6 -X6*X1 CLEAR DEVICE CODE
  784. SX7 X1
  785. SA6 A1
  786. SA7 A1+B1 SET *IN* = *FIRST*
  787. SA7 A7+B1 SET *OUT* = *FIRST*
  788. LABEL AST REQUEST TAPE ASSIGNMENT
  789. EQ AATX RETURN
  790. ALF SPACE 4,20
  791. ** ALF - ATTACH LOCK FILE.
  792. *
  793. * ENTRY (B6) = LOCK FILE INDEX.
  794. * (B4) = 0, IF *MSS* FILE BEING ATTACHED.
  795. * (B4) = 8, IF *MSE* FILE BEING ATTACHED.
  796. * (CMSK) = CONTROL MASK HAVING BIT SET FOR EACH
  797. * SUBFAMILY STILL NEEDING LOCK.
  798. * (GPAR+2) = ORIGINAL (42/ USER NAME,18/ USER INDEX).
  799. * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
  800. * *LOCK* = FWA OF LOCK FILE FET.
  801. * PERMANENT FILE PARAMETERS SET FOR FAMILY DESIRED.
  802. *
  803. * EXIT (B6) = LOCK FILE INDEX.
  804. * (CMSK) = CONTROL MASK UPDATED.
  805. * (LMSK) = LOCK MASK UPDATED.
  806. * LOCK FILE ATTACHED, IF AVAILABLE.
  807. *
  808. * USES X - 0, 1, 2, 3, 4, 6, 7.
  809. * A - 1, 2, 3, 6, 7.
  810. *
  811. * MACROS ATTACH, CATLIST, SETFET, SETPFP.
  812.  
  813.  
  814. ALF SUBR ENTRY/EXIT
  815. MX0 42
  816. SA1 LFAT+B6 ADJUST FET ARGUMENTS
  817. SA2 LOCK FILE NAME
  818. BX6 X0*X1
  819. SA6 A2+8
  820. BX3 -X0*X2
  821. BX6 X3+X6
  822. SA6 A2
  823. BX6 -X0*X1
  824. SA6 LOCK+FTIN SET *IN* POINTER
  825.  
  826. * ATTEMPT TO ATTACH DESIRED LOCK FILE.
  827.  
  828. SX6 UIPR SET SUBFAMILY USER INDEX
  829. SA6 SPAR
  830. SX7 B6-B4 GET SUBFAMILY INDEX
  831. SX7 X7+SBUI SUBFAMILY USER INDEX
  832. SA7 SPAR+2
  833. SETPFP SPAR
  834. SETFET LOCK,ERP=E SET USER ERROR PROCESSING
  835. CATLIST LOCK,,,,,,,IE GET PFC ENTRY
  836. ATTACH LOCK,,,,RU,,,,IE
  837.  
  838. * CHECK ATTACH ERROR CODE.
  839.  
  840. SA1 X2
  841. MX0 -8
  842. LX1 7-17
  843. BX4 -X0*X1 ERROR CODE
  844. ZR X4,ALF1 IF NO ERROR ON *ATTACH*
  845. SX3 X4-/ERRMSG/FNF
  846. NZ X3,ALFX IF FILE FOUND BUT UNAVAILABLE
  847.  
  848. * INDICATE LOCK FILE OBTAINED.
  849.  
  850. ALF1 SA1 LMSK SET LOCK MASK BIT
  851. SX2 B1
  852. LX2 B6,X2
  853. BX6 X1+X2
  854. SA6 A1
  855. AX2 B4
  856. SA1 CMSK CLEAR CONTROL MASK BIT
  857. BX6 X1-X2
  858. SA6 A1
  859. EQ ALFX RETURN
  860. APR SPACE 4,10
  861. ** APR - ABORT PROCESSOR.
  862. *
  863. * EXIT SCRATCH FILES RETURNED.
  864. * OUTPUT FILES FLUSHED.
  865. * INTERLOCKS RELEASED.
  866. *
  867. * CALLS CAC, CID, FAF, RLF, RMF.
  868. *
  869. * MACROS MESSAGE, RETURN, SETPFP.
  870.  
  871.  
  872. APR SUBR ENTRY/EXIT
  873. RETURN CATC
  874. RETURN REQS
  875. RETURN RESS
  876. RETURN TC
  877. RETURN PFMREQ
  878. RJ RLF RELEASE LOCK FILES
  879. RJ RMF RETURN MASTER DEVICE FILES
  880. RJ CAC CLEAR PERMANENT FILE ACTIVITY COUNT
  881. RJ CID CHECK INCOMPLETE FILE DUMP
  882. ARCHIVE WRITEF WRITE EOF ON ARCHIVE/VERIFY FILES
  883. RJ FAF FLUSH ARCHIVE/VERIFY FILES
  884. SETPFP GPAR RESTORE PERMANENT FILE PARAMETERS
  885. EQ APRX RETURN
  886. CCR SPACE 4,15
  887. ** CCR - CHECK CATALOG RESCAN FILE.
  888. *
  889. * ENTRY (A0) = CATALOG ENTRY ADDRESS.
  890. * (CTIN) = CURRENT CATALOG TRACK INDEX.
  891. * (RESE - RESE+1) = CURRENT RESCAN ENTRY.
  892. *
  893. * EXIT (A0) = CATALOG ENTRY ADDRESS.
  894. * (X6) .LT. 0 IF END OF RESCAN FILE.
  895. * (X6) = 0 IF FILE TO BE SKIPPED.
  896. * (X6) .GT. 0 IF FILE TO BE PROCESSED.
  897. *
  898. * USES X - 1, 2, 3, 4, 6.
  899. * A - 1, 2, 3, 4.
  900.  
  901.  
  902. CCR SUBR ENTRY/EXIT
  903. CCR1 SA1 RESE
  904. SA2 CTIN
  905. SA3 RESE+1
  906. SA4 A0+FCFN
  907. SX6 B0+ SET TO SKIP FILE
  908. IX1 X1-X2
  909. BX3 X3-X4
  910. NG X1,CCR2 IF CURRENT ENTRY PAST STAGE REQUEST
  911. NZ X1,CCRX IF STAGE REQUEST PAST CURRENT ENTRY
  912. NZ X3,CCRX IF NOT SAME FILE NAME AND USER INDEX
  913. SX6 1 SET PROCESS FILE
  914. EQ CCRX RETURN
  915.  
  916. CCR2 READW RESS,RESE,2 READ NEXT STAGE REQUEST
  917. ZR X1,CCR1 IF NOT END OF RESCAN FILE
  918. SX6 -1 SET TERMINATE RESCAN
  919. EQ CCRX RETURN
  920. CDT SPACE 4,15
  921. ** CDT - COPY FILE DATA FROM ALTERNATE STORAGE TAPE.
  922. *
  923. * ENTRY ALTERNATE STORAGE TAPE POSITIONED AT FIRST BLOCK
  924. * AFTER CATALOG ENTRY.
  925. *
  926. * EXIT FILE DATA COPIED FROM ALTERNATE STORGE TAPE TO ARCHIVE
  927. * FILE(S).
  928. *
  929. * USES X - 1, 2, 3, 4, 5, 6, 7.
  930. * A - 1, 2, 4, 5, 6, 7.
  931. * B - 2, 3.
  932. *
  933. * CALLS RCW, SFE, WDT.
  934. *
  935. * MACROS ARCHIVE, CWREAD.
  936.  
  937.  
  938. CDT SUBR ENTRY/EXIT
  939.  
  940. SX6 B0+
  941. SA6 CDTA INITIALIZE BUFFER WORD COUNT
  942.  
  943. * SKIP PERMITS BLOCKS.
  944.  
  945. CDT1 RJ RCW READ BLOCK CONTROL WORD
  946. NZ X7,CDT5 IF ERROR
  947. NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
  948. SX1 X3-3
  949. ZR X1,CDT3 IF DATA BLOCK
  950. SX1 X3-2
  951. NZ X1,CDT5 IF NOT PERMITS BLOCK
  952. CWREAD AST,DBUFH,X6 READ BLOCK
  953. NZ X7,CDT5 IF ERROR
  954. NZ X1,CDT5 IF EOR, EOF, OR EOI
  955. EQ CDT1 READ BLOCK CONTROL WORD
  956.  
  957. * READ NEXT DATA BLOCK CONTROL WORD.
  958.  
  959. CDT2 RJ RCW READ BLOCK CONTROL WORD
  960. NZ X7,CDT5 IF ERROR
  961. NG X1,CDT5 IF EOF OR EOI ON ARCHIVE FILE
  962. NZ X1,CDT6 IF EOR ON ARCHIVE FILE
  963. SX1 X3-3
  964. NZ X1,CDT5 IF NOT DATA BLOCK
  965.  
  966. * COPY DATA BLOCK TO ARCHIVE FILES.
  967.  
  968. CDT3 SA1 CDTA
  969. SA5 WREM
  970. LX4 9
  971. SX7 X4
  972. SA7 CDTB SAVE BLOCK SUB-TYPE
  973. IX7 X1+X6 BUFFER WORD COUNT INCLUDING NEW DATA BLOCK
  974. SX5 X5-1 DATA SPACE REMAINING IN 1000B WORD SEGMENT
  975. IX2 X5-X7
  976. PL X2,CDT4 IF SUFFICIENT ROOM IN SEGMENT FOR DATA
  977. IX3 X5-X1 SET WORD COUNT TO FILL SEGMENT
  978. IX6 X6-X3
  979. SA6 CDTC SAVE WORDS REMAINING IN NEW BLOCK
  980. CWREAD AST,DBUFH+X1,X3 READ DATA
  981. SA4 CDTB
  982. NZ X7,CDT5 IF ERROR
  983. NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
  984. SX7 4000B
  985. SB2 DBUFH SET DATA ADDRESS
  986. SX6 DCWC+X5 SET DATA BLOCK TYPE AND LENGTH
  987. SB3 X5+ SET WORD COUNT
  988. BX4 X7*X4 PRESERVE SYSTEM SECTOR FLAG
  989. BX6 X6+X4 MERGE SYSTEM SECTOR STATUS
  990. SA6 CONTH SET CONTROL WORD
  991. RJ WDT WRITE DATA
  992. SA2 CDTC
  993. SX1 B0+ SET OFFSET FOR READ
  994. SX6 X2+ SET WORD COUNT TO READ
  995. SX7 X2+ SET WORD COUNT IN BUFFER
  996. CDT4 SA7 CDTA UPDATE WORDS IN WORKING BUFFER
  997. CWREAD AST,DBUFH+X1,X6 READ DATA
  998. SA4 CDTB
  999. NZ X7,CDT5 IF ERROR
  1000. NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
  1001. ZR X4,CDT2 IF NOT SYSTEM SECTOR, EOR OR EOF BLOCK
  1002. SA1 CDTA
  1003. SB2 DBUFH SET DATA ADDRESS
  1004. SX6 DCWC+X1
  1005. BX6 X6+X4 SET DATA BLOCK SUB-TYPE
  1006. SB3 X1 SET WORD COUNT
  1007. SA6 CONTH SET CONTROL WORD
  1008. RJ WDT WRITE DATA
  1009. SX7 B0+
  1010. SA7 CDTA SET NO DATA IN BUFFER
  1011. EQ CDT2 READ NEXT BLOCK CONTROL WORD
  1012.  
  1013. * PROCESS ERROR IN ALTERNATE STORAGE FILE.
  1014.  
  1015. CDT5 SA1 FLST
  1016. SX6 2
  1017. BX6 X1+X6 SET DATA ERROR IN FILE STATUS
  1018. SA6 A1
  1019. SA1 CATH+FCUI
  1020. SB2 ERTR * READ ERROR ON ALTERNATE STORAGE ...*
  1021. RJ SFE SEND ERROR MESSAGE
  1022.  
  1023. * FLUSH DATA IN WORKING BUFFER AND COMPLETE FILE DUMP.
  1024.  
  1025. CDT6 SA1 CDTA
  1026. ZR X1,CDT7 IF NO DATA IN WORKING BUFFER
  1027. SB2 DBUFH SET DATA ADDRESS
  1028. SB3 X1+ SET WORD COUNT
  1029. SX6 DCWC+X1 SET BLOCK TYPE
  1030. SA6 CONTH SET CONTROL WORD
  1031. RJ WDT WRITE DATA
  1032. CDT7 SA1 FLST
  1033. LX1 59-1
  1034. PL X1,CDT8 IF NO ERROR IN FILE DATA
  1035. SA1 LGCW GET ERROR CONTROL WORD
  1036. BX6 X1
  1037. SB3 B0 CLEAR DATA WORD COUNT
  1038. SA6 CONTH
  1039. SB2 CONTH SET BUFFER ADDRESS
  1040. RJ WDT WRITE ERROR CONTROL WORD
  1041. CDT8 ARCHIVE WRITER WRITE EOR ON ARCHIVE FILE
  1042. SX6 BFAC
  1043. SA6 WREM RESET BLOCK STATUS FOR NEXT FILE
  1044. EQ CDTX RETURN
  1045.  
  1046.  
  1047. CDTA CON 0 WORDS IN *DBUFH*
  1048. CDTB CON 0 DATA CONTROL WORD SUB-TYPE
  1049. CDTC CON 0 WORDS REMAINING IN DATA BLOCK
  1050. CFD SPACE 4,15
  1051. ** CFD - COMPLETE FILE DUMP.
  1052. *
  1053. * ENTRY CATALOG ENTRY, PERMITS AND FILE DATA WRITTEN TO
  1054. * ARCHIVE FILE.
  1055. *
  1056. * EXIT FILE INFORMATION WRITTEN TO OUTPUT AND SUMMARY FILES.
  1057. * *PFM* REQUEST FORMATTED IF FILE TO BE PURGED OR
  1058. * ALTERNATE STORAGE POINTERS TO BE UPDATED.
  1059. *
  1060. * USES X - 1, 2, 3, 6, 7.
  1061. * A - 0, 1, 2, 3, 6.
  1062. * B - 2.
  1063. *
  1064. * CALLS CFP, UCE, WPR.
  1065.  
  1066.  
  1067. CFD SUBR ENTRY/EXIT
  1068. SX6 B0+ CLEAR INCOMPLETE FILE FLAG
  1069. SA6 IFST
  1070. SA0 CATH SET CATALOG ADDRESS
  1071. RJ CFP COUNT FILE PROCESSED
  1072. SA1 FLST
  1073. MX6 -3
  1074. BX1 -X6*X1
  1075. NZ X1,CFDX IF PFC ONLY DUMP OR ERROR IN FILE
  1076. SA1 CPAR+/COMSPFS/CPOP
  1077. SA2 CPAR+/COMSPFS/CPDT
  1078. SX7 B0
  1079. LX1 59-53
  1080. NG X1,CFD2 IF PURGE FILES AFTER DUMP
  1081. ZR X2,CFDX IF NOT DESTAGE DUMP
  1082. SB2 CTSL SET *TFLOK* FLAG FUNCTION
  1083. RJ UCE UPDATE CATALOG ENTRY
  1084. SA3 FLOK
  1085. NG X3,CFD1 IF ARCHIVE TO OPTICAL DISK
  1086. SA2 CATH+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
  1087. SX7 B1+
  1088. LX7 42-0
  1089. BX7 X2+X7 MERGE *SETASA* TAPE ALTERNATE STORAGE FLAG
  1090. EQ CFD2 WRITE *PFM* REQUEST
  1091.  
  1092. CFD1 SA2 CATH+FCAA GET OPTICAL ALTERNATE STORAGE INFORMATION
  1093. BX7 X2
  1094. SA2 CATH+FCOA GET OPTICAL DISK ADDRESS
  1095. MX3 24
  1096. BX6 X3*X2
  1097. SA6 PFRS+2 SET ADDRESS IN *PFM* REQUEST PARAMETERS
  1098. CFD2 RJ WPR WRITE *PFM* REQUEST PARAMETERS
  1099. EQ CFDX RETURN
  1100. CID SPACE 4,25
  1101. ** CID - CHECK INCOMPLETE FILE DUMP.
  1102. *
  1103. * ENTRY (IFST) = 0 IF NO INCOMPLETE FILE DUMP.
  1104. * (IFST) = 1 IF INCOMPLETE FILE DUMP AND PFC DUMPED.
  1105. * (IFST) = 2 IF INCOMPLETE FILE DUMP AND PERMITS DUMPED.
  1106. * CATALOG ENTRY IN *CATH* IF INCOMPLETE FILE DUMP.
  1107. * (FLST) = FILE STATUS WORD IF INCOMPLETE FILE DUMP.
  1108. *
  1109. * EXIT EOR WRITTEN ON ARCHIVE AND VERIFY FILES.
  1110. * CATALOG DATA OUTPUT AND FILE COUNTS UPDATED FOR FILE
  1111. * BEING DUMPED.
  1112. * ARCHIVE FILE ERROR FLAGS SET IF PERMITS DUMP AND/OR
  1113. * DATA DUMP INCOMPLETE.
  1114. *
  1115. * USES X - 1, 6.
  1116. * A - 0, 1, 6.
  1117. *
  1118. * CALLS CFP.
  1119. *
  1120. * MACROS WRITER.
  1121.  
  1122.  
  1123. CID SUBR ENTRY/EXIT
  1124. SA1 IFST
  1125. ZR X1,CIDX IF NO INCOMPLETE FILE DUMP
  1126. ARCHIVE WRITER WRITE EOR ON ARCHIVE/VERIFY FILES
  1127. SA1 IFST
  1128. SX6 X1-2
  1129. ZR X6,CID1 IF PERMITS DUMP COMPLETE
  1130. SA1 CATH+FCRI
  1131. MX6 24
  1132. BX6 X6*X1
  1133. ZR X6,CID1 IF NO PERMITS
  1134. SX6 4 SET PERMITS LOST FLAG
  1135. CID1 SA1 FLST
  1136. LX1 59-0
  1137. NG X1,CID2 IF *PFC ONLY* FILE
  1138. SX6 X6+2 SET DATA ERROR FLAG
  1139. CID2 LX1 1
  1140. BX6 X1+X6 MERGE ERROR FLAGS
  1141. SA6 FLST UPDATE FILE STATUS
  1142. SA0 CATH SET CATALOG ENTRY ADDRESS
  1143. RJ CFP COUNT FILE PROCESSED
  1144. EQ CIDX RETURN
  1145. CSI SPACE 4,10
  1146. ** CSI - CHECK SPECIAL USER INDEX.
  1147. *
  1148. * ENTRY (A0) = CATALOG ADDRESS.
  1149. *
  1150. * EXIT (A0) = CATALOG ADDRESS.
  1151. * (X6) .NE. 0 IF FILE TO BE DUMPED.
  1152. * (X6) = 0 IF FILE NOT TO BE DUMPED.
  1153. *
  1154. * USES X - 1, 2, 3, 6, 7.
  1155. * A - 1, 2, 3.
  1156.  
  1157.  
  1158. CSI2 SX6 B0+ SET NO FILE DUMP
  1159.  
  1160. CSI SUBR ENTRY/EXIT
  1161. SA1 CPAR+/COMSPFS/CPOP
  1162. SA2 CPAR+/COMSPFS/CPDT
  1163. SA3 A0+FCUI
  1164. SX6 B1 SET TO DUMP FILE
  1165. LX1 59-53
  1166. SX7 X3-IFUI
  1167. SX3 X3+ USER INDEX
  1168. ZR X3,CSI2 IF CATALOG HOLE
  1169. ZR X7,CSI2 IF INDIRECT ACCESS DATA FLAW
  1170. ZR X2,CSI1 IF NOT DESTAGE DUMP
  1171. SX2 X3-SYUI
  1172. ZR X2,CSI2 IF SYSTEM USER INDEX
  1173. SX1 377770B
  1174. SX2 SBUI
  1175. BX1 X1*X3
  1176. BX1 X1-X2
  1177. NZ X2,CSIX IF NOT SUBFAMILY USER INDEX
  1178. EQ CSI2 SET NO FILE DUMP
  1179.  
  1180. CSI1 PL X1,CSIX IF PURGE OPTION NOT SELECTED
  1181. SA1 /COMSPFS/FISP
  1182. SX2 X3-PGUI
  1183. NZ X1,CSIX IF USER INDEX SELECTIONS PRESENT
  1184. NG X2,CSIX IF FILE TO BE DUMPED
  1185. EQ CSI2 SET NO FILE DUMP
  1186. CSP SPACE 4,20
  1187. ** CSP - CHECK SELECTION PARAMETERS.
  1188. *
  1189. * ENTRY (A0) = ADDRESS OF CATALOG ENTRY.
  1190. * (CPAR) = CRACKED PARAMETER ARRAY.
  1191. *
  1192. * EXIT (A0) = ADDRESS OF CATALOG ENTRY.
  1193. * (X6) = 0 IF FILE NOT TO BE DUMPED.
  1194. * (X6) = 1 IF TOTAL FILE TO BE DUMPED.
  1195. * (X6) = 2 IF ONLY PFC AND PERMITS TO BE DUMPED.
  1196. * (X6) = 3 IF STAGE FILE FROM ALTERNATE STORAGE.
  1197. * (X6) = 4 IF FILE TO BE COPIED FROM ALTERNATE STORAGE
  1198. * TAPE.
  1199. *
  1200. * USES X - 1, 2, 4, 6, 7.
  1201. * A - 1, 2, 3, 6.
  1202. * B - 2, 3, 4.
  1203. *
  1204. * CALLS CBR, CFE, CSC, SFE, SFL.
  1205.  
  1206.  
  1207. CSP SUBR ENTRY/EXIT
  1208.  
  1209. * CHECK TRUE DEVICE RESIDENCE CRITERION.
  1210. * DISK RESIDENCY IS CHECKED BECAUSE OLDER SYSTEM LEVELS DID
  1211. * NOT CLEAR THE DEVICE NUMBER IN THE PFC ENTRY WHEN DISK SPACE
  1212. * WAS RELEASED.
  1213.  
  1214. SA1 CPAR+/COMSPFS/CPTD
  1215. SX6 B0+ SET NO FILE DUMP
  1216. SA6 FLCF CLEAR *FILE LENGTH CORRECT* FLAG
  1217. ZR X1,CSP1 IF NO TRUE DEVICE SELECTION
  1218. SA2 A0+FCDN
  1219. SA3 CPAR+/COMSPFS/CPDN
  1220. SA4 A0+FCBT
  1221. MX7 -6
  1222. LX2 -36
  1223. BX3 X1-X3
  1224. LX4 59-23
  1225. ZR X3,CSP1 IF TRUE DEVICE IS MASTER DEVICE
  1226. BX2 -X7*X2 RESIDENCY DEVICE
  1227. PL X4,CSPX IF FILE NOT DISK RESIDENT
  1228. BX2 X1-X2
  1229. NZ X2,CSPX IF FILE DOES NOT RESIDE ON TRUE DEVICE
  1230.  
  1231. * GET FILE LENGTH IF REQUIRED AND CHECK SELECTION CRITERIA.
  1232. * FILES SPECIFIED IN TABLE *TSFF* WILL BE DUMPED ON AN
  1233. * INCREMENTAL DUMP EVEN IF THE SPECIFIED DATE/TIME CRITERION
  1234. * IS NOT MET BECAUSE THEY MAY HAVE BEEN MODIFIED WHILE IN
  1235. * FAST ATTACH MODE.
  1236.  
  1237. CSP1 SA1 FLSF
  1238. ZR X1,CSP2 IF FILE LENGTH NOT REQUIRED FOR SELECTION
  1239. RJ SFL SET FILE LENGTH
  1240. ZR X6,CSPX IF DEVICE NOT FOUND ERROR
  1241. CSP2 SB4 A0 SET CATALOG ENTRY ADDRESS
  1242. RJ CSC CHECK SELECTION CRITERIA
  1243. NZ X6,CSP4 IF FILE SELECTED
  1244. ZR X7,CSPX IF NON-SELECTION NOT DUE TO DATE/TIME
  1245. SA1 INCD
  1246. ZR X1,CSPX IF NOT INCREMENTAL DUMP
  1247. SA2 TSFF-1
  1248. SA1 A0+FCUI
  1249. CSP3 SA2 A2+1 GET FAST ATTACH FILE NAME AND USER INDEX
  1250. ZR X2,CSPX IF END OF ENTRIES
  1251. BX3 X1-X2
  1252. NZ X3,CSP3 IF NO MATCH
  1253.  
  1254. * CHECK FILE BACKUP REQUIREMENTS.
  1255.  
  1256. CSP4 RJ CBR CHECK BACKUP REQUIREMENTS
  1257. SA1 CPAR+/COMSPFS/CPOP
  1258. SX6 X6-BRNO
  1259. LX1 59-53
  1260. NG X1,CSP6 IF PURGE OPTION SPECIFIED
  1261. ZR X6,CSPX IF BACKUP NOT REQUIRED
  1262. ZR B2,CSP6 IF NO ALTERNATE STORAGE COPIES
  1263. NZ B7,CSP5 IF ALTERNATE DATE/TIME USED IN SELECTION
  1264. ZR X7,CSP6 IF FILE NOT BACKED UP ON ALTERNATE STORAGE
  1265.  
  1266. * DETERMINE IF THE FILE CAN BE DUMPED AS *PFC ONLY*.
  1267. * NOTE - IF *OP=Z* OR A DESTAGE DUMP IS SELECTED, *PRS*
  1268. * SETS THE *COS* LIMIT TO FORCE A DATA DUMP FOR ALL FILES.
  1269.  
  1270. CSP5 RJ SFL ENSURE FILE LENGTH CORRECT IN PFC ENTRY
  1271. ZR X6,CSPX IF DEVICE NOT FOUND ERROR
  1272. SA1 A0+FCLF GET FILE LENGTH
  1273. SA2 CPAR+/COMSPFS/CPCO
  1274. MX7 -24
  1275. LX1 -36
  1276. BX7 -X7*X1
  1277. IX7 X7-X2
  1278. PL X7,CSP9 IF FILE SIZE .GE. *PFC* ONLY LIMIT
  1279.  
  1280. * CHECK DISK IMAGE.
  1281.  
  1282. CSP6 SA1 A0+FCBT GET BEGINNING TRACK POINTER
  1283. SX6 B1 SET TOTAL FILE DUMP
  1284. LX1 59-23
  1285. NG X1,CSPX IF DISK IMAGE EXISTS
  1286. NZ B2,CSP7 IF ALTERNATE STORAGE COPY EXISTS
  1287. SA1 A0+FCFN SET FILE NAME AND USER INDEX
  1288. SB2 ERNP * NO DISK OR ALTERNATE STORAGE ...*
  1289. RJ SFE SEND ERROR MESSAGE
  1290. RJ CFE COUNT FILE SKIPPED
  1291. EQ CSP10 SET NO FILE DUMP
  1292.  
  1293. * DETERMINE IF FILE TO BE STAGED FROM ALTERNATE STORAGE.
  1294.  
  1295. CSP7 SA1 CPAR+/COMSPFS/CPOP
  1296. SX6 3 SET STAGE FILE
  1297. ZR B3,CSP8 IF FILE NOT ON TAPE ALTERNATE STORAGE
  1298. SX6 4 SET COPY FILE FROM TAPE
  1299. CSP8 LX1 59-47
  1300. PL X1,CSPX IF FILE STAGING NOT SUPPRESSED
  1301. CSP9 SA1 CPAR+/COMSPFS/CPDT
  1302. NZ X1,CSP10 IF DESTAGE DUMP
  1303. SX6 2 SET DUMP PFC AND PERMITS ONLY
  1304. EQ CSPX RETURN
  1305.  
  1306. * SET TO NOT DUMP FILE.
  1307.  
  1308. CSP10 SX6 B0 CLEAR *DUMP FILE* FLAG
  1309. EQ CSPX RETURN
  1310.  
  1311.  
  1312. * TABLE OF SPECIAL FAST ATTACH FILES.
  1313.  
  1314. TSFF BSS 0 TABLE OF SPECIAL FAST ATTACH FILES
  1315. VFD 42/0L"APFN",18/SYUI
  1316. VFD 42/0L"PPFN",18/SYUI
  1317. VFD 42/0L"TMFC",18/"TMUI"
  1318. CON 0 END OF TABLE
  1319. CWW SPACE 4,50
  1320. ** CWW - CONTROL WORD WRITE.
  1321. *
  1322. * *CWW* TRANSFERS DATA FROM A WORKING BUFFER TO A
  1323. * CIRCULAR BUFFER. CONTROL WORDS ARE INSERTED INTO THE
  1324. * CIRCULAR BUFFER AS NECESSARY BASED ON THE PRU SIZE CONTAINED
  1325. * IN THE FET. IF THE BUFFER BECOMES SUFFICIENTLY FULL TO
  1326. * REQUIRE DUMPING, A *CIO* *WRITECW* REQUEST IS ISSUED FOR
  1327. * THE FILE.
  1328. *
  1329. * *CWW* USES A WORD IN THE FET TO CONTROL THE BLOCKING
  1330. * OF DATA. THE LOCATION OF THIS WORD IN THE FET IS DETERMINED
  1331. * BY THE ASSEMBLY CONSTANT *CWSW*. BEFORE THE INITIAL CALL TO
  1332. * *CWW* FOR A GIVEN FET THE LOCATION *CWSW* OF THAT FET SHOULD
  1333. * BE INITIALIZED TO -1 TO INSURE PROPER OPERATION OF *CWW*.
  1334. * AFTER THE INITIAL CALL TO *CWW* FOR A GIVEN FET, THE LOCATION
  1335. * *CWSW* IS MAINTAINED AUTOMATICALLY BY *CWW* AND SHOULD NOT BE
  1336. * SET BY THE CALLER.
  1337. *
  1338. * AN END OF RECORD WRITE CAUSES AN END OF RECORD LEVEL
  1339. * NUMBER *LN* (SEE *B6* ENTRY CONDITION) TO BE WRITTEN ON THE
  1340. * FILE.
  1341. *
  1342. * ENTRY (X2) = FET ADDRESS.
  1343. * (B6) = FWA OF WORKING BUFFER IF (B7) .GE. 0.
  1344. * = LN = END OF RECORD LEVEL NUMBER IF (B7) .LT. 0.
  1345. * (B7) = WORD COUNT OF WORKING BUFFER (.GE. 0).
  1346. * = .LT. 0 FOR AN END OF RECORD WRITE.
  1347. *
  1348. * EXIT (X2) = FET ADDRESS.
  1349. * (B6) = ADDRESS OF NEXT WORD TO BE TRANSFERRED FROM
  1350. * WORKING BUFFER.
  1351. * (B7) = 0 IF OPERATION WAS COMPLETED.
  1352. * = REMAINING WORD COUNT IF A BUFFER DUMP WAS
  1353. * NECESSARY AND AN ERROR STATUS WAS DETECTED IN
  1354. * THE FET.
  1355. * = .LT. 0 IF AN ERROR WAS DETECTED AS ABOVE AND
  1356. * THE CALL WAS FOR AN END OF RECORD WRITE.
  1357. * (X7) = ERROR STATUS IF (B7) .NE. 0.
  1358. *
  1359. * USES X - 1, 3, 4, 6, 7.
  1360. * A - 1, 3, 6, 7.
  1361. * B - 2, 3, 4, 5, 6, 7.
  1362. *
  1363. * CALLS MMC.
  1364. *
  1365. * MACROS RECALL, WRITECW.
  1366.  
  1367.  
  1368. * SAVE CURRENT BLOCK WORD COUNT.
  1369.  
  1370. CWW17 SX6 B2+ SAVE CURRENT BLOCK WORD COUNT
  1371. SA6 X2+CWSW
  1372.  
  1373. CWW SUBR ENTRY/EXIT
  1374. ZR B7,CWWX IF WORKING BUFFER EMPTY
  1375. SA1 X2+4 SET LIMIT
  1376. SB5 X1
  1377. LX1 -18 SET BLOCK SIZE
  1378. SA3 X2+CWSW GET CURRENT BLOCK WORD COUNT
  1379. SB3 X1
  1380. SB2 X3
  1381. SA1 X2+2 IN
  1382. SB4 X1
  1383. NG B2,CWW1 IF NO PARTIAL BLOCK IN BUFFER
  1384. SX1 B4+B2 IN = IN + BLOCK LENGTH
  1385. SB4 X1+B1
  1386. LT B4,B5,CWW1 IF IN .LT. LIMIT
  1387. SA1 X2+B1 IN = IN-LIMIT+FIRST
  1388. SB4 B4-B5
  1389. SB4 X1+B4
  1390.  
  1391. * DETERMINE BUFFER SPACE.
  1392.  
  1393. CWW1 SA3 X2+3 OUT
  1394. SX6 B4+B1 BUFFER SPACE = OUT-(IN+1)
  1395. IX4 X3-X6
  1396. PL X4,CWW2 IF NO BUFFER WRAP
  1397. SA3 X2+B1 FIRST
  1398. SX6 X4+B5 BUFFER SPACE = BUFFER SPACE+(LIMIT-FIRST)
  1399. SX3 X3
  1400. IX4 X6-X3
  1401. CWW2 ZR X4,CWW13 IF NO SPACE IN BUFFER
  1402.  
  1403. * PROCESS TRAILING CONTROL WORD.
  1404.  
  1405. NE B2,B3,CWW4 IF CURRENT BLOCK NOT FULL
  1406. SB2 -B1 SET CURRENT BLOCK EMPTY
  1407. BX6 X6-X6 SET LEVEL 0 SECOND CONTROL WORD
  1408. SA6 B4
  1409. SB4 B4+B1 ADVANCE IN
  1410. LT B4,B5,CWW3 IF IN .LT. LIMIT
  1411. SA1 X2+B1 IN = FIRST
  1412. SB4 X1
  1413. CWW3 SX6 B4+ UPDATE IN
  1414. SX4 X4-1 DECREMENT BUFFER SPACE
  1415. SA6 X2+2
  1416. ZR X4,CWW13 IF NO SPACE IN BUFFER
  1417.  
  1418. * PROCESS LEADING CONTROL WORD.
  1419.  
  1420. CWW4 PL B2,CWW6 IF BLOCK STARTED
  1421. SB2 B0 CLEAR BLOCK WORD COUNT
  1422. SX6 B3 (X7) = 5*BLOCK SIZE
  1423. SX1 B3
  1424. LX6 2
  1425. IX7 X6+X1
  1426. LX1 36 24/BLOCK SIZE,36/5*BLOCK SIZE
  1427. BX6 X1+X7
  1428. SA6 B4 STORE LEADING CONTROL WORD
  1429. SB4 B4+B1 ADVANCE IN
  1430. LT B4,B5,CWW5 IF IN .LT. LIMIT
  1431. SA1 X2+B1 IN = FIRST
  1432. SB4 X1
  1433. CWW5 SX4 X4-1 DECREMENT BUFFER SPACE
  1434. ZR X4,CWW13 IF NO SPACE IN BUFFER
  1435.  
  1436. * PROCESS END OF RECORD WRITE.
  1437.  
  1438. CWW6 PL B7,CWW8 IF NOT END OF RECORD CALL
  1439. SX6 B6 SAVE LEVEL NUMBER
  1440. LX6 48
  1441. SA6 B4
  1442. SX1 B2 BLOCK BYTE COUNT = 5 * BLOCK WORD COUNT
  1443. LX1 2
  1444. SX3 X1+B2
  1445. SX1 B3 24/BLOCK SIZE,36/BLOCK BYTE COUNT
  1446. LX1 36
  1447. BX6 X1+X3
  1448. SB4 B4+B1 ADVANCE IN
  1449. LT B4,B5,CWW7 IF IN .LT. LIMIT
  1450. SA1 X2+B1 IN = FIRST
  1451. SB4 X1
  1452. CWW7 SA1 X2+2 UPDATE FIRST CONTROL WORD
  1453. SX7 B4 UPDATE IN
  1454. SA6 X1
  1455. SA7 A1
  1456. SB7 B0+ CLEAR WORKING BUFFER WORD COUNT
  1457. SB2 -B1 SET CURRENT BLOCK EMPTY FLAG
  1458. EQ CWW13 BUFFER AHEAD
  1459.  
  1460. * TRANSFER DATA FROM WORKING BUFFER TO CIRCULAR BUFFER.
  1461.  
  1462. CWW8 SB5 B5-B4 DETERMINE AVAILABLE SPACE WITHOUT WRAP
  1463. LE B5,B7,CWW9 IF BUFFER WRAP
  1464. SB5 B7 USE WORKING BUFFER WORD COUNT
  1465. CWW9 SX1 B3-B2 DETERMINE REMAINING BLOCK WORD COUNT
  1466. SX3 B5+
  1467. IX6 X4-X1
  1468. PL X6,CWW10 IF BLOCK COUNT FITS IN AVAILABLE SPACE
  1469. SX1 X4+ USE AVAILABLE SPACE WORD COUNT
  1470. CWW10 IX6 X3-X1
  1471. PL X6,CWW11 IF NO BUFFER WRAP
  1472. SX1 B5 USE SPACE AVAILABLE WITHOUT WRAP
  1473. CWW11 SX3 B6 SET STARTING ADDRESS OF MOVE
  1474. SX6 B4 SET DESTINATION ADDRESS OF MOVE
  1475. SB6 B6+X1 INCREMENT WORKING BUFFER ADDRESS
  1476. SB2 B2+X1 INCREMENT BLOCK COUNT
  1477. SB4 B4+X1 INCREMENT IN
  1478. SB5 X1+
  1479. SB7 B7-B5 DECREMENT WORKING BUFFER WORD COUNT
  1480. RJ MMC MOVE DATA FROM WORKING BUFFER
  1481. SA1 X2+FTLM REREAD LIMIT
  1482. SB5 X1+
  1483. LT B4,B5,CWW12 IF LIMIT NOT REACHED
  1484. SA1 X2+B1 READ FIRST
  1485. SB4 X1
  1486. CWW12 NZ B7,CWW1 IF MORE DATA TO WRITE
  1487.  
  1488.  
  1489. * PROCESS FULL BUFFER AND BUFFER AHEAD.
  1490.  
  1491. CWW13 SA1 X2 CHECK FET STATUS
  1492. LX1 59-0
  1493. NG X1,CWW14 IF FET NOT BUSY
  1494. ZR B7,CWW17 IF WORKING BUFFER EMPTY
  1495. RECALL WAIT FOR *CIO* TO CATCH UP
  1496. EQ CWW1 TRANSFER REMAINDER OF DATA
  1497.  
  1498. CWW14 LX1 0-10-59+0+60 CHECK ERROR STATUS
  1499. MX3 -4
  1500. BX7 -X3*X1
  1501. NZ X7,CWW17 IF ERROR ON LAST WRITE REQUEST
  1502. NZ B7,CWW16 IF WORKING BUFFER NOT EMPTY
  1503. SA1 X2+B1 FIRST
  1504. SA3 X2+3 OUT
  1505. SX6 B5
  1506. SX1 X1
  1507. IX7 X6-X1 BUFFER SIZE = LIMIT-FIRST
  1508. SX6 B4
  1509. IX3 X6-X3 BUFFER WC = IN-OUT
  1510. PL X3,CWW15 IF NO BUFFER WRAP
  1511. IX3 X3+X7 BUFFER WC = BUFFER WC+BUFFER SIZE
  1512. CWW15 AX7 1 BUFFER SIZE/2
  1513. IX1 X3-X7
  1514. NG X1,CWW17 IF BUFFER NOT AT LEAST HALF FULL
  1515. SX6 B3+2 MINIMUM BLOCK LENGTH
  1516. IX1 X3-X6
  1517. NG X1,CWW17 IF NOT FULL BLOCK IN BUFFER
  1518.  
  1519. * CALL *CIO* TO WRITE DATA.
  1520.  
  1521. CWW16 WRITECW X2 CALL *CIO* TO WRITE DATA
  1522. NZ B7,CWW1 IF WORKING BUFFER NOT EMPTY
  1523. EQ CWW17 SAVE CURRENT BLOCK WORD COUNT
  1524.  
  1525. CWSW EQU 5 CONTROL WORD STATUS WORD
  1526. DLY SPACE 4,10
  1527. ** DLY - DELAY.
  1528. *
  1529. * ENTRY (B2) = NUMBER OF RECALL-S TO ISSUE.
  1530. *
  1531. * USES B - 2.
  1532. *
  1533. * MACROS RECALL.
  1534.  
  1535.  
  1536. DLY SUBR ENTRY/EXIT
  1537. DLY1 RECALL
  1538. SB2 B2-B1
  1539. GT B2,DLY1 IF MORE DELAY NEEDED
  1540. EQ DLYX RETURN
  1541. DSF SPACE 4,15
  1542. ** DSF - DROP STAGED FILES.
  1543. *
  1544. * ENTRY DATA LIST ELEMENTS IN *DLRB*.
  1545. * CATALOG TRACK INTERLOCK SET.
  1546. *
  1547. * EXIT DISK SPACE OCCUPIED BY STAGED FILES DROPPED.
  1548. * CATALOG TRACK INTERLOCK SET.
  1549. *
  1550. * USES X - 1, 5, 6.
  1551. * A - 1, 5, 6.
  1552. * B - 2.
  1553. *
  1554. * CALLS SDP, SPR.
  1555. *
  1556. * MACROS DROPDS, PCINT.
  1557.  
  1558.  
  1559. DSF SUBR ENTRY/EXIT
  1560. PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
  1561. SA5 DLRB GET FIRST LIST ENTRY
  1562. DSF1 BX1 X5
  1563. RJ SDP SET DATA LIST PARAMETERS
  1564. SB2 DDBK SET SPECIAL REQUEST BLOCK ADDRESS
  1565. RJ SPR
  1566. DROPDS DDFT DROP DISK SPACE
  1567. SA1 STFC INCREMENT NUMBER OF FILES STAGED
  1568. SX6 X1+B1
  1569. SA6 A1
  1570. SA5 A5+1 GET NEXT LIST ENTRY
  1571. NZ X5,DSF1 IF MORE DATA LIST ELEMENTS
  1572. PCINT CATS,CTSC SET CATALOG TRACK INTERLOCK
  1573. EQ DSFX RETURN
  1574. DTF SPACE 4,20
  1575. ** DTF - DUMP TAPE RESIDENT FILE.
  1576. *
  1577. * ENTRY (RESE - RESE+2) = REQUEST PARAMETERS.
  1578. * (DBUFH - DBUFH+17B) = CATALOG ENTRY FROM TAPE.
  1579. *
  1580. * EXIT FILE DUMP COMPLETE IF FILE FOUND AND SELECTED.
  1581. * ALL DEVICE ACCESS FILES RETURNED.
  1582. * PF ACTIVITY COUNT AND CATALOG TRACK INTERLOCK NOT SET.
  1583. *
  1584. * USES X - 0, 1, 2, 3, 6, 7.
  1585. * A - 1, 2, 3, 6.
  1586. * B - 3.
  1587. *
  1588. * CALLS CAC, CDT, CFD, CSP, OPF, PFC, PPD, RCS, RMF, RPF, SAC,
  1589. * SCA, SFL.
  1590. *
  1591. * MACROS CALLPFU, MOVE, PCINT, READCW.
  1592.  
  1593.  
  1594. DTF SUBR ENTRY/EXIT
  1595.  
  1596. * SET UP CATALOG AND PERMITS FILES AND SET INTERLOCKS.
  1597.  
  1598. SA1 RESE+1
  1599. MX6 -18
  1600. MX7 -3
  1601. BX6 -X6*X1 USER INDEX
  1602. BX2 -X7*X1 SUBFAMILY INDEX
  1603. SA6 PDUI SET USER INDEX FOR *RCS* ERROR MESSAGE
  1604. SA2 TMDA+X2 GET MASTER DEVICE *MSTT* ADDRESS
  1605. SA3 X2+ GET MASTER DEVICE EST ORDINAL
  1606. BX6 X2
  1607. SA6 MSTA SET MASTER DEVICE *MSTT* ADDRESS
  1608. MX6 -6
  1609. BX6 -X6*X3
  1610. SA6 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
  1611. MX6 -9
  1612. LX3 -6
  1613. BX6 -X6*X3
  1614. SA6 MAEQ SET MASTER DEVICE EST ORDINAL
  1615. RJ SAC SET PF ACTIVITY COUNT
  1616. SA1 RESE+2
  1617. SA2 MAEQ
  1618. MX6 36
  1619. SX3 5
  1620. LX6 -12
  1621. BX6 X6*X1 FIRST TRACK, CURRENT TRACK AND SECTOR
  1622. LX2 48
  1623. BX6 X6+X3 MERGE FILE STATUS
  1624. BX6 X6+X2 MERGE EST ORDINAL
  1625. SA6 CATS+FTPM SET FST PARAMETERS
  1626. CALLPFU CATS,CTOL,R OPEN CATALOG FILE
  1627. RJ OPF OPEN PERMITS FILE
  1628. PCINT CATS,CTSC SET CATALOG TRACK INTERLOCK
  1629.  
  1630. * READ CATALOG ENTRY.
  1631.  
  1632. SA1 CATS+FTFT
  1633. SX6 X1
  1634. SA6 A1+B1 SET IN = FIRST
  1635. SA6 A1+2 SET OUT = FIRST
  1636. READCW CATS,17B INITIATE CATALOG READ
  1637. RJ RCS READ CATALOG SECTOR
  1638. NZ X1,DTF3 IF ERROR IN READ
  1639. SA2 RESE+2
  1640. MX6 -2
  1641. BX6 -X6*X2 CATALOG BUFFER INDEX
  1642. LX6 4
  1643. ERRNZ NWCE-20B
  1644. SA0 CSBF+X6 SET CATALOG ENTRY ADDRESS
  1645.  
  1646. * VERIFY CATALOG ENTRY.
  1647.  
  1648. SA1 A0+FCFN
  1649. SA2 RESE+1
  1650. SA3 A0+FCCD
  1651. SA4 DBUFH+FCCD
  1652. MX6 -36
  1653. BX1 X1-X2 COMPARE FILE NAMES FROM REQUEST AND PFC
  1654. BX3 X3-X4 COMPARE CREATION TIME FROM TAPE AND PFC
  1655. BX3 -X6*X3
  1656. NZ X1,DTF3 IF NOT SAME FILE NAME AND USER INDEX
  1657. NZ X3,DTF3 IF NOT SAME CREATION DATE/TIME
  1658. SA1 A0+FCMD
  1659. SA2 DBUFH+FCMD
  1660. SA3 A0+FCTV
  1661. SA4 DBUFH+FCTV
  1662. MX7 -42
  1663. BX1 X1-X2 COMPARE DATA MODIFCATION DATE AND TIME
  1664. BX3 X3-X4 COMPARE ALTERNATE STORAGE POINTERS
  1665. BX1 -X6*X1
  1666. BX3 -X7*X3
  1667. NZ X1,DTF3 IF NOT SAME DATA MODIFICATION DATE/TIME
  1668. NZ X3,DTF3 IF NOT SAME ALTERNATE STORAGE POINTERS
  1669.  
  1670. * DUMP FILE IF SELECTED.
  1671.  
  1672. RJ CSP CHECK SELECTION PARAMETERS
  1673. ZR X6,DTF3 IF NOT TO PROCESS FILE
  1674. SX0 X6-2
  1675. RJ SCA SET CATALOG DISK ADDRESS
  1676. MOVE NWCE,A0,CATH MOVE CATALOG ENTRY
  1677. NZ X0,DTF2 IF FILE DATA TO BE DUMPED
  1678. RJ PPD DUMP PFC AND PERMITS
  1679. EQ DTF3 RETURN MASTER DEVICE FILES
  1680.  
  1681. DTF2 RJ SFL SET FILE LENGTH
  1682. SX5 CCWC SET DUMP WITH FILE DATA
  1683. RJ PFC WRITE CATALOG ENTRY
  1684. RJ RPF WRITE FILE PERMITS
  1685. PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
  1686. RJ CDT COPY FILE DATA FROM TAPE
  1687. RJ CFD COMPLETE FILE DUMP
  1688.  
  1689. * RETURN DEVICE FILES AND DECREMENT PF ACTIVITY COUNT.
  1690.  
  1691. DTF3 RJ RMF RETURN MASTER DEVICE FILES
  1692. RJ CAC DECREMENT PF ACTIVITY COUNT
  1693. EQ DTFX RETURN
  1694. FAF SPACE 4,10
  1695. ** FAF - FLUSH ARCHIVE FILES.
  1696. *
  1697. * EXIT ARCHIVE AND VERIFY FILES FLUSHED.
  1698. *
  1699. * USES X - 1, 2.
  1700. * A - 1.
  1701. *
  1702. * CALLS FCW.
  1703.  
  1704.  
  1705. FAF SUBR ENTRY/EXIT
  1706. SX2 TAPE FLUSH ARCHIVE FILE BUFFER
  1707. RJ FCW
  1708. SA1 CPAR+/COMSPFS/CPVF
  1709. ZR X1,FAFX IF NO VERIFY FILE SPECIFIED
  1710. SX2 PFVER
  1711. RJ FCW FLUSH VERIFY FILE BUFFER
  1712. EQ FAFX RETURN
  1713. FCW SPACE 4,20
  1714. ** FCW - FLUSH BUFFER USING CONTROL WORD WRITE.
  1715. *
  1716. * A CONTROL WORD WRITE REQUEST (*WRITECW*) IS ISSUED
  1717. * FOR THE SPECIFIED FILE IF THE BUFFER IS NOT EMPTY.
  1718. *
  1719. * ENTRY (X2) = FET ADDRESS.
  1720. *
  1721. * EXIT (X2) = FET ADDRESS.
  1722. *
  1723. * USES X - 1, 3.
  1724. * A - 1, 3.
  1725. *
  1726. * MACROS RECALL, WRITECW.
  1727.  
  1728.  
  1729. FCW SUBR ENTRY/EXIT
  1730. RECALL X2 WAIT COMPLETION OF ANY PENDING OPERATION
  1731. SA1 X2+2 GET *IN*
  1732. SA3 A1+B1 GET *OUT*
  1733. IX1 X1-X3
  1734. ZR X1,FCWX IF BUFFER EMPTY
  1735. WRITECW X2 FLUSH BUFFER
  1736. EQ FCWX RETURN
  1737. FTR SPACE 4,10
  1738. ** FTR - FORMAT ALTERNATE STORAGE TAPE REQUEST PARAMETERS.
  1739. *
  1740. * ENTRY (A1) = *FCTV* WORD FROM CATALOG ENTRY.
  1741. *
  1742. * EXIT (X7) = TAPE REQUEST PARAMETERS FORMATTED FOR SORT.
  1743. *
  1744. * USES X - 1, 2, 6, 7.
  1745.  
  1746.  
  1747. FTR SUBR ENTRY/EXIT
  1748. SX7 700B
  1749. MX6 -24
  1750. LX7 48
  1751. BX7 X7*X1 TAPE TYPE FLAGS AND FORMAT
  1752. BX6 -X6*X1 VSN POINTER
  1753. MX2 -18
  1754. LX6 24
  1755. LX1 0-24
  1756. BX7 X7+X6 MERGE VSN POINTER
  1757. BX2 -X2*X1 FILE SEQUENCE NUMBER
  1758. BX7 X7+X2 MERGE SEQUENCE NUMBER
  1759. EQ FTRX RETURN
  1760. GLF SPACE 4,20
  1761. ** GLF - GET LOCK FILES.
  1762. *
  1763. * ENTRY (MSSF) = 0, IF NOT *MSS* ENVIRONMENT.
  1764. * = 1, IF *MSS* ENVIRONMENT.
  1765. * (ASFF) = 0, IF NOT *MSE* ENVIRONMENT.
  1766. * = 1, IF *MSE* ENVIRONMENT.
  1767. * (FMPN) = FAMILY NAME.
  1768. *
  1769. * EXIT (LMSK) = 0, IF NO LOCK FILES ATTACHED.
  1770. * .NE. 0, IF LOCK FILES ATTACHED.
  1771. *
  1772. * USES X - 1, 2, 3, 6, 7.
  1773. * A - 1, 2, 3, 6, 7.
  1774. * B - 4, 5, 6.
  1775. *
  1776. * CALLS ALF.
  1777. *
  1778. * MACROS CALLPFU, MESSAGE, MOVE, SETPFP.
  1779.  
  1780.  
  1781. GLF SUBR ENTRY/EXIT
  1782. SA1 MSSF
  1783. SA2 ASFF
  1784. BX1 X1+X2
  1785. ZR X1,GLFX IF NEITHER *MSS* NOR *MSE* ENVIRONMENT
  1786. SA1 CPAR+/COMSPFS/CPPN
  1787. NZ X1,GLFX IF DUMPING AUXILIARY PACK
  1788. SA1 MSTA
  1789. SA1 X1+B1
  1790. MX6 -8
  1791. BX6 -X6*X1 DEVICE MASK
  1792. SA6 CMSK SET SUBFAMILY CONTROL DEVICE MASK
  1793. SA6 GLFA
  1794.  
  1795. * INITIALIZE LOCK LOOP.
  1796.  
  1797. SA3 IDSA+/COMSPFS/ADM1 ISSUE WAIT MESSAGE
  1798. MOVE 4,MSGAA,X3 K-DISPLAY
  1799. MESSAGE MSGAA,2,R B-DISPLAY
  1800.  
  1801. * CLEAR FIRST WORD OF EACH LOCK FILE *PFC* ENTRY BUFFER.
  1802.  
  1803. SB6 LFATL-1 SET LENGTH OF *LFAT* TABLE
  1804. SX6 B0+
  1805. GLF0 SA1 LFAT+B6 GET ADDRESS OF *PFC* ENTRY BUFFER
  1806. SA6 X1
  1807. SB6 B6-B1 DECREMENT *LFAT* INDEX
  1808. PL B6,GLF0 IF MORE ENTRIES
  1809.  
  1810. * GET NEEDED LOCK FILES FOR *MSS*.
  1811.  
  1812. SA1 MSSF
  1813. ZR X1,GLF4 IF NOT *MSS* ENVIRONMENT
  1814. SB4 B0
  1815. GLF1 SB6 B0
  1816. GLF2 SA1 CMSK
  1817. SX2 B1+
  1818. LX2 B6,X2
  1819. BX3 X2*X1
  1820. ZR X3,GLF3 IF THIS LOCK FILE NOT NEEDED
  1821. RJ ALF ATTACH LOCK FILE
  1822. GLF3 SB6 B6+1 INCREMENT INDEX
  1823. SB5 MNSF
  1824. LT B6,B5,GLF2 IF SUBFAMILIES NOT EXHAUSTED
  1825. SA1 GLFA
  1826. SA2 LMSK
  1827. BX1 X1-X2
  1828. ZR X1,GLF4 IF ALL NEEDED LOCK FILES OBTAINED
  1829. CALLPFU LKC1,CTGU,R GET LOCK FILES HELD BY *MSS* EXECUTIVE
  1830. SB2 100B
  1831. RJ DLY DELAY
  1832. EQ GLF1 RETRY ATTACHING NEEDED LOCK FILES
  1833.  
  1834. * GET NEEDED LOCK FILES FOR *MSE*.
  1835.  
  1836. GLF4 SA1 ASFF
  1837. ZR X1,GLF8 IF NOT *MSE* ENVIRONMENT
  1838. SA1 GLFA RESET MASK
  1839. BX6 X1
  1840. SA6 CMSK
  1841. SB4 10B
  1842. GLF5 SB6 10B
  1843. GLF6 SA1 CMSK
  1844. SX2 B1
  1845. LX2 B6,X2
  1846. AX2 B4
  1847. BX3 X2*X1
  1848. ZR X3,GLF7 IF THIS LOCK FILE NOT NEEDED
  1849. RJ ALF ATTACH LOCK FILE
  1850. GLF7 SB6 B6+1 INCREMENT INDEX
  1851. SB5 B4+MNSF
  1852. LT B6,B5,GLF6 IF SUBFAMILIES NOT EXHAUSTED
  1853. SA1 GLFA
  1854. SA2 LMSK
  1855. AX2 B4
  1856. BX1 X1-X2
  1857. ZR X1,GLF8 IF ALL NEEDED LOCK FILES OBTAINED
  1858. CALLPFU LKC2,CTGU,R GET LOCK FILES HELD BY *MSE* EXECUTIVE
  1859. SB2 100B
  1860. RJ DLY DELAY
  1861. EQ GLF5 RETRY ATTACHING NEEDED LOCK FILES
  1862.  
  1863. GLF8 SX6 UIPR CLEAR USER INDEX
  1864. SA6 SPAR
  1865. SX7 B0+
  1866. SA7 SPAR+2
  1867. SETPFP SPAR
  1868. SA3 IDSA+/COMSPFS/ADM1 CLEAR WAIT MESSAGE
  1869. MOVE 4,MSGL,X3 K-DISPLAY
  1870. MESSAGE (=C**),2,R B-DISPLAY
  1871. EQ GLFX RETURN
  1872.  
  1873. GLFA BSSZ 1 SUBFAMILY CONTROL MASK HOLD
  1874. GRC SPACE 4,20
  1875. ** GRC - GENERATE *RDF* CATALOG RECORDS.
  1876. *
  1877. * ENTRY (LMSK) = LOCK FILE MASK.
  1878. * (MSSF) = 0, IF NOT AN *MSS* ENVIRONMENT.
  1879. * = 1, IF AN *MSS* ENVIRONMENT EXISTS.
  1880. * (ASFF) = NONZERO, IF *MSE* ENVIRONMENT.
  1881. * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
  1882. * *LOCK* = FWA OF LOCK FILE FET.
  1883. * *RDF* = FWA OF *RDF* FET.
  1884. *
  1885. * EXIT IF RELEASE DATA FILE (RDF) GENERATION REQUESTED
  1886. * AND AN *MSS* AND/OR AN *MSE* ENVIRONMENT
  1887. * EXISTS, AN *MSS* AND/OR AN *MSE* CATALOG
  1888. * RECORD IS WRITTEN TO THE *RDF* FOR EACH SUBFAMILY
  1889. * INDICATED IN THE DUMP DEVICE MASK.
  1890. *
  1891. * USES X - 0, 1, 2, 3, 6.
  1892. * A - 1, 2, 3, 6.
  1893. * B - 2, 3.
  1894. *
  1895. * MACROS READ, READW, REWIND, SETFET, WRITER, WRITEW.
  1896.  
  1897.  
  1898. GRC SUBR ENTRY/EXIT
  1899. SA1 CPAR+/COMSPFS/CPRD
  1900. ZR X1,GRCX IF RDF NOT REQUESTED
  1901. SA1 RDFE
  1902. ZR X1,GRC0.1 IF NO *RDF* EXTRACTS WRITTEN
  1903. BX6 X6-X6 CLEAR EXTRACT WRITTEN FLAG
  1904. SA6 A1
  1905. WRITER RDF,R TERMINATE SERIES OF *RDF* DEVICE EXTRACTS
  1906. GRC0.1 SA1 MSSF
  1907. SA2 ASFF
  1908. BX1 X1+X2
  1909. ZR X1,GRCX IF NEITHER *MSS* NOR *MSE* ENVIRONMENT
  1910. BX6 X6-X6 INITIALIZE FET TABLE INDEX
  1911. SA6 GRCA
  1912.  
  1913. * INITIALIZE LOCK FET.
  1914.  
  1915. SA1 LOCK+1 FIRST
  1916. MX0 42
  1917. BX6 X0*X1
  1918. SX2 CATB
  1919. BX6 X6+X2
  1920. SA6 A1
  1921. BX6 X2 IN
  1922. SA6 A6+B1
  1923. SA6 A6+B1 OUT
  1924. SETFET LOCK,ERP=B0 CLEAR USER ERROR PROCESSING BIT
  1925.  
  1926. * DETERMINE NEXT *MSS*/*MSE* CATALOG FILE TO PROCESS.
  1927.  
  1928. GRC1 SA1 GRCA
  1929. SX2 LFATL-1
  1930. IX2 X2-X1
  1931. NG X2,GRCX IF SUBFAMILIES EXHAUSTED
  1932. SB3 X1
  1933. SX2 B1 INCREMENT FET TABLE INDEX
  1934. IX6 X1+X2
  1935. SA6 A1
  1936. SA1 LMSK CHECK LOCK FILE MASK
  1937. SB2 59
  1938. SB2 B2-B3
  1939. LX1 B2,X1
  1940. PL X1,GRC1 IF SUBFAMILY NOT DUMPED
  1941.  
  1942. * OPEN *MSS*/*MSE* CATALOG FILE.
  1943.  
  1944. SA1 LOCK SET LOCK FET FILE NAME
  1945. SA2 LFAT+B3
  1946. MX0 42
  1947. BX6 X0*X2
  1948. BX3 -X0*X1
  1949. BX6 X6+X3
  1950. SA6 A1+
  1951. REWIND LOCK,R INITIATE *CIO*
  1952. READ X2
  1953.  
  1954. * WRITE *RDF* CATALOG RECORD CONTROL WORD.
  1955.  
  1956. SX6 CCWD BUILD CATALOG RECORD CONTROL WORD
  1957. SX1 B3 SET SUBFAMILY NUMBER
  1958. LX1 53-5
  1959. BX6 X1+X6
  1960. SA6 RDFH
  1961. WRITEW RDF,RDFH,B1
  1962.  
  1963. * COPY *MSS*/*MSE* CATALOG FILE TO RELEASE DATA FILE.
  1964.  
  1965. GRC2 READW LOCK,RDFH,RDFHL
  1966. NZ X1,GRC3 IF END OF MSF CATALOG
  1967. WRITEW RDF,RDFH,RDFHL
  1968. EQ GRC2 COPY NEXT SECTOR
  1969.  
  1970. GRC3 SX1 B6-RDFH
  1971. WRITEW RDF,RDFH,X1
  1972. WRITER X2,R
  1973. EQ GRC1 PROCESS NEXT CATALOG FILE
  1974.  
  1975.  
  1976. GRCA BSSZ 1 INDEX HOLD
  1977. GRE SPACE 4,15
  1978. ** GRE - GENERATE *RDF* EXTRACT RECORD.
  1979. *
  1980. * ENTRY (A0) = CATALOG ENTRY ADDRESS.
  1981. * (CPAR+/COMSPFS/CPDN) = DEVICE NUMBER.
  1982. *
  1983. * EXIT EXTRACT RECORD WRITTEN TO THE RELEASE DATA FILE,
  1984. * IF ALTERNATE STORAGE ADDRESS NOT ZERO.
  1985. * (RDFE) = 1, IF EXTRACT RECORD WRITTEN.
  1986. *
  1987. * USES X - 0, 1, 6.
  1988. * A - 1, 6.
  1989. *
  1990. * MACROS WRITEW.
  1991.  
  1992.  
  1993. GRE SUBR ENTRY/EXIT
  1994. SA1 CPAR+/COMSPFS/CPIP
  1995. NZ X1,GREX IF INHIBITED PROCESSING
  1996. SA1 A0+FCAA GET ALTERNATE STORAGE ADDRESS
  1997. MX0 -36
  1998. BX1 -X0*X1
  1999. ZR X1,GREX IF NO ALTERNATE STORAGE ADDRESS
  2000. SX6 1 SET RDF EXTRACT FLAG
  2001. SA6 RDFE
  2002.  
  2003. * BUILD EXTRACT RECORD CONTROL WORD.
  2004.  
  2005. SX6 ECWD
  2006. SA1 CPAR+/COMSPFS/CPDN SET DEVICE NUMBER
  2007. LX1 59-5
  2008. BX6 X1+X6
  2009. SA1 A0+FCUI SET SUBFAMILY NUMBER
  2010. MX0 -3
  2011. BX1 -X0*X1
  2012. LX1 53-5
  2013. BX6 X1+X6
  2014. SA6 RDFH
  2015.  
  2016. * BUILD BODY OF EXTRACT RECORD.
  2017.  
  2018. SA1 A0+FCFN+FCUI* SET FILE NAME AND USER INDEX
  2019. BX6 X1
  2020. SA6 A6+B1
  2021. SA1 A0+FCCD SET CREATION DATE/TIME
  2022. MX0 -36
  2023. BX6 -X0*X1
  2024. SA6 A6+B1
  2025. SA1 A0+FCMD SET DATA MODIFICATION DATE/TIME
  2026. BX6 -X0*X1
  2027. SA6 A6+B1
  2028. SA1 A0+FCKD SET CONTROL MODIFICATION DATE/TIME
  2029. BX6 -X0*X1
  2030. SA6 A6+B1
  2031. SA1 A0+FCUD SET UTILITY CONTROL DATE/TIME
  2032. BX6 -X0*X1
  2033. SA1 A0+FCBT+FCBS*
  2034. MX0 -24
  2035. BX1 -X0*X1
  2036. ZR X1,GRE1 IF FILE NOT DISK RESIDENT
  2037. MX0 1 SET *DISK RESIDENT* FLAG
  2038. BX6 X0+X6
  2039. GRE1 SA6 A6+B1
  2040. SA1 A0+FCAF+FCAT*0+FCAA* ALTERNATE STORAGE INFORMATION
  2041. BX6 X1
  2042. SA6 A6+B1
  2043. WRITEW RDF,RDFH,8 WRITE EXTRACT RECORD
  2044. EQ GREX RETURN
  2045. IFM SPACE 4,10
  2046. ** IFM - ISSUE FILE COUNT MESSAGES.
  2047. *
  2048. * EXIT FILES PROCESSED COUNTS ISSUED TO DAYFILE.
  2049. *
  2050. * USES X = 1, 2, 5, 6.
  2051. * A = 1, 2, 5, 6.
  2052. *
  2053. * CALLS IFC.
  2054.  
  2055.  
  2056. IFM SUBR ENTRY/EXIT
  2057. SA1 CPAR+/COMSPFS/CPIP
  2058. SA5 IFMD
  2059. NZ X1,IFM2 IF PROCESSING INHIBITED
  2060. SA5 IFMA
  2061. RJ IFC ISSUE FILE COUNT MESSAGES
  2062. SA1 CPAR+/COMSPFS/CPOP
  2063. SA2 CPAR+/COMSPFS/CPDT
  2064. SA5 IFMB
  2065. LX1 59-53
  2066. NG X1,IFM1 IF PURGE OPTION SPECIFIED
  2067. SA5 IFMC
  2068. ZR X2,IFMX IF NOT DESTAGE DUMP
  2069. IFM1 SA1 PRFC
  2070. SA2 PPFC
  2071. IX6 X1-X2
  2072. SA6 NPFC SET FILES NOT POST PROCESSED
  2073. IFM2 RJ IFC ISSUE FILE COUNT MESSAGES
  2074. EQ IFMX RETURN
  2075.  
  2076.  
  2077. IFMA BSS 0 NORMAL PROCESSING MESSAGE TABLE
  2078. VFD 1/1,1/0,22/0,18/DUMS,18/PRFC
  2079. VFD 1/1,1/0,22/0,18/POMS,18/POFC
  2080. VFD 1/0,1/0,22/0,18/STMS,18/STFC
  2081. VFD 1/1,1/0,22/0,18/SEMS,18/SEFC
  2082. VFD 1/1,1/0,22/0,18/DEMS,18/PEFC
  2083. CON 0 END OF TABLE
  2084.  
  2085. IFMB BSS 0 DUMP WITH PURGE MESSAGE TABLE
  2086. VFD 1/1,1/0,22/0,18/PGMS,18/PPFC
  2087. VFD 1/0,1/0,22/0,18/NPMS,18/NPFC
  2088. CON 0 END OF TABLE
  2089.  
  2090. IFMC BSS 0 DESTAGE DUMP MESSAGE TABLE
  2091. VFD 1/1,1/0,22/0,18/DSMS,18/PPFC
  2092. VFD 1/0,1/0,22/0,18/NDMS,18/NPFC
  2093. CON 0 END OF TABLE
  2094.  
  2095. IFMD BSS 0 INHIBITED PROCESSING MESSAGE TABLE
  2096. VFD 1/1,1/0,22/0,18/SDMS,18/PRFC
  2097. VFD 1/1,1/0,22/0,18/SPMS,18/POFC
  2098. CON 0 END OF TABLE
  2099. IRF SPACE 4,10
  2100. ** IRF - INITILIZE RESCAN FILES.
  2101. *
  2102. * EXIT *REQS* FILE FLUSHED, REWOUND, AND RENAMED TO *RESS*.
  2103. * OLD *RESS* FILE RETURNED.
  2104. *
  2105. * USES X - 0, 1, 2, 6.
  2106. * A - 1, 2, 6.
  2107. *
  2108. * MACROS READ, RECALL, RENAME, REWIND, WRITEF.
  2109.  
  2110.  
  2111. IRF SUBR ENTRY/EXIT
  2112. WRITEF REQS,R FLUSH REQUEST FILE BUFFER
  2113. RENAME REQS,RESS CREATE SCREEN FILE FROM REQUEST FILE
  2114. REWIND RESS
  2115. RECALL REQS
  2116. SA1 IRFA RESTORE LFN IN *REQS* FET
  2117. SA2 REQS
  2118. MX0 -18
  2119. BX6 -X0*X2
  2120. BX6 X1+X6
  2121. SA6 A2
  2122. READ RESS
  2123. EQ IRFX RETURN
  2124.  
  2125.  
  2126. IRFA CON 0LZZZZZG5 ORIGINAL *REQS* FILE NAME
  2127. IRS SPACE 4,15
  2128. ** IRS - INITIALIZE RESCAN FOR STAGED FILES.
  2129. *
  2130. * ENTRY CATALOG TRACK INTERLOCK SET.
  2131. *
  2132. * EXIT (X6) = 1 IF TO RESCAN CATALOG TRACK.
  2133. * (X7) = INITIAL CATALOG TRACK INDEX IF TO RESCAN TRACK.
  2134. * CATALOG TRACK INTERLOCK SET.
  2135. *
  2136. * USES X - 1, 2, 3, 5, 6, 7.
  2137. * A - 1, 2, 3, 6.
  2138. * B - 2.
  2139. *
  2140. * CALLS CFE, IRF, SRS.
  2141. *
  2142. * MACROS CALLPFU, MESSAGE, MOVE, PCINT, RECALL, READW.
  2143.  
  2144.  
  2145. IRS SUBR ENTRY/EXIT
  2146.  
  2147. * CLEAR CATALOG TRACK INTERLOCK AND ISSUE STATUS MESSAGE.
  2148.  
  2149. PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
  2150. RJ IRF INITIALIZE RESCAN FILES
  2151. MESSAGE MSGS,1 *WAITING FOR STAGED FILES*
  2152. SA3 IDSA+/COMSPFS/ADMS
  2153. MOVE 3,MSGS,X3 SET STATUS MESSAGE IN *K* DISPLAY
  2154. SX6 RESC
  2155. RJ SRS SELECT RIGHT SCREEN
  2156.  
  2157. * DELAY FOR FILE STAGING.
  2158.  
  2159. SX5 DFAC SET NUMBER OF RECALLS TO WAIT
  2160. IRS1 SA1 /COMSPFS/KIN GET K-DISPLAY INPUT
  2161. SA2 IRSA
  2162. SX6 B0
  2163. SA6 A1+ CLEAR INPUT
  2164. BX2 X1-X2
  2165. ZR X2,IRS2 IF *SKIP* ENTERED
  2166. RECALL
  2167. SX5 X5-1
  2168. NZ X5,IRS1 IF MORE DELAY
  2169.  
  2170. * INITIALIZE RESCAN OF CATALOG TRACK.
  2171.  
  2172. READW RESS,RESE,2 READ FIRST RESCAN REQUEST
  2173. RETURN CATS,R RETURN OLD CATALOG FILE
  2174. SA1 RSTS
  2175. SA2 CATS+FTPM
  2176. MX6 24
  2177. SX7 5
  2178. LX1 12
  2179. BX6 X6*X2 PRESERVE EST ORDINAL AND FIRST TRACK
  2180. BX1 X1+X7 MERGE CURRENT TRACK/SECTOR AND STATUS
  2181. BX6 X6+X1
  2182. SA6 A2 SET FST PARAMETERS
  2183. CALLPFU CATS,CTOL,R OPEN CATALOG FILE
  2184. SX5 B1 SET TO RESCAN TRACK
  2185. EQ IRS3 RESET TRACK INTERLOCK
  2186.  
  2187. * ISSUE MESSAGES FOR SKIPPED FILES.
  2188.  
  2189. IRS2 READW RESS,RESE,2 READ STAGE REQUEST ENTRY
  2190. SX5 B0+ SET NO RESCAN
  2191. NZ X1,IRS3 IF END OF REQUESTS
  2192. SA1 RESE+1 SET FILE NAME AND USER INDEX
  2193. SB2 ERRT * STAGED FILE RESCAN TERMINATED ...*
  2194. RJ SFE SEND ERROR MESSAGE
  2195. RJ CFE COUNT FILE SKIPPED
  2196. EQ IRS2 READ NEXT ENTRY
  2197.  
  2198. * CLEAR MESSAGE AND RESET CATALOG TRACK INTERLOCK.
  2199.  
  2200. IRS3 SA3 IDSA+/COMSPFS/ADER CLEAR HELP MESSAGE
  2201. MOVE 4,MSGW,X3
  2202. PCINT CATS,CTSC RESET CATALOG TRACK INTERLOCK
  2203. SA1 RSIN
  2204. BX6 X5 SET RESCAN STATUS
  2205. BX7 X1 SET CATALOG INDEX FOR RESCAN
  2206. EQ IRSX RETURN
  2207.  
  2208.  
  2209. IRSA CON 0LSKIP *SKIP* KEYBOARD ENTRY
  2210. MMC SPACE 4,10
  2211. ** MMC - MOVE MEMORY VIA *CMU* OR REGISTERS.
  2212. *
  2213. * ENTRY (X1) = WORD COUNT OF MOVE.
  2214. * (X3) = ADDRESS TO MOVE FROM.
  2215. * (X6) = ADDRESS TO MOVE TO.
  2216. *
  2217. * USES X - 0, 1, 3, 6.
  2218. * A - 1, 3, 6.
  2219. * B - 5.
  2220.  
  2221.  
  2222. MMC SUBR ENTRY/EXIT
  2223. LX3 30 BUILD DESCRIPTOR WORD
  2224. BX6 X6+X3
  2225. SA3 MMCB GET ADDRESS INCREMENT
  2226. UX3,B5 X3 EXTRACT CHARACTER COUNT
  2227. PX6 X6,B5 SET CHARACTER COUNT UPPER FIELD
  2228. SB5 X1 SET WORD COUNT
  2229. BX1 X0 SAVE X0
  2230. MMC1 SA6 A3-B1 STORE DESCRIPTOR WORD
  2231. SB5 B5+X3 DECREMENT WORD COUNT
  2232. NG B5,MMC2 IF SHORT BLOCK TO MOVE
  2233. IM MMCA
  2234. IX6 X6-X3 INCREMENT ADDRESSES
  2235. GT B5,B0,MMC1 IF MORE DATA TO TRANSFER
  2236. BX0 X1 RESTORE X0
  2237. EQ MMCX RETURN
  2238.  
  2239. * PROCESS BLOCK SHORTER THAN *NWCM* WORDS.
  2240.  
  2241. MMC2 SX3 B5+NWCM RESET CHARACTER COUNT IN DESCRIPTOR
  2242. UX6 X6
  2243. LX0 X3,B1 COMPUTE CHARACTERS LEFT TO MOVE
  2244. LX3 3
  2245. IX3 X0+X3
  2246. MX0 4
  2247. LX3 -4
  2248. BX0 X0*X3 EXTRACT LOWER FIELD
  2249. SB5 2000B+X3 SET UPPER FIELD
  2250. LX0 -30
  2251. PX6 X6,B5
  2252. BX6 X6+X0
  2253. SA6 MMCA STORE DESCRIPTOR
  2254. IM MMCA
  2255. BX0 X1 RESTORE X0
  2256. EQ MMCX RETURN
  2257.  
  2258. MMCA VFD 12/0 UPPER CHARACTER COUNT OF MOVE
  2259. VFD 18/0 ADDRESS TO MOVE FROM
  2260. VFD 4/0 LOWER CHARACTER COUNT FIELD
  2261. VFD 8/0
  2262. VFD 18/0 ADDRESS TO MOVE TO
  2263.  
  2264. MMCB VFD 12/-NWCM*10D/20B,18/-NWCM,30/-NWCM ADDRESS INCREMENT
  2265. ERRNZ MMCB-MMCA-1 CODE DEPENDS ON LOCATION OF CELLS
  2266.  
  2267. MMCL EQU *-MMC LENGTH OF CODE TO OVERLAY
  2268.  
  2269. * THE FOLLOWING CODE IS USED WHEN NO *CMU* IS PRESENT.
  2270.  
  2271. MOVE RMT
  2272. LOC MMC
  2273.  
  2274.  
  2275. MMC SUBR ENTRY/EXIT
  2276. SA3 X3 READ FIRST WORD TO MOVE
  2277. SB5 X1-10B SET WORD COUNT
  2278. SA1 X6-1 INITIALIZE STORE ADDRESS
  2279. BX6 X1
  2280. SA6 A1
  2281. NG B5,MMC4 IF LESS THAN 10B WORDS TO MOVE
  2282.  
  2283. * REGISTER MOVE LOOP.
  2284.  
  2285. MMC3 SA1 A3+B1
  2286. BX6 X3
  2287. SA6 A6+B1
  2288. SA3 A1+B1
  2289. BX6 X1
  2290. SA6 A6+B1
  2291. SA1 A3+B1
  2292. BX6 X3
  2293. SA6 A6+B1
  2294. SB5 B5-10B DECREMENT WORD COUNT
  2295. SA3 A1+B1
  2296. BX6 X1
  2297. SA6 A6+B1
  2298. SA1 A3+B1
  2299. BX6 X3
  2300. SA6 A6+B1
  2301. SA3 A1+B1
  2302. BX6 X1
  2303. SA6 A6+B1
  2304. SA1 A3+B1
  2305. BX6 X3
  2306. SA6 A6+B1
  2307. SA3 A1+B1
  2308. BX6 X1
  2309. SA6 A6+B1
  2310. PL B5,MMC3 IF MORE 10 WORD BLOCKS TO MOVE
  2311.  
  2312. * MOVE REMAINDER OF DATA.
  2313.  
  2314. MMC4 SB5 B5+10B
  2315. ZR B5,MMCX IF NO MORE DATA TO MOVE
  2316. MMC5 BX6 X3
  2317. SA3 A3+B1
  2318. SB5 B5-B1
  2319. SA6 A6+B1
  2320. GT B5,B0,MMC5 IF MORE DATA TO MOVE
  2321. EQ MMCX RETURN
  2322.  
  2323. ERRPL *-MMC-MMCL CODE TOO LARGE TO OVERLAY *MMC*
  2324. LOC *O
  2325.  
  2326. MOVE RMT
  2327. MRE SPACE 4,20
  2328. ** MRE - MAKE DATA READ LIST ENTRY.
  2329. *
  2330. * ENTRY (A0) = CATALOG ADDRESS.
  2331. *
  2332. * EXIT (A0) = CATALOG ADDRESS.
  2333. * (X6) = 0 IF DATA LIST FULL.
  2334. * (X6) .NE. 0 IF DATA LIST NOT FULL.
  2335. * DATA READ LIST ENTRY MADE IF NO ERROR.
  2336. * (NDLE) = UPDATED COUNT OF READ LIST ENTRIES.
  2337. *
  2338. * USES X - 0, 1, 2, 3, 5, 6, 7.
  2339. * A - 1, 2, 6, 7.
  2340. * B - 2.
  2341. *
  2342. * CALLS CDS, CFE, SDE.
  2343. *
  2344. * MACROS MOVE.
  2345.  
  2346.  
  2347. MRE SUBR ENTRY/EXIT
  2348.  
  2349. * SET BUFFER INDEX AND TRACK/SECTOR IN ENTRY.
  2350.  
  2351. SA1 A0+FCBT
  2352. SA2 NDLE
  2353. MX0 -24
  2354. BX7 -X0*X1 TRACK AND SECTOR
  2355. SB2 X2 NEXT CATALOG INDEX
  2356. LX1 59-11
  2357. PX7 X7,B2 SET CATALOG INDEX AND TRACK/SECTOR
  2358. MX0 24
  2359. PL X1,MRE2 IF INDIRECT ACCESS FILE
  2360.  
  2361. * PROCESS DIRECT ACCESS FILE.
  2362.  
  2363. SA1 A0+FCDN
  2364. SA2 CPAR+/COMSPFS/CPDN
  2365. MX0 48
  2366. MX6 -6
  2367. LX1 -36
  2368. BX1 -X6*X1 DEVICE NUMBER
  2369. ZR X1,MRE1 IF FILE RESIDES ON MASTER DEVICE
  2370. SX2 X1+
  2371. MRE1 SX2 X2+4000B SET DIRECT ACCESS FLAG
  2372. BX7 X0*X7
  2373. BX7 X7+X2 SET DEVICE NUMBER IN LIST ENTRY
  2374. ZR X1,MRE3 IF FILE RESIDES ON MASTER DEVICE
  2375. RJ CDS CHECK DEVICE STATUS
  2376. NZ X6,MRE3 IF DEVICE FOUND
  2377. SX2 X1+ SET DEVICE NUMBER
  2378. SA1 A0+FCFN GET FILE NAME AND USER INDEX
  2379. SB2 ERDN * DEVICE NOT FOUND ...*
  2380. RJ SDE SEND ERROR MESSAGE
  2381. RJ CFE COUNT FILE SKIPPED
  2382. SX6 B1 SET DATA LIST NOT FULL
  2383. EQ MREX RETURN
  2384.  
  2385. * PROCESS INDIRECT ACCESS FILE.
  2386.  
  2387. MRE2 SA1 A0+FCLF
  2388. SX6 B1
  2389. LX6 24
  2390. BX7 X7+X6 SET FILE LENGTH ADJUSTMENT
  2391. BX1 X0*X1 FILE LENGTH
  2392. LX1 -12
  2393. IX7 X7+X1 SET FILE LENGTH IN ENTRY
  2394.  
  2395. * PUT ENTRY IN LIST.
  2396.  
  2397. MRE3 SA1 CADA
  2398. SA7 DLRB+B2 PUT READ LIST ENTRY IN TABLE
  2399. SX3 B2+
  2400. LX3 4 OFFSET IN *DLCB*
  2401. ERRNZ NWCE-20B
  2402. BX6 X1
  2403. SX3 DLCB+X3 CATALOG ADDRESS IN *DLCB*
  2404. SA6 DLDB+B2 SAVE DISK ADDRESS
  2405. MOVE NWCE,A0,X3 MOVE CATALOG ENTRY TO BUFFER
  2406. SX6 B2+B1 ADVANCE READ LIST ENTRY COUNT
  2407. SX7 B0
  2408. SA6 NDLE UPDATE ENTRY COUNT
  2409. SA7 DLRB+X6 WRITE TERMINATOR WORD
  2410. SX6 X6-DLEMX SET LIST FULL STATUS
  2411. EQ MREX RETURN
  2412. OPF SPACE 4,10
  2413. ** OPF - OPEN PERMITS FILE.
  2414. *
  2415. * EXIT PERMITS FILE OPENED.
  2416. *
  2417. * USES X - 1, 2, 3, 6, 7.
  2418. * A - 1, 2, 7.
  2419. *
  2420. * MACROS CALLPFU.
  2421.  
  2422.  
  2423. OPF SUBR ENTRY/EXIT
  2424. SA2 MSTA
  2425. SA1 MAEQ
  2426. SA2 X2
  2427. MX6 -12
  2428. SX7 10005B FIRST SECTOR AND FILE STATUS
  2429. LX1 48
  2430. LX2 -24
  2431. BX7 X1+X7 MERGE EST ORDINAL, SECTOR, AND STATUS
  2432. BX3 -X6*X2 PERMITS FIRST TRACK
  2433. BX2 -X6*X2 SET CURRENT TRACK
  2434. LX3 36
  2435. LX2 24
  2436. BX7 X7+X3 MERGE FIRST TRACK
  2437. BX7 X7+X2 MERGE CURRENT TRACK
  2438. SA7 PETS+FTPM SET PARAMETER WORD
  2439. CALLPFU PETS,CTOL,R OPEN FILE
  2440. EQ OPFX RETURN
  2441. OPN SPACE 4,20
  2442. ** OPN - OPEN DEVICE FILES.
  2443. *
  2444. * ENTRY (MSTA) = MASTER DEVICE *MSTT* ENTRY ADDRESS.
  2445. * (MAEQ) = MASTER DEVICE EST ORDINAL.
  2446. * (CPAR+/COMSPFS/CPDN) = MASTER DEVICE NUMBER.
  2447. *
  2448. * EXIT CATALOG, PERMIT AND DATA FILES OPENED.
  2449. *
  2450. * USES X - 1, 2, 3, 5, 6, 7.
  2451. * A - 1, 2, 5, 7.
  2452. *
  2453. * CALLS OCF, OPF.
  2454. *
  2455. * MACROS CALLPFU.
  2456.  
  2457.  
  2458. OPN SUBR ENTRY/EXIT
  2459.  
  2460. * OPEN CATALOG AND PERMITS FILES.
  2461.  
  2462. RJ OCF OPEN CATALOG FILE
  2463. RJ OPF OPEN PERMITS FILE
  2464.  
  2465. * OPEN DATA FILE.
  2466.  
  2467. SA2 MSTA
  2468. SA1 MAEQ
  2469. SA2 X2
  2470. MX6 -12
  2471. SX7 10005B FIRST SECTOR AND FILE STATUS
  2472. LX1 48
  2473. LX2 -48
  2474. BX7 X1+X7 MERGE EST ORDINAL, SECTOR, AND STATUS
  2475. BX3 -X6*X2 INDIRECT DATA CHAIN FIRST TRACK
  2476. BX2 -X6*X2 SET CURRENT TRACK
  2477. LX3 36
  2478. LX2 24
  2479. BX7 X7+X3 MERGE FIRST TRACK
  2480. BX7 X7+X2 MERGE CURRENT TRACK
  2481. SA7 DATA+FTPM
  2482. CALLPFU DATA,CTOL,R
  2483.  
  2484. * SET UP DATA FET FOR *PFU* READ LIST FUNCTION (CTRL).
  2485.  
  2486. SA2 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
  2487. SA1 MAEQ SET MASTER DEVICE EST ORDINAL
  2488. SA5 CPAR+/COMSPFS/CPDT
  2489. SX7 X2+4000B
  2490. LX1 47-11
  2491. LX7 59-11
  2492. ZR X5,OPN1 IF NOT DESTAGE DUMP
  2493. SX5 1 SET TO CHECK UPDATE MODE FILE BUSY
  2494. LX5 35-0
  2495. BX7 X7+X5
  2496. OPN1 BX7 X7+X1
  2497. SA7 DATA+FTPM
  2498. EQ OPNX RETURN
  2499. PAF SPACE 4,10
  2500. ** PAF - PROCESS ARCHIVE FILE OPERATION.
  2501. *
  2502. * ENTRY (B6) = FIRST PARAMETER FOR *CWWRITE* MACRO.
  2503. * (B7) = SECOND PARAMETER FOR *CWWRITE* MACRO.
  2504. *
  2505. * USES X - 1, 2, 6, 7.
  2506. * A - 1, 2, 6, 7.
  2507. * B - 6, 7.
  2508. *
  2509. * MACROS CWWRITE.
  2510.  
  2511.  
  2512. PAF SUBR ENTRY/EXIT
  2513. SX6 B6 SAVE PARAMETERS
  2514. SX7 B7
  2515. SA6 PAFA
  2516. SA7 PAFA+1
  2517. CWWRITE TAPE,B6,B7 WRITE DATA TO ARCHIVE FILE
  2518. SA1 CPAR+/COMSPFS/CPVF
  2519. ZR X1,PAFX IF NO VERIFY FILE SPECIFIED
  2520. SA1 PAFA RESTORE PARAMETERS
  2521. SA2 PAFA+1
  2522. SB6 X1
  2523. SB7 X2
  2524. CWWRITE PFVER,B6,B7 WRITE DATA TO ARCHIVE VERIFY FILE
  2525. EQ PAFX RETURN
  2526.  
  2527. PAFA BSS 2 PARAMETER SAVE AREA
  2528. PAR SPACE 4,15
  2529. ** PAR - POSITION ALTERNATE STORAGE TAPE TO NEXT RECORD.
  2530. *
  2531. * EXIT ALTERNATE STORAGE TAPE POSITIONED TO START OF NEXT
  2532. * RECORD IF NOT CURRENTLY AT EOF OR EOI.
  2533. * (X1) .LT. 0 IF CURRENTLY AT EOF OR EOI.
  2534. * (CWSW) = 0 IF NOT AT EOF OR EOI.
  2535. *
  2536. * USES X - 6.
  2537. * A - 6.
  2538. *
  2539. * MACROS CWREAD.
  2540.  
  2541.  
  2542. PAR SUBR ENTRY/EXIT
  2543. PAR1 CWREAD AST,DBUFH,DBUFHL
  2544. ZR X7,PAR2 IF NO READ ERROR
  2545. ZR B7,PAR1 IF TRANSFER COMPLETE
  2546. PAR2 ZR X1,PAR1 IF NOT EOR/EOF/EOI
  2547. NG X1,PARX IF EOF/EOI
  2548. SX6 B0+ ENABLE READ OF NEXT RECORD
  2549. SA6 AST+CWSW
  2550. EQ PARX RETURN
  2551. PAT SPACE 4,15
  2552. ** PAT - PROCESS ALTERNATE STORAGE TAPE.
  2553. *
  2554. * EXIT FILES RESIDING ON SELECTED TAPE DUMPED.
  2555. *
  2556. * USES X - 1, 2, 6, 7.
  2557. * A - 1, 2, 6, 7.
  2558. * B - 2, 3.
  2559. *
  2560. * CALLS AAT, CFE, DTF, FTR, IRF, PAR, RCW, SFE.
  2561. *
  2562. * MACROS CWREAD, READCW, READW, UNLOAD, WRITEW.
  2563.  
  2564.  
  2565. PAT SUBR ENTRY/EXIT
  2566.  
  2567. * ASSIGN TAPE.
  2568.  
  2569. UNLOAD AST,R RETURN CURRENT TAPE
  2570. RJ AAT ASSIGN ALTERNATE STORAGE TAPE
  2571. SX6 1
  2572. SA6 PATA+1 ENABLE RESCAN OF TAPE
  2573.  
  2574. * INITIALIZE TAPE PASS.
  2575.  
  2576. PAT1 SX6 B0+
  2577. SA6 PATA CLEAR FILE PROCESSED FLAG
  2578. SA6 PATB CLEAR RESCAN REQUESTED
  2579. SX0 MXLRR SET RETRY LIMIT FOR LABEL READ
  2580.  
  2581. * INITIATE READ AND PROCESS ARCHIVE FILE LABEL.
  2582.  
  2583. PAT2 SX0 X0-1 DECREMENT LABEL READ RETRY COUNTER
  2584. NG X0,PAT9 IF RETRIES EXHAUSTED
  2585. REWIND AST REWIND ARCHIVE FILE
  2586. SX6 B0
  2587. SA6 AST+CWSW CLEAR CONTROL WORD STATUS WORD
  2588. READCW X2,17B INITIATE READ
  2589. RJ RCW READ BLOCK CONTROL WORD
  2590. NZ X7,PAT2 IF ERROR
  2591. NZ X1,PAT9 IF EOR, EOF, OR EOI
  2592. NZ X3,PAT9 IF NOT ARCHIVE LABEL CONTROL WORD
  2593. CWREAD AST,DBUFH,X6+B1 READ BLOCK
  2594. NZ X7,PAT2 IF READ ERROR
  2595. NE B7,B1,PAT9 IF NOT FULL BLOCK TERMINATED BY EOR
  2596.  
  2597. * READ NEXT REQUEST.
  2598.  
  2599. PAT3 READW RESS,RESE,TCRQL READ REQUEST
  2600. ZR X1,PAT4 IF NOT END OF REQUESTS
  2601. SA1 PATB
  2602. ZR X1,PATX IF RESCAN NOT REQUESTED
  2603. EQ PAT8 CHECK RESCAN LIMIT
  2604.  
  2605. * FIND NEXT TAPE FILE.
  2606.  
  2607. PAT4 RJ PAR POSITION ARCHIVE FILE TO NEXT RECORD
  2608. RJ RCW READ BLOCK CONTROL WORD
  2609. NZ X7,PAT4 IF ERROR
  2610. NG X1,PAT7 IF EOF OR EOI
  2611. NZ X1,PAT4 IF EOR
  2612. SX3 X3-1
  2613. SX4 X4-1
  2614. SX2 X6-NWCE
  2615. NZ X3,PAT4 IF NOT CATALOG BLOCK
  2616. NZ X4,PAT4 IF NOT FILE DUMP WITH DATA
  2617. NZ X2,PAT4 IF NOT CORRECT BLOCK LENGTH
  2618. CWREAD AST,DBUFH,X6 READ BLOCK
  2619. NZ X7,PAT4 IF READ ERROR
  2620. NZ X1,PAT4 IF PREMATURE EOR, EOF, OR EOI
  2621.  
  2622. * COMPARE TAPE FILE TO REQUEST.
  2623.  
  2624. PAT5 SA1 DBUFH+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
  2625. RJ FTR FORMAT TAPE REQUEST PARAMETERS
  2626. SA1 RESE
  2627. MX6 -18
  2628. BX7 -X6*X7 SEQUENCE NUMBER OF CURRENT FILE
  2629. BX1 -X6*X1 SEQUENCE NUMBER OF REQUEST
  2630. IX7 X7-X1
  2631. NG X7,PAT4 IF NOT YET AT REQUESTED FILE
  2632. NZ X7,PAT6 IF PAST REQUESTED FILE
  2633.  
  2634. * DUMP FILE.
  2635.  
  2636. SX6 B1+
  2637. SA6 PATA SET FILE PROCESSED
  2638. RJ DTF DUMP TAPE RESIDENT FILE
  2639. EQ PAT3 CHECK REQUEST AND TAPE FILE
  2640.  
  2641. * SET TO PROCESS REQUEST ON RESCAN.
  2642.  
  2643. PAT6 SX7 1
  2644. SA7 PATB SET RESCAN REQUESTED
  2645. WRITEW REQS,RESE,TCRQL WRITE REQUEST FOR RESCAN
  2646. READW RESS,RESE,TCRQL READ NEXT REQUEST
  2647. ZR X1,PAT5 IF NOT END OF REQUESTS
  2648. EQ PAT8 CHECK RESCAN LIMIT
  2649.  
  2650. * PROCESS EOF/EOI ON TAPE WITH REQUESTS REMAINING.
  2651. * ALL REMAINING REQUESTS WILL BE COPIED TO RESCAN FILE.
  2652.  
  2653. PAT7 WRITEW REQS,RESE,TCRQL WRITE REQUEST FOR RESCAN
  2654. READW RESS,RESE,TCRQL READ NEXT REQUEST
  2655. ZR X1,PAT7 IF NOT END OF REQUESTS
  2656.  
  2657. * CHECK RESCAN LIMIT.
  2658.  
  2659. PAT8 RJ IRF INITIALIZE RESCAN FILES
  2660. SA1 PATA
  2661. SA2 A1+B1
  2662. IX2 X1+X2
  2663. BX6 X1
  2664. SA6 A2 SET LAST PASS STATUS
  2665. NZ X2,PAT1 IF FILES PROCESSED ON THIS OR LAST PASS
  2666.  
  2667. * ISSUE MESSAGES FOR FILES NOT FOUND ON ALTERNATE STORAGE TAPE.
  2668.  
  2669. PAT9 READW RESS,RESE,TCRQL READ REQUEST
  2670. NZ X1,PATX IF END OF REQUESTS
  2671. SA1 RESE+1 SET FILE NAME AND USER INDEX
  2672. SB2 ERNT * FILE NOT FOUND ON ALTERNATE STORAGE ...*
  2673. RJ SFE SEND ERROR MESSAGE
  2674. RJ CFE COUNT FILE SKIPPED
  2675. EQ PAT9 READ NEXT ENTRY
  2676.  
  2677.  
  2678. PATA CON 0 FILE PROCESSED ON CURRENT PASS FLAG
  2679. CON 0 FILE PROCESSED ON LAST PASS FLAG
  2680. PATB CON 0 TAPE RESCAN REQUESTED
  2681. PFC SPACE 4,25
  2682. ** PFC - PROCESS FILE CATALOG ENTRY.
  2683. *
  2684. * ENTRY CATALOG ENTRY IN *CATH*.
  2685. * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
  2686. * (SCAN) = 0, IF NORMAL SCAN.
  2687. * = 1, IF RESCAN.
  2688. * (X5) = SKELETON CONTROL WORD.
  2689. *
  2690. * EXIT TRACK AND SECTOR FIELDS OF CATALOG ENTRY IMAGE CLEARED
  2691. * IF RESCAN MODE TO IDENTIFY FILE NOT DISK RESIDENT AT
  2692. * THE TIME OF DUMP.
  2693. * ALTERNATE STORAGE INFORMATION CLEARED IN CATALOG ENTRY
  2694. * IMAGE IF ZERO ALTERNATE STORAGE OPTION SELECTED.
  2695. * TAPE ALTERNATE STORAGE VSN POINTER SET IN CATALOG
  2696. * IMAGE IF DESTAGE DUMP.
  2697. * CATALOG ENTRY IMAGE WRITTEN TO ARCHIVE FILE.
  2698. * (FLST) = FILE STATUS (*PFC ONLY* STATUS SET).
  2699. * (IFST) = 1 (CATALOG ENTRY DUMPED).
  2700. *
  2701. * USES X - 0, 1, 2, 3, 5, 6, 7.
  2702. * A - 1, 2, 3, 6, 7.
  2703. * B - 2, 3.
  2704. *
  2705. * CALLS DFN, WDT.
  2706.  
  2707.  
  2708. PFC SUBR ENTRY/EXIT
  2709. SA1 CATH+FCFN
  2710. SX7 X5-CCWC
  2711. ZR X7,PFC0.1 IF FILE DATA TO BE DUMPED
  2712. SX7 1 SET *PFC ONLY* FLAG
  2713. PFC0.1 SA7 FLST INITIALIZE FILE STATUS
  2714.  
  2715. * BUILD DUMP FILE CONTROL WORD.
  2716.  
  2717. MX6 42
  2718. BX1 X6*X1
  2719. SX5 X5+NWCE SET WORD COUNT
  2720. BX6 X1+X5 SET FILE NAME
  2721. SA6 CONTH
  2722.  
  2723. * UPDATE FILE LENGTH IN CATALOG ENTRY.
  2724. * NOTE - CODE IN SUBROUTINE *CSP* ENSURES THAT THE FILE
  2725. * LENGTH IN THE PFC IS ALREADY CORRECT IF THE FILE DATA
  2726. * IS NOT TO BE DUMPED.
  2727.  
  2728. SA1 CATH+FCBS CHECK FILE TYPE
  2729. SA2 CATH+FCLF SET LENGTH IN CATALOG ENTRY
  2730. MX0 24
  2731. LX1 59-11
  2732. BX6 X2
  2733. BX2 -X0*X2
  2734. PL X1,PFC2 IF INDIRECT ACCESS FILE
  2735. NZ X7,PFC2 IF DATA NOT TO BE DUMPED
  2736. SA3 DBUFH GET ACCURATE LENGTH FROM CONTROL WORD
  2737. LX3 59-47
  2738. BX6 X0*X3
  2739. BX6 X6+X2
  2740. PFC1 SX2 B1 ADJUST LENGTH TO EXCLUDE EOI SECTOR
  2741. BX1 X0*X6 GET FILE LENGTH
  2742. ZR X1,PFC2 IF ZERO FILE LENGTH
  2743. LX2 36-0
  2744. IX6 X6-X2
  2745. SA6 A2 UPDATE CATALOG ENTRY
  2746.  
  2747. * WRITE CATALOG ENTRY TO ARCHIVE FILE.
  2748.  
  2749. PFC2 SA1 CATH+FCFN SET FILE NAME AND USER INDEX
  2750. SA2 =10HDUMPING
  2751. RJ DFN DISPLAY STATUS MESSAGE
  2752. SA1 SCAN
  2753. ZR X1,PFC3 IF NORMAL SCAN MODE
  2754. SA1 CATH+FCBT CLEAR BEGINNING TRACK FIELD
  2755. MX2 48
  2756. LX2 23-11
  2757. BX6 X2*X1
  2758. SA6 A1
  2759. PFC3 SA1 CPAR+/COMSPFS/CPDT
  2760. ZR X1,PFC3.2 IF NOT DESTAGE DUMP
  2761. SA3 FLOK
  2762. NG X3,PFC3.1 IF DESTAGE TO OPTICAL DISK
  2763. SA1 VSNP
  2764. SX2 1
  2765. LX2 24
  2766. BX6 X1
  2767. IX7 X1+X2 INCREMENT FILE SEQUENCE NUMBER
  2768. SA6 CATH+FCTV+FCTS*0+FCTF*0 SET TAPE STORAGE INFORMATION
  2769. SA7 VSNP STORE UPDATED VSN POINTER
  2770. EQ PFC3.2 CONTINUE
  2771.  
  2772. PFC3.1 SA1 VSNP
  2773. BX6 X1
  2774. SA6 CATH+FCAA+FCAF*0+FCAT*0 SET OPTICAL DISK INFORMATION
  2775. RECALL T WAIT COMPLETION OF ANY PENDING OPERATION
  2776. SA1 T+6 GET CURRENT DISK ADDRESS
  2777. MX3 24
  2778. LX1 30-24
  2779. BX7 X3*X1
  2780. SA1 CATH+FCOA INSERT DISK ADDRESS INTO *FCOA*
  2781. BX6 -X3*X1
  2782. BX6 X6+X7
  2783. SA6 A1
  2784. PFC3.2 SA1 CPAR+/COMSPFS/CPOP
  2785. SA2 FLST
  2786. SX6 B0+
  2787. LX1 59-46
  2788. LX2 59-0
  2789. NG X2,PFC3.3 IF DUMPING PFC AND PERMITS ONLY
  2790. PL X1,PFC3.3 IF *OP=Z* NOT SELECTED
  2791. SA6 CATH+FCAA+FCAT*0+FCAF*0 CLEAR CARTRIDGE POINTERS
  2792. SA6 CATH+FCTV+FCTS*0+FCTF*0 CLEAR TAPE POINTERS
  2793. SA1 CATH+FCOA CLEAR OPTICAL DISK ADDRESS
  2794. MX6 24
  2795. BX6 -X6*X1
  2796. SA6 A1+
  2797. PFC3.3 SB2 CATH
  2798. SB3 NWCE
  2799. RJ WDT WRITE CATALOG ENTRY TO ARCHIVE FILE
  2800. SX6 1 SET PFC DUMPED INCOMPLETE FILE STATUS
  2801. SA6 IFST
  2802. EQ PFCX RETURN
  2803. PFI SPACE 4,15
  2804. ** PFI - PROCESS FILE WITH DUMP INHIBITED.
  2805. *
  2806. * ENTRY (A0) = CATALOG ADDRESS.
  2807. * (B2) = 0 IF *PFC ONLY* DUMP SELECTED.
  2808. *
  2809. * EXIT (A0) = CATALOG ADDRESS.
  2810. * OUTPUT FILES WRITTEN WITH FILE INFORMATION.
  2811. *
  2812. * USES X - 7.
  2813. * A - 7.
  2814. *
  2815. * CALLS CFP, SFL.
  2816.  
  2817.  
  2818. PFI SUBR ENTRY/EXIT
  2819. SX7 B0
  2820. NZ B2,PFI1 IF NOT *PFC ONLY* FILE SELECTION
  2821. SX7 B1 SET *PFC ONLY* FLAG
  2822. PFI1 SA7 FLST INITIALIZE FILE STATUS
  2823. RJ SFL ENSURE FILE LENGTH CORRECT IN PFC ENTRY
  2824. ZR X6,PFIX IF DEVICE NOT FOUND ERROR
  2825. RJ CFP COUNT FILE PROCESSED
  2826. EQ PFIX RETURN
  2827. PPD SPACE 4,10
  2828. ** PPD - PROCESS PFC/PERMITS ONLY DUMP.
  2829. *
  2830. * EXIT PFC ENTRY AND PERMITS WRITTEN TO ARCHIVE FILE.
  2831. *
  2832. * USES X - 5, 6, 7.
  2833. * A - 0.
  2834. *
  2835. * CALLS CFP, PFC, RPF, SFL.
  2836. *
  2837. * MACROS ARCHIVE.
  2838.  
  2839.  
  2840. PPD SUBR ENTRY/EXIT
  2841. RJ SFL ENSURE FILE LENGTH SET IN CATALOG ENTRY
  2842. SX5 COCW SET *PFC ONLY* CONTROL WORD
  2843. RJ PFC WRITE CATALOG ENTRY
  2844. RJ RPF WRITE FILE PERMITS
  2845. ARCHIVE WRITER WRITE EOR ON ARCHIVE FILE
  2846. SX6 B0+
  2847. SX7 BFAC
  2848. SA6 IFST CLEAR DUMP INCOMPLETE STATUS
  2849. SA7 WREM RESET BLOCK STATUS FOR NEXT FILE
  2850. SA0 CATH SET CATALOG ADDRESS
  2851. RJ CFP COUNT FILE PROCESSED
  2852. EQ PPDX RETURN
  2853. PRL SPACE 4,20
  2854. ** PRL - PROCESS DATA READ LIST.
  2855. *
  2856. * ENTRY (NDLE) = NUMBER OF ELEMENTS IN *DLRB*.
  2857. *
  2858. * EXIT ALL ENTRIES IN THE DATA READ LIST PROCESSED.
  2859. * CATALOG INFORMATION WRITTEN TO OUTPUT FILE AND SUMMARY
  2860. * FILE FOR DUMPED FILES.
  2861. * (NDLE) = 0.
  2862. *
  2863. * USES X - 1, 5, 6, 7.
  2864. * A - 1, 2, 6.
  2865. * B - 2, 3, 5.
  2866. *
  2867. * CALLS CFD, CFE, DSF, PFC, RPR, RPF, SDL, SDP, UCE, WDB.
  2868. *
  2869. * MACROS CALLPFU, MOVE, RECALL.
  2870.  
  2871.  
  2872. PRL SUBR ENTRY/EXIT
  2873. SA1 NDLE
  2874. ZR X1,PRLX IF NO READ LIST ENTRIES
  2875.  
  2876. * SORT DATA LIST.
  2877.  
  2878. RJ SDL SORT DATA LIST
  2879.  
  2880. * INITIALIZE *DATA* FET AND CALL *PFU*.
  2881.  
  2882. RECALL DATA
  2883. SA1 NDLE
  2884. SX6 B0+
  2885. SA6 DATA+FTRE CLEAR RECALL WORD
  2886. SX6 DLRB
  2887. LX6 36
  2888. BX6 X6+X1 SET DATA LIST ADDRESS AND ENTRY COUNT
  2889. SA6 DATA+FTDL
  2890. CALLPFU DATA,CTRL READ DATA LIST
  2891. SX6 DLRB-1
  2892. SA6 PRLA INITIALIZE BUFFER POINTER
  2893.  
  2894. * PROCESS DATA READ LIST ENTRY.
  2895.  
  2896. PRL1 SA1 PRLA
  2897. SX6 X1+B1 ADVANCE TO NEXT ENTRY
  2898. SA6 A1
  2899. SA1 X6+ GET DATA LIST ELEMENT
  2900. ZR X1,PRL4 IF END OF ENTRIES
  2901. RJ SDP SET DATA LIST PARAMETERS
  2902.  
  2903. * CHECK FILE STATUS.
  2904.  
  2905. MOVE NWCE,A0,CATH SAVE CATALOG ENTRY
  2906. SB5 B0 SET TO READ ONE WORD
  2907. SB3 B1
  2908. RJ RPR READ FILE CONTROL WORD
  2909. SA1 DBUFH
  2910. MX6 12
  2911. BX6 X6*X1
  2912. ZR X6,PRL3 IF NO ERROR CONDITION AND FILE NOT BUSY
  2913.  
  2914. * PROCESS FILE BUSY OR ERROR CONDITION.
  2915.  
  2916. SB2 ERSS * BAD SYSTEM SECTOR ...*
  2917. LX1 59-50
  2918. NG X1,PRL2 IF BAD SYSTEM SECTOR
  2919. LX1 59-49-59+50
  2920. SB2 ERZL * ZERO LENGTH FILE ...*
  2921. NG X1,PRL2 IF ZERO LENGTH DIRECT ACCESS FILE
  2922. SB2 CTUU SET UPDATE UTILITY CONTROL DATE FUNCTION
  2923. RJ UCE UPDATE CATALOG ENTRY
  2924. SB2 ERFB * FILE BUSY ...*
  2925. PRL2 SA1 CATH+FCFN SET FILE NAME AND USER INDEX
  2926. RJ SFE SEND ERROR MESSAGE
  2927. RJ CFE COUNT FILE SKIPPED
  2928. EQ PRL1 CHECK NEXT ENTRY
  2929.  
  2930. * WRITE CATALOG ENTRY, PERMITS, AND FILE DATA.
  2931.  
  2932. PRL3 SX5 CCWC SET CONTROL WORD FOR DATA DUMP
  2933. RJ PFC WRITE CATALOG ENTRY
  2934. RJ RPF WRITE FILE PERMITS
  2935. RJ WDB WRITE DATA BLOCKS
  2936. RJ CFD COMPLETE FILE DUMP
  2937. EQ PRL1 CHECK NEXT ENTRY
  2938.  
  2939. * DROP STAGED FILES IF CATALOG RESCAN.
  2940.  
  2941. PRL4 SA1 SCAN
  2942. ZR X1,PRL5 IF NOT RESCAN
  2943. RJ DSF DROP STAGED FILES
  2944.  
  2945. * SET DATA LIST EMPTY.
  2946.  
  2947. PRL5 SX6 B0+
  2948. SA6 NDLE SET NO ENTRIES IN READ LIST
  2949. SA6 DLRB TERMINATE EMPTY LIST
  2950. EQ PRLX RETURN
  2951.  
  2952.  
  2953. PRLA BSS 1 *DLRB* POINTER
  2954. PTF SPACE 4,10
  2955. ** PTF - PROCESS TAPE RESIDENT FILES.
  2956. *
  2957. * EXIT TAPE ALTERNATE STORAGE RESIDENT FILES DUMPED.
  2958. *
  2959. * USES X - 1, 2, 3, 6.
  2960. * A - 1, 2, 3, 6.
  2961. *
  2962. * CALLS IRF, PAT, STL.
  2963. *
  2964. * MACROS READ, READW, REWIND, WRITER, WRITEW.
  2965.  
  2966.  
  2967. PTF SUBR ENTRY/EXIT
  2968. SA1 TCRQ
  2969. ZR X1,PTFX IF NO TAPE RESIDENT FILES
  2970. WRITER TC FLUSH FILE LIST ENTRIES
  2971. REWIND TC
  2972. RJ STL SORT TAPE COPY FILE LIST
  2973. REWIND S3
  2974. READ S3
  2975. PTF1 READW S3,TCRQ,TCRQL
  2976. SA2 TCRQ
  2977. SA3 ASTI
  2978. BX6 X1
  2979. SA6 PTFA SAVE EOR STATUS
  2980. MX6 42
  2981. NZ X1,PTF2 IF EOR ENCOUNTERED
  2982. BX2 X6*X2 TAPE FLAGS AND VSN
  2983. BX2 X2-X3
  2984. ZR X3,PTF3 IF FIRST ENTRY
  2985. ZR X2,PTF3 IF SAME TAPE
  2986. PTF2 RJ IRF INITIALIZE RESCAN FILES
  2987. RJ PAT PROCESS ALTERNATE STORAGE TAPE
  2988. SA1 PTFA
  2989. NZ X1,PTFX IF EOR ON REQUEST FILE
  2990. PTF3 WRITEW REQS,TCRQ,TCRQL WRITE REQUEST FILE
  2991. SA1 TCRQ
  2992. MX6 42
  2993. BX6 X6*X1
  2994. SA6 ASTI SET TAPE IDENTIFIER
  2995. EQ PTF1 CHECK NEXT REQUEST
  2996.  
  2997.  
  2998. PTFA CON 0 EOR STATUS
  2999. RCP SPACE 4,15
  3000. ** RCP - RECALL *PFU* TO READ DATA FILE.
  3001. *
  3002. * EXIT DATA FILE BUFFER NOT EMPTY.
  3003. * *PFU* CALLED IF BUFFER FOUND EMPTY AND FET NOT BUSY.
  3004. * (X2) = FIRST.
  3005. * (B4) = OUT.
  3006. * (B6) = IN.
  3007. * (A2) = ADDRESS OF FIRST IN DATA FET.
  3008. *
  3009. * USES X - 1, 2, 7.
  3010. * A - 1, 2.
  3011. * B - 4, 6.
  3012. *
  3013. * MACROS CALLPFU, RECALL.
  3014.  
  3015.  
  3016. RCP SUBR ENTRY/EXIT
  3017. RCP1 SA1 DATA CHECK FET STATUS
  3018. BX7 X1
  3019. SA2 A1+B1 READ FIRST
  3020. SA1 A2+B1 READ IN
  3021. SB6 X1
  3022. SA1 A1+B1 READ OUT
  3023. SB4 X1
  3024. NE B4,B6,RCPX IF DATA AVAILABLE
  3025. LX7 59-0
  3026. PL X7,RCP2 IF FET STILL BUSY
  3027. CALLPFU A2-B1,CTRL RECALL *PFU*
  3028. RCP2 RECALL WAIT FOR *PFU*
  3029. EQ RCP1 RECHECK BUFFER
  3030. RCW SPACE 4,20
  3031. ** RCW - READ ARCHIVE FILE BLOCK CONTROL WORD.
  3032. *
  3033. * EXIT (X7) .NE. 0 IF READ ERROR OR INVALID CONTROL WORD.
  3034. * (X6) = BLOCK WORD COUNT IF CONTROL WORD READ AND NO
  3035. * ERROR.
  3036. * (X3) = CONTROL WORD TYPE CODE IF CONTROL WORD READ
  3037. * AND NO ERROR.
  3038. * (X4) = CONTROL WORD SUB-TYPE CODE IF CONTROL WORD READ
  3039. * AND NO ERROR.
  3040. * (X1) = READ STATUS FROM *CWREAD*.
  3041. * (CWBF) = ARCHIVE FILE CONTROL WORD.
  3042. *
  3043. * USES X - 2, 3, 4, 6, 7.
  3044. * A - 2.
  3045. *
  3046. * MACROS CWREAD.
  3047.  
  3048.  
  3049. RCW SUBR ENTRY/EXIT
  3050. CWREAD AST,CWBF,B1 READ ARCHIVE FILE CONTROL WORD
  3051. SA2 CWBF
  3052. NZ X7,RCWX IF READ ERROR
  3053. NZ X1,RCWX IF EOR, EOF, OR EOI
  3054. MX6 -9
  3055. MX3 -3
  3056. BX6 -X6*X2 BLOCK WORD COUNT
  3057. LX2 -9
  3058. BX4 -X3*X2 CONTROL WORD SUB-TYPE
  3059. LX2 -3
  3060. BX3 -X3*X2 CONTROL WORD TYPE
  3061. SX2 X3-10B
  3062. NG X2,RCWX IF VALID CONTROL WORD TYPE
  3063. SX7 1 SET ERROR
  3064. EQ RCWX RETURN
  3065. RFC SPACE 4,15
  3066. ** RFC - REQUEST FILE COPY FROM TAPE ALTERNATE STORAGE.
  3067. *
  3068. * ENTRY (A0) = FWA OF CATALOG ENTRY.
  3069. *
  3070. * EXIT ENTRY MADE IN TAPE COPY LIST.
  3071. *
  3072. * USES X - 1, 2, 3, 6, 7.
  3073. * A - 1, 2, 3, 7.
  3074. *
  3075. * CALLS FTR.
  3076. *
  3077. * MACROS WRITEW.
  3078.  
  3079.  
  3080. RFC SUBR ENTRY/EXIT
  3081.  
  3082. * SET TAPE REQUEST INFORMATION FOR SORT.
  3083.  
  3084. SA1 A0+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
  3085. RJ FTR FORMAT TAPE REQUEST PARAMETERS
  3086. SA7 TCRQ SET SORT PARAMETERS
  3087.  
  3088. * SET FILE NAME AND USER INDEX.
  3089.  
  3090. SA1 A0+FCFN
  3091. BX7 X1
  3092. SA7 A7+B1 SET FILE NAME AND USER INDEX
  3093.  
  3094. * SET PFC DISK POINTERS.
  3095.  
  3096. SA1 CATS+FTPM GET FIRST TRACK OF CATALOG FILE
  3097. SA2 CADA GET CATALOG TRACK AND SECTOR
  3098. MX6 12
  3099. MX7 -24
  3100. LX6 -12
  3101. SX3 A0-CSBF
  3102. AX3 4 INDEX OF CATALOG ENTRY IN SECTOR
  3103. ERRNZ NWCE-20B
  3104. BX1 X6*X1 FIRST TRACK
  3105. BX2 -X7*X2 CURRENT TRACK AND SECTOR
  3106. BX7 X1+X3 MERGE FIRST TRACK AND INDEX
  3107. LX2 12
  3108. BX7 X7+X2 MERGE CURRENT TRACK/SECTOR
  3109. SA7 A7+B1 SET PFC DISK POINTERS
  3110.  
  3111. * WRITE REQUEST FILE ENTRY.
  3112.  
  3113. WRITEW TC,TCRQ,TCRQL
  3114. EQ RFCX RETURN
  3115. RFS SPACE 4,20
  3116. ** RFS - REQUEST FILE STAGING.
  3117. *
  3118. * ENTRY (A0) = FWA OF CATALOG ENTRY REQUIRING STAGING.
  3119. *
  3120. * EXIT (RSTS) = CATALOG TRACK AND SECTOR TO BEGIN RESCAN.
  3121. * (RSIN) = CATALOG TRACK INDEX TO BEGIN RESCAN.
  3122. * FILE STAGING REQUEST ISSUED TO *PFM*.
  3123. * ENTRY POSTED IN LIST OF OUTSTANDING FILE STAGING
  3124. * REQUESTS (*REQS*).
  3125. *
  3126. * USES X - 1, 2, 5, 6, 7.
  3127. * A - 1, 2, 6, 7.
  3128. * B - 2.
  3129. *
  3130. * CALLS CFE, SPR.
  3131. *
  3132. * MACROS STAGEPF, WRITEO.
  3133.  
  3134.  
  3135. * ISSUE STAGE REQUEST ERROR MESSAGE.
  3136.  
  3137. RFS1 SA1 A0+FCFN SET FILE NAME AND USER INDEX
  3138. SB2 ERUS * UNABLE TO STAGE FILE ...*
  3139. RJ SFE SEND ERROR MESSAGE
  3140. RJ CFE COUNT FILE SKIPPED
  3141.  
  3142. RFS SUBR ENTRY/EXIT
  3143.  
  3144. * INITIATE FILE STAGE.
  3145.  
  3146. SB2 SRBK SET REQUEST BLOCK ADDRESS
  3147. SX7 B0+
  3148. RJ SPR SET *PFM* STAGE REQUEST PARAMETERS
  3149. STAGEPF SRFT REQUEST FILE STAGE
  3150. SA1 X2 CHECK FOR ERROR
  3151. MX6 -8
  3152. LX1 -10
  3153. BX1 -X6*X1
  3154. NZ X1,RFS1 IF ERROR ON STAGE REQUEST
  3155.  
  3156. * WRITE FILE INFORMATION TO RESCAN REQUEST FILE.
  3157.  
  3158. SA1 CTIN SET INDEX OF ENTRY ON CATALOG TRACK
  3159. BX6 X1
  3160. WRITEO REQS WRITE CATALOG TRACK INDEX
  3161. SA1 A0+FCFN SET FILE NAME AND USER INDEX
  3162. BX6 X1
  3163. WRITEO REQS
  3164. SA1 RSTS
  3165. NZ X1,RFSX IF NOT FIRST STAGE REQUEST
  3166. SA1 CADA
  3167. SA2 CTIN
  3168. MX6 -24
  3169. MX7 58
  3170. BX6 -X6*X1 CATALOG TRACK AND SECTOR
  3171. BX7 X7*X2 INDEX OF FIRST ENTRY IN SECTOR
  3172. SA6 RSTS SET CATALOG TRACK AND SECTOR FOR RESCAN
  3173. SA7 RSIN SET CATALOG TRACK INDEX FOR RESCAN
  3174. EQ RFSX RETURN
  3175. RIP SPACE 4,10
  3176. ** RIP - REPRIEVE INTERRUPT PROCESSOR.
  3177. *
  3178. * EXIT BUSY FETS SET COMPLETE TO ALLOW TERMINATION
  3179. * PROCESSING.
  3180. *
  3181. * MACROS COMPFET.
  3182.  
  3183.  
  3184. RIP SUBR ENTRY/EXIT
  3185. COMPFET (CATS,PETS,DATA,CATC,TAPE,O,SU,PFVER,PFMREQ,ACFT)
  3186. COMPFET (ACFT,REQS,RESS,RDF,TC)
  3187. EQ RIPX RETURN
  3188. RLF SPACE 4,15
  3189. ** RLF - RELEASE LOCK FILES.
  3190. *
  3191. * ENTRY (LMSK) = LOCK FILE MASK.
  3192. * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
  3193. * *LOCK* = FWA OF LOCK FILE FET.
  3194. * (MSSF) = NONZERO, IF *MSS* ENVIRONMENT.
  3195. * (ASFF) = NONZERO, IF *MSE* ENVIRONMENT.
  3196. *
  3197. * EXIT LOCKED FILES RETURNED.
  3198. * (LMSK) = 0.
  3199. *
  3200. * USES X - 0, 1, 2, 3, 6, 7.
  3201. * A - 1, 2, 6, 7.
  3202. * B - 5, 6.
  3203. *
  3204. * MACROS CALLPFU, RETURN.
  3205.  
  3206.  
  3207. RLF SUBR ENTRY/EXIT
  3208. SA1 LMSK
  3209. ZR X1,RLFX IF NO FILES LOCKED
  3210. SB6 B0 INITIALIZE LOCK INDEX
  3211. SA6 RLFA
  3212.  
  3213. * RELEASE LOCK FILES.
  3214.  
  3215. RLF1 SA1 LMSK
  3216. SX2 1
  3217. LX2 B6,X2
  3218. BX3 X2*X1
  3219. ZR X3,RLF2 IF THIS FILE NOT LOCKED
  3220. SA1 LFAT+B6 SET FILE NAME
  3221. SA2 LOCK
  3222. MX0 42
  3223. BX6 X0*X1
  3224. BX3 -X0*X2
  3225. BX6 X3+X6
  3226. SA6 A2
  3227. RETURN LOCK,R RELEASE LOCK FILE
  3228. SA1 RLFA RESTORE LOCK INDEX
  3229. SB6 X1+
  3230. RLF2 SB6 B6+1 INCREMENT INDEX
  3231. SB5 LFATL
  3232. GE B6,B5,RLF3 IF ALL LOCK FILES RELEASED
  3233. SX6 B6 SAVE LOCK INDEX
  3234. SA6 RLFA
  3235. EQ RLF1 RELEASE NEXT LOCK FILE
  3236.  
  3237. * ISSUE RELEASE NOTICE.
  3238.  
  3239. RLF3 SA1 LMSK INDICATE FILES RELEASED
  3240. BX6 X1
  3241. LX1 0-8 GET *MSE* LOCK MASK
  3242. BX6 X6+X1
  3243. MX7 -8
  3244. BX6 -X7*X6
  3245. BX7 X7-X7
  3246. SA6 CMSK
  3247. SA7 A1+
  3248. SA2 MSSF
  3249. ZR X2,RLF4 IF NOT *MSS* ENVIRONMENT
  3250. CALLPFU LKC1,CTRU RELEASE *MSS* INTERLOCK
  3251.  
  3252. RLF4 SA2 ASFF
  3253. ZR X2,RLFX IF NOT *MSE* ENVIRONMENT
  3254. CALLPFU LKC2,CTRU RELEASE *MSE* INTERLOCK
  3255. EQ RLFX RETURN
  3256.  
  3257. RLFA BSSZ 1 LOCK INDEX HOLD AREA
  3258. RMF SPACE 4,10
  3259. ** RMF - RETURN MASTER DEVICE FILES.
  3260. *
  3261. * EXIT CATALOG, PERMITS, AND DATA FILES RETURNED.
  3262. *
  3263. * MACROS RETURN.
  3264.  
  3265.  
  3266. RMF SUBR ENTRY/EXIT
  3267. RETURN CATS RETURN CATALOG FILE
  3268. RETURN PETS RETURN PERMITS FILE
  3269. RETURN DATA RETURN DATA FILE
  3270. EQ RMFX RETURN
  3271. RPF SPACE 4,20
  3272. ** RPF - READ PERMIT FILE.
  3273. *
  3274. * ENTRY CATALOG ENTRY IN *CATH*.
  3275. *
  3276. * EXIT PERMIT DATA COPIED TO THE ARCHIVE FILE.
  3277. * PERMITS LOST FLAG SET IN *FLST* IF ERROR DETECTED IN
  3278. * PERMITS.
  3279. * (IFST) = 2 IF PERMITS DUMPED.
  3280. *
  3281. * USES X - 0, 1, 2, 3, 5, 6, 7.
  3282. * A - 1, 2, 3, 6, 7.
  3283. * B - 2, 3.
  3284. *
  3285. * CALLS SFE, WDT.
  3286. *
  3287. * MACROS READ, READW, RECALL, SKIPEI.
  3288.  
  3289.  
  3290. * PROCESS ERROR IN PERMIT DATA.
  3291.  
  3292. RPF5 SA1 CATH+FCUI
  3293. SB2 ERPR * PERMIT READ ERROR ...*
  3294. RJ SFE SEND ERROR MESSAGE
  3295. SA2 PETS CLEAR FET ERROR STATUS
  3296. SX1 36000B
  3297. MX6 0 CLEAR DETAILED ERROR CODE
  3298. BX7 -X1*X2
  3299. SA6 A2+6
  3300. SA7 A2
  3301. RPF6 SA1 FLST SET PERMITS LOST IN FILE STATUS
  3302. SX6 4
  3303. BX6 X1+X6
  3304. SA6 A1
  3305. SA1 RCWD SET READ ERROR CONTROL WORD
  3306. SX2 PRCW
  3307. SB2 PHBUF SET FWA OF PERMIT DATA
  3308. SB3 B0 CLEAR PERMIT DATA WORD COUNT
  3309. BX6 X1+X2
  3310. EQ RPF8 WRITE *ERROR* CONTROL WORD
  3311.  
  3312. * PROCESS END OF PERMIT DATA.
  3313.  
  3314. RPF7 SX1 PRCW SET END OF PERMIT CONTROL WORD
  3315. SX2 B3 ADD WORD COUNT
  3316. BX6 X1+X2
  3317. RPF8 SA6 CONTH
  3318. RJ WDT WRITE LAST BLOCK OF PERMITS
  3319. SX6 2 SET PERMITS DUMPED INCOMPLETE FILE STATUS
  3320. SA6 IFST
  3321.  
  3322. RPF SUBR
  3323.  
  3324. * CHECK FOR PERMITS PRESENT.
  3325.  
  3326. SA1 CATH+FCRI
  3327. MX0 -24
  3328. LX1 24
  3329. BX6 -X0*X1 PERMITS FILE RANDOM INDEX
  3330. SX7 B0
  3331. ZR X6,RPFX IF NO PERMITS
  3332. SA6 RPFA SAVE RANDOM INDEX
  3333. SA7 RPFC CLEAR LENGTH RETRIEVAL FLAG
  3334.  
  3335. * READ PRU OF PERMITS.
  3336.  
  3337. RPF1 RECALL PETS REWIND PERMIT FILE
  3338. MX0 -18
  3339. SA2 PETS+1
  3340. BX6 -X0*X2
  3341. SA6 A2+B1
  3342. SA6 A6+B1
  3343. SA1 RPFA GET RANDOM INDEX
  3344. SA2 RPFB CHECK FOR PETS FILE LIMIT EXCEEDED
  3345. IX2 X1-X2
  3346. PL X2,RPF3 IF RANDOM INDEX NOT ON FILE
  3347. BX6 X1
  3348. SA6 PETS+6
  3349. READ PETS,R FILL ONE SECTOR CIRCULAR BUFFER
  3350. READW PETS,PHBUF,100B READ PERMIT SECTOR
  3351. SB2 PHBUF SET FWA OF PERMITS BUFFER
  3352. SB3 B6-B2 SET WORD COUNT IN BUFFER
  3353. SX6 B3-NWPH-NWPE CHECK WORD COUNT
  3354. NG X6,RPF2 IF INCORRECT WORD COUNT
  3355. SX3 NWPE-1
  3356. ERRNZ NWPH-NWPE CODE DEPENDS ON VALUE
  3357. BX6 X3*X6
  3358. NZ X6,RPF2 IF INCORRECT WORD COUNT
  3359. SA3 X2 GET FET ERROR STATUS
  3360. SX6 36000B
  3361. BX2 X6*X3
  3362. SA3 B2 GET USER INDEX FROM PERMIT SECTOR
  3363. NZ X2,RPF5 IF ERROR ON PERMIT READ
  3364. SA2 CATH+FCUI GET USER INDEX FROM CATALOG
  3365. LX3 -12
  3366. BX6 X2-X3 VALIDATE PERMIT USER INDEX
  3367. MX2 -18
  3368. BX6 -X2*X6
  3369. NZ X6,RPF2 IF NOT CORRECT USER INDEX
  3370. NZ X1,RPF7 IF END OF PERMIT DATA
  3371. LX3 -24 SET LINKAGE RANDOM INDEX
  3372. MX6 -24
  3373. BX7 -X6*X3
  3374. ZR X7,RPF7 IF END OF PERMIT DATA
  3375. SX6 PMCW+100B SET FULL BLOCK PERMIT CONTROL WORD
  3376. SA7 RPFA
  3377. SA6 CONTH
  3378. RJ WDT WRITE ARCHIVE FILE
  3379. EQ RPF1 GET NEXT SECTOR
  3380.  
  3381. * PROCESS PERMIT FORMAT ERROR.
  3382.  
  3383. RPF2 SA1 CATH+FCUI
  3384. SB2 ERPF * PERMIT FORMAT ERROR ...*
  3385. RJ SFE SEND ERROR MESSAGE
  3386. EQ RPF6 PROCESS END OF PERMIT DATA
  3387.  
  3388. * PERMIT RANDOM INDEX OUT OF RANGE.
  3389.  
  3390. RPF3 SA1 RPFC CHECK LENGTH RETRIEVAL FLAG
  3391. NZ X1,RPF4 IF LENGTH RETRIEVAL FLAG SET
  3392. SX6 B1 SET LENGTH RETRIEVAL FLAG
  3393. SA6 A1
  3394. SKIPEI PETS,R SET LAST SECTOR
  3395. SA1 PETS+6
  3396. AX1 30
  3397. BX6 X1
  3398. SA6 RPFB
  3399. EQ RPF1 TRY AGAIN
  3400.  
  3401. RPF4 SA1 CATH+FCUI
  3402. SB2 ERPI * PERMIT RANDOM INDEX ERROR ...*
  3403. RJ SFE SEND ERROR MESSAGE
  3404. EQ RPF6 PROCESS END OF PERMIT DATA
  3405.  
  3406.  
  3407. RPFA BSSZ 1 RANDOM INDEX HOLD
  3408. RPFB BSSZ 1 PETS FILE LENGTH
  3409. RPFC BSSZ 1 LENGTH RETRIEVAL FLAG
  3410. RPR SPACE 4,15
  3411. ** RPR - READ PRU.
  3412. *
  3413. * ENTRY (B5) = 0 IF ONLY TO READ CONTROL WORD.
  3414. * (B5) = INDEX TO START READING DATA IN *DBUFH*.
  3415. *
  3416. * EXIT CONTROL WORD TRANSFERRED TO *DBUFH*.
  3417. * DATA TRANSFERRED IF NOT CONTROL WORD ONLY READ.
  3418. * (B5) = INDEX TO READ NEXT PRU IF DATA READ.
  3419. *
  3420. * USES X - 1, 3, 4, 6.
  3421. * A - 1, 6.
  3422. * B - 2, 3, 4, 5, 6, 7.
  3423. *
  3424. * CALLS MMC, RCP.
  3425.  
  3426.  
  3427. RPR SUBR ENTRY/EXIT
  3428. SA1 DATA+FTLM READ LIMIT
  3429. SB7 X1+
  3430.  
  3431. * CHECK FOR EMPTY BUFFER.
  3432.  
  3433. RJ RCP RECALL *PFU* ON EMPTY BUFFER
  3434. SA1 B4+ READ DATA WORD
  3435. SB4 B4+B1
  3436. BX6 X1
  3437. SA6 DBUFH STORE CONTROL WORD
  3438. NE B4,B7,RPR1 IF OUT+1 .NE. LIMIT
  3439. SB4 X2 SET OUT+1 TO FIRST
  3440. RPR1 MX4 -12 EXTRACT WORD COUNT FROM CONTROL WORD
  3441. BX3 -X4*X1
  3442. LX4 12
  3443. SX6 B4
  3444. SA6 DATA+FTOT
  3445. ZR B5,RPRX IF ONLY READ OF CONTROL WORD
  3446. ZR X3,RPRX IF NO DATA TO READ
  3447. BX1 -X4*X1
  3448. SB3 B4+X3
  3449. ZR X1,RPRX IF EOF/EOI
  3450.  
  3451. * TRANSFER DATA FROM CIRCULAR BUFFER TO WORKING BUFFER.
  3452.  
  3453. RPR2 RJ RCP RECALL *PFU* IF EMPTY BUFFER
  3454. SX6 DBUFH+B5 ADDRESS TO TRANSFER TO
  3455. LT B3,B7,RPR4 IF NO BUFFER WRAP
  3456.  
  3457. * PROCESS FIRST HALF OF BUFFER WRAP.
  3458.  
  3459. SX3 B4 ADDRESS TO TRANSFER FROM
  3460. SX1 B6-B4
  3461. GT B6,B4,RPR3 IF REMAINDER OF BUFFER NOT FULL
  3462. SB6 X2 SET NEW OUT
  3463. SB3 B3-B7 RESET END OF TRANSFER
  3464. SX1 B7-B4 SET WORD COUNT TO END OF BUFFER
  3465. SB3 X2+B3
  3466. RPR3 SB2 B5+X1 RESET WORKING BUFFER INDEX
  3467. SB4 B6
  3468. RJ MMC MOVE DATA TO WORKING BUFFER
  3469. SX6 B4 RESET OUT
  3470. SB5 B2
  3471. SA6 DATA+FTOT
  3472. EQ RPR2 RECHECK BUFFER
  3473.  
  3474. * PROCESS SECOND HALF OF BUFFER WRAP OR NON-WRAP.
  3475.  
  3476. RPR4 SX3 B4 ADDRESS TO TRANSFER FROM
  3477. SX1 B3-B4 WORDS TO TRANSFER
  3478. LT B6,B4,RPR5 IF ALL OF DATA IN BUFFER
  3479. GT B6,B3,RPR5 IF ALL OF DATA IN BUFFER
  3480. SX1 B6-B4 SET LENGTH TO DATA IN BUFFER
  3481. RPR5 SB2 B5+X1 RESET WORKING BUFFER INDEX
  3482. SB4 B4+X1 RESET OUT
  3483. RJ MMC MOVE DATA TO WORKING BUFFER
  3484. SB5 B2 RESTORE B5
  3485. SX6 B4 RESET OUT
  3486. SA6 DATA+FTOT
  3487. NE B3,B4,RPR2 IF NOT ALL DATA TRANSFERRED
  3488. EQ RPRX RETURN
  3489. SDI SPACE 4,15
  3490. ** SDI - SET DEVICE INHIBIT DATES.
  3491. *
  3492. * ENTRY DIFT = ADDRESS OF FET TO SET DEVICE INHIBIT DATES.
  3493. * (/COMSPFS/STDT) = START DATE/TIME.
  3494. * MSTT = FWA OF MST TABLE.
  3495. *
  3496. * EXIT DISK SPACE RELEASE INHIBIT DATES SET ON ALL DEVICES
  3497. * MARKED AS DUMP COMPLETED IN THE MST TABLE.
  3498. *
  3499. * USES X - 0, 1, 2, 3, 4, 5, 6.
  3500. * A - 1, 3, 4, 6.
  3501. * B - 2.
  3502. *
  3503. * MACROS SETDI.
  3504.  
  3505.  
  3506. SDI SUBR ENTRY/EXIT
  3507. SA1 CPAR+/COMSPFS/CPSD
  3508. SA2 CPAR+/COMSPFS/CPIP
  3509. ZR X1,SDIX IF INHIBIT DATE SETTING NOT REQUESTED
  3510. NZ X2,SDIX IF PROCESSING INHIBITED
  3511. SB2 MSTT INITIALIZE MST TABLE POINTER
  3512. SDI1 SA1 B2+B1
  3513. SA2 MASK
  3514. MX0 -8
  3515. BX2 X1*X2
  3516. BX2 -X0*X2
  3517. ZR X1,SDIX IF MST TABLE EXHAUSTED
  3518. ZR X2,SDI2 IF DEVICE NOT DUMPED
  3519. SA3 B2 GET DEVICE NUMBER
  3520. MX0 -6
  3521. BX5 -X0*X3
  3522. LX3 5-11 GET EST ORDINAL
  3523. MX0 -9
  3524. BX3 -X0*X3
  3525. SETDI DIFT,X3,MDIT,/COMSPFS/STDT SET MASTER DEVICE DATE
  3526. SA4 CPAR+/COMSPFS/CPTD
  3527. ZR X4,SDI2 IF NOT TRUE DEVICE DUMP
  3528. IX4 X4-X5
  3529. NZ X4,SDI2 IF NOT SPECIFIED TRUE DEVICE
  3530. SETDI X2,X3,RDIT SET RESIDENT DEVICE INHIBIT DATE
  3531. SDI2 SB2 B2+2 INCREMENT MST TABLE POINTER
  3532. EQ SDI1 PROCESS NEXT ENTRY
  3533. SDL SPACE 4,10
  3534. ** SDL - SORT DATA LIST.
  3535. *
  3536. * ENTRY (X1) = NUMBER OF ENTRIES IN LIST.
  3537. * *DLRB* = FWA OF LIST.
  3538. *
  3539. * EXIT LIST SORTED IN *DLRB*.
  3540. *
  3541. * USES X - 0, 1, 2, 3, 4, 6.
  3542. * A - 1, 2, 6.
  3543. * B - 3, 4, 5, 6, 7.
  3544.  
  3545.  
  3546. SDL SUBR
  3547. MX0 -24
  3548. SB6 X1 SET ITEM LIMIT
  3549. SB4 B0
  3550. SB5 B1
  3551. LE B6,B5,SDLX IF ONE OR LESS ELEMENTS - RETURN
  3552. SDL1 SA1 DLRB+B4 GET ELEMENTS TO SORT
  3553. SA2 DLRB+B5
  3554. UX3 B7,X1
  3555. UX4 B3,X2
  3556. BX4 -X0*X4
  3557. BX3 -X0*X3
  3558. IX3 X4-X3
  3559. PL X3,SDL2 IF NO CANGE IN POSITION
  3560. PX6 B7,X1 CHANGE POSITIONS - RESORT
  3561. SA6 A2
  3562. PX6 B3,X2
  3563. SA6 A1
  3564. SDL2 SB5 B5+B1
  3565. GT B6,B5,SDL1 IF MORE ELEMENTS TO COMPARE TO BASE
  3566. SB4 B4+B1
  3567. SB5 B4+B1
  3568. SB7 B6-B1
  3569. NE B7,B4,SDL1 IF MORE ELEMENTS TO COMPARE
  3570. EQ SDLX RETURN
  3571. SDP SPACE 4,10
  3572. ** SDP - SET DATA READ LIST PARAMETERS.
  3573. *
  3574. * ENTRY (X1) = DATA LIST ENTRY.
  3575. *
  3576. * EXIT (A0) = ADDRESS OF CATALOG ENTRY.
  3577. * (CADA) = CATALOG ENTRY DISK ADDRESS.
  3578. *
  3579. * USES X - 1, 6.
  3580. * A - 0, 6.
  3581. * B - 2.
  3582.  
  3583.  
  3584. SDP SUBR ENTRY/EXIT
  3585. UX1,B2 X1
  3586. SA1 DLDB+B2 GET CATALOG DISK ADDRESS
  3587. SX6 B2
  3588. LX6 4
  3589. ERRNZ NWCE-20B
  3590. SA0 DLCB+X6 SET CATALOG ENTRY ADDRESS
  3591. BX6 X1
  3592. SA6 CADA SET CATALOG ADDRESS
  3593. EQ SDPX RETURN
  3594. SRS SPACE 4,15
  3595. ** SRS - SELECT RIGHT SCREEN.
  3596. *
  3597. * *SRS* REPLACES THE CURRENT RIGHT SCREEN WITH THE REQUESTED
  3598. * ONE AND ALERTS THE OPERATOR TO ENTER AN OPTION.
  3599. *
  3600. * ENTRY (X6) = FWA OF THE REQUESTED RIGHT SCREEN BUFFER.
  3601. *
  3602. * USES X - 0, 5, 6.
  3603. * A - 5, 6.
  3604. *
  3605. * MACROS MOVE.
  3606.  
  3607.  
  3608. SRS SUBR ENTRY/EXIT
  3609. SA5 IDSA+/COMSPFS/KDCW CHANGE *K* DISPLAY CONTROL WORD
  3610. MX0 42
  3611. LX6 18
  3612. LX0 18
  3613. BX5 X0*X5
  3614. BX6 X5+X6
  3615. SA6 A5
  3616. SA5 IDSA+/COMSPFS/ADER ALERT THE OPERATOR
  3617. MOVE 4,MSGI,X5
  3618. EQ SRSX RETURN
  3619. STL SPACE 4,15
  3620. ** STL - SORT TAPE COPY LIST.
  3621. *
  3622. * ENTRY REQUEST FILE *TC* AT BOI.
  3623. *
  3624. * EXIT SORTED REQUESTS ON FILE *S3*.
  3625. *
  3626. * USES X - 0, 1, 5, 6.
  3627. * A - 0, 5.
  3628. * B - 4, 5.
  3629. *
  3630. * CALLS MSF, ISF, WSB.
  3631. *
  3632. * MACROS READ, READW, WRITER.
  3633.  
  3634.  
  3635. STL SUBR ENTRY/EXIT
  3636. READ TC
  3637. RJ ISF INITIALIZE SORT FILES
  3638. STL1 READW TC,SRTB,SBTCL
  3639. SB7 B7-SBTCL
  3640. ZR B7,STL2 IF END OF ENTRIES
  3641. MX0 60 SET SORT KEY MASK
  3642. SX1 B1 SET SORT KEY LENGTH
  3643. SB4 1 SET KEY OFFSET
  3644. SB5 TCRQL SET ENTRY LENGTH
  3645. RJ WSB WRITE SORTED ENTRIES TO FILE
  3646. EQ STL1 READ NEXT BUFFER OF ENTRIES
  3647.  
  3648. STL2 WRITER S1 FLUSH BUFFER
  3649. WRITER S2 FLUSH BUFFER
  3650. SX0 TCRQL SET ENTRY LENGTH
  3651. SX1 SBTCC SET FULL BLOCK ENTRY COUNT
  3652. MX2 60 SET KEY MASK
  3653. SB4 B0 SET KEY OFFSET
  3654. SB5 1 SET KEY LENGTH
  3655. SA0 SW1B SET WORKING BUFFER 1 ADDRESS
  3656. SA5 SW2B SET WORKING BUFFER 2 ADDRESS
  3657. RJ MSF MERGE SORT FILES
  3658. EQ STLX RETURN
  3659. TER SPACE 4,15
  3660. ** TER - TERMINATE ARCHIVE FILE AND RETURN SYSTEM FILES.
  3661. *
  3662. * EXIT END OF DUMP RECORD AND EOF WRITTEN TO ARCHIVE AND
  3663. * VERIFY FILES.
  3664. * SYSTEM FILES RETURNED.
  3665. * PERMANENT FILE PARAMETERS RESTORED TO ENTRY VALUES.
  3666. *
  3667. * USES X - 7.
  3668. * A - 7.
  3669. *
  3670. * CALLS FAF.
  3671. *
  3672. * MACROS ARCHIVE, RETURN, SETPFP.
  3673.  
  3674.  
  3675. TER SUBR ENTRY/EXIT
  3676. SA1 CPAR+/COMSPFS/CPIP
  3677. NZ X1,TER1 IF PROCESSING INHIBITED
  3678. SX7 EODC WRITE END OF DUMP CONTROL WORD
  3679. SA7 CONTH
  3680. ARCHIVE WRITEW,CONTH,B1
  3681. ARCHIVE WRITER
  3682. ARCHIVE WRITEF WRITE EOF ON ARCHIVE FILE
  3683. RJ FAF FLUSH ARCHIVE FILE BUFFERS
  3684. RETURN REQS
  3685. RETURN RESS
  3686. RETURN TC
  3687. TER1 SETPFP GPAR RESTORE PERMANENT FILE PARAMETERS
  3688. EQ TERX RETURN
  3689. UCE SPACE 4,20
  3690. ** UCE - UPDATE CATALOG ENTRY.
  3691. *
  3692. * ENTRY (B2) = *PFU* FUNCTION CODE.
  3693. * (CADA) = CATALOG ENTRY DISK ADDRESS IN *PFM* FORMAT.
  3694. * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
  3695. * CATALOG ENTRY IN *CATH*.
  3696. * CATALOG TRACK INTERLOCKED.
  3697. *
  3698. * EXIT *PFU* CALLED TO UPDATE PFC ENTRY.
  3699. * DEVICE ERROR IDLE SET, IF WRITE ERROR ON CATALOG
  3700. * FILE AND DATA ON THE FILE HAS BEEN CORRUPTED.
  3701. * CATALOG TRACK INTERLOCKED.
  3702. *
  3703. * USES X - 0, 1, 2, 3, 6, 7.
  3704. * A - 1, 3, 6, 7.
  3705. *
  3706. * CALLS SEI, SFE.
  3707. *
  3708. * MACROS CALLPFU.
  3709.  
  3710.  
  3711. UCE SUBR ENTRY/EXIT
  3712. SA1 CATH+FCFN+FCUI* SET FILE NAME AND USER INDEX
  3713. BX6 X1
  3714. SA6 UULV
  3715. SA1 CATH+FCCD GET CREATION DATE/TIME
  3716. SA3 FLOK GET FILE LOCK FLAG
  3717. MX0 -36
  3718. BX6 -X0*X1
  3719. BX6 X3+X6
  3720. SA6 UULV+1
  3721. SA1 CADA GET *PFM* FORMAT CATALOG ADDRESS
  3722. SA2 MAEQ
  3723. MX6 30
  3724. BX7 X6*X1 CATALOG INDEX
  3725. MX6 -24
  3726. LX7 6
  3727. BX6 -X6*X1 TRACK AND SECTOR
  3728. LX2 24
  3729. BX6 X6+X7 MERGE TRACK/SECTOR AND CATALOG INDEX
  3730. BX6 X6+X2 MERGE EST ORDINAL
  3731. SA6 UULV+2
  3732. CALLPFU UUCW,B2,R CALL *PFU* TO UPDATE PFC
  3733. SA1 UUCW
  3734. MX0 -12
  3735. LX1 -12
  3736. BX1 -X0*X1 ERROR CODE
  3737. ZR X1,UCEX IF NO ERROR
  3738. SA1 CATH+FCUI
  3739. SB2 ERCU * CATALOG UPDATE ERROR ...*
  3740. RJ SFE SEND ERROR MESSAGE
  3741. SA1 UUCW
  3742. MX0 -12
  3743. LX1 -12
  3744. BX1 -X0*X1
  3745. SX1 X1-3
  3746. NZ X1,UCEX IF NOT WRITE ERROR WITH DATA TRANSFERRED
  3747. SB2 ELWC * ERROR IDLE SET - PF CATALOG WRITE ...*
  3748. RJ SEI SET ERROR IDLE
  3749. EQ UCEX RETURN
  3750. WDB SPACE 4,25
  3751. ** WDB - WRITE DATA BLOCK.
  3752. *
  3753. * ENTRY (CATH - CATH+NWCE) = CATALOG IMAGE OF FILE BEING
  3754. * DUMPED.
  3755. * (CPAR+/COMSPFS/CPDN) = MASTER DEVICE NUMBER.
  3756. * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
  3757. * (MAEQ) = MASTER DEVICE NUMBER.
  3758. * *DATA* FILE POSITIONED AT DATA FOR FILE BEING DUMPED.
  3759. *
  3760. * EXIT DATA FOR FILE BEING DUMPED COPIED TO THE ARCHIVE FILE.
  3761. * *DATA* FILE POSITIONED AT BEGINNING OF NEXT FILE.
  3762. * ERROR MESSAGE ISSUED FOR FILE IF IT WAS TOO LONG, TOO
  3763. * SHORT OR HAD A MASS STORAGE ERROR.
  3764. *
  3765. * USES X - 0, 1, 2, 3, 4, 6, 7.
  3766. * A - 1, 2, 3, 6, 7.
  3767. * B - 2, 3, 5, 6.
  3768. *
  3769. * CALLS FAF, RPR, SEI, SFE, WDT.
  3770. *
  3771. * MACROS ARCHIVE.
  3772.  
  3773.  
  3774. WDB SUBR
  3775. WDB1 BX6 X6-X6
  3776. SA6 WDBC
  3777. SB5 B1
  3778.  
  3779. * READ FILE CONTROL WORD AND DATA.
  3780.  
  3781. WDB2 RJ RPR READ PHYSICAL RECORD
  3782.  
  3783. * DETERMINE CONTROL WORD TYPE.
  3784.  
  3785. WDB3 SA2 WDBE INCREMENT PRU NUMBER
  3786. SX3 B1+
  3787. SA1 DBUFH GET SECTOR CONTROL WORD
  3788. IX6 X2+X3
  3789. MX0 -12
  3790. BX2 -X0*X1 WORD COUNT
  3791. LX1 0-12
  3792. SA6 A2
  3793. BX3 -X0*X1 NEXT SECTOR LINK
  3794. LX1 59-49-0+12
  3795. BX7 X2+X3
  3796. NG X1,WDB10 IF MASS STORAGE ERROR
  3797. SX1 3777B
  3798. ZR X7,WDB6 IF EOI SECTOR
  3799. BX1 X3-X1
  3800. SX7 X2-NWPR
  3801. ZR X3,WDB15 IF EOF SECTOR
  3802. ZR X1,WDB17 IF SYSTEM SECTOR
  3803. NG X7,WDB16 IF EOR SECTOR
  3804.  
  3805. * PROCESS FULL SECTOR.
  3806.  
  3807. SA1 WREM GET WORDS REMAINING
  3808. SB2 X1
  3809. SB6 B5
  3810. SA1 WDBC GET TOTAL WORD COUNT
  3811. IX6 X2+X1
  3812. SA6 A1
  3813. GT B2,B6,WDB2 GET MORE DATA
  3814. SX6 DCWC
  3815. SX4 B2-B1
  3816. BX6 X6+X4
  3817. SA6 CONTH
  3818. SB2 DBUFH+1
  3819. SB3 X4
  3820. SX6 B5
  3821. SA6 WDBB
  3822. SB6 B5-B3
  3823. SX6 B6-B1
  3824. SA6 WDBA STORE WORDS LEFT IN WS BUFFER
  3825. RJ WDT WRITE ARCHIVE FILE
  3826. SA1 WDBA
  3827. SB6 X1
  3828. SA1 WDBB
  3829. SB5 X1
  3830. SB2 B1
  3831. NG B6,WDB5 IF NO WORDS TO TRANSFER
  3832. ZR B6,WDB5 IF NO WORDS TO TRANSFER
  3833. SB6 B5-B6
  3834. WDB4 SA1 DBUFH+B6
  3835. BX6 X1
  3836. SA6 DBUFH+B2
  3837. SB2 B2+B1
  3838. SB6 B6+B1
  3839. GT B5,B6,WDB4 IF NOT END OF TRANSFER
  3840. WDB5 SX6 B2-B1 SET NEW WORD COUNT
  3841. SA6 WDBC
  3842. SB5 B2
  3843. EQ WDB2 GET MORE DATA
  3844.  
  3845. * PROCESS EOI.
  3846.  
  3847. WDB6 SX6 DCWC SET EOI
  3848. SA1 WDBC
  3849. ZR X1,WDB7 IF NO WORDS
  3850. IX6 X6+X1
  3851. SA6 CONTH
  3852. SB2 DBUFH+1
  3853. SB3 X1
  3854. RJ WDT
  3855. WDB7 SA1 CATH+FCLF GET PFC LENGTH (DATA SECTORS)
  3856. SA2 WDBE GET ACTUAL LENGTH
  3857. MX3 -24
  3858. LX1 -36
  3859. BX6 -X3*X1
  3860. SX1 B1+B1
  3861. IX2 X2-X1 SUBTRACT EOI AND SYSTEM SECTOR
  3862. IX2 X2-X6 CHECK FOR FILE TOO SHORT
  3863. NG X2,WDB8 IF FILE TOO SHORT
  3864. SA2 DBUFH CHECK FOR FILE TOO LONG
  3865. LX2 59-48
  3866. PL X2,WDB9 IF FILE NOT TOO LONG
  3867. WDB8 SA1 CATH+FCUI
  3868. SB2 ERFL * FILE LENGTH ERROR ...*
  3869. RJ SFE SEND ERROR MESSAGE
  3870. SA1 LGCW SET LENGTH ERROR CONTROL WORD
  3871. BX6 X1
  3872. SB3 B0 CLEAR DATA WORD COUNT
  3873. SA6 CONTH
  3874. SB2 CONTH SET BUFFER ADDRESS
  3875. RJ WDT WRITE LENGTH ERROR CONTROL WORD
  3876. SA1 FLST SET DATA ERROR IN FILE STATUS
  3877. SX6 2
  3878. BX6 X1+X6
  3879. SA6 A1
  3880. SA1 CATH+FCBS
  3881. LX1 59-11
  3882. NG X1,WDB9 IF DIRECT ACCESS FILE
  3883. SB2 ELLI * ERROR IDLE SET - INDIRECT PF LENGTH ...*
  3884. RJ SEI SET ERROR IDLE STATUS
  3885.  
  3886. * COMPLETE PROCESSING OF FILE.
  3887.  
  3888. WDB9 ARCHIVE WRITER WRITE EOR ON ARCHIVE FILES
  3889. SX6 B0+ CLEAR FILE LENGTH COUNTER
  3890. SX7 BFAC RESET BLOCK STATUS FOR NEXT FILE
  3891. SA6 WDBE
  3892. SA7 WREM
  3893. SA3 FLOK
  3894. ZR X3,WDBX IF NOT DESTAGE TO OPTICAL DISK
  3895. RJ FAF FLUSH ARCHIVE FILE BUFFERS
  3896. EQ WDBX RETURN
  3897.  
  3898. * PROCESS READ ERROR.
  3899.  
  3900. WDB10 SX6 DCWC
  3901. ZR X7,WDB11 IF EOI SECTOR
  3902. SX6 DFCW
  3903. ZR X3,WDB11 IF EOF SECTOR
  3904. SX6 X2+DCWC
  3905. SX7 X2-NWPR
  3906. ZR X7,WDB11 IF FULL DATA SECTOR
  3907. SX6 X2+DSCW
  3908. SX1 3777B
  3909. BX1 X3-X1
  3910. ZR X1,WDB11 IF SYSTEM SECTOR
  3911. SX6 X2+DRCW SET EOR CONTROL WORD
  3912. WDB11 SA1 WDBC GET GOOD BLOCK WORD COUNT
  3913. SA6 WDBD SAVE BAD BLOCK CONTROL WORD
  3914. SX7 X1+DCWC BUILD GOOD CONTROL WORD
  3915. SB2 DBUFH+1 SET BUFFER ADDRESS
  3916. SA7 CONTH
  3917. SB3 X1+ SET BUFFER WORD COUNT
  3918. ZR X1,WDB12 IF GOOD BLOCK EMPTY
  3919. RJ WDT WRITE GOOD BLOCK
  3920. WDB12 SA1 RCWD SET BAD BLOCK CONTROL WORD
  3921. SA2 WDBD
  3922. SA3 WDBC GET GOOD BLOCK WORD COUNT
  3923. BX6 X1+X2
  3924. MX7 -9
  3925. SB2 X3+DBUFH+1 SET BAD BLOCK BUFFER ADDRESS
  3926. SA6 CONTH
  3927. BX2 -X7*X2 SET BAD BLOCK WORD COUNT
  3928. SB3 X2
  3929. RJ WDT WRITE BAD BLOCK
  3930. SA1 CATH+FCUI
  3931. SB2 ERDR * DATA READ ERROR ...*
  3932. RJ SFE SEND ERROR MESSAGE
  3933. SA1 FLST SET DATA ERROR IN FILE STATUS
  3934. SX6 B1+B1
  3935. BX6 X1+X6
  3936. SA6 A1
  3937. SA1 DBUFH GET READ STATUS
  3938. MX2 -24
  3939. BX6 -X2*X1
  3940. LX1 59-48
  3941. ZR X6,WDB9 IF EOI SECTOR
  3942. NG X1,WDB9 IF FATAL ERROR
  3943. EQ WDB1 CHECK NEXT SECTOR
  3944.  
  3945. * PROCESS EOF.
  3946.  
  3947. WDB15 SX6 DFCW SET EOF CONTROL WORD
  3948. SA1 WDBC
  3949. IX6 X6+X1
  3950. SA6 CONTH
  3951. SB3 X1
  3952. SB2 DBUFH+1
  3953. RJ WDT
  3954. EQ WDB1 PROCESS DATA SECTOR
  3955.  
  3956. * PROCESS EOR.
  3957.  
  3958. WDB16 SX6 DRCW SET EOR CONTROL WORD
  3959. SA1 WDBC
  3960. IX2 X2+X1
  3961. BX6 X6+X2
  3962. SA6 CONTH
  3963. SB2 DBUFH+1
  3964. SB3 X2
  3965. RJ WDT
  3966. EQ WDB1 PROCESS DATA SECTOR
  3967.  
  3968. * PROCESS SYSTEM SECTOR.
  3969.  
  3970. WDB17 SX6 DSCW SET SYSTEM SECTOR CONTROL WORD
  3971. BX6 X6+X2
  3972. SA6 CONTH
  3973. SB2 DBUFH+1
  3974. SB3 X2
  3975. RJ WDT WRITE SYSTEM SECTOR TO ARCHIVE FILE
  3976. EQ WDB1 PROCESS FIRST DATA SECTOR
  3977. SPACE 4,10
  3978. * DATA STORAGE FOR DATA BLOCK WRITE
  3979.  
  3980.  
  3981. WDBA BSS 1 WORDS REMAINING HOLD
  3982. WDBB BSS 1 TOTAL WORDS READ HOLD
  3983. WDBC BSS 1 INTERIM WORDS IN WS HOLD
  3984. WDBD BSS 1 BAD DATA CONTROL WORD
  3985. WDBE CON 0 PRU COUNTER
  3986. WDT SPACE 4,15
  3987. ** WDT - WRITE DUMP TAPE.
  3988. *
  3989. * ENTRY (B2) = FWA OF DATA.
  3990. * (B3) = NUMBER OF WORDS TO WRITE.
  3991. * (CONTH) = CONTROL WORD.
  3992. *
  3993. * EXIT CONTROL WORD AND DATA WRITTEN.
  3994. * WORDS REMAINING IN BLOCK UPDATED.
  3995. *
  3996. * USES X - 0, 1, 2, 6, 7.
  3997. * A - 1, 2, 6, 7.
  3998. * B - 2, 3, 5.
  3999. *
  4000. * CALLS WRT.
  4001.  
  4002.  
  4003. WDT SUBR
  4004.  
  4005. * CHECK NUMBER OF WORDS TO BE WRITTEN.
  4006.  
  4007. WDT1 SA1 WREM
  4008. SX2 B3+B1
  4009. IX6 X1-X2
  4010. NG X6,WDT2 IF WORDS+1 MORE THAN WORDS REMAINING
  4011. SA6 A1 RESET WORDS REMAINING
  4012. SX6 B2 SET BUFFER ADDRESS
  4013. SA6 WDTD
  4014. SX6 B3+ SET WORD COUNT
  4015. SA6 WDTC
  4016. RJ WRT WRITE
  4017. EQ WDTX RETURN
  4018.  
  4019. * PROCESS BLOCK LARGER THAN 1000B WORDS.
  4020.  
  4021. WDT2 IX6 X2-X1 WORDS LEFT FOR NXT BLOCK
  4022. SA6 WDTA SAVE WORDS LEFT FOR NEXT BLOCK
  4023. SA2 CONTH
  4024. BX6 X2
  4025. SA6 WDTB SAVE OLD CONTROL WORD
  4026.  
  4027. * CLEAR THE EOR/EOF SUB-TYPE CODES (1 AND 2) BUT RETAIN
  4028. * THE SYSTEM SECTOR SUB-TYPE CODE (4). SET THE WORD COUNT
  4029. * FOR THE FIRST PART OF THE SPLIT.
  4030.  
  4031. MX0 49
  4032. BX6 X0*X2
  4033. SX7 X1-1
  4034. BX6 X6+X7
  4035. SA6 CONTH
  4036. SA7 WDTC SAVE WORDS WRITTEN
  4037. SB3 X7
  4038. SX6 B2
  4039. SA6 WDTD SAVE BUFFER ADDRESS
  4040. BX6 X6-X6
  4041. SA6 WREM
  4042. RJ WRT WRITE
  4043.  
  4044. * SET UP TO WRITE BEGINNING OF NEXT BLOCK.
  4045.  
  4046. SA1 WDTB GET OLD CONTROL WORD
  4047. MX0 51
  4048. BX6 X0*X1
  4049. SA1 WDTA WORDS FOR NEXT BLOCK
  4050. BX6 X6+X1
  4051. SA6 CONTH SET UP NEXT CONTROL WORD
  4052. SB3 X1
  4053. SA1 WDTC
  4054. SB5 X1
  4055. SA1 WDTD GET BUFFER ADDRESS
  4056. SB2 X1
  4057. SB2 B2+B5
  4058. EQ WDT1 PROCESS NEXT BLOCK
  4059.  
  4060.  
  4061. WDTA BSS 1 WORDS IN NEXT BLOCK
  4062. WDTB BSS 1 OLD CONTROL WORD
  4063. WDTC BSS 1 WORDS WRITTEN
  4064. WDTD BSS 1 BUFFER ADDRESS
  4065. WRT SPACE 4,20
  4066. ** WRT - WRITE CONTROL WORD AND DATA.
  4067. *
  4068. * ENTRY (WDTD) = BUFFER ADDRESS.
  4069. * (WDTC) = WORD COUNT FOR NON-EOR WRITE.
  4070. * (CONTH) = CONTROL WORD.
  4071. *
  4072. * EXIT EOR OR CONTROL WORD AND DATA WRITTEN TO ARCHIVE FILE.
  4073. *
  4074. * USES X - 1, 2, 6.
  4075. * A - 1, 2, 6.
  4076. * B - 6, 7.
  4077. *
  4078. * MACROS ARCHIVE.
  4079.  
  4080.  
  4081. WRT SUBR
  4082.  
  4083. * WRITE CONTROL WORD.
  4084.  
  4085. ARCHIVE WRITEW,CONTH,B1 WRITE CONTROL WORD
  4086.  
  4087. * WRITE DATA.
  4088.  
  4089. SA1 WDTD GET BUFFER ADDRESS
  4090. SA2 WDTC
  4091. SB6 X1 RESET ADDRESS
  4092. SB7 X2 RESET WORD COUNT
  4093. ARCHIVE WRITEW,B6,B7 WRITE DATA
  4094. SA1 WREM
  4095. NZ X1,WRTX IF NOT FULL BLOCK
  4096. SX6 BFAC
  4097. SA6 A1
  4098. EQ WRTX RETURN
  4099. TITLE COMMON DECKS.
  4100. ** COMMON DECKS.
  4101.  
  4102.  
  4103. *CALL COMCCCE
  4104. *CALL COMCCDD
  4105. ERP1$ SET 0 SELECT *COMCCIO* ERROR PROCESSING OPTION
  4106. *CALL COMCCIO
  4107. *CALL COMCCOD
  4108. *CALL COMCCPM
  4109. *CALL COMCDXB
  4110. *CALL COMCEDT
  4111. FCE$ SET 0 SELECT *COMCFCE* UTILITY FORMAT OPTION
  4112. *CALL COMCFCE
  4113. GMS$ EQU 1 USE SORT KEY MASK
  4114. MWK$ EQU 1 ALLOW MULTIPLE WORD SORT KEYS
  4115. *CALL COMCGMS
  4116. *CALL COMCJCR
  4117. *CALL COMCLFM
  4118. *CALL COMCMSF
  4119. *CALL COMCMVE
  4120. *CALL COMCPFM
  4121. LIST X
  4122. COM$ EQU 1 ASSEMBLE COMMON ROUTINES
  4123. PFD$ EQU 1 ASSEMBLE *PFDUMP*/*PFDM* COMMON ROUTINES
  4124. DVA$ EQU 1 ASSEMBLE DEVICE ACCESS ROUTINES
  4125. PFR$ EQU 1 ASSEMBLE ARCHIVE FILE READ ROUTINES
  4126. PF8$ EQU 1 ASSEMBLE CATALOG CONVERSION ROUTINES
  4127. *CALL COMCPFS
  4128. LIST *
  4129. *CALL COMCPFU
  4130. *CALL COMCRDO
  4131. *CALL COMCRDW
  4132. *CALL COMCSCB
  4133. *CALL COMCSFM
  4134. *CALL COMCSFN
  4135. *CALL COMCSNM
  4136. *CALL COMCSYS
  4137. *CALL COMCVLC
  4138. *CALL COMCWTC
  4139. *CALL COMCWTH
  4140. *CALL COMCWTO
  4141. *CALL COMCWTW
  4142. *CALL COMCZTB
  4143. TITLE MESSAGES.
  4144. ** MESSAGES.
  4145.  
  4146.  
  4147. MSDU DATA C*DUMPING ??????? !!!!!!*
  4148. MSGI DATA 40H THE RIGHT SCREEN LISTS YOUR OPTIONS.
  4149. MSGL DATA 40C
  4150. MSGS DATA 30CWAITING FOR STAGED FILES
  4151. MSGT DATA 40H RESCAN CATALOG TRACK FOR STAGED FILES.
  4152. MSGW DATA 40H
  4153. MSGAA DATA 40C WAIT FOR ALTERNATE STORAGE INTERLOCK.
  4154. SPACE 4,10
  4155. * ERROR MESSAGES.
  4156.  
  4157.  
  4158. ERCU DATA C* CATALOG UPDATE ERROR, FN=???????, UI=!!!!!!.*
  4159. ERDR DATA C* DATA READ ERROR, FN=???????, UI=!!!!!!.*
  4160. ERFB DATA C* FILE BUSY, FN=???????, UI=!!!!!!.*
  4161. ERFL DATA C* FILE LENGTH ERROR, FN=???????, UI=!!!!!!.*
  4162. ERNP DATA C* NO DISK OR ALTERNATE STORAGE POINTERS FOR FILE, FN=?
  4163. ,??????, UI=!!!!!!.*
  4164. ERNT DATA C* FILE NOT FOUND ON ALTERNATE STORAGE TAPE, FN=???????
  4165. ,, UI=!!!!!!.*
  4166. ERPF DATA C* PERMIT FORMAT ERROR, FN=???????, UI=!!!!!!.*
  4167. ERPI DATA C* PERMIT RANDOM INDEX ERROR, FN=???????, UI=!!!!!!.*
  4168. ERPR DATA C* PERMIT READ ERROR, FN=???????, UI=!!!!!!.*
  4169. ERRT DATA C* STAGED FILE RESCAN TERMINATED, FN=???????, UI=!!!!!!
  4170. ,.*
  4171. ERSS DATA C* BAD SYSTEM SECTOR, FN=???????, UI=!!!!!!.*
  4172. ERTR DATA C* ALTERNATE STORAGE TAPE READ ERROR, FN=???????, UI=!!
  4173. ,!!!!.*
  4174. ERUS DATA C* UNABLE TO STAGE FILE, FN=???????, UI=!!!!!!.*
  4175. ERZL DATA C* ZERO LENGTH FILE, FN=???????, UI=!!!!!!.*
  4176. SPACE 4,10
  4177. ** NORMAL PROCESSING FILE COUNT MESSAGES.
  4178.  
  4179.  
  4180. DUMS DATA C* ?????? FILE! DUMPED.*
  4181. SEMS DATA C* ?????? FILE! SKIPPED WITH ERRORS.*
  4182. DEMS DATA C* ?????? FILE! DUMPED WITH PERMIT/DATA ERRORS.*
  4183. POMS DATA C/ ?????? *PFC ONLY* FILE! DUMPED./
  4184. STMS DATA C* ?????? DUMPED FILE! STAGED.*
  4185. PGMS DATA C* ?????? DUMPED FILE! PURGED.*
  4186. NPMS DATA C* ?????? DUMPED FILE! NOT PURGED.*
  4187. DSMS DATA C* ?????? DUMPED FILE! DESTAGED.*
  4188. NDMS DATA C* ?????? DUMPED FILE! NOT DESTAGED.*
  4189. SPACE 4,10
  4190. ** INHIBITED PROCESSING FILE COUNT MESSAGES.
  4191.  
  4192.  
  4193. SDMS DATA C* ?????? FILE! SELECTED FOR DUMP.*
  4194. SPMS DATA C/ ?????? FILE! SELECTED FOR *PFC ONLY* DUMP./
  4195. RESC SPACE 4,10
  4196. * RIGHT SCREEN BUFFER FOR *RESCAN* OPTIONS.
  4197.  
  4198.  
  4199. RESC VFD 12/0,36/0,12/0 DISPLAY CONTROL WORD
  4200.  
  4201. KDL 28,T,(RESCAN OPTIONS)
  4202. KDL 13,H,(ENTER K.RO.)
  4203. KDL 13,,(RO)
  4204. KDL 26,H,(DESCRIPTION)
  4205. KDL 13,K,(GO CONTINUE RESCANNING.)
  4206. KDL 13,K,(SKIP SCAN NEXT CATALOG TRACK.)
  4207. CON 0 END OF BUFFER
  4208. SPACE 4,10
  4209. USE LITERALS
  4210. TITLE RESERVED LOCATIONS.
  4211. ** RESERVED LOCATIONS
  4212.  
  4213.  
  4214. ASTI CON 0 ALTERNATE STORAGE TAPE IDENTIFIER
  4215. CONTH BSSZ 1 CONTROL WORD HOLD
  4216. CWBF BSSZ 1 ARCHIVE FILE CONTROL WORD BUFFER
  4217. FLOK BSSZ 1 FILE LOCK *AFLOK*/*TFLOK* FLAG
  4218. FLSF BSSZ 1 FILE LENGTH NEEDED FOR *LS*/*US* SELECTION
  4219. IFST BSSZ 1 INCOMPLETE FILE DUMP STATUS
  4220. INCD BSSZ 1 INCREMENTAL DUMP FLAG
  4221. NDLE BSSZ 1 NUMBER OF DATA LIST ENTRIES
  4222. VSNP BSSZ 1 DESTAGE DUMP VSN POINTER
  4223. WREM CON BFAC UNUSED WORDS REMAING IN ARCHIVE FILE BLOCK
  4224.  
  4225.  
  4226. * CATALOG HOLD AREA AND RELATED CONTROLS.
  4227.  
  4228. CATH BSSZ NWCE CATALOG ENTRY HOLD AREA
  4229.  
  4230.  
  4231. * DUMP FILE LABEL BUILD AREA.
  4232.  
  4233. DMPLBL VFD 36/0LPFDUMP,24/0 HEADER
  4234. VFD 48/0LREEL,12/1
  4235. VFD 24/0LMASK,1/1,35/0
  4236. BSSZ /COMSPFS/AFLBL-3
  4237.  
  4238. * DUMP FILE -- FILE ERROR CONTROL WORDS.
  4239.  
  4240. LGCW VFD 42/7HERROR**,3/1,3/3,3/2,9/0
  4241. RCWD VFD 42/7HERROR**,3/1,15/0 READ ERROR CONTROL WORD
  4242.  
  4243.  
  4244. * *MSS*/*MSE* EXECUTIVE INTERLOCK AND *RDF* WORK AREAS.
  4245.  
  4246. CMSK BSSZ 1 SUBFAMILY CONTROL MASK
  4247. LMSK BSSZ 1 SUBFAMILY LOCK MASK
  4248. LFAT VFD 42/7H"MSFCAT"0,18/LKBUF LOCK FILE FET ARGUMENTS
  4249. VFD 42/7H"MSFCAT"1,18/LKBUF+1*NWCE
  4250. VFD 42/7H"MSFCAT"2,18/LKBUF+2*NWCE
  4251. VFD 42/7H"MSFCAT"3,18/LKBUF+3*NWCE
  4252. VFD 42/7H"MSFCAT"4,18/LKBUF+4*NWCE
  4253. VFD 42/7H"MSFCAT"5,18/LKBUF+5*NWCE
  4254. VFD 42/7H"MSFCAT"6,18/LKBUF+6*NWCE
  4255. VFD 42/7H"MSFCAT"7,18/LKBUF+7*NWCE
  4256.  
  4257. VFD 42/7H"SFMCAT"0,18/LKBUF+8*NWCE
  4258. VFD 42/7H"SFMCAT"1,18/LKBUF+9*NWCE
  4259. VFD 42/7H"SFMCAT"2,18/LKBUF+10*NWCE
  4260. VFD 42/7H"SFMCAT"3,18/LKBUF+11*NWCE
  4261. VFD 42/7H"SFMCAT"4,18/LKBUF+12*NWCE
  4262. VFD 42/7H"SFMCAT"5,18/LKBUF+13*NWCE
  4263. VFD 42/7H"SFMCAT"6,18/LKBUF+14*NWCE
  4264. VFD 42/7H"SFMCAT"7,18/LKBUF+15*NWCE
  4265. LFATL EQU *-LFAT LENGTH OF LFAT TABLE.
  4266.  
  4267. RDFE BSSZ 1 *RDF* EXTRACT RECORD WRITTEN FLAG
  4268. EMSG BSS 3 HOLD FOR SUPPRESSED *PFM* ERROR MESSAGES
  4269. SPACE 2,12
  4270. ** LKC1 - *MSS* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
  4271. ** LKC2 - *MSE* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
  4272.  
  4273. *T LKCN 18/ FAM,18/ DM,12/ CODE,6/ AT,5/,1/C
  4274. *
  4275. * FAM = FAMILY/PACK NAME ADDRESS.
  4276. * DM = ACCUMULATED DEVICE MASK ADDRESS.
  4277. * CODE = *TDAM* RESPONSE CODE.
  4278. * 0 = NORMAL - REQUEST ACCEPTED.
  4279. * 4 = EXECUTIVE NOT ACTIVE.
  4280. * AT = ALTERNATE STORAGE TYPE CODE.
  4281. * *ATMS* = *MSS* SUBSYSTEM.
  4282. * *ATAS* = *MSE* SUBSYSTEM.
  4283. * C = COMPLETION BIT.
  4284.  
  4285. LKC1 VFD 18/FMPN,18/CMSK,12/0,6/ATMS,5/0,1/1
  4286. LKC2 VFD 18/FMPN,18/CMSK,12/0,6/ATAS,5/0,1/1
  4287.  
  4288.  
  4289. * CATALOG TRACK RESCAN, TAPE ALTERNATE STORAGE COPY DATA AREA.
  4290.  
  4291. CTIN BSSZ 1 INDEX OF ENTRY ON CATALOG TRACK
  4292. RESE BSSZ TCRQL *RESS* FILE ENTRY WORKING BUFFER
  4293. RSIN BSSZ 1 CATALOG TRACK INDEX TO BEGIN RESCAN
  4294. RSTS BSSZ 1 CATALOG TRACK AND SECTOR TO BEGIN RESCAN
  4295. SCAN BSSZ 1 SCAN MODE (0 = NORMAL SCAN, 1 = RESCAN)
  4296. TCRQ BSSZ TCRQL TAPE COPY REQUEST WORKING BUFFER
  4297. SPACE 2,13
  4298. ** UUCW - UTILITY UPDATE CATALOG ENTRY CONTROL WORD.
  4299. *
  4300. *T UUCW 18/,18/ FWLV,12/ CODE,11/,1/C
  4301. *
  4302. * FWLV = FWA OF CATALOG ENTRY LOCATION AND VERIFICATION
  4303. * INFORMATION.
  4304. * CODE = RESPONSE CODE.
  4305. * 0 = UPDATE COMPLETED.
  4306. * 1 = MASS STORAGE READ ERROR OCCURRED.
  4307. * 2 = VERIFICATION ERROR OCCURRED.
  4308. * 3 = MASS STORAGE WRITE ERROR OCCURRED AND DATA WAS
  4309. * TRANSFERRED TO THE DEVICE.
  4310. * 4 = MASS STORAGE WRITE ERROR OCCURRED AND NO DATA
  4311. * WAS TRANSFERRED TO THE DEVICE.
  4312. * C = COMPLETION BIT.
  4313.  
  4314. UUCW VFD 18/0,18/UULV,12/0,11/0,1/1
  4315. SPACE 2,13
  4316. ** UULV - UPDATE CATALOG ENTRY LOCATION/VERIFY INFORMATION.
  4317. *
  4318. *T UULV 42/ FILE NAME,18/ USERID
  4319. *T UULV+1 24/ 0,36/ CDT
  4320. *T UULV+2 22/ 0,2/ CO,12/ EQ,12/ TK,12/ SC
  4321. *
  4322. * CDT = CREATION DATE/TIME.
  4323. * CO = CATALOG ENTRY ORDINAL.
  4324. * EQ = EST ORDINAL.
  4325. * TK = TRACK NUMBER.
  4326. * SC = SECTOR NUMBER.
  4327.  
  4328. UULV BSSZ 3
  4329. TITLE FETS.
  4330. ** FETS.
  4331.  
  4332.  
  4333. T BSS 0 ARCHIVE FILE
  4334. TAPE FILEB TBUF,TBUFL,FET=13
  4335.  
  4336. ODEB BSSZ ODEBL OPTICAL DISK EXTENSION BUFFER
  4337.  
  4338. V BSS 0 VERIFY FILE
  4339. PFVER FILEB VBUF,VBUFL,FET=13
  4340.  
  4341. R BSS 0 RELEASE DATA FILE
  4342. RDF FILEB RBUF,RBUFL,FET=13
  4343.  
  4344. CATC BSS 0 *CIR* CATALOGS
  4345. ZZZZZG0 FILEB CATB,CATBL,EPR,FET=10
  4346.  
  4347. CATS BSS 0 CATALOG TRACKS
  4348. ZZZZZG1 FILEB CATB,CATBL,EPR,FET=10
  4349.  
  4350. PETS BSS 0 PERMIT ENTRIES
  4351. ZZZZZG2 RFILEB PBUF,PBUFL,EPR,FET=10
  4352.  
  4353. DATA BSS 0 FILE DATA
  4354. ZZZZZG3 FILEB DBUF,DBUFL,FET=10
  4355.  
  4356. AST BSS 0 ALTERNATE STORAGE ARCHIVE FILE
  4357. ZZZZZG8 FILEB DBUF,DBUFL,EPR,FET=14
  4358.  
  4359. DIFT FILEB IBUF,1,(FET=10) FET TO SET DEVICE INHIBIT DATES
  4360.  
  4361. DDFT FILEB REQB,REQBL,EPR,FET=16 *DROPDS* *PFM* FET
  4362. ORG DDFT+CFPW
  4363. VFD 42/0,18/DDEM ERROR MESSAGE RETURN ADDRESS
  4364. ORG DDFT+CFSR
  4365. VFD 42/0,18/DDBK SPECIAL REQUEST BLOCK ADDRESS
  4366. ORG DDFT+16
  4367. DDBK BSSZ 4 *PFM* SPECIAL REQUEST BLOCK
  4368. DDEM BSSZ 6 *PFM* ERROR MESSAGE BUFFER
  4369.  
  4370. SRFT FILEB REQB,REQBL,EPR,UPR,FET=16 STAGE REQUEST *PFM* FET
  4371. ORG SRFT+CFPW
  4372. VFD 42/0,18/SREM ERROR MESSAGE RETURN ADDRESS
  4373. ORG SRFT+CFSR
  4374. VFD 42/0,18/SRBK SPECIAL REQUEST BLOCK ADDRESS
  4375. ORG SRFT+16
  4376. SRBK BSSZ 4 *PFM* SPECIAL REQUEST BLOCK
  4377. SREM BSSZ 6 *PFM* ERROR MESSAGE BUFFER
  4378.  
  4379. LOCK FILEB LKBUF,LKBUFL,EPR,FET=16 FET TO LOCK FILES
  4380. LOCKL EQU *
  4381. ORG LOCK+CFPW
  4382. VFD 42/0,18/EMSG
  4383. ORG LOCKL
  4384.  
  4385. PFMREQ BSS 0 POST-PROCESSING *PFM* REQUESTS
  4386. ZZZZZG4 FILEB PFRB,PFRBL,FET=10
  4387.  
  4388. REQS BSS 0 FILE STAGE REQUESTS
  4389. ZZZZZG5 FILEB REQB,REQBL,FET=10
  4390.  
  4391. RESS BSS 0 SCREEN RESCAN SELECTION
  4392. ZZZZZG6 FILEB RESB,RESBL,FET=10
  4393.  
  4394. TC BSS 0 TAPE COPY FILE LIST
  4395. ZZZZZG7 FILEB TCLB,TCLBL,FET=10
  4396.  
  4397. STAT FILEB 0,0,FET=7 FILE STATUS
  4398. TITLE BUFFERS.
  4399. ** BUFFERS.
  4400.  
  4401.  
  4402. PBUF EQU *
  4403. PHBUF EQU PBUF+PBUFL
  4404. DBUF EQU PHBUF+PHBUFL DATA BUFFER
  4405. DBUFH EQU DBUF+DBUFL DATA WORKING STORAGE BUFFER
  4406. CATB EQU DBUFH+DBUFHL CATALOG BUFFER
  4407. LKBUF EQU CATB+CATBL LOCK FILE BUFFER
  4408. IBUF EQU LKBUF+LKBUFL INHIBIT DATE SETTING BUFFER
  4409. RBUF EQU IBUF+1 RELEASE DATA FILE BUFFER
  4410. RDFH EQU RBUF+RBUFL RELEASE DATA FILE WORKING STORAGE
  4411. DLRB SPACE 4,15
  4412. ** DLRB - DATA LIST REQUEST BUFFER.
  4413. *
  4414. * ONE ENTRY IN FOLLOWING FORMAT FOR EACH FILE TO BE DUMPED.
  4415. *
  4416. *T DLRB 12/ 2000B+IN,24/ LF,12/ TK,12/ SC
  4417. *
  4418. * IN = INDEX INTO CATALOG BUFFER AND DISK ADDRESS BUFFER.
  4419. * LF = LENGTH OF FILE (INDIRECT ACCESS ONLY).
  4420. * TK = FIRST TRACK OF FILE.
  4421. * SC = FIRST SECTOR FOR INDIRECT ACCESS FILES.
  4422. * = 1/1,5/0,6/RD FOR DIRECT ACCESS FILES.
  4423. * RD = RESIDENCY DEVICE NUMBER.
  4424.  
  4425.  
  4426. DLRB EQU RDFH+RDFHL DATA LIST REQUEST BUFFER
  4427. DLCB EQU DLRB+DLRBL DATA LIST CATALOG BUFFER
  4428. DLDB EQU DLCB+DLCBL DATA LIST CATALOG DISK ADDRESS BUFFER
  4429. SPACE 4,10
  4430. OUTB EQU DLDB+DLDBL OUTPUT BUFFER
  4431. SUMB EQU OUTB+OUTBL SUMMARY FILE BUFFER
  4432. PFLB EQU SUMB+SUMBL PROCESSED FILES FILE BUFFER
  4433. MS1B EQU PFLB+PFLBL SORT FILE 1
  4434. MS2B EQU MS1B+MSFBL SORT FILE 2
  4435. MS3B EQU MS2B+MSFBL SORT FILE 3
  4436. MS4B EQU MS3B+MSFBL SORT FILE 4
  4437. SRTB EQU MS3B SORT BUFFER (OVERLAYS *MS3B* AND *MS4B*)
  4438. ERRNG MSFBL*2-SRTBL SORT BUFFER OVERFLOW
  4439. PFRB EQU MS4B+MSFBL *PFMREQ* FILE BUFFER
  4440. REQB EQU PFRB+PFRBL *REQS* FILE BUFFER
  4441. RESB EQU REQB+REQBL *RESS* FILE BUFFER
  4442. TCLB EQU RESB+RESBL *TC* FILE BUFFER
  4443.  
  4444. * THE ARCHIVE AND VERIFY FILE BUFFERS MUST BE LAST. FIELD
  4445. * LENGTH FOR THE VERIFY BUFFER WILL NOT BE ALLOCATED UNLESS
  4446. * THE *VF* PARAMETER IS SPECIFIED.
  4447.  
  4448. TBUF EQU TCLB+TCLBL ARCHIVE (TAPE) FILE BUFFER
  4449. EBUF EQU TBUF+TBUFL+4 END OF BUFFERS (WITHOUT VERIFY BUFFER)
  4450. VBUF EQU TBUF+TBUFL VERIFY FILE BUFFER
  4451. EBUFV EQU VBUF+VBUFL+4 END OF BUFFERS (WITH VERIFY BUFFER)
  4452. TITLE PRESET MAIN LOOP.
  4453. PRS SPACE 4,35
  4454. ** PRS - PRESET PROGRAM.
  4455. *
  4456. * ENTRY (CPAR) = CRACKED PARAMETER ARRAY.
  4457. * FILES *ZZZZZG0* THROUGH *ZZZZZG9* AND *ZZZZZGA*
  4458. * THROUGH *ZZZZZGB* RETUNED BY *PFS*.
  4459. * FILE *ZZZZZGB* RETURNED BY *PFS* IF NO FILE
  4460. * SELECTIONS.
  4461. * FILE *ZZZZZGB* CONTAINS FILE SELECTIONS IF PRESENT.
  4462. *
  4463. * EXIT (B1) = 1.
  4464. * (FMPN) = FAMILY NAME OR PACK NAME.
  4465. * (INCD) = 1, IF INCREMENTAL DUMP.
  4466. * (CPAR=/COMSPFS/CPCO) = 37777777777777777777B IF OP=Z
  4467. * OR DESTAGE DUMP (FORCED DATA DUMP).
  4468. * EXECUTION FIELD LENGTH SET.
  4469. * ARCHIVE AND ARCHIVE VERIFY FILES OPENED.
  4470. * DEVICE VALIDATION AND SELECTION PERFORMED.
  4471. * ARCHIVE FILE LABEL WRITTEN.
  4472. * MESSAGES PRESET.
  4473. * CATALOG IMAGE RECORD WRITTEN IF REQUIRED.
  4474. * ACCES LEVEL RANGE VALIDATED IF SECURE SYSTEM.
  4475. * OUTPUT FILE AND SUMMARY FILE INITIALIZED.
  4476. *
  4477. * USES X - 0, 1, 2, 3, 5, 6, 7.
  4478. * A - 0, 1, 2, 3, 5, 6, 7.
  4479. * B - 1.
  4480. *
  4481. * CALLS BMT, CAL, CCI, CDR, DSS, GRH, IFL, IOF, LBL, ODV, OSP,
  4482. * PFO, PRK, PSI, RPS, SBS, SFN, SFP, SLP, SMP, SOE, SSP.
  4483. *
  4484. * MACROS MEMORY, MOVE, REPRIEVE.
  4485.  
  4486.  
  4487. PRS SUBR
  4488. SB1 1
  4489. MEMORY CM,,R,EBUF REQUEST REQUIRED MEMORY
  4490. REPRIEVE RPVB,SET,277B SET EXTENDED REPRIEVE PROCESSING
  4491. SA1 CMUR
  4492. NG X1,PRS1 IF *CMU* PRESENT
  4493. MOVE MMCL,PRSB,MMC SET UP REGISTER TRANSFER CODE
  4494. PRS1 RJ DSS DETERMINE SECURITY STATUS
  4495. RJ BMT BUILD MASS STORAGE TABLE
  4496. RJ CAL CHECK ACCESS LEVELS
  4497. SB2 ERAR * ACCESS LEVEL LIMITS OUT OF RANGE.*
  4498. NG X2,ABT IF ACCESS LEVELS NOT WITHIN SYSTEM LIMITS
  4499. SX3 PRSC PRESET *K* DISPLAY COORDINATES
  4500. RJ PRK
  4501. SA1 CPAR+/COMSPFS/CPIP
  4502. ZR X1,PRS1.1 IF PROCESSING NOT INHIBITED
  4503. SX6 B0+ CLEAR MSS/MSE PROCESSING
  4504. SA6 MSSF
  4505. SA6 ASFF
  4506. EQ PRS3 INITIALIZE DUMP ENVIRONMENT
  4507.  
  4508. * OPEN ARCHIVE FILE.
  4509.  
  4510. PRS1.1 SA1 CPAR+/COMSPFS/CPTB GET FILE NAME
  4511. SA5 TAPE
  4512. MX0 42
  4513. BX6 X0*X1
  4514. BX5 -X0*X5
  4515. BX6 X6+X5
  4516. SA6 A5 SET FILE NAME IN FET
  4517. SX2 A5 SET FET ADDRESS
  4518. SA3 PRSK SET OPTICAL DISK EXTENSION BUFFER ADDRESS
  4519. RJ SOE SET FET EXTENSION IF OPTICAL DISK FILE
  4520. NZ X1,PRS1.2 IF NOT ASSIGNED TO OPTICAL DISK
  4521. SA3 TAPE+1 SET RANDOM FLAG IN SET
  4522. SX1 B1
  4523. LX1 47
  4524. BX6 X1+X3
  4525. SA6 A3
  4526. PRS1.2 SA1 CPAR+/COMSPFS/CPTB GET FILE NAME
  4527. SA5 TAPE SET FET ADDRESS
  4528. RJ PFO PROCESS ARCHIVE FILE OPENING
  4529. SX6 -1
  4530. SA6 TAPE+CWSW INITIALIZE CONTROL WORD WRITE STATUS
  4531. SA5 TAPE SET FET ADDRESS AND FILE NAME
  4532. RJ CDR CHECK DESTAGE REQUIREMENTS
  4533.  
  4534. * OPEN VERIFY FILE.
  4535.  
  4536. SA1 CPAR+/COMSPFS/CPVF
  4537. ZR X1,PRS2 IF NO VERIFY FILE SPECIFIED
  4538. SX6 VBUFL SET BUFFER INCREASE VALUE
  4539. SA6 BUFI
  4540. MEMORY CM,,R,EBUFV INCREASE FL FOR VERIFY FILE BUFFER
  4541. SA1 CPAR+/COMSPFS/CPVF
  4542. SA5 PFVER SET FET ADDRESS
  4543. RJ PFO PROCESS VERIFY FILE OPENING
  4544. SX6 -1
  4545. SA6 PFVER+CWSW INITIALIZE CONTROL WORD WRITE STATUS
  4546. SA5 PFVER SET FET ADDRESS AND FILE NAME
  4547. RJ CDR CHECK DESTAGE REQUIREMENTS
  4548.  
  4549. * OPEN RELEASE DATA FILE.
  4550.  
  4551. PRS2 SA1 CPAR+/COMSPFS/CPRD GET FILE NAME
  4552. ZR X1,PRS3 IF NO RELEASE DATA FILE
  4553. SA5 RDF SET FET ADDRESS
  4554. RJ PFO PROCESS RELEASE DATA FILE OPENING
  4555.  
  4556. * INITIALIZE DUMP ENVIRONMENT.
  4557.  
  4558. PRS3 SA1 BUFI
  4559. SX0 X1+EBUF SET SELECTION BUFFER ADDRESS
  4560. RJ RPS READ PERMANENT FILE SELECTIONS
  4561. RJ SMK SET FILE SELECTION MASK
  4562. RJ SFP SET PERMANENT FILE PARAMETERS
  4563. SA1 CPAR+/COMSPFS/CPIP
  4564. NZ X1,PRS4 IF PROCESSING INHIBITED
  4565. RJ SLP SET LABEL PARAMETERS
  4566. RJ LBL GENERATE LABEL
  4567. RJ GRH GENERATE RDF HEADER RECORD
  4568. PRS4 SA1 CPAR+/COMSPFS/CPOP
  4569. SA2 CPAR+/COMSPFS/CPDT
  4570. MX7 1
  4571. BX6 -X7 UNLIMITED FILE SIZE VALUE
  4572. LX1 59-46
  4573. BX7 X7*X1
  4574. BX7 X7+X2
  4575. ZR X7,PRS4.1 IF NOT *OP=Z* OR DESTAGE DUMP
  4576. SA6 CPAR+/COMSPFS/CPCO FORCE DUMP OF FILE DATA
  4577. PRS4.1 SA1 CPAR+/COMSPFS/CPLS
  4578. SA2 CPAR+/COMSPFS/CPUS
  4579. NZ X1,PRS4.2 IF LOWER SIZE LIMIT .NE. 0
  4580. BX2 X6-X2
  4581. ZR X2,PRS4.3 IF UNLIMITED UPPER SIZE LIMIT
  4582. PRS4.2 SA6 FLSF FILE LENGTH NEEDED FOR *LS*/*US* SELECTION
  4583.  
  4584. * INITIALIZE OUTPUT FILE AND SUMMARY FILE.
  4585.  
  4586. PRS4.3 RJ IOF INITIALIZE OUTPUT FILES
  4587. RJ OSP OUTPUT SELECTION PARAMETERS
  4588. SX6 DSTBUF SET DEVICE STATUS BUFFER ADDRESS
  4589. RJ ODV OUTPUT DEVICE STATUS
  4590.  
  4591. * GENERATE CIR IF REQUESTED.
  4592.  
  4593. PRS5 SA1 CPAR+/COMSPFS/CPOP CHECK IF CIR DESIRED
  4594. LX1 2
  4595. PL X1,PRS6 IF NO *MODIFICATION DATE* OPTION
  4596. SA1 CPAR+/COMSPFS/CPBD
  4597. NZ X1,PRS6 IF *BD=YYMMDD* PARAMETER SPECIFIED
  4598. SX6 B1 SET INCREMENTAL DUMP FLAG
  4599. SA6 INCD
  4600. SA1 CPAR+/COMSPFS/CPIP
  4601. NZ X1,PRS6 IF PROCESSING INHIBITED
  4602. RJ CCI CREATE CATALOG IMAGE
  4603. RJ PSI PROCESS SORTED CIR OUTPUT
  4604.  
  4605. * SET UP OUTPUT PARAMETERS FOR FILE PROCESSING.
  4606.  
  4607. PRS6 RJ IFL INITIALIZE FILE PROCESSING
  4608.  
  4609. * INITIALIZE *PFM* POST PROCESSING REQUEST FILE IF PURGE FILES
  4610. * AFTER DUMP OR DESTAGE DUMP.
  4611.  
  4612. SA1 CPAR+/COMSPFS/CPOP CHECK *PURGE AFTER* OPTION
  4613. SA2 CPAR+/COMSPFS/CPDT
  4614. SA3 PRSD SELECT *PURGE* PROCESSING
  4615. LX1 6
  4616. NG X1,PRS7 IF PURGE OPTION SPECIFIED
  4617. ZR X2,PRSX IF NOT DESTAGE DUMP
  4618. SA3 PRSE SELECT *SETASA* PROCESSOR
  4619. PRS7 BX6 X3
  4620. SA6 PFRI
  4621. SX6 B0+ CLEAR INCREMENTAL DUMP FLAG
  4622. SA6 INCD
  4623. EQ PRSX RETURN
  4624.  
  4625.  
  4626. PRSB BSS 0 CODE TO OVERLAY *MMC*
  4627. MOVE HERE
  4628.  
  4629. PRSC BSS 0 Y-COORDINATE TABLE
  4630. KDL *
  4631.  
  4632. PRSD VFD 12/2000B+PRPP,30/0,18/=10HPURGING
  4633.  
  4634. PRSE VFD 12/2000B+SAPP,30/0,18/=10HDESTAGING
  4635.  
  4636. PRSH DATA 40HFILES DUMPED TO ARCHIVE FILE.
  4637. PRSK VFD 36/,6/ODEBL,18/ODEB POINTER TO *OD* EXT. BUFFER
  4638. SPACE 4,6
  4639. * PRESET FETS.
  4640.  
  4641. ODF BSS 0 OPTICAL DISK MOUNT FILE
  4642. ZZZZZOD FILEB ODFBUF,ODFBL,FET=10
  4643. TITLE PRESET SUBROUTINES.
  4644. CDR SPACE 4,15
  4645. ** CDR - CHECK DESTAGE REQUIREMENTS.
  4646. *
  4647. * ENTRY (A5) = FET ADDRESS.
  4648. * (X5) = FILE NAME.
  4649. *
  4650. * EXIT (VSNP) = UPDATED ALTERNATE STORAGE VSN POINTER.
  4651. * TO *ABT* IF ERROR IN EQUIPMENT TYPE OR VSN FORMAT.
  4652. *
  4653. * USES X - ALL.
  4654. * A - 1, 2, 3, 4, 6, 7.
  4655. * B - 2, 7.
  4656. *
  4657. * CALLS DXB.
  4658. *
  4659. * MACROS FILINFO, REWIND.
  4660.  
  4661.  
  4662. CDR SUBR ENTRY/EXIT
  4663. SA2 CPAR+/COMSPFS/CPDT
  4664. ZR X2,CDRX IF NOT DESTAGE DUMP
  4665. REWIND A5 INSURE FILE AT BOI
  4666. MX7 42
  4667. SX6 100001B
  4668. BX7 X7*X5 ISOLATE FILE NAME
  4669. BX6 X6+X7 SET FILE NAME AND BLOCK LENGTH
  4670. SA6 CDRA
  4671. FILINFO A6 GET FILE STATUS
  4672. SA2 CDRA+1 READ DEVICE TYPE
  4673. BX0 X2
  4674. AX0 48
  4675. SX0 X0-2ROD
  4676. ZR X0,CDR3 IF OPTICAL DISK DEVICE TYPE *OD*
  4677. MX0 -2
  4678. LX2 0-25
  4679. BX6 -X0*X2
  4680. SB2 ERTD * NT/CT/AT TAPE OR OD REQD FOR DESTAGE.*
  4681. ZR X6,ABT IF NOT *NT*, *CT*, OR *AT* TAPE
  4682. LX2 0-18-0+25 ISOLATE *NT* BIT
  4683. BX0 -X0*X2
  4684. BX6 X6-X0 CLEAR TAPE DEVICE TYPE IF *NT* TAPE
  4685. LX6 55-0 SAVE TAPE DEVICE TYPE
  4686. SA6 CDRB
  4687. SA3 CDRA+5 READ TAPE FORMAT
  4688. MX4 -6
  4689. LX3 -6
  4690. BX3 -X4*X3
  4691. SB2 ERFD * TAPE FORMAT OR LABEL NOT VALID ... *
  4692. ZR X3,CDR0 IF *I* FORMAT TAPE
  4693. SX3 X3-/COMSMTX/TFLI
  4694. NZ X3,ABT IF NOT *LI* FORMAT TAPE
  4695. MX3 1 SAVE *LI* FORMAT FLAG
  4696. LX3 54-59
  4697. BX6 X6+X3
  4698. SA6 A6
  4699. CDR0 SA4 A3+B1 READ LABEL TYPE
  4700. LX4 -12
  4701. BX4 -X6*X4
  4702. SX4 X4-1
  4703. NZ X4,ABT IF NOT STANDARD LABEL TYPE
  4704. SA4 A4+B1 READ VSN
  4705. MX7 -36
  4706. LX4 -24
  4707. BX4 -X7*X4
  4708. BX1 -X6*X4
  4709. ZR X1,CDR2 IF NOT A SIX CHARACTER VSN
  4710. SX2 X1-1RB
  4711. SX1 X1-1RD
  4712. ZR X2,CDR2 IF *B* RADIX
  4713. ZR X1,CDR2 IF *D* RADIX
  4714. MX0 -24
  4715. BX5 -X0*X4 NUMERIC PART OF VSN
  4716. SB7 B1 SET DECIMAL CONVERSION
  4717. LX5 36
  4718. RJ DXB CONVERT NUMERIC PART OF VSN
  4719. NZ X4,CDR2 IF NOT ALL NUMERIC CHARACTERS
  4720. SA4 CDRA+7 READ VSN
  4721. SA2 VSNP
  4722. SX1 X6-4095-1
  4723. MX7 12 EXTRACT VSN PREFIX
  4724. BX4 X7*X4
  4725. LX4 -36
  4726. NZ X2,CDR1 IF VSN POINTER ALREADY SET
  4727. PL X1,CDR2 IF NUMERIC PART OF VSN .GT. 4095
  4728. BX6 X4+X6 BUILD PACKED VSN
  4729. SX7 B1 SET INITIAL FILE SEQUENCE NUMBER
  4730. LX7 24
  4731. BX6 X6+X7
  4732. SA1 CDRB MERGE TAPE DEVICE TYPE AND FORMAT FLAGS
  4733. BX6 X1+X6
  4734. SA6 VSNP SET VSN POINTER (PACKED VSN)
  4735. EQ CDRX RETURN
  4736.  
  4737. * CHECK CORRESPONDING SECONDARY (VERIFY FILE) VSN.
  4738.  
  4739. CDR1 MX3 -24 ISOLATE EXISTING PACKED VSN
  4740. BX3 -X3*X2
  4741. SX1 5000
  4742. IX6 X6-X1
  4743. NG X6,CDR2 IF VSN SUFFIX .GT. 4095 AND .LT. 5000
  4744. BX6 X6+X4 BUILD NEW PACKED VSN FOR COMPARISON
  4745. BX6 X6-X3
  4746. NZ X6,CDR2 IF SECONDARY VSN DOES NOT CORRESPOND
  4747. SA1 CDRB CHECK TAPE DEVICE TYPE AND FORMAT FLAGS
  4748. MX3 3
  4749. LX3 56-59
  4750. BX6 X3*X2
  4751. BX6 X6-X1
  4752. NZ X6,CDR2 IF DEVICE TYPE & FORMAT DO NOT CORRESPOND
  4753. SX7 B1+ SET SECONDARY VSN FLAG IN VSN POINTER
  4754. LX7 49-0
  4755. BX7 X2+X7
  4756. SA7 VSNP
  4757. EQ CDRX RETURN
  4758.  
  4759. CDR2 SB2 ERVD * VSN NOT VALID FOR DESTAGE.*
  4760. EQ ABT ABORT
  4761.  
  4762. * CHECK OPTICAL DISK LABEL INFORMATION.
  4763. *
  4764. * EXPECTS VSN = *AAXXXX*
  4765. * PARTITION NAME = *DEFAULT*
  4766. * RECORDED FILE NAME = *PFARCHIVE*
  4767. * FILE OWNER NAME = *SYSTEMX*
  4768. * FILE GROUP NAME = FAMILY
  4769. * VERSION = 1 - 4095
  4770.  
  4771. CDR3 REWIND ODF,R
  4772. READ ODF
  4773. CDR4 READW ODF,CDRC,1 SEARCH OPTICAL DISK MOUNT FILE
  4774. SA1 A5 COMPARE FILE NAMES
  4775. SA2 CDRA
  4776. MX0 42
  4777. BX6 X1-X2
  4778. BX6 X0*X6
  4779. ZR X6,CDR5 IF FILE NAMES MATCH
  4780. SKIPW ODF,1600B-1 SKIP ENTRY (16 SECTORS)
  4781. EQ CDR4 PROCESS NEXT ENTRY
  4782.  
  4783. CDR5 SKIPW ODF,10-1
  4784. READW ODF,CDRD,1 READ VERSION NUMBER
  4785. SKIPW ODF,40B-11
  4786. READW ODF,CDRC,16 READ VSN/PARTITION/OWNER INFORMATION
  4787. NZ X1,CDR8 IF EOR/EOF ON FILE
  4788. SA4 CDRC VERIFY VSN
  4789. MX7 -36
  4790. LX4 -24
  4791. BX3 X7*X4
  4792. MX6 -6
  4793. NZ X3,CDR2 IF MORE THAN SIX CHARACTERS
  4794. BX1 -X6*X4
  4795. ZR X1,CDR2 IF LESS THAN SIX CHARACTERS
  4796. SX2 X1-1RB
  4797. SX1 X1-1RD
  4798. ZR X2,CDR2 IF *B* RADIX
  4799. ZR X1,CDR2 IF *D* RADIX
  4800. MX0 -24
  4801. BX5 -X0*X4 NUMERIC PART OF VSN
  4802. SB7 B1 SET DECIMAL CONVERSION
  4803. LX5 36
  4804. RJ DXB CONVERT NUMERIC PART OF VSN
  4805. NZ X4,CDR2 IF NOT ALL NUMERIC CHARACTERS
  4806. SA4 CDRC GET VSN
  4807. SX1 X6-4095-1
  4808. MX7 12 EXTRACT VSN PREFIX
  4809. BX4 X7*X4
  4810. LX4 -36
  4811. PL X1,CDR2 IF NUMERIC PART OF VSN .GT. 4095
  4812. SX7 ATOD SET OPTICAL DISK STORAGE
  4813. BX6 X4+X6 BUILD PACKED VSN
  4814. LX7 24+6+6
  4815. BX6 X6+X7
  4816. SA6 VSNP SET VSN POINTER (PACKED VSN)
  4817. SA4 CDRC+2 VERIFY PARTITION NAME
  4818. SA1 CDRE
  4819. BX6 X1-X4
  4820. NZ X6,CDR7 IF NOT *DEFAULT* PARTITION
  4821. SA4 CDRC+4 VERIFY RECORDED FILE NAME
  4822. SA1 CDRF
  4823. BX6 X1-X4
  4824. NZ X6,CDR6 IF RECORDED FILE NAME NOT *PFARCHIVE*
  4825. SA4 CDRC+8 VERIFY FILE OWNER NAME
  4826. SA1 CDRG
  4827. BX6 X1-X4
  4828. NZ X6,CDR6 IF NOT *SYSTEMX*
  4829. SA4 CDRC+12 VERIFY GROUP OWNER NAME
  4830. SA1 CDRH
  4831. BX6 X1-X4
  4832. NZ X6,CDR6 IF GROUP OWNER NAME NOT *NOSARCHIVE*
  4833. SA4 A4+B1
  4834. NZ X4,CDR6 IF GROUP OWNER INVALID
  4835. SA4 CDRD VERIFY VERSION NUMBER
  4836. SX7 X4-4096
  4837. PL X7,CDR9 IF VERSION NUMBER TOO LARGE
  4838. SA1 VSNP SET VERSION NUMBER IN POINTER
  4839. LX4 24
  4840. BX6 X1+X4
  4841. SA6 A1
  4842. MX6 1 SET *AFLOK* FLAG
  4843. SA6 FLOK
  4844. RECALL ODF WAIT NOT BUSY
  4845. EQ CDRX RETURN
  4846.  
  4847. CDR6 SB2 ERLD * OPTICAL DISK LABEL NOT VALID ...*
  4848. EQ ABT ABORT
  4849.  
  4850. CDR7 SB2 ERPD * PARTITION NOT VALID FOR DESTAGE.*
  4851. EQ ABT ABORT
  4852.  
  4853. CDR8 SB2 EROF * INTERNAL ERROR ON FILE ZZZZZOD.*
  4854. EQ ABT ABORT
  4855.  
  4856. CDR9 SB2 ERND * VERSION NUMBER EXCEEDED FOR DESTAGE.*
  4857. EQ ABT ABORT
  4858.  
  4859.  
  4860. CDRA BSSZ 5 *FILNFO* CALL BLOCK
  4861. VFD 54/0,6/1 TAPE FORMAT KEY
  4862. VFD 54/0,6/2 LABEL TYPE KEY
  4863. VFD 54/0,6/4 VSN KEY
  4864.  
  4865. CDRB CON 0 TAPE DEVICE TYPE AND FORMAT FLAGS
  4866. CDRC BSSZ 16 OPTICAL DISK LABEL INFORMATION
  4867. CDRD BSSZ 1 VERSION NUMBER
  4868. CDRE VFD 60/0LDEFAULT
  4869. CDRF VFD 60/0LPFARCHIVE
  4870. CDRG VFD 60/0LSYSTEMX
  4871. CDRH VFD 60/0LNOSARCHIVE
  4872. GRH SPACE 4,15
  4873. ** GRH - GENERATE *RDF* HEADER RECORD.
  4874. *
  4875. * ENTRY ARCHIVE FILE LABEL RECORD GENERATED.
  4876. * RELEASE DATA FILE (RDF) OPEN.
  4877. *
  4878. * EXIT HEADER RECORD WRITTEN TO RELEASE DATA FILE,
  4879. * IF *RDF* REQUESTED.
  4880. *
  4881. * USES X - 1, 2, 6.
  4882. * A - 6.
  4883. *
  4884. * MACROS WRITER, WRITEW.
  4885.  
  4886.  
  4887. GRH SUBR ENTRY/EXIT
  4888. SA1 CPAR+/COMSPFS/CPRD
  4889. ZR X1,GRHX IF RDF NOT REQUESTED
  4890. SA1 /COMSPFS/STDT SET UP CONTROL WORD
  4891. SX2 HCWD
  4892. LX1 47-35
  4893. BX6 X1+X2
  4894. SA6 CONTH
  4895. WRITEW RDF,CONTH,B1 WRITE CONTROL WORD
  4896. WRITEW X2,DMPLBL,/COMSPFS/AFLBL WRITE DUMP LABEL
  4897. WRITER X2,R
  4898. EQ GRHX RETURN
  4899. LBL SPACE 4,15
  4900. ** LBL - WRITE PFDUMP ARCHIVE FILE LABEL.
  4901. *
  4902. * ENTRY (DMPLBL - DMPLBL+/COMSPFS/AFLBL) = LABEL PARAMETERS.
  4903. * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
  4904. *
  4905. * EXIT ARCHIVE FILE SKIP COUNT PROCESSED.
  4906. * ARCHIVE FILE LABEL WRITTEN TO ARCHIVE FILE.
  4907. *
  4908. * USES X - 0, 1, 2, 6, 7.
  4909. * A - 1, 6, 7.
  4910. *
  4911. * CALS FAF.
  4912. *
  4913. * MACROS ARCHIVE, SKIPFF.
  4914.  
  4915.  
  4916. LBL SUBR ENTRY/EXIT
  4917. SA3 CPAR+/COMSPFS/CPSF
  4918. ZR X3,LBL1 IF NO FILES TO SKIP
  4919. SKIPFF TAPE,X3 SKIP FILES ON ARCHIVE FILE
  4920. SA1 CPAR+/COMSPFS/CPVF
  4921. ZR X1,LBL1 IF NO VERIFY FILE SPECIFIED
  4922. SKIPFF PFVER,X3 SKIP FILES ON ARCHIVE VERIFY FILE
  4923. LBL1 SX1 LCWC
  4924. SX2 /COMSPFS/AFLBL SET UP CONTROL WORD
  4925. BX6 X1+X2
  4926. SA1 DMPLBL
  4927. MX0 36
  4928. BX1 X0*X1
  4929. BX6 X6+X1
  4930. SA6 CONTH
  4931. ARCHIVE WRITEW,CONTH,B1 WRITE CONTROL WORD
  4932. ARCHIVE WRITEW,DMPLBL,/COMSPFS/AFLBL WRITE DUMP LABEL
  4933. ARCHIVE WRITER
  4934. SA1 FLOK
  4935. ZR X1,LBLX IF NOT DESTAGE TO OPTICAL DISK
  4936. RJ FAF FLUSH ARCHIVE FILE BUFFERS
  4937. EQ LBLX RETURN
  4938. SLP SPACE 4,15
  4939. ** SLP - SET LABEL PARAMETERS.
  4940. *
  4941. * ENTRY (CPAR) = CONVERTED PARAMETER ARRAY.
  4942. * (MASK) = FILE SELECTION MASK.
  4943. *
  4944. * EXIT DUMP PARAMETERS SET IN ARCHIVE FILE LABEL.
  4945. *
  4946. * USES X - 1, 2, 3, 4, 6, 7.
  4947. * A - 1, 2, 3, 6, 7.
  4948. * B - 2, 3, 4, 5.
  4949. *
  4950. * CALLS SFN.
  4951. *
  4952. * MACROS EDATE, ETIME.
  4953.  
  4954.  
  4955. SLP SUBR ENTRY/EXIT
  4956.  
  4957. * SET FILE MASK, DATE AND TIME, FAMILY OR PACK NAME, AND
  4958. * PREVIOUS VSN.
  4959.  
  4960. SA1 MASK SET FILE SELECTION MASK IN LABEL
  4961. SA2 DMPLBL+/COMSPFS/MAAL
  4962. BX6 X1+X2
  4963. SA6 A2
  4964. SA1 /COMSPFS/STDT GET DUMP START DATE
  4965. AX1 18-0
  4966. EDATE X1
  4967. SA6 DMPLBL+/COMSPFS/DAAL SET DATE IN LABEL
  4968. SA1 /COMSPFS/STDT GET DUMP START TIME
  4969. MX2 -18
  4970. BX1 -X2*X1
  4971. ETIME X1
  4972. SA6 DMPLBL+/COMSPFS/TIAL SET TIME IN LABEL
  4973. SA1 CPAR+/COMSPFS/CPFN
  4974. SA2 CPAR+/COMSPFS/CPPN
  4975. BX6 X1
  4976. BX7 X2
  4977. SA6 DMPLBL+/COMSPFS/FMAL SET FAMILY NAME IN LABEL
  4978. SA7 DMPLBL+/COMSPFS/PNAL SET PACK NAME IN LABEL
  4979. SA1 CPAR+/COMSPFS/CPPV PUT PREVIOUS VSN IN LABEL
  4980. RJ SFN
  4981. SA6 DMPLBL+/COMSPFS/PVAL
  4982.  
  4983. * SET MASTER DEVICE MASKS AND CATALOG TRACK COUNTS.
  4984. * IF FILE STAGING IS NOT SUPPRESSED, THE MASTER DEVICE MAP IS
  4985. * NOT WRITTEN BECAUSE FILES COPIED FROM ALTERNATE STORAGE TAPES
  4986. * ARE NOT DUMPED IN CATALOG TRACK ORDER.
  4987.  
  4988. SA1 CPAR+/COMSPFS/CPOP
  4989. LX1 59-47
  4990. PL X1,SLPX IF STAGING NOT SUPPRESSED
  4991. MX2 -9
  4992. MX4 -8
  4993. SB4 B0 SHIFT COUNT
  4994. SB2 MSTT+1 SET ADDRESS OF MASS STORAGE TABLE
  4995. SB3 DMPLBL+/COMSPFS/D0AL DEVICE INFORMATION OFFSET
  4996. SB5 60
  4997. SLP2 SA3 B2 MASS STORAGE TABLE ENTRY
  4998. ZR X3,SLPX IF END OF MASS STORAGE TABLE
  4999. BX6 -X4*X3 GET DEVICE MASK
  5000. SB2 B2+2 ADVANCE MASS STORAGE TABLE ADDRESS
  5001. ZR X6,SLP2 IF NOT MASTER DEVICE
  5002. SA3 A3-B1 GET NUMBER OF CATALOG TRACKS
  5003. LX6 12
  5004. LX3 -15
  5005. BX3 -X2*X3
  5006. BX6 X6+X3
  5007. SA1 B3 STORE DEVICE MASK AND CATALOG TRACKS
  5008. LX6 X6,B4
  5009. BX6 X6+X1
  5010. SA6 A1
  5011. SB4 B4+20
  5012. LT B4,B5,SLP2 IF MORE ROOM IN LABEL WORD
  5013. SB3 B3+B1 ADVANCE POINTER
  5014. SB4 B0 RESET SHIFT COUNT
  5015. EQ SLP2 GET NEXT ENTRY
  5016. TITLE CATALOG IMAGE RECORD SUBROUTINES.
  5017. BCL SPACE 4,15
  5018. ** BCL - BUILD CATALOG LIST.
  5019. *
  5020. * ENTRY (B2) = NEXT WORD ADDRESS OF CATALOG BUFFER.
  5021. * (B3) = NEXT WORD ADDRESS OF WORKING STORAGE BUFFER.
  5022. * (B4) = LAST WORD ADDRESS OF CATALOG BUFFER.
  5023. *
  5024. * EXIT (B2) = NEXT WORD ADDRESS OF CATALOG BUFFER.
  5025. * (B3) = NEXT WORD ADDRESS OF WORKING STORAGE BUFFER.
  5026. * (B4) = LAST WORD ADDRESS OF CATALOG BUFFER.
  5027. * (B5) = NUMBER OF CATALOGS.
  5028. *
  5029. * USES X - 0, 1, 2, 6.
  5030. * A - 1, 2, 6.
  5031. * B - 2, 3, 5.
  5032.  
  5033.  
  5034. BCL SUBR ENTRY/EXIT
  5035. SB5 B0 INITIALIZE NUMBER OF CATALOGS
  5036. MX3 -18
  5037. BCL1 SX6 B3-DBUFH-776B
  5038. PL X6,BCLX IF END OF 1000B WORD BLOCK
  5039. SA2 B2
  5040. BX6 -X3*X2
  5041. ZR X6,BCL3 IF PURGED FILE
  5042. SA1 CPAR+/COMSPFS/CPOP
  5043. LX1 59-45
  5044. NG X1,BCL2 IF OP=Y SELECTED
  5045. SA1 B2+FCBR GET BACKUP REQUIREMENT
  5046. MX0 -3
  5047. LX1 0-54
  5048. BX6 -X0*X1
  5049. SX6 X6-BRNO
  5050. ZR X6,BCL3 IF NO BACKUP REQUIRED
  5051.  
  5052. * GENERATE CATALOG IMAGE ENTRY.
  5053.  
  5054. BCL2 BX6 X2 STORE WORD IN CATALOG LIST
  5055. SA6 B3
  5056. SB3 B3+B1
  5057. SB5 B5+B1
  5058. MX0 18 SET SECOND WORD OF CIR ENTRY
  5059. SA1 B2+3
  5060. SA2 A1+B1
  5061. LX1 6
  5062. BX6 X0*X1
  5063. BX2 -X0*X2
  5064. BX6 X6+X2
  5065. SA6 B3
  5066. SB3 B3+B1
  5067. SB5 B5+B1
  5068. BCL3 SB2 B2+NWCE INCREMENT CATALOG BUFFER INDEX
  5069. LT B2,B4,BCL1 IF NOT AT END OF CATALOG BUFFER
  5070. EQ BCLX RETURN
  5071. CCI SPACE 4,20
  5072. ** CCI - CREATE CATALOG IMAGE.
  5073. *
  5074. * EXIT CIR WRITTEN TO ARCHIVE FILE.
  5075. *
  5076. * USES X - ALL.
  5077. * A - 1, 2, 3, 4, 5, 6, 7.
  5078. * B - 2, 3, 4, 5, 6.
  5079. *
  5080. * CALLS BCL, CAC, ICI, RCS, SAC, WIB.
  5081. *
  5082. * MACROS ARCHIVE, CALLPFU, MOVE, PCINT, READCW, RETURN,
  5083. * WRITER.
  5084.  
  5085.  
  5086. CCI16 RETURN CATC
  5087. SA5 IDSA+/COMSPFS/ADMS
  5088. MOVE 4,MSGL,X5 CLEAR MESSAGE
  5089.  
  5090. CCI SUBR ENTRY/EXIT
  5091. SA1 CPAR+/COMSPFS/CPPN PF DESCRIPTION = PACK NAME
  5092. MX2 42
  5093. BX6 X2*X1
  5094. NZ X1,CCI1 IF PACK NAME SPECIFIED
  5095. SA1 MSTT PF DESCRIPTION = A FAMILY EQUIPMENT
  5096. MX2 -9
  5097. AX1 6
  5098. BX6 -X2*X1
  5099. CCI1 SA6 CDWD SAVE PF DESCRIPTION
  5100.  
  5101. * INITIALIZE MESSAGES AND OUTPUT FILES FOR CIR PROCESSING.
  5102.  
  5103. RJ ICI INITIALIZE FOR CIR OUTPUT
  5104. SA5 IDSA+/COMSPFS/ADMS
  5105. MOVE 3,CIRM,X5
  5106. EQ CCI3 SEARCH FOR DEVICE
  5107.  
  5108. * SEARCH FOR MASTER DEVICE TO PROCESS.
  5109.  
  5110. CCI2 PCINT CATC,CTCC CLEAR CATALOG TRACK INTERLOCK
  5111.  
  5112. CCI3 SX6 B1 INITIALIZE CATALOG TRACK
  5113. SA6 CCTR
  5114. SA1 CCIB GET MSTT INDEX
  5115. SX6 X1+2
  5116. SA6 A1
  5117. SA1 MSTT+X1 GET MASS STORAGE TABLE ENTRY
  5118. SA2 A1+B1
  5119. ZR X1,CCI16 IF END OF MASS STORAGE TABLE
  5120.  
  5121. * INITIALIZE FOR CATALOG TRACK PROCESSING.
  5122.  
  5123. MX6 -8 GET DEVICE MASK
  5124. BX3 -X6*X2
  5125. ZR X3,CCI3 IF NOT A MASTER DEVICE
  5126. SA4 MASK GET FILE SELECTIION MASK
  5127. BX4 X4*X3
  5128. ZR X4,CCI3 IF THIS DEVICE NOT BEING DUMPED
  5129. MX6 -6
  5130. BX6 -X6*X1
  5131. SA6 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
  5132. MX7 -9
  5133. LX1 -6
  5134. BX6 -X7*X1
  5135. SA6 MAEQ
  5136. LX1 -9
  5137. BX6 -X7*X1
  5138. LX3 24 PUT DEVICE MASK IN HEADER
  5139. SA6 NCAT
  5140. SA1 CIRH GET CATALOG IMAGE HEADER
  5141. LX6 36 PUT NUMBER OF CATALOG TRACKS IN HEADER
  5142. BX3 X1+X3
  5143. BX7 X3+X6
  5144. SB2 B0 CLEAR USER INDEX
  5145. SA7 CICH SAVE HEADER WORD
  5146. CCI4 LX2 -1 POSITION MASK BIT
  5147. SB2 B2+B1 ADVANCE USER INDEX
  5148. PL X2,CCI4 IF MASK BIT NOT SET
  5149. SA1 CDPM SET CATALOG DESCRIPTION PARAMETER
  5150. SX7 B2-B1 SET CATALOG DESCRIPTION USER INDEX
  5151. BX6 X1
  5152. SA7 CDUI
  5153. SA6 CATC+FTPM
  5154. RJ SAC SET PF ACTIVITY COUNT
  5155. CALLPFU CATC,CTCT,R GET CORRECT CATALOG TRACK
  5156. SA1 CATC+FTPM GET CATALOG TRACK PARAMETERS
  5157. SX2 5 SET FILE STATUS
  5158. MX0 -24
  5159. BX1 -X0*X1 SET EQ AND FIRST TRACK
  5160. MX0 -12
  5161. BX7 -X0*X1 SET CURRENT TRACK
  5162. LX1 36
  5163. BX2 X1+X2 BUILD CATALOG TRACK FST ENTRY
  5164. LX7 24
  5165. BX6 X2+X7
  5166. SA6 A1
  5167. RETURN CATC,R RETURN ANY EXISTING CATC
  5168. CALLPFU CATC,CTOL,R CREATE CATALOG TRACK FILE
  5169. PCINT CATC,CTSC SET CATALOG TRACK INTERLOCK
  5170.  
  5171. * INITIALIZE CATALOG TRACK WORKING BUFFER.
  5172.  
  5173. CCI5 READCW CATC,17B INITIATE CATALOG READ
  5174. BX6 X6-X6 CLEAR EMPTY RECORD FLAG
  5175. SA6 EMRF
  5176. SX6 DBUFH INITIALIZE CONTROL WORD ADDRESS
  5177. SA6 CWAD
  5178. SB3 X6+B1 INITIALIZE WORKING STORAGE POINTER
  5179. SB5 B0
  5180.  
  5181. * READ CATALOG FILE.
  5182.  
  5183. CCI6 SX6 B3 SAVE *CIR* BUFFER PARAMETERS
  5184. SX7 B5
  5185. LX6 18
  5186. BX7 X6+X7
  5187. SA7 CCIA
  5188. CCI6.1 SX6 B0+
  5189. SA6 CFTS CLEAR END OF CATALOG TRACK STATUS
  5190. SX2 CATC READ BUFFER OF CATALOG ENTRIES
  5191. RJ RCS
  5192. SA2 CSLW
  5193. SX6 B1
  5194. SX7 X2 SET LWA+1 OF ENTRIES
  5195. ZR X1,CCI6.2 IF ENTRIES READ
  5196. NG X1,CCI6.1 IF READ ERROR WITH DATA TRANSFERRED
  5197. SA6 CFTS SET END OF CATALOG TRACK
  5198. SX7 CSBF SET NO DATA READ
  5199. CCI6.2 SX6 CSBF SAVE CATALOG BUFFER PARAMETERS
  5200. LX6 18
  5201. BX7 X6+X7
  5202. SA7 CCIC
  5203. SA1 CCIA RESTORE *CIR* BUFFER PARAMETERS
  5204. SB5 X1
  5205. LX1 -18
  5206. SA2 CCIC RESTORE CATALOG BUFFER PARAMETERS
  5207. SB3 X1
  5208. SB4 X2
  5209. LX2 -18
  5210. SB2 X2
  5211. NE B2,B4,CCI7 IF CATALOG ENTRIES TRANSFERRED
  5212. SA1 CFTS
  5213. ZR X1,CCI6 IF NOT END OF CATALOG TRACK
  5214. SA2 EMRF
  5215. NZ X2,CCI8 IF NOT EMPTY RECORD
  5216. EQ CCI13 CONTINUE TO NEXT CATALOG TRACK
  5217.  
  5218. * BUILD *CIR*.
  5219.  
  5220. CCI7 SX6 B1 SET EMPTY RECORD FLAG
  5221. SA6 EMRF
  5222. RJ BCL BUILD CATALOG LIST
  5223. CCI8 SA2 NCTL UPDATE NUMBER OF CATALOGS ON THIS TRACK
  5224. SX4 B5
  5225. SB5 B0 CLEAR CATALOG COUNT
  5226. IX6 X2+X4
  5227. SA3 NCTB
  5228. SA6 A2
  5229. IX6 X3+X4
  5230. SA6 A3
  5231. SA2 CWAD GET CONTROL WORD ADDRESS
  5232. GE B2,B4,CCI9 IF CATALOG BUFFER EMPTY
  5233. SX3 CICW SET UP CONTROL WORD
  5234. SX7 B5 SAVE *CIR* BUFFER PARAMETER
  5235. SA7 CCIA
  5236. SX6 B2 SAVE CATALOG BUFFER PARAMETERS
  5237. SX7 B4+
  5238. LX6 18
  5239. BX7 X6+X7
  5240. SA7 CCIC
  5241. RJ WIB WRITE IMAGE BLOCK
  5242. SA1 CCIA RESTORE *CIR* BUFFER PARAMETER
  5243. SB5 X1+
  5244. SA1 CCIC RESTORE CATALOG BUFFER PARAMETERS
  5245. SB4 X1
  5246. LX1 -18
  5247. SB2 X1
  5248. EQ CCI7 LOOP TO FINISH CATALOG BLOCK
  5249.  
  5250. CCI9 SX6 B3-DBUFH-776B
  5251. PL X6,CCI10 IF END OF 1000B WORD BLOCK
  5252. SA1 CFTS
  5253. ZR X1,CCI6 IF NOT EOR OR EOF
  5254. EQ CCI11 WRITE IMAGE BLOCK
  5255.  
  5256. CCI10 SX3 CICW SET CONTROL WORD
  5257. SA1 CFTS
  5258. ZR X1,CCI12 IF NOT EOR OR EOF
  5259. CCI11 SX3 CRWC SET EOR CONTROL WORD
  5260. CCI12 SX7 B5 SAVE *CIR* BUFFER PARAMETER
  5261. SA7 CCIA
  5262. SX6 B2 SAVE CATALOG BUFFER PARAMETERS
  5263. SX7 B4+
  5264. LX6 18
  5265. BX7 X6+X7
  5266. SA7 CCIC
  5267. RJ WIB WRITE IMAGE BLOCK
  5268. SA1 CCIA RESTORE *CIR* BUFFER PARAMETER
  5269. SB5 X1+
  5270. SA1 CCIC RESTORE CATALOG BUFFER PARAMETERS
  5271. SB4 X1
  5272. LX1 -18
  5273. SB2 X1+
  5274. SA1 CFTS
  5275. ZR X1,CCI6 IF NOT EOR OR EOF
  5276. CCI13 SA2 EMRF
  5277. ZR X2,CCI14 IF EMPTY CATALOG TRACK
  5278. ARCHIVE WRITER
  5279. CCI14 SA2 NCAT CONTINUE TO NEXT CATALOG TRACK
  5280. SA3 CCTR
  5281. SX6 X3+B1
  5282. IX2 X3-X2
  5283. PL X2,CCI15 IF END OF CATALOG TRACKS
  5284. SA6 A3
  5285.  
  5286. * ADVANCE TO NEXT CATALOG TRACK.
  5287.  
  5288. PCINT CATC,CTAC ADVANCE CATALOG TRACK
  5289. EQ CCI5 LOOP FOR NEXT TRACK
  5290.  
  5291. * ADVANCE TO NEXT DEVICE.
  5292.  
  5293. CCI15 RJ CAC CLEAR PF ACTIVITY COUNT
  5294. EQ CCI2 SEARCH FOR NEXT MASTER DEVICE
  5295.  
  5296.  
  5297. CCIA BSSZ 1 CATALOG TRACK WORKING BUFFER INDICES
  5298. CCIB CON 0 MSTT LOCATOR
  5299. CCIC BSS 1 CATALOG BUFFER PARAMETER SAVE AREA
  5300.  
  5301. CDPM VFD 24/0,18/CDWD,18/CDUI CATALOG DESCRIPTION PARAMETER
  5302. CDUI BSS 1 CATALOG DESCRIPTION USER INDEX
  5303.  
  5304. *T CDWD 42/ PN, 6/, 12/ EQ
  5305. * PN = PACKNAME FOR AN AUXILIARY DEVICE.
  5306. * = 0 FOR A FAMILY DEVICE.
  5307. * EQ = EST ORDINAL OF THE DEVICE.
  5308.  
  5309. CDWD BSS 1 CATALOG DESCRIPTION WORD
  5310. CFTS CON 0 CATALOG TRACK TERMINATION FLAG
  5311. CRIN CON 1 CURRENT RANDOM INDEX
  5312. NCTL BSSZ 1 NUMBER OF CATALOGS
  5313. NCTB BSSZ 1 NUMBER OF CATALOGS IN BLOCK
  5314. EMRF BSSZ 1 EMPTY CATALOG RECORD FLAG
  5315. CCTR CON 1 CURRENT CATALOG TRACK
  5316. CWAD BSSZ 1 CONTROL WORD ADDRESS
  5317. CONT CON CFCW+201B DIRECTORY CONTROL WORD
  5318. TCCT BSSZ 1 TOTAL CATALOG COUNT
  5319. CDIR BSSZ 200B CATALOG DIRECTORY
  5320. CIRM DIS 3,GENERATING CATALOG IMAGE.
  5321. CIRH VFD 12/0LCH,48/0 CATALOG IMAGE RECORD HEADER
  5322. CICH BSS 1 HEADER WORD WITH MASK
  5323. NCAT BSSZ 1 NUMBER OF CATALOG TRACKS
  5324. WIB SPACE 4,20
  5325. ** WIB - WRITE CATALOG IMAGE BLOCK.
  5326. *
  5327. * ENTRY (X2) = ADDRESS TO STORE CONTROL WORD AT.
  5328. * (X3) = CONTROL WORD.
  5329. * (NCTB) = WORD COUNT OF BLOCK.
  5330. * (CICH) = CATALOG IMAGE HEADER.
  5331. * (DBUFH - DBUFH+1000B) = CATALOG IMAGE BLOCK.
  5332. *
  5333. * EXIT (B3) = NEXT AVAILABLE WORKING STORAGE ADDRESS.
  5334. * (NCTB) = 0.
  5335. * (CICH) = 0.
  5336. * (CWAD) = NEXT CONTROL WORD ADDRESS.
  5337. * CATALOG IMAGE BLOCK WRITTEN TO ARCHIVE FILE.
  5338. * CATALOG IMAGE DATA WRITTEN TO SELECTED OUTPUT FILES.
  5339. *
  5340. * USES X - 1, 4, 6, 7.
  5341. * A - 1, 4, 6, 7.
  5342. * B - 3.
  5343. *
  5344. * CALLS OCI.
  5345. *
  5346. * MACROS ARCHIVE.
  5347.  
  5348.  
  5349. WIB SUBR ENTRY/EXIT
  5350.  
  5351. * SET UP CONTROL WORD.
  5352.  
  5353. SA4 NCTB
  5354. SA1 CICH
  5355. BX6 X3+X4 MERGE CONTROL WORD AND WORD COUNT
  5356. BX6 X6+X1 MERGE HEADER IF PRESENT
  5357. SA6 X2
  5358.  
  5359. * WRITE BLOCK.
  5360.  
  5361. SX7 B1 INCLUDE CONTROL WORD IN WORD COUNT
  5362. IX4 X4+X7
  5363. ARCHIVE WRITEW,DBUFH,X4 WRITE CATALOG IMAGE BLOCK
  5364.  
  5365. * WRITE CIR DATA TO OUTPUT FILES.
  5366.  
  5367. SA1 NCTB
  5368. SX6 DBUFH+1 SET BUFFER ADDRESS
  5369. BX7 X1 SET WORD COUNT
  5370. RJ OCI OUTPUT CIR ENTRIES
  5371.  
  5372. * RESET BLOCK POINTERS.
  5373.  
  5374. SX7 B0+
  5375. SA7 CICH CLEAR CATALOG IMAGE HEADER
  5376. SA7 NCTB CLEAR BLOCK CATALOG COUNT
  5377. SX6 DBUFH SET CONTROL WORD ADDRESS
  5378. SA6 CWAD
  5379. SB3 X6+1 SET WORKING STORAGE ADDRESS
  5380. EQ WIBX RETURN
  5381. TITLE PRESET MESSAGES.
  5382. PRESET SPACE 4,10
  5383. ** PRESET ERROR MESSAGES.
  5384.  
  5385.  
  5386. ERAR DATA C* ACCESS LEVEL LIMITS OUT OF RANGE.*
  5387. ERFD DATA C* TAPE FORMAT OR LABEL NOT VALID FOR DESTAGE.*
  5388. ERLD DATA C* OPTICAL DISK LABEL NOT VALID FOR DESTAGE.*
  5389. ERND DATA C* VERSION NUMBER EXCEEDED FOR DESTAGE.*
  5390. EROF DATA C* INTERNAL ERROR ON FILE ZZZZZOD.*
  5391. ERPD DATA C* PARTITION NOT VALID FOR DESTAGE.*
  5392. ERTD DATA C* NT/CT/AT TAPE OR OD REQUIRED FOR DESTAGE.*
  5393. ERVD DATA C* VSN NOT VALID FOR DESTAGE.*
  5394. SPACE 4,10
  5395. * PRESET RESERVED LOCATIONS.
  5396.  
  5397.  
  5398. BUFI CON 0 FL INCREASE FOR VERIFY FILE BUFFER
  5399. COMMON SPACE 4,10
  5400. ** PRESET COMMON DECKS.
  5401.  
  5402.  
  5403. *CALL COMCDCP
  5404. LIST X
  5405. *CALL COMCPFP
  5406. LIST *
  5407. *CALL COMCRSB
  5408. *CALL COMCSKW
  5409. *CALL COMCSOE
  5410.  
  5411. PRK HERE ASSEMBLE Y-COORDINATE PRESET CODE HERE
  5412. SPACE 4,10
  5413. * PRESET BUFFERS.
  5414.  
  5415.  
  5416. ODFBUF EQU * OPTICAL DISK MOUNT FILE BUFFER *ZZZZZOD*
  5417. ESTADD EQU ODFBUF+ODFBL *RSB* PARAMETER WORD FOR EST
  5418. ESTBUF EQU ESTADD+1 EST BUFFER
  5419. MSTADD EQU ESTBUF+ESMX*ESTE *RSB* PARAMETER WORD FOR MST
  5420. MSTBUF EQU MSTADD+1 MST BUFFER
  5421. DSTBUF EQU MSTBUF+MSTL DEVICE STATUS BUFFER
  5422. PREL EQU DSTBUF+2*MSMX*2 PRESET LWA + 1
  5423.  
  5424. ERRNG CATB-PREL PRESET OVERLAYS *CATB*
  5425. SPACE 4,10
  5426. END
cdc/nos2.source/opl871/pfdump.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator