CDC Community

๐Ÿ”น Historical Conservation ๐Ÿ”น

User Tools

Site Tools


plato.source:plaopl:copymf

COPYMF

Table Of Contents

  • [00015] COPY MASTER FILES
  • [00220] SUBROUTINES
  • [00222] CKSTATS - CHECK FILE STATUS FOR BUSY
  • [00241] CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
  • [00252] INIT - INITIALIZE
  • [00296] SETEPR - SET ERROR PROCESSING BIT IN THE FET
  • [00308] FINFO - GET FILE INFO
  • [00321] GETPACK - GET PACK NAME FOR FILE
  • [00367] GETPN - DEFINE FILE ON PACK *PN*
  • [00383] INITPT - INITIALIZE POINTERS
  • [00407] INITCB - INITIAL READ OF COM BUFFER
  • [00452] RSB - READ SUBSYSTEM PROGRAM BLOCK
  • [00487] RTF - REQUEST TAPE FILE
  • [00660] SETEB - SETUP EXTENDED LABEL BUFFER
  • [00684] PROCESS MF DATA
  • [00931] ALL DONE - WRITE COM. BUFF.
  • [01023] DEBUG - USE IF NECESSARY.

Source Code

COPYMF.txt
  1. COPYMF
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK COMMENTS 00 000 87/12/07 13.56
  4. COPYMF
  5. IDENT COPYMF,BEGIN,COPYMF
  6. ABS
  7. SST
  8. ORG 111B
  9. ENTRY COPYMF
  10. ENTRY SSJ=
  11. ENTRY RFL=
  12. SYSCOM B1 DEFINE (B1) = 1
  13. *COMMENT COPY MASTER FILES
  14. COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
  15. TITLE COPY MASTER FILES
  16. SPACE 4
  17. *** COPY MASTER FILES
  18. * J. J. BUCHMANN. 80/06/17.
  19. *
  20. *
  21. *FUNCTION;
  22. * THIS PROGRAM IS RESPONSIBLE FOR THE DUMPING OF ALL THE
  23. * MASTERFILE DATA ONTO A TAPE OR DISK. SEVERAL
  24. * MASTERFILES MAY BE DESIGNATED TO BE DUMPED AT ONE
  25. * TIME. ALL MASTERFILES THAT ARE TO BE DUMPED MUST BE
  26. * ATTACHED PREVIOUSLY IN READ MODE. THE FIRST STEP IS
  27. * TO ATTACH THE COMMUNICATIONS BUFFER TO DETERMINE IF
  28. * ANY OF THE REQUESTED MASTERFILES HAVE BEEN DUMPED
  29. * BEFORE. IF IT HAS BEEN DUMPED, THEN AN ERROR MESSAGE
  30. * IS GIVEN TO THE DAYFILE AND THE JOB ABORT UNLESS THE
  31. * *NA* PARAMETER HAS BEEN SELECTED. IF AN UNDUMPED
  32. * MASTERFILE IS FOUND IN THE PARAMETER LIST, THEN THE
  33. * TAPE OR DISK IS REQUESTED. AFTER THE DUMP MEDIUM IS
  34. * ASSIGNED, THEN THE MASTERFILE IS DUMPED. AS THE FILE
  35. * IS BEING COPIED TO THE DUMP MEDIUM, INFORMATION IS
  36. * BEING EXTRACT AS THE DATA PASSES THRU CENTRAL MEMORY.
  37. * INFORMATION REGARDING FILE NAMES, ACCOUNT NAMES, FILE
  38. * TYPES AND FILE SIZES ARE WRITTEN TO ANOTHER TEMPORARY
  39. * FILE. AFTER ALL MASTERFILES HAVE BEEN DUMPED, THIS
  40. * TEMPORARY FILE IS COPIED ONTO THE COMMUNICATIONS
  41. * BUFFER TO PREVENT DUMPING THIS FILE AGAIN AND TO GIVE
  42. * NECESSARY INFORMATION TO THE BACKUP MERGE PROGRAMS.
  43. *
  44. *PARAMETERS;
  45. * MF=FILENAM MASTERFILE NAME TO BE DUMPED
  46. * MF=FILENAM THIS PARAMETER MAY BE REPEATED IF MORE
  47. * THAN ONE MASTERFILE NEEDS TO BE DUMPED.
  48. * V SELECT OPERATOR ASSIGNED TAPE
  49. * V=VSN SELECT LABEL TAPE (VSN=LABEL)
  50. * PN=PACK DUMP TO DISK PACK *PACK*
  51. * NOTE; IF NEITHER V OR PN IS SELECTED, A
  52. * LABELED SCRATCH TAPE IS NEEDED.
  53. * R=DEVICE DEVICE TYPE OF THE DISK PACK SELECTED
  54. * TYPE ABOVE.
  55. * NA DO NOT ABORT IF THE MASTERFILE ALREADY
  56. * DUMPED
  57. * D USE SYSTEM DEFAULT FOR TAPE DENSITY (SAME
  58. * AS *D* OMITTED)
  59. * D=HD USE TAPE DENSITY OF 800 BPI
  60. * D=PE USE TAPE DENSITY OF 1600 BPI
  61. * D=GE USE TAPE DENSITY OF 6250 BPI
  62. * F USE INTERNAL FORMAT
  63. * F=I USE INTERNAL FORMAT
  64. * F=LI USE LONG INTERNAL FORMAT
  65. *
  66. * /--- BLOCK CONSTANTS 00 000 87/12/07 15.29
  67. *INFORMATIVE MESSAGES;
  68. * VSN XXXXX (VSN ASSIGNED)
  69. * PACK XXXXX (PACK RESIDENCE OF MASTERFILE)
  70. * MF NAME XXXXX (MASTERFILE NAME)
  71. * MF TYPE XXXXX (MASTERFILE TYPE)
  72. * NUM FILES NNN (NUMBER OF FILES ON MASTERFILE)
  73. * MAX FILES NNN (MAXIMUM NUMBER OF FILES ALLOWED)
  74. * END OF MASTER FILE (DUMP COMPLETE FOR MASTERFILE)
  75. *
  76. *ERROR MESSAGES;
  77. * ERROR IN PARAMETERS (CORRECT THE PROCEDURES)
  78. * XXXXXX - MASTER FILE ALREADY DUMPED (NO ABORT IF *NA*)
  79. * DO NOT USE BLANK LABEL TAPE (LABEL THE TAPE)
  80. * CANNOT READ TAPE LABEL (RELABEL THE TAPE)
  81. * DUMP FILE ASSIGNED TO DISK (RESTART THE DUMP AND GIVE
  82. * TAPE ASSIGNMENT)
  83. * XXXXXX - FILE DIRECTORY DOES NOT MATCH FILE (THE FILE
  84. * DIRECTORY DOES NOT MATCH THE FILENAME IN THE FILE)
  85. *
  86. *INTERNAL ERROR MESSAGES;
  87. * ERROR IN PROCESSOR TABLE
  88. * TOO MANY FILES IN MASTER FILE
  89. * ERROR IN FILE TABLE
  90. * NOT ALL FILES PROCESSED
  91. SPACE 4
  92. *CALL COMCMAC
  93. *CALL COMCCMD
  94. SPACE 4,10
  95. *CALL AIDTEXT
  96. *CALL SYSCON
  97. SPACE 4,10
  98. **** ASSEMBLY CONSTANTS.
  99.  
  100. SSJ= EQU 0
  101. BUFL EQU 1001B CIO BUFFER LENGTH (SMALL)
  102. LBUFL EQU 10001B CIO BUFFER LENGTH (LARGE)
  103. WORKL EQU 320*7 WORKING STORAGE BUFFER LENGTH
  104. CWRKH EQU 6 COMMUNICATIONS BUFFER HEADER
  105. CWRKF EQU 3 COMM. BUFFER FILE ENTRY
  106. MAXFIL EQU MFFILES MAX NUM OF FILES / MASTERFILE
  107.  
  108. PART EQU 320*7 PART SIZE
  109. BASE EQU 320 BASE WORD FOR BEGINNING OF INFO
  110. MFNM EQU BASE MASTER FILE NAME
  111. MFTY EQU BASE+1 MASTER FILE TYPE
  112. FILW EQU BASE+3 FILE WORD WITHIN FIRST BLOCK
  113. OFFS EQU BASE+4 FILE LIST OFFSET
  114.  
  115. NAME EQU 0 FILE NAME OFFSET IN DIRECTORY
  116. ACCT EQU 40 ACCOUNT NAME OFFSET
  117.  
  118. BEGIN BSS 0
  119. * SET UP FETS
  120.  
  121. IF BSS 0
  122. ZZZZCM0 FILEC IBUF,LBUFL,(FET=8)
  123.  
  124. OF BSS 0
  125. MFDUMP FILEC OBUF,LBUFL,(FET=14),XL
  126.  
  127. CB BSS 0
  128. ZZZZCM1 FILEC CBUF,BUFL,(FET=8)
  129.  
  130. PF BSS 0
  131. COMBUF FILEC PBUF,BUFL,(FET=13)
  132.  
  133. * /--- BLOCK MAIN 00 000 81/04/29 08.39
  134. * MAIN LOOP
  135.  
  136. COPYMF BSS 0 ENTRY POINT
  137. SB1 1 FOREVER CONSTANT
  138. RJ INIT INITIALIZE AND GET ARGS
  139. REWIND CB,R
  140. CMF0 SA1 MFCT INCREMENT MF COUNTER
  141. SX6 X1+B1
  142. SA6 A1
  143. SA1 X1+MF GET MASTER FILE NAME
  144. ZR X1,CMF8
  145. SX6 1
  146. BX6 X6+X1
  147. SA6 IF
  148. RJ INITCB INTIAL READ OF COM BUFFER
  149. NZ X1,CMF0 IF FILE ALREADY DUMPED
  150. SA1 VSNX USER REQUESTED VSN
  151. BX6 X1
  152. RJ RTF OPEN TAPE
  153. SA1 VSN
  154. SA2 =10HVSN
  155. RJ MESSX
  156. SA1 IF GET PACKNAME
  157. RJ GETPACK
  158. SA6 PACKNAM
  159. BX1 X6
  160. SA2 =10HPACK
  161. RJ MESSX
  162. READ IF,R INITIALIZE READING OF FILE
  163.  
  164. CMF1 READW IF,WORK,WORKL
  165. SA2 ECOUNT TRANSFER WORD COUNTS
  166. SX7 B6-WORK NUMBER OF WORDS READ
  167. BX6 X2
  168. SA6 WCOUNT
  169. IX7 X6+X7 NEW WORD COUNT
  170. SA7 A2
  171. NG X1,CMF3 IF EOF/EOI
  172. NZ X1,CMF2 IF EOR
  173. WRITEW OF,WORK,WORKL
  174. RJ PROCESS PROCESS INFO FOR THIS BLOCK
  175. EQ CMF1
  176.  
  177. CMF2 SB7 B6-WORK
  178. WRITEW OF,WORK,B7
  179. WRITER OF,R
  180. RJ PROCESS PROCESS INFO FOR THIS BLOCK
  181. READ IF
  182. EQ CMF1
  183.  
  184. CMF3 BX5 X1
  185. SB7 B6-WORK
  186. WRITEW OF,WORK,B7
  187. SX5 X5+B1
  188. NZ X5,CMF4 IF EOI
  189. RJ PROCESS PROCESS INFO FOR THIS BLOCK
  190. WRITEF OF,R
  191. READ IF
  192. EQ CMF1
  193.  
  194. CMF4 RECALL OF
  195. RJ PROCESS PROCESS INFO FOR THIS BLOCK
  196. SA1 OF+2 CHECK IF BUFFER EMPTY
  197. SA2 A1+B1
  198. BX1 X1-X2
  199. ZR X1,CMF5 IF IN=OUT
  200. WRITE OF,R
  201. CMF5 WRITER CB,R WRITE OUT COMMUNICATIONS BUFFER
  202. WRITER OF,R PUT EOR ON MASTER FILE COPY
  203. SA1 PN
  204. ZR X1,CMF6 IF TAPE
  205. UNLOAD OF,R GET RID OF DISK
  206. EQ CMF7
  207.  
  208. CMF6 WRITEF OF,R PUT EOF ON MASTER FILE COPY
  209. CLOSE OF,NR,R CLOSE TAPE
  210. CMF7 RJ ALLMSG OUTPUT MESSAGES
  211. RJ INITPT REINITIALIZE POINTERS
  212. EQ CMF0
  213.  
  214. CMF8 SA1 PN SEE IF DISK
  215. NZ X1,CMF9
  216. UNLOAD OF,R
  217. CMF9 RJ ALLDONE
  218. CMF10 ENDRUN
  219. * /--- BLOCK SUBRTINES 00 000 87/12/07 15.36
  220. TITLE SUBROUTINES
  221. CKSTATS SPACE 4
  222. ** CKSTATS - CHECK FILE STATUS FOR BUSY
  223. * ROLLOUT BASED ON *TERW* IF BUSY
  224. * ABORT IF ERROR
  225. *
  226. * ENTRY X1-FET STATUS WORD
  227. *
  228. * EXIT X2=0, NOT BUSY
  229.  
  230. CKSTATS DATA 0 ENTRY/EXIT
  231. AX1 10
  232. MX7 -8
  233. BX2 -X7*X1 ISOLATE STATUS
  234. ZR X2,CKSTATS IF NOT BUSY AND NO ERROR
  235. SX2 X2-1
  236. NZ X2,ABORT ATTACH ERROR
  237. ROLLOUT =0 USE RETURNED PFM VALUES
  238. SX2 1 BUSY STATUS
  239. EQ CKSTATS
  240. CLREPR SPACE 4
  241. ** CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
  242. *
  243. * ENTRY A1/X1=FET+1 AND CONTENTS
  244.  
  245. CLREPR DATA 0 ENTRY/EXIT
  246. SX6 B1 MASK FOR EPR
  247. LX6 44
  248. BX6 -X6*X1
  249. SA6 A1
  250. EQ CLREPR
  251. INIT SPACE 4
  252. ** INIT - INITIALIZE
  253.  
  254. INIT DATA 0 ENTRY/EXIT
  255. RJ INITPT INITIALIZE POINTERS
  256. PDATE DATE GET DATE/TIME
  257. *
  258. * TRANSFORM DATE/TIME TO 18 BIT FORMAT
  259. * 4/YEAR-1980,4/MONTH,5/DAY,5/HOUR
  260. *
  261. SA1 DATE
  262. MX7 -5
  263. AX1 12 GET RID OF MINUTES AND SECONDS
  264. BX6 -X7*X1 EXTRACT HOURS
  265. AX1 1
  266. LX7 5
  267. BX5 -X7*X1 EXTRACT DAYS
  268. IX6 X6+X5 MERGE
  269. MX7 -4
  270. AX1 1
  271. LX7 10
  272. BX5 -X7*X1 EXTRACT MONTH
  273. IX6 X6+X5 MERGE
  274. AX1 2
  275. LX7 4
  276. SX5 26D SUBTRACT 26 YEARS (1996 BASE)
  277. LX5 14D
  278. IX5 X1-X5
  279. BX5 -X7*X5 MASK FOR 4-BIT FIELD
  280. IX6 X6+X5
  281. SA6 A1 STORE IN DATE
  282. *
  283. * GET ARGUMENTS
  284. *
  285. SA1 ACTR ARG COUNT
  286. SB4 X1
  287. SA4 ARGR FIRST ARG
  288. SB5 ARGTBL ARG TABLE
  289. RJ ARG
  290. NZ X1,INITERR ERROR IN ARGUMENTS
  291. EQ INIT
  292.  
  293. INITERR MESSAGE INMSG
  294. EQ ABORT
  295. SETEPR SPACE 4
  296. ** SETEPR - SET ERROR PROCESSING BIT IN THE FET
  297. *
  298. * ENTRY A1/X1=FET+1 AND CONTENTS
  299.  
  300. SETEPR DATA 0 ENTRY/EXIT
  301. SX6 B1 MASK FOR EPR
  302. LX6 44
  303. BX6 X6+X1
  304. SA6 A1
  305. EQ SETEPR
  306. * /--- BLOCK SUBRTINES 00 000 87/12/07 16.34
  307. FINFO SPACE 4
  308. ** FINFO - GET FILE INFO
  309.  
  310. FINFO DATA 0 ENTRY/EXIT
  311. MX6 42 ISOLATE FILE NAME
  312. BX6 X6*X1
  313. SX7 50001B PARAMETER LENGTH
  314. IX6 X6+X7
  315. SA6 FIB
  316. FILINFO FIB GET FILE INFO FOR THIS FILE
  317. EQ FINFO
  318.  
  319. FIB DATA 0,0,0,0,0 FILINFO BUFFER
  320. GETPACK SPACE 4
  321. ** GETPACK - GET PACK NAME FOR FILE
  322. *
  323. * ENTRY - X1=FILE NAME
  324. *
  325. * EXIT - X6=PACK NAME
  326.  
  327. GETPACK DATA 0 ENTRY/EXIT
  328. RJ FINFO GET FILE INFO
  329. SX6 EST READ EST ORDINAL WORD
  330. SX1 ESTP (X1) = ADDR OF PTR TO EST FWA
  331. SX2 1
  332. RJ RSB GET WORD WITH PTR TO EST FWA
  333. SA1 EST ISOLATE EST BEGINNING ADDRESS
  334. SA2 FIB+2 EQUIPMENT ORDINAL
  335. MX7 -12D
  336. LX2 12 SHIFT EQ NUM TO LOW ORDER
  337. BX2 -X7*X2
  338. .NOS22 IFGE OSLEV,596 NOS VERSION 2.2
  339. AX1 36D TOP 24 BITS IS FWA OF EST
  340. LX2 1 TWO WORDS PER EST ENTRY
  341. .NOS22 ELSE PRIOR TO 2.2
  342. LX1 12 TOP 12 BITS IS FWA OF EST
  343. BX1 -X7*X1
  344. .NOS22 ENDIF
  345. IX1 X1+X2 ADDR OF EST ENTRY
  346. SX6 MST
  347. SX2 1
  348. RJ RSB
  349. SA1 MST GET MST ADDRESS/10B
  350. MX7 -12
  351. BX1 -X7*X1
  352. LX1 3
  353. SX1 X1+PFGL (X1) = OFFSET TO PACKNAME
  354. SX6 PACKN
  355. SX2 1
  356. RJ RSB GET PACK NAME
  357. SA1 PACKN ISOLATE PACKNAME
  358. MX6 42
  359. BX6 X6*X1
  360. SA6 A1
  361. EQ GETPACK
  362.  
  363. EST DATA 0 EST ORDINAL WORD
  364. MST DATA 0 MST ADDRESS
  365. PACKN DATA 0 PACK NAME
  366. GETPN SPACE 4
  367. ** GETPN - DEFINE FILE ON PACK *PN*
  368.  
  369. GETPN DATA 0 ENTRY/EXIT
  370. SA1 MFCT GET MF COUNT
  371. SA2 =5LMFDMP
  372. LX1 24
  373. BX6 X1+X2
  374. SA6 OF+8
  375. SA1 OF+1 SET EPR
  376. RJ SETEPR
  377. PURGE OF,,,PN,DT
  378. SA1 OF+1 CLEAR EPR
  379. RJ CLREPR
  380. DEFINE OF,OF+8,,,DT,,W,PN
  381. EQ GETPN
  382. INITPT SPACE 4
  383. ** INITPT - INITIALIZE POINTERS
  384.  
  385. INITPT DATA 0 ENTRY/EXIT
  386. SX7 0 ZERO COUNTERS
  387. SA7 COUNT
  388. SA7 WCOUNT
  389. SA7 ECOUNT
  390. SA7 MFNAME
  391. SA7 MFTYPE
  392. SA7 NFILES
  393. SA7 MFILES
  394. * /--- BLOCK SUBRTINES 00 000 80/11/17 11.59
  395. SA7 OFFSET
  396. SA7 WRCNT
  397. SA1 PROX INITIALIZE PROCESS POINTERS
  398. BX6 X1
  399. SA6 PRO1
  400. SX7 PTABLE
  401. SA7 PPOINT
  402. MX6 59
  403. SA6 FILEPT
  404. EQ INITPT
  405. * /--- BLOCK SUBRTINES 00 000 87/12/09 15.56
  406. INITCB SPACE 4
  407. ** INITCB - INITIAL READ OF COM BUFFER
  408. *
  409. * READS COMMUNICATIOS BUFFER TO SEE IF FILE
  410. * ALREADY DUMPED
  411. *
  412. * EXIT - X1=0 - IF FILE NOT ALREADY DUMPED
  413. * X1.NE.0 - IF FILE ALREADY DUMPED AND *NA*
  414. * NOT SELECTED ON CONTROL CARD
  415. * JOB ABORTED IF *NA* NOT SELECTED AND FILE DUMPED
  416.  
  417. INITCB DATA 0 ENTRY/EXIT
  418. SA1 PF+1 PREPARE FET+1 FOR *EP* BIT SET
  419. RJ SETEPR SET ERROR PROCESSING BIT
  420. INIT1 ATTACH PF,COMB,,,R,PACK
  421. SA1 PF
  422. RJ CKSTATS
  423. NZ X2,INIT1 IF FILE WAS BUSY
  424. SA1 PF+1 PREPARE FET+1 FOR *EP* BIT SET
  425. RJ CLREPR CLEAR ERROR PROCCESSING BIT
  426. REWIND PF,R
  427. INIT2 READSKP PF,0,R READ HEADER FROM COMM BUFFER
  428. READW PF,WORK,CWRKH
  429. NZ X1,INIT3 IF EOF, EOI, OR EARLY EOR
  430. SA1 WORK MASTER FILE NAME
  431. SA2 IF FILE WE ARE LOOKING FOR
  432. MX7 42
  433. BX2 X7*X2 MASK JUST THE MASTER FILE NAME
  434. IX6 X2-X1
  435. ZR X6,INITPER IF FILE ALREADY DUMPED
  436. SA1 PF+2 IN=OUT
  437. BX6 X1
  438. SA6 A1+B1
  439. EQ INIT2 READ NEXT RECORD
  440.  
  441. INIT3 UNLOAD PF,R RETURN COMM. BUFF FOR NOW.
  442. SX1 B0 FILE NOT DUMPED
  443. EQ INITCB
  444.  
  445. INITPER RJ SFN
  446. SA6 INPMSG
  447. MESSAGE INPMSG
  448. SA1 NA NO ABORT FLAG
  449. NZ X1,INITCB IF *NA* SELECTED
  450. EQ ABORT
  451. RSB SPACE 4
  452. ** RSB - READ SUBSYSTEM PROGRAM BLOCK
  453. *
  454. * USED TO READ LOW-CORE ABSOLUTE MEMORY
  455. *
  456. * ENTRY - X6=ADDRESS TO READ INTO
  457. * X1=CM ADDRESS
  458. * X2=NUMBER OF WORD TO TRANSFER
  459.  
  460. RSB DATA 0 ENTRY/EXIT
  461. MX7 59 LOW CORE FLAG
  462. SA7 X6
  463. LX1 18 CM ADDRESS
  464. LX2 36 WORD COUNT
  465. BX6 X6+X1
  466. BX6 X6+X2
  467. SA6 RSBS STATUS WORD
  468. SA1 RSBQ RSB REQUEST
  469. BX6 X1
  470. RJ SYS= MAKE SYSTEM REQUEST
  471. RSB1 SA1 RSBS CK. IF STATUS WORD IS FINISHED
  472. MX7 2
  473. BX1 X7*X1
  474. NG X1,RSB IF TRANSFER OK
  475. NZ X1,RSB2 IF ERROR
  476. RECALL WAIT
  477. EQ RSB1
  478.  
  479. RSB2 MESSAGE RSBM
  480. EQ ABORT
  481.  
  482. RSBM DIS ,*RSB CALL ERROR*
  483. RSBQ VFD 18/3LRSB,6/20B,18/0,18/RSBS
  484. RSBS DATA 0 RSB STATUS WORD
  485. * /--- BLOCK SUBRTINES 00 000 87/12/07 16.55
  486. RTF SPACE 4
  487. ** RTF - REQUEST TAPE FILE
  488. *
  489. * REQUEST A LABELED TAPE
  490. *
  491. * ENTRY - OF = FET ADDRESS
  492. * PN .NE. 0 - PN=PACKNAME (DO NOT LABEL)
  493. * (X6) = VSN REQUESTED
  494. * IF BINARY 0, GET SCRATCH TAPE
  495. * IF BINARY 1, REQUEST TAPE
  496. *
  497. * EXIT - (X6) = VSN OF TAPE LOADED
  498. * LABELS WRITTEN
  499.  
  500. RTF DATA 0 ENTRY/EXIT
  501. SA1 RTFA INCREMENT TAPE FILE COUNT
  502. SX7 X1+B1
  503. SA7 A1
  504. RTF1 SA1 PN SEE IF PACK NAME SPECIFIED
  505. NZ X1,RTF8
  506. SA1 TDEN (X1) = DENSITY ARGUMENT
  507. BX4 X4-X4
  508. ZR X1,RTF1.2 IF NOT SPECIFIED, USE DEFAULT
  509. SB2 TDENL (B2) = KEYWORD TABLE LENGTH
  510. MX0 12
  511. RTF1.1 SB2 B2-B1
  512. NG B2,INITERR IF NO MATCH IN TABLE, ABORT
  513. SA2 TDENTBL+B2 (X2) = 12/KEYWORD,48/CODE
  514. BX3 X0*X2 (X3) = 12/KEYWORD,48/0
  515. BX3 X3-X1
  516. NZ X3,RTF1.1 IF NO MATCH CONTINUE SEARCH
  517. BX4 -X0*X2 (X4) = DENSITY CODE
  518. LX4 51 MOVE TO BITS 53-51
  519.  
  520. RTF1.2 SX1 B1 TEST FOR REQUEST TAPE OPTION
  521. SX2 B1 (X2) = WRITE LABEL / RING IN
  522. LX2 59
  523. SX7 B1
  524. LX7 40
  525. BX2 X2+X7
  526. IX6 X6-X1
  527. ZR X6,RTF2 REQUEST TAPE
  528. IX6 X6+X1
  529. NZ X6,RTF2 IF VSN SPECIFIED
  530. SA1 =6L LABEL FOR SCRATCH TAPE
  531. BX6 X1 (X6) = SCRATCH VSN
  532. RTF2 SA3 FORMAT (X3) = FORMAT ('I OR 'L'I)
  533. LX3 12
  534. MX0 -12
  535. BX3 -X0*X3 RETRIEVE TWO CHAR FORMAT
  536. SX0 5 DEFAULT TO *LI*
  537. SX3 X3-2RLI COMPARE TO SEE IF *LI*
  538. ZR X3,RTF2.1 IF *LI*, CONTINUE
  539. SX0 0 DEFAULT TO *I* FORMAT
  540. RTF2.1 LX0 30 POSITION TO BITS 35-30
  541. SX7 5 (X7) = LABELED / 9-TRACK
  542. LX7 56
  543. BX7 X7+X0 INCLUDE FORMAT FIELD
  544. BX7 X7+X2
  545. BX7 X7+X4 INCLUDE DENSITY FIELD
  546. SA7 OF+8
  547. ZR X6,RTF2.2 DO NOT BLANK FILL IF ZERO.
  548. BX1 X6
  549. RJ ZTB BLANK-FILL THE REQUESTED VSN
  550. RTF2.2 BSS 0
  551. MX0 36
  552. BX6 X0*X6
  553. SA6 A7+B1 SET VSN
  554. BX6 X6-X6
  555. SA1 IF SET FILE NAME = MASTERFILE NAME
  556. MX0 42
  557. BX1 X0*X1
  558. ZR X1,RTF3 IF NO FILE NAME PRESENT
  559. RJ SFN
  560. * /--- BLOCK SUBRTINES 00 000 79/10/25 13.40
  561. RTF3 SA6 A6+B1
  562. SA1 =7L
  563. BX6 X1
  564. SA2 RTFA GET TAPE POSITION
  565. SX2 X2-1
  566. SX7 1 FIRST FILE SEQUENCE = 1
  567. ZR X2,RTF4
  568. SX7 9999 ALL OTHERS = 9999
  569. RTF4 IX6 X6+X7 MERGE WITH FILE NAME
  570. SA6 A6+B1 FET+11
  571. SA1 =6LMFDUMP
  572. BX6 X1
  573. SA6 A6+B1 SET NAME = *MFDUMP*
  574. BX7 X7-X7
  575. SA7 A6+B1
  576. LABEL OF FIND LABELED TAPE
  577.  
  578. * OPEN VOL1 LABEL IF FIRST TIME THRU
  579.  
  580. SA3 RTFA TAPE FILE NUMBER
  581. SX3 X3-1
  582. NZ X3,RTF5 IF NOT FIRST FILE
  583. RJ SETEB
  584. SA1 =0LVOL1
  585. BX6 X1
  586. SA6 PB+1
  587. OPEN OF,READ,R
  588. SA1 OF+B1 CHECK DEVICE TYPE
  589. PL X1,RTF7 IF ASSIGNED TO DISK
  590. SA1 PB+1 GET VSN
  591. SA4 =6L TEST FOR BLANK LABEL
  592. MX6 36
  593. LX1 24
  594. BX6 X6*X1
  595. IX7 X6-X4
  596. ZR X7,RTF9 IF BLANK LABEL
  597. * /--- BLOCK SUBRTINES 00 000 87/12/07 16.57
  598. SA4 =2L** TEST FOR BAD LABEL
  599. MX7 12
  600. BX7 X7*X6 MASK TOP CHARACTERS
  601. IX7 X7-X4
  602. ZR X7,RTF11 IF TOP TWO CHARACTERS ARE **
  603. LX6 54 CLEAR TOP BITS FOR TAPE FLAG
  604. SA6 VSN
  605. SA1 OF GET TAPE UNIT NUMBER
  606. RJ FINFO
  607. SA1 FIB+2
  608. MX6 12
  609. BX6 X6*X1 MASK EST
  610. LX6 12
  611. SA6 TAPUNIT
  612. SA4 =3R001
  613. EQ RTF6
  614.  
  615. RTF5 SA4 =3R999 POSMF COUNT (NEXT RECORD)
  616. RTF6 SA1 OF+10 SHIFT TO STANDARD FET INFO
  617. SA2 A1+B1
  618. BX6 X1
  619. SA6 A1-B1 FILE IDENTIFIER-FIRST 10 CHARS
  620. MX7 42
  621. BX6 X7*X2 NEXT 7 CHARS
  622. BX6 X6+X4 ADD SEQUENCE NUMBER
  623. SA6 A6+B1 FET+10
  624. MX6 0
  625. SA6 A6+B1
  626. SA1 A6+B1 SET IDENTIFICATION
  627. MX7 36
  628. BX6 X7*X1
  629. SA6 A1 FET+12
  630. SA1 OF+1 CLEAR EXTENDED LABEL BIT
  631. SX6 B1
  632. LX6 41
  633. BX6 -X6*X1
  634. SA6 A1
  635. POSMF OF,R
  636. SA1 OF+B1 CHECK DEVICE TYPE
  637. NG X1,RTF IF ASSIGNED TO TAPE
  638. RTF7 MESSAGE WRONG WRONG DEVICE
  639. EQ ABORT
  640.  
  641. RTF8 RJ GETPN GET FILE DEFINED ON PACK
  642. SA1 OF GET PACK NAME FOR FILE
  643. RJ GETPACK
  644. SA6 VSN STORE PACK NAME
  645. EQ RTF EXIT
  646.  
  647. RTF9 UNLOAD OF,R GET RID OF BLANK LABEL
  648. MESSAGE BLANK ERROR MESSAGE
  649. RTF10 SA1 VSNX TRY TO REQUEST TAPE AGAIN
  650. BX6 X1
  651. EQ RTF1
  652.  
  653. RTF11 UNLOAD OF,R GET RID OF BAD LABEL TAPE
  654. MESSAGE BADLAB ERROR MESSAGE
  655. EQ RTF10 TRY TO GETANOTHER TAPE
  656.  
  657. PB BSSZ 10 BUFFER FOR VOL1 HEADER
  658. RTFA DATA 0 COUNT OF FILES ON TAPE
  659. SETEB SPACE 4
  660. ** SETEB - SETUP EXTENDED LABEL BUFFER
  661. *
  662. * SETS UP COUNT FIELDS IN FET AND EXT. BUFFER
  663. * CLEAR ALL OTHER FIELDS IN BUFFER
  664. *
  665. * USES A - 6,7
  666. * X - 6,7
  667. * B - 6
  668.  
  669. * /--- BLOCK PROCESS 00 000 87/12/07 17.01
  670. SETEB DATA 0 ENTRY/EXIT
  671. SX6 10 LENGTH
  672. SX7 PB BEGINNING ADDRESS
  673. LX6 18
  674. BX6 X6+X7
  675. SA6 OF+9 PUT IN FET
  676. SX7 80 CHARACTER COUNT
  677. SA7 PB
  678. SX6 0
  679. SB6 9
  680. SEB1 SA6 A7+B6 CLEAR PB+1 TO PB+9
  681. SB6 B6-B1
  682. GE B6,B1,SEB1
  683. EQ SETEB
  684. TITLE PROCESS MF DATA
  685. PROCESS SPACE 4
  686. ** PROCESS BLOCK INFORMATION
  687. *
  688.  
  689. PROZ SA1 PROY INSTALL FAST EXIT
  690. BX6 X1
  691. SA6 PRO1
  692. PROCESS DATA 0 PROCESS BLOCK INFO
  693. *
  694. * THE FOLLOWING COMMANDS DUPLICATED AT PROX
  695. *
  696. PRO1 SA3 PPOINT PROCESS POINTER
  697. SA4 X3+
  698. ZR X4,PROZ IF ALL DONE
  699. SA1 WCOUNT BEGINNING COUNT FOR THIS READ
  700. SA2 ECOUNT ENDING COUNT FOR THIS READ
  701. MX7 30
  702. BX6 -X7*X4 WORD THAT IS WANTED
  703. ZR X6,PRO5 JUMP ROUTINE DEMANDED
  704. IX5 X6-X1 COMPARE WITH BEGINNING
  705. IX3 X6-X2 COMPARE WITH ENDING
  706. NG X5,PROERR IF WE HAVE ALREADY PASSED IT
  707. PL X3,PROCESS IF NOT HERE YET
  708. MX7 12
  709. BX7 X7*X4 WORD COUNT
  710. ZR X7,PRO5 PROCESS JUMP WANTED
  711. LX7 12
  712. SB7 X7 WORD COUNT
  713. NE B7,B1,PRO2 IF MORE THAN 1 WORD
  714. SA1 X5+WORK GET WORD THAT IS WANTED
  715. AX4 30 STORE LOCATION
  716. BX7 X1
  717. SA7 X4 STORE DESIRED WORD
  718. SX7 A4+B1 BUMP POINTER COUNTER
  719. SA7 PPOINT
  720. EQ PRO1 PROCESS NEXT REQUEST
  721.  
  722. PRO2 IX6 X3+X7 COMPARE WORD COUNT WITH ROOM
  723. NG X6,PRO3 IF ENOUGH ROOM
  724. ZR X6,PRO3 IF JUST ENOUGH ROOM
  725. IX7 X4-X3 INCREMENT FROM
  726. LX3 30
  727. IX7 X7-X3 INCREMENT TO
  728. LX3 18
  729. IX7 X7+X3 DECREMENT TO
  730. LX3 12 RESTORE COUNT
  731. SA7 A4 STORE NEW COMMAND FOR NEXT PASS
  732. BX1 -X3 WORD COUNT THIS PASS
  733. EQ PRO4 MOVE WORDS
  734.  
  735. PRO3 SX7 A4+B1 BUMP POINTER
  736. SA7 PPOINT
  737. SX1 B7 WORD COUNT
  738. PRO4 SX2 X5+WORK FROM
  739. AX4 30
  740. SX3 X4 TO
  741. RJ MVE= MOVE WORDS
  742. EQ PRO1 NEXT REQUEST
  743.  
  744. * /--- BLOCK PROCESS 00 000 80/10/14 14.26
  745. PRO5 SX7 A4+B1 BUMP POINTER
  746. SA7 PPOINT
  747. AX4 30 GET JUMP ADDRESS
  748. SB7 X4
  749. JP B7+ JUMP TO PROPER ROUTINE
  750.  
  751. PROF SA1 NFILES GET FILE COUNTS
  752. SX7 X1 NUMBER OF FILES
  753. AX1 18
  754. NZ X7,PROF1 IF NO FILES, FAKE ONE
  755. SX7 1
  756. PROF1 SX6 X1 MAX NUMBER OF FILES
  757. SA7 A1
  758. SA6 MFILES
  759. SX5 X7-MAXFIL-1 COMPARE WITH MAX.
  760. PL X5,PROFERR TOO MANY
  761. SA1 OFFSET
  762. SX2 FILN FILE NAME BUFFER
  763. SX3 FILI FILE INFO BUFFER
  764. LX2 30
  765. LX3 30
  766. SX1 X1+BASE
  767. IX6 X6+X1
  768. LX7 48 FILE COUNT
  769. IX6 X6+X7
  770. IX6 X6+X3
  771. IX7 X7+X1
  772. IX7 X7+X2
  773. SA7 PTABA
  774. SA6 A7+B1
  775. EQ PRO1 NEXT REQUEST
  776.  
  777. PRON SA1 FILEPT INCREMENT FILE POINTERS
  778. SA2 NFILES NUMBER OF FILES
  779. SX6 X1+B1
  780. IX7 X6-X2 COMPARE
  781. PL X7,PRON2 IF DONE
  782. SA6 A1 STORE FILE POINTER
  783. SB7 X6 GET FILE INFO
  784. SA1 FILI+B7
  785. MX7 -24
  786. BX1 -X7*X1 EXTRACT PART COUNT
  787. ZR X1,PRON1 IF NO PART NUMBER
  788. SX6 PART PART SIZE
  789. IX1 X6*X1 WORD COUNT
  790. SA2 FILDUM DUMMY WORD FOR WORD TRANSFER
  791. SA3 A2+1 DUMMY WORD FOR ACCOUNT TRANSFER
  792. SX6 NAME NAME OFFSET
  793. SX7 ACCT ACCOUNT OFFSET
  794. IX6 X6+X1
  795. IX7 X7+X1
  796. IX6 X6+X2
  797. IX7 X7+X3
  798. SA6 PTABB STORE IN POINTER TABLE
  799. SA7 A6+B1
  800. SX6 A6 SET POINTER
  801. SA6 PPOINT
  802. EQ PRO1 NEXT REQUEST
  803.  
  804. PRON1 SA2 FILN+B7 GET FILE NAME
  805. MX7 1
  806. BX7 X7-X2 COMPARE
  807. PL X7,PRONERR IF ERROR
  808. ZR X7,PRON GO TO NEXT FILE
  809. EQ PRONERR
  810.  
  811. PRON2 SX6 -2 FILE FLAG FOR ALL DONE
  812. SA6 FILEPT
  813. SX7 PTABC
  814. SA7 PPOINT SET PROCESSOR TABLE POINTER
  815. EQ PRO1 EXIT
  816.  
  817. * /--- BLOCK PROCESS 00 000 80/10/01 09.01
  818. PROS SA1 NFILES NUMBER OF FILES
  819. SB5 X1
  820. SB7 B0 INITIAL LOOP VALUE
  821. PROS1 SB6 B7 START OF THIS LOOP
  822. MX5 -24
  823. MX7 -23 BIG VALUE
  824. BX7 -X7
  825. PROS2 SA1 FILI+B6 GET FILE INFO WORD
  826. BX1 -X5*X1 STRIP LOWER 24
  827. IX2 X1-X7 COMPARE
  828. PL X2,PROS3 IF BIGGER OR EVEN
  829. SB3 B6 SAVE LOWER VALUE
  830. BX7 X1
  831. PROS3 SB6 B6+B1 TRY NEXT VALUE
  832. LT B6,B5,PROS2 IF NOT DONE
  833. EQ B3,B7,PROS4 IF NO TRANSFER NECESSARY
  834. SA1 FILN+B3 FIRST FILE NAME
  835. SA2 FILI+B3 FIRST FILE INFO
  836. SA3 FILN+B7 SECOND FILE NAME
  837. SA4 FILI+B7 SECOND FILE INFO
  838. BX6 X1 SWAP WORDS
  839. BX7 X2
  840. SA6 A3
  841. SA7 A4
  842. BX6 X3
  843. BX7 X4
  844. SA6 A1
  845. SA7 A2
  846. PROS4 SB7 B7+B1 INCREMENT LOOP COUNTER
  847. LT B7,B5,PROS1
  848. EQ PRO1 NEXT REQUEST
  849.  
  850. PROWH SA1 MFNAME WRITE COMM. BUFF HEADER
  851. SA2 NFILES NUMBER OF FILES
  852. BX6 X1
  853. BX7 X2
  854. SA6 CWORK MASTER FILE NAME
  855. SA7 A6+B1
  856. SA1 PACKNAM PACK NAME
  857. BX6 X1
  858. SA2 TAPUNIT TAPE UNIT
  859. SA6 A7+B1
  860. BX7 X2
  861. SA1 VSN VSN
  862. SA7 A6+B1
  863. BX6 X1
  864. SA2 DATE DATE/TIME
  865. SA6 A7+B1
  866. BX7 X2
  867. SA7 A6+B1
  868. WRITEW CB,CWORK,CWRKH
  869. EQ PRO1 NEXT REQUEST
  870.  
  871. PROWR SA1 FILEPT GET FILE POINTER
  872. SA2 CWORK+1 FILE NAME
  873. SB7 X1
  874. SA3 FILN+B7 FILE NAME FROM DIRECTORY
  875. IX7 X3-X2 COMPARE
  876. SA4 FILI+B7 FILE INFO WORD
  877. BX6 X4
  878. SA6 A2+B1 STORE IN COMM BUFFER
  879. ZR X7,PROWR1 IF OK
  880. BX7 X3
  881. SA7 CWORK+1 STORE FILE NAME
  882. MX6 1
  883. BX6 -X6
  884. SA6 A7-B1 STORE DUMMY ACCOUNT NAME
  885. BX1 X7 SPACE FILL NAME
  886. RJ SFN
  887. SA6 PROWM
  888. MESSAGE PROWM
  889. PROWR1 WRITEW CB,CWORK,CWRKF
  890. SA1 WRCNT
  891. SX6 X1+B1
  892. SA6 A1
  893. EQ PRO1 NEXT REQUEST
  894.  
  895. PROX SA3 PPOINT COPY OF PRO1
  896. SA4 X3+
  897. PROY EQ PROCESS DUMMY FAST EXIT COMMAND
  898. * /--- BLOCK PROC TABLE 00 000 81/01/21 11.04
  899. PROERR MESSAGE PROM
  900. PROABT RJ ALLDONE
  901. RJ ALLMSG
  902. ABORT ABORT
  903.  
  904. PROFERR MESSAGE PROFM
  905. EQ PROABT
  906.  
  907. PRONERR MESSAGE PRONM ERROR MESSAGE
  908. EQ PROABT
  909.  
  910. * PROCESSOR TABLE
  911.  
  912. PPOINT VFD 60/PTABLE PROCESS TABLE POINTER
  913. PTABLE BSS 0
  914. VFD 12/1,18/MFNAME,30/MFNM
  915. VFD 12/1,18/MFTYPE,30/MFTY
  916. VFD 12/1,18/NFILES,30/FILW
  917. VFD 12/1,18/OFFSET,30/OFFS
  918. VFD 12/0,18/PROF,30/0
  919. PTABA VFD 12/0,18/FILN,30/0 FILLED IN WITH NUM FILES
  920. VFD 12/0,18/FILI,30/0 FILLED IN WITH NUM FILES
  921. VFD 12/0,18/PROS,30/0
  922. VFD 12/0,18/PROWH,30/0
  923. VFD 12/0,18/PRON,30/0
  924. PTABB VFD 60/0 FILE TRANSFER TO BE FILLED IN
  925. VFD 60/0 ACCOUNT TRANSFER
  926. VFD 12/0,18/PROWR,30/0
  927. VFD 12/0,18/PRON,30/0
  928. PTABC DATA 0 END OF TABLE
  929. * /--- BLOCK ALLDONE 00 000 87/12/09 15.57
  930. ALLDONE SPACE 4
  931. ** ALL DONE - WRITE COM. BUFF.
  932. *
  933.  
  934. ALLDONE DATA 0
  935. SA1 RTFA SEE IF ANY INFO DUMPED
  936. ZR X1,ALLDONE EXIT IF NOTHING
  937. SA1 PF+1 PREPARE FET+1 FOR *EP* BIT SET
  938. RJ SETEPR SET ERROR PROCESSING BIT
  939. ALLD1 ATTACH PF,COMB,,,A,PACK
  940. SA1 PF
  941. RJ CKSTATS
  942. NZ X2,ALLD1 IF FILE WAS BUSY
  943. SA1 PF+1
  944. RJ CLREPR CLEAR ERROR PROCESSING BIT
  945. REWIND CB,R
  946. SKIPEI PF,R
  947. READ CB,R
  948. ALLD2 READW CB,WORK,WORKL
  949. NG X1,ALLD4 EOI/EOF
  950. NZ X1,ALLD3 EOR
  951. WRITEW PF,WORK,WORKL
  952. EQ ALLD2
  953.  
  954. ALLD3 SB7 B6-WORK
  955. WRITEW PF,WORK,B7
  956. WRITER PF
  957. READ CB
  958. EQ ALLD2
  959.  
  960. ALLD4 BX5 X1 EOI/EOF FLAG
  961. SB7 B6-WORK
  962. WRITEW PF,WORK,B7
  963. SX5 X5+B1
  964. NZ X5,ALLD5 IF EOI
  965. WRITEF PF
  966. READ CB
  967. EQ ALLD2
  968.  
  969. ALLD5 RECALL PF
  970. SA1 PF+2
  971. SA2 A1+B1
  972. BX1 X1-X2
  973. ZR X1,ALLD6 NO WORDS REMAINING IN BUFFER
  974. WRITE PF
  975. ALLD6 BSS 0
  976. UNLOAD PF,R
  977. UNLOAD CB,R
  978. EQ ALLDONE EXIT
  979. *
  980. ALLMSG DATA 0
  981. SA1 FILEPT SEE IF ALL FILES PROCESSED
  982. SX1 X1+2
  983. NZ X1,ALLDA
  984. SA1 MFNAME
  985. SA2 =10HMF NAME
  986. RJ MESSX
  987. SA1 MFTYPE
  988. SA2 =10HMF TYPE
  989. RJ MESSX
  990. SA1 WRCNT
  991. SA2 =10HNUM FILES
  992. RJ DEBUGX
  993. SA1 MFILES
  994. SA2 =10HMAX FILES
  995. RJ DEBUGX
  996. * SA1 ECOUNT
  997. * SA2 =10HEND COUNT
  998. * RJ DEBUGX
  999. * SA1 WRCNT
  1000. * SA2 =10HWRITE REC
  1001. * RJ DEBUGX
  1002. MESSAGE MSG ALL DONE MESSAGE
  1003. EQ ALLMSG EXIT
  1004.  
  1005. ALLDA MESSAGE ALLDM NOT ALL FILE PROCESSED
  1006. EQ ABORT
  1007. SHOWF DATA 0
  1008. MESSAGE SHOWFM
  1009. SX7 0
  1010. SA7 SHOWFX
  1011. SHOWF1 SA1 SHOWFX
  1012. SX6 X1+B1
  1013. SA6 A1
  1014. SX6 X6-15
  1015. PL X6,SHOWF
  1016. SA1 X1+OF
  1017. RJ SHOW
  1018. EQ SHOWF1
  1019. SHOWFX DATA 0
  1020. SHOWFM DIS ,* FET*
  1021. * /--- BLOCK DEBUG 00 000 87/12/07 17.13
  1022. DEBUG SPACE 4
  1023. ** DEBUG - USE IF NECESSARY.
  1024. *
  1025.  
  1026. DEBUG SPACE 4
  1027. DEBUG DATA 0 ENTRY/EXIT
  1028. RJ CDD
  1029. SA6 DMSG
  1030. MESSAGE DMSG
  1031. EQ DEBUG
  1032. DEBUGX DATA 0 ENTRY/EXIT
  1033. BX7 X2
  1034. SA7 DMS
  1035. RJ CDD
  1036. SA6 DMSG
  1037. MESSAGE DMS
  1038. EQ DEBUGX
  1039. SHOW DATA 0
  1040. RJ WOD
  1041. SA6 DMS
  1042. SA7 A6+B1
  1043. MESSAGE DMS
  1044. EQ SHOW
  1045. SHOWP DATA 0
  1046. MESSAGE SHOWPM
  1047. SX7 0
  1048. SA7 SHOWPX
  1049. SHOWP1 SA1 SHOWPX
  1050. SX6 X1+B1
  1051. SA6 A1
  1052. SX6 X6-11
  1053. PL X6,SHOWP
  1054. SA1 X1+PB
  1055. RJ SHOW
  1056. EQ SHOWP1
  1057. SHOWPX DATA 0
  1058. SHOWPM DIS ,* LABEL BUFFER*
  1059. MESSX DATA 0 ENTRY/EXIT
  1060. BX7 X2
  1061. SA7 DMS
  1062. BX6 X1
  1063. SA6 DMSG
  1064. MESSAGE DMS
  1065. EQ MESSX
  1066.  
  1067. * DISPLAY MESSAGES
  1068.  
  1069. MSG DIS ,* END OF MASTER FILE.*
  1070. INMSG DIS ,* ERROR IN PARAMETERS.*
  1071. INPMSG DATA 0 MASTER FILE NAME
  1072. DIS ,* - MASTER FILE ALREADY DUMPED*
  1073. PROM DIS ,* ERROR IN PROCESSOR TABLE.*
  1074. PROFM DIS ,* TOO MANY FILES IN MASTER FILE.*
  1075. PRONM DIS ,* ERROR IN FILE TABLE*
  1076. PROWM DATA 0 FILE NAME INSERTED HERE
  1077. DIS ,*- FILE DIRECTORY DOES NOT MATCH FILE*
  1078. ALLDM DIS ,* NOT ALL FILES PROCESSED*
  1079. WRONG DIS ,* DUMP FILE ASSIGNED TO DISK*
  1080. BLANK DIS ,* DO NOT USE BLANK LABEL TAPE*
  1081. BADLAB DIS ,* CANNOT READ THE TAPE LABEL*
  1082. DMS DATA 0
  1083. DMSG DATA 0,0 DEBUG MESSAGE AREA
  1084.  
  1085.  
  1086. * ARGUMENT TABLE
  1087.  
  1088.  
  1089. ARGTBL VFD 12/2LMF,18/MF,30/MF
  1090. VFD 12/2LMF,18/MF+1,30/MF+1
  1091. VFD 12/2LMF,18/MF+2,30/MF+2
  1092. VFD 12/2LMF,18/MF+3,30/MF+3
  1093. VFD 12/2LMF,18/MF+4,30/MF+4
  1094. VFD 12/2LMF,18/MF+5,30/MF+5
  1095. VFD 12/2LMF,18/MF+6,30/MF+6
  1096. VFD 12/2LMF,18/MF+7,30/MF+7
  1097. VFD 12/2LMF,18/MF+8,30/MF+8
  1098. VFD 12/2LMF,18/MF+9,30/MF+9
  1099. VFD 12/1LV,18/ONE,30/VSNX
  1100. VFD 12/2LNA,18/ONE,30/NA
  1101. VFD 12/2LPN,18/PN,30/PN
  1102. VFD 12/1LR,18/DT,30/DT
  1103. VFD 12/1LD,18/TDEN,30/TDEN
  1104. VFD 12/1LF,18/FORMAT,30/FORMAT
  1105. ARGTBLE DATA 0 END OF TABLE
  1106.  
  1107. * /--- BLOCK PARAMETERS 00 000 79/10/25 13.32
  1108.  
  1109. * COUNTERS AND PARAMETERS
  1110.  
  1111. COUNT DATA 0 BLOCK COUNT
  1112. WCOUNT DATA 0 BEGINNING WORD COUNT
  1113. ECOUNT DATA 0 ENDING WORD COUNT
  1114. MFNAME DATA 0 MASTER FILE NAME
  1115. MFTYPE DATA 0 MASTER FILE TYPE
  1116. NFILES DATA 0 NUMBER OF FILES
  1117. MFILES DATA 0 MAX. NUMBER OF FILES
  1118. OFFSET DATA 0 FILE OFFSET
  1119. PACKNAM DATA 0 PACKNAME
  1120. TAPUNIT DATA 0 TAPE UNIT
  1121. MF DATA 0,0,0,0,0,0,0,0,0,0 MASTER FILE NAMES
  1122. DATA 0 END OF TABLE
  1123. VSN DATA 0 VSN NUMBER (ACTUAL)
  1124. VSNX DATA 0 VSN NUMBER (USER REQUEST)
  1125. NA DATA 0 NO ABORT FLAG
  1126. ONE DATA 1 CONSTANT ONE
  1127. PACK DATA 1L0 PACK NAME FOR COM. BUFFER
  1128. COMB DATA 6LCOMBUF FILE NAME FOR COM BUF.
  1129. PN DATA 0 USER PACK NAME FOR DUMPED FILE
  1130. DT DATA 0 USER PACK NAME DEVICE TYPE
  1131. TDEN DATA 0 TAPE DENSITY
  1132. FORMAT DATA 0 TAPE FORMAT (DEFAULT = 'I)
  1133. MFCT DATA 0 MASTER FILE COUNT
  1134. DATE DATA 0 DATE
  1135. WRCNT DATA 0 NUMBER OF RECORDS WRITTEN
  1136. FILEPT DATA -1 FILE POINTER
  1137. FILDUM VFD 12/1,18/CWORK+1,30/0 FILE TRANSFER DUMMY
  1138. VFD 12/1,18/CWORK,30/0 ACCOUNT TRANSFER
  1139.  
  1140. * TAPE DENSITY TABLE
  1141.  
  1142. TDENTBL BSS 0
  1143. VFD 12/2LHD,48/3 *HD* = 800 BPI
  1144. VFD 12/2LPE,48/4 *PE* = 1600 BPI
  1145. VFD 12/2LGE,48/5 *GE* = 6250 BPI
  1146. TDENL EQU *-TDENTBL TABLE LENGTH
  1147.  
  1148. * RESERVE BUFFER SPACE
  1149.  
  1150. WORK BSSZ WORKL WORKING BUFFER
  1151. CWORK BSSZ CWRKH COMMUNICATIONS WORK BUFFER
  1152. IBUF BSSZ LBUFL INPUT CIRCULAR BUFFER
  1153. OBUF BSSZ LBUFL OUTPUT CIRCULAR BUFFER
  1154. CBUF BSSZ BUFL COMMUNICATION CIRCULAR BUFFER
  1155. PBUF BSSZ BUFL PERMANENT FILE COM. BUFFER
  1156. FILN BSSZ MAXFIL FILE NAMES
  1157. FILI BSSZ MAXFIL FILE INFO AND LOCATION
  1158.  
  1159.  
  1160. * COMMON DECKS.
  1161.  
  1162.  
  1163. *CALL COMCZTB
  1164. *CALL COMCCIO
  1165. *CALL COMCRDS
  1166. *CALL COMCRDW
  1167. *CALL COMCSYS
  1168. *CALL COMCWTS
  1169. *CALL COMCWTW
  1170. *CALL COMCCDD
  1171. *CALL COMCWOD
  1172. *CALL COMCMVE
  1173. *CALL COMCSFN
  1174. *CALL COMCCPM
  1175. *CALL COMCPFM
  1176. *CALL COMCLFM
  1177. *CALL COMCARG
  1178.  
  1179.  
  1180.  
  1181. USE //
  1182. RFL= BSS 0 END OF PROGRAM
  1183.  
  1184.  
  1185. END COPYMF
plato.source/plaopl/copymf.txt ยท Last modified: 2021/02/06 16:22 by 127.0.0.1