Table of Contents

BLANK

Table Of Contents

  • [00011] BLANK - BLANK TAPE LABELING PROGRAM.
  • [00013] BLANK TAPE LABELING PROGRAM.
  • [00159] COMMON DECKS.
  • [00170] MACRO DEFINITIONS.
  • [00191] MAIN PROGRAM.
  • [00195] MAIN PROGRAM.
  • [00338] IEE - I/O ERROR EXIT.
  • [00394] VER - VERIFY ERROR EXIT.
  • [00411] SUBROUTINES.
  • [00413] CTS - CHECK TAPE STATUS.
  • [00431] RSB - MAKE *RSB* REQUEST.
  • [00462] VTM - VERIFY TAPE MARK.
  • [00474] VYL - VERIFY LABEL.
  • [00507] PARAMETER PROCESSING SUBROUTINES.
  • [00509] AOP - ANALYZE OPTIONAL PARAMETERS.
  • [00536] BOP - BLANK OPTIONAL PARAMETER PROCESSOR.
  • [00642] TCCP - TABLE OF COMMAND PARAMETERS.
  • [00671] TTDV - TABLE OF TAPE DEVICE MNEMONICS.
  • [00685] CLP - CALL POP (PICK OUT PARAMETER).
  • [00706] ERR - ERROR PROCESSOR.
  • [00721] SDT - SET TAPE DEVICE TYPE IN FET.
  • [00782] SOI - SET OWNER IDENTIFICATION IN VOL1.
  • [00825] OPTION PROCESSORS.
  • [00827] DEN - PROCESS DENSITY.
  • [00853] TDEN - TABLE OF DENSITY OPTIONS.
  • [00880] EVS - PROCESS *AT* TAPE EXTERNAL VSN.
  • [00898] PVA - PROCESS VOLUME ACCESSIBLITY.
  • [00908] OFA - PROCESS OLD FILE ACCESSIBILITY (FA CURRENTLY ON TAPE).
  • [00918] PFA - PROCESS FILE ACCESSIBILITY.
  • [00938] PSC - PROCESS SINGLE CHARACTER.
  • [00959] OWN - PROCESS OWNER IDENTIFICATION.
  • [00980] PCV - PROCESS CONVERSION MODE.
  • [01000] TCVM - TABLE OF CONVERSION MODE OPTIONS.
  • [01014] PDT - PROCESS TAPE DEVICE TYPE SELECTION.
  • [01036] TDVT - TABLE OF TAPE DEVICE TYPES.
  • [01051] UNL - PROCESS UNLOAD AFTER BLANKING.
  • [01064] VSN - PROCESS VOLUME SERIAL NUMBER.
  • [01114] COMMON DECKS.
  • [01129] BUFFERS.

Source Code

BLANK.txt
  1. IDENT BLANK,BLANK
  2. ABS
  3. SST
  4. ENTRY BLANK
  5. ENTRY ARG=
  6. ENTRY RFL=
  7. ENTRY SSJ=
  8. SYSCOM B1
  9. *COMMENT BLANK - BLANK TAPE LABELING PROGRAM.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. TITLE BLANK - BLANK TAPE LABELING PROGRAM.
  12. SPACE 4
  13. *** BLANK - BLANK TAPE LABELING PROGRAM.
  14. * M. E. MADDEN. 73/04/01.
  15. * J. L. LARSON. 76/04/21.
  16. SPACE 4
  17. *** *BLANK* WRITES AND VERIFIES *VOL1*, *HDR1*, AND *EOF1* LABELS
  18. * (ASCII OR EBCDIC) ON AN UNLABELED MAGNETIC TAPE. IF THE
  19. * TAPE HAD BEEN BLANK LABELED WITH LABEL ACCESSIBILITY=BLANK
  20. * A LABELED TAPE MAY HAVE NEW BLANK TAPE LABELS WRITTEN.
  21. *
  22. *
  23. * THE FOLLOWING IS WRITTEN ON THE TAPE--
  24. *
  25. * VOL1 HDR1 * * EOF1 * *
  26. *
  27. * WHERE * IS A TAPE MARK.
  28. *
  29. * AFTER THE TAPE HAS BEEN BLANKED LABELED, IT IS UNLOADED,
  30. * IF SPECIFIED, AND RETURNED.
  31. SPACE 4,10
  32. *** BLANK COMMAND.
  33. *
  34. * BLANK,VSN=VVVVVV,VA=X,OWNER=USER/FAMILY,LSL=X,FA=X,OFA=X,
  35. * D=DENSITY,CV=MODE,MT,NT,CT,AT,U,EVSN=EEEEEE).
  36. *
  37. * VSN VOLUME SERIAL NUMBER (1 - 6 CHARACTERS)
  38. *
  39. * DEFAULT IS * *
  40. *
  41. * VA VOLUME ACCESSIBILITY (1 CHARACTER)
  42. *
  43. * DEFAULT IS * * (VOL1 LABEL CAN BE REWRITTEN)
  44. *
  45. * OWNER OWNER IDENTIFICATION (USER/FAMILY)
  46. *
  47. * DEFAULT IS CURRENT USER NAME AND FAMILY OF JOB
  48. *
  49. * LSL LABEL STANDARD LEVEL (1 CHARACTER)
  50. *
  51. * DEFAULT IS *1*
  52. *
  53. * FA FILE ACCESSIBILITY (1 CHARACTER)
  54. *
  55. * DEFAULT IS * * (UNLIMITED ACCESS)
  56. *
  57. * OFA OLD FILE ACCESSIBILITY (1 CHARACTER)
  58. *
  59. * DEFAULT IS * *
  60. *
  61. * D TAPE DENSITY (200, 556, 800, 1600, 6250, 38000, LO,
  62. * HI, HY, HD, PE, GE, CE, AE)
  63. *
  64. * 200 = 200 BPI (MT DEVICE)
  65. * 556 = 556 BPI (MT DEVICE)
  66. * 800 = 800 BPI (MT OR NT DEVICE)
  67. * 1600 = 1600 CPI (NT DEVICE)
  68. * 6250 = 6250 CPI (NT DEVICE)
  69. * 38000 = 38000 CPI CARTRIDGE (CT OR AT DEVICE)
  70. * LO = 200 BPI (MT DEVICE)
  71. * HI = 556 BPI (MT DEVICE)
  72. * HY = 800 BPI (MT DEVICE)
  73. * HD = 800 BPI (NT DEVICE)
  74. * PE = 1600 CPI (NT DEVICE)
  75. * GE = 6250 CPI (NT DEVICE)
  76. * CE = 38000 CPI CARTRIDGE (CT DEVICE)
  77. * AE = 38000 CPI ACS CARTRIDGE (AT DEVICE)
  78. *
  79. * DEFAULT IS JOB DEFAULT VALUE FOR DEVICE TYPE
  80. *
  81. * CV CONVERSION MODE (AS, US, EB)
  82. *
  83. * EB = EBCDIC
  84. * AS = ASCII
  85. * US = ASCII
  86. *
  87. * DEFAULT IS JOB DEFAULT VALUE FOR DEVICE TYPE
  88. *
  89. * DT TAPE DEVICE TYPE
  90. *
  91. * MT = 7 TRACK
  92. * NT = 9 TRACK
  93. * CT = CARTRIDGE
  94. * AT = ACS CARTRIDGE
  95. *
  96. * MT BLANK LABEL 7 TRACK TAPE (OBSOLETE)
  97. *
  98. * NT BLANK LABEL 9 TRACK TAPE (OBSOLETE)
  99. *
  100. * U UNLOAD UNIT AFTER BLANKING TAPE
  101. *
  102. * DEFAULT IS NOT SELECTED (DO NOT UNLOAD UNIT)
  103. *
  104. * EVSN EXTERNAL VSN (1 - 6 ALPHANUMERIC CHARACTERS)
  105. *
  106. * REQUIRED WHEN LABELING *AT* TAPE
  107. * NOT ALLOWED WHEN NOT LABELING *AT* TAPE
  108. SPACE 4,10
  109. *** ERROR MESSAGES.
  110. *
  111. * * BLANK LABELS DO NOT VERIFY.*
  112. * LABELS READ DO NOT MATCH THOSE WRITTEN. FOR
  113. * SYSTEM ORIGIN JOBS, THIS MESSAGE WILL FLASH AT
  114. * THE JOB-S CONTROL POINT. ENTERING THE CONSOLE
  115. * COMMAND *GO,JSN* WILL RETRY THE REQUEST.
  116. *
  117. * * ERROR IN ARGUMENTS.*
  118. * ONE OR MORE ARGUMENTS WERE INCORRECT, OR
  119. * REQUIRED ARGUMENTS WERE MISSING.
  120. *
  121. * * EXTERNAL VSN NOT ALLOWED FOR TAPE DEVICE TYPE.*
  122. * AN EXTERNAL VSN WAS SPECIFIED FOR A TAPE DEVICE TYPE
  123. * OTHER THAN *AT*.
  124. *
  125. * *EXTERNAL VSN NOT SPECIFIED FOR AT TAPE.*
  126. * AN EXTERNAL VSN WAS NOT SPECIFIED WHEN BLANK LABELING
  127. * AN *AT* TAPE.
  128. *
  129. * * INCORRECT DENSITY FOR TAPE DEVICE TYPE.
  130. * THE SPECIFIED DENSITY IS NOT SUPPORTED BY THE
  131. * SPECIFIED TAPE DEVICE TYPE.
  132. *
  133. * * SYSTEM ERROR.*
  134. * *RSB* MONITOR FUNCTION FAILS.
  135. *
  136. * * TAPE BLANK LABELED.*
  137. * BLANK LABEL OPERATION WAS SUCCESSFUL.
  138. *
  139. * * TAPE READ/WRITE ERROR (BLANK).*
  140. * AN ERROR OCCURRED WHILE ATTEMPTING TO READ OR WRITE
  141. * THE TAPE LABELS. FOR SYSTEM ORIGIN JOBS, THIS MESSAGE
  142. * WILL FLASH AT THE JOB-S CONTROL POINT. ENTERING THE
  143. * CONSOLE COMMAND *GO,JSN* WILL RETRY THE REQUEST.
  144. SPACE 4,10
  145. **** ASSEMBLY CONSTANTS.
  146.  
  147.  
  148. BUFL EQU 101B CIO BUFFER LENGTH
  149. BUFFL EQU 12 SCRATCH BUFFER LENGTH
  150. COUNT EQU 3 LABEL ERROR RETRY COUNT
  151.  
  152.  
  153. ****
  154. SPACE 4,10
  155. * MICRO DEFINITIONS.
  156.  
  157.  
  158. VERNUM MICRO 6,3,+"VER170"+
  159. TITLE COMMON DECKS.
  160. * COMMON DECKS.
  161.  
  162.  
  163. *CALL COMCMAC
  164. *CALL COMCCMD
  165. *CALL COMSPRD
  166. *CALL COMSSSD
  167. QUAL COMSSSJ
  168. *CALL COMSSSJ
  169. QUAL *
  170. TITLE MACRO DEFINITIONS.
  171. RDSB SPACE 4,10
  172. ** RDSB.
  173. *
  174. * READ SUB-SYSTEM BLOCK.
  175. *
  176. * STATUS WORD *SS* IS USED.
  177. *
  178. * RDSB QUEUE,WC,FROM,TO
  179.  
  180. PURGMAC RDSB
  181.  
  182. RDSB MACRO Q,W,F,T
  183. MACREF RDSB
  184. R= X5,W
  185. R= X6,T
  186. R= X7,F
  187. R= X1,Q
  188. RJ RSB
  189. ENDM
  190. BLANK SPACE 4
  191. TITLE MAIN PROGRAM.
  192. ORG 110B
  193.  
  194.  
  195. ** BLANK - MAIN PROGRAM.
  196.  
  197.  
  198. BLANK SB1 1 (B1) = 1
  199. SB2 CCDR UNPACK COMMAND
  200. RJ USB
  201. BLK1 SA5 =0LBLANK CHECK FOR *BLANK*
  202. RJ POP
  203. NG B5,ERR IF COMMAND ERROR
  204. ZR X2,ERR IF ILLEGAL SEPARATOR
  205. BX7 X6-X5
  206. NZ X7,BLK1 IF NOT *BLANK*
  207. SX1 X1-1R=
  208. ZR X1,ERR IF ILLEGAL SEPARATOR
  209.  
  210. * RESTORE USER NAME AND USER INDEX IN CONTROL POINT AREA.
  211.  
  212. SA1 SSJ=+/COMSSSJ/UIDS USER NAME AND USER INDEX
  213. BX6 X1
  214. SA6 BLKA+2
  215. SX6 3 SET USER NAME AND USER INDEX FLAGS
  216. SA6 BLKA
  217. SETPFP BLKA CHANGE USER NAME AND USER INDEX IN CP AREA
  218.  
  219. * INITIALIZE LABELS.
  220.  
  221. RJ BOP PROCESS OPTIONAL PARAMETERS
  222. SA1 HDR
  223. SA2 HDR1 BUILD HDR1 FIRST WORD
  224. MX0 -36
  225. SA3 EOF1 BUILD EOF1 FIRST WORD
  226. BX1 -X0*X1
  227. BX6 X1+X2
  228. SA6 A2
  229. BX6 X1+X3
  230. SA6 A3
  231. UNLOAD F,R
  232.  
  233. * ENTER HERE TO RETRY AFTER OPERATOR *GO*.
  234.  
  235. BLK2 SA1 F+1 CLEAR ERROR PROCESSING BIT
  236. MX0 -1
  237. LX0 44
  238. BX6 X0*X1
  239. SA6 A1
  240. LABEL F REQUEST TAPE ASSIGNMENT
  241. SA1 F+1 SET ERROR PROCESSING BIT
  242. SX0 B1
  243. LX0 44
  244. BX6 X0+X1
  245. SA6 A1
  246.  
  247. * INSERT EST ORDINAL INTO *HDR1* / *EOF1* LABELS.
  248.  
  249. STATUS F,P
  250. SA1 F+6 READ FST FROM FET+6
  251. MX0 -9
  252. LX1 12
  253. MX2 -3
  254. BX5 -X0*X1 EST ORDINAL
  255. SB2 1R0
  256. BX4 -X2*X5
  257. MX0 18
  258. LX5 -3
  259. SX4 X4+B2
  260. BX7 -X2*X5
  261. LX5 -3
  262. SX7 X7+B2
  263. BX5 -X2*X5
  264. SA3 HDR+7 ENTER EST ORDINAL IN HDR1
  265. SX5 X5+B2
  266. LX4 -18
  267. BX3 -X0*X3
  268. LX5 -6
  269. BX6 X4+X5
  270. LX7 -12
  271. BX6 X6+X7
  272. BX6 X6+X3
  273. SA6 A3+
  274. SA2 DBS SET DEFAULT BLOCK SIZE IN FET
  275. BX6 X6-X6
  276. LX7 X2
  277. SA6 F+5 CLEAR FNT/FST FROM FET
  278. SA7 A6+1 SET MLRS FIELD
  279.  
  280. * WRITE LABELS.
  281. * ENTER HERE TO RETRY IF ERROR DETECTED AND RETRY COUNT
  282. * NOT YET EXHAUSTED.
  283.  
  284. BLK3 REWIND F
  285. MOVE 10,VBUF,BUF VOL1
  286. SA1 HDR1 SET *HDR1*
  287. BX6 X1
  288. SA6 HDR
  289. MOVE 10,HBUF,BUF+10 HDR1
  290. MOVE 2,EOT,BUF+20 TAPE MARK
  291. MOVE 2,EOT,BUF+22 TAPE MARK
  292. SA1 EOF1 SET *EOF1*
  293. BX6 X1
  294. SA6 HDR
  295. MOVE 10,HBUF,BUF+24 EOF1
  296. MOVE 2,EOT,BUF+34 TAPE MARK
  297. MOVE 2,EOT,BUF+36 TAPE MARK
  298. RECALL F
  299. SX6 BUF+38
  300. SA6 F+2 SET IN
  301. WRITECW F,R WRITE LABELS ONTO TAPE
  302. RJ CTS CHECK TAPE STATUS
  303.  
  304. * VERIFY LABELS.
  305.  
  306. REWIND F,R
  307. READCW F,17B READ EXPECTED LABELS
  308. RJ CTS CHECK TAPE STATUS
  309. SA0 VBUF
  310. RJ VYL VERIFY VOLUME LABEL
  311. SA1 HDR1 SET *HDR1*
  312. BX6 X1
  313. SA6 HDR
  314. SA0 HBUF
  315. RJ VYL VERIFY HEADER LABEL
  316. RJ VTM VERIFY TAPE MARK
  317. READCW F,17B
  318. RJ CTS CHECK TAPE STATUS
  319. RJ VTM VERIFY TAPE MARK
  320. READCW F,17B
  321. RJ CTS CHECK TAPE STATUS
  322. SA1 EOF1 SET *EOF1*
  323. BX6 X1
  324. SA6 HDR
  325. SA0 HBUF
  326. RJ VYL VERIFY TRAILER LABEL
  327. RJ VTM VERIFY TAPE MARK
  328. READCW F,17B
  329. RJ CTS CHECK TAPE STATUS
  330. RJ VTM VERIFY TAPE MARK
  331. UNLOAD F
  332. MESSAGE (=C* TAPE BLANK LABELED.*),3
  333. ENDRUN
  334.  
  335.  
  336. BLKA BSSZ 3 *SETPFP* BLOCK
  337. IEE SPACE 4,15
  338. ** IEE - I/O ERROR EXIT.
  339. *
  340. * ENTRY FROM *CTS* IF ERROR STATUS DETECTED IN FET.
  341. * FROM *VER* (AT *IEE1*) IF VERIFY ERROR RETRY COUNT
  342. * EXHAUSTED.
  343. *
  344. * EXIT TO *BLK3* IF RETRY COUNT NOT YET EXHAUSTED.
  345. * TO *ABT* IF RETRY COUNT EXHAUSTED AND NOT *SYOT*.
  346. * TO *BLK2* IF OPERATOR ENTERS *GO* TO FLASHING REQUEST.
  347. *
  348. * USES X - 1, 2, 6.
  349. * A - 1, 6.
  350. * B - 2.
  351. *
  352. * MACROS FLASH, MESSAGE, RECALL, REWIND, WRITEF, UNLOAD.
  353.  
  354.  
  355. IEE BSS 0 ENTRY
  356. SA1 IEEA
  357. SX6 X1-1
  358. SA6 A1
  359. NZ X1,BLK3 IF RETRY COUNT NOT EXHAUSTED
  360. SX6 COUNT RESET RETRY COUNT
  361. SA6 A1
  362. REWIND F
  363. WRITEF X2 ERASE LABELS
  364. UNLOAD X2
  365. SB2 =C* TAPE READ/WRITE ERROR (BLANK).*
  366.  
  367. * CHECK FOR SYSTEM ORIGIN PROCESSING.
  368.  
  369. IEE1 SA1 JOPR CHECK ORIGIN TYPE
  370. AX1 24
  371. MX2 -12
  372. BX1 -X2*X1
  373. ERRNZ SYOT CODE DEPENDS ON VALUE
  374. NZ X1,ABT IF NOT SYSTEM ORIGIN
  375.  
  376. * DISPLAY ERROR MESSAGE ON CONSOLE, WAIT FOR OPERATOR ACTION,
  377. * AND RETRY THE REQUEST IF OPERATOR ENTERS *GO,JSN*.
  378.  
  379. MESSAGE B2,1 DISPLAY MESSAGE
  380. SA1 B0 SET PAUSE FLAG IN RA+0
  381. MX2 1
  382. LX2 12-59
  383. BX6 X1+X2
  384. SA6 A1
  385. FLASH
  386. IEE2 RECALL
  387. SA1 B0 CHECK PAUSE FLAG IN RA+0
  388. LX1 59-12
  389. NG X1,IEE2 IF PAUSE FLAG STILL SET
  390. EQ BLK2 RETRY REQUEST
  391.  
  392. IEEA CON COUNT READ/WRITE ERROR RETRY COUNT
  393. VER SPACE 4,10
  394. ** VER - VERIFY ERROR EXIT.
  395.  
  396.  
  397. VER BSS 0
  398. SA1 VERA
  399. SX6 X1-1
  400. SA6 A1
  401. NZ X1,BLK3 IF RETRY COUNT NOT EXHAUSTED
  402. SX6 COUNT RESET RETRY COUNT
  403. SA6 A1
  404. REWIND F
  405. WRITEF X2 ERASE LABELS
  406. UNLOAD X2
  407. SB2 =C* BLANK LABELS DO NOT VERIFY.*
  408. EQ IEE1 RETRY OR ISSUE MESSAGE AND ABORT
  409.  
  410. VERA CON COUNT VERIFY ERROR RETRY COUNT
  411. TITLE SUBROUTINES.
  412. CTS SPACE 4,10
  413. ** CTS - CHECK TAPE STATUS.
  414. *
  415. * ENTRY (F) = TAPE FET.
  416. *
  417. * EXIT TO *IEE* IF TAPE READ/WRITE ERRORS.
  418. *
  419. * USES A - 1.
  420. * X = 1, 6.
  421.  
  422.  
  423. CTS SUBR ENTRY/EXIT
  424. SA1 F CHECK ERROR CODE
  425. AX1 9
  426. MX6 -5
  427. BX1 -X6*X1
  428. ZR X1,CTSX IF NO ERROR
  429. EQ IEE PROCESS ERROR
  430. RSB SPACE 4,15
  431. ** RSB - MAKE *RSB* REQUEST.
  432. *
  433. * ENTRY (X1) = SUBSYSTEM QUEUE PRIORITY.
  434. * (X5) = WORD COUNT.
  435. * (X6) = ADDRESS TO SEND TO.
  436. *
  437. * EXIT TO *ERR2*, IF SYSTEM ERROR.
  438. *
  439. * USES A - 1, 2, 7.
  440. * X - 1, 2, 5, 6, 7.
  441. *
  442. * CALLS SYS=.
  443.  
  444.  
  445. RSB SUBR ENTRY/EXIT
  446. SA2 RSBA
  447. LX5 36
  448. LX7 18
  449. BX6 X6+X5
  450. LX1 18
  451. BX7 X7+X6
  452. BX6 X1+X2
  453. SA7 X6
  454. RJ =XSYS=
  455. SA1 SS CHECK ERROR RESPONSE
  456. PL X1,ERR2 IF ERROR CONDITION
  457. EQ RSBX RETURN
  458.  
  459. RSBA VFD 18/3LRSB,12/2000B,12/0,18/SS
  460. SS CON 0 RDSB MACRO STATUS WORD
  461. VTM SPACE 4,10
  462. ** VTM - VERIFY TAPE MARK.
  463. *
  464. * EXIT TO VER IF ERRORS.
  465. *
  466. * MACRO READW.
  467.  
  468.  
  469. VTM SUBR ENTRY/EXIT
  470. READW F,BUFF,1
  471. NG X1,VTMX IF EOF ENCOUNTERED
  472. EQ VER ERROR
  473. VYL SPACE 4,15
  474. ** VYL - VERIFY LABEL.
  475. *
  476. * ENTRY (A0) = FWA EXPECTED LABEL CONTENTS.
  477. *
  478. * EXIT TO VER IF ERRORS.
  479. *
  480. * USES A - 1, 2.
  481. * B - 2.
  482. * X - 0, 1, 2, 3.
  483. *
  484. * MACRO READW.
  485.  
  486.  
  487. VYL SUBR ENTRY/EXIT
  488. READW F,BUFF,10
  489. NZ X1,VER IF EOR/EOF
  490. SA1 A0
  491. MX0 -30
  492. SA2 BUFF
  493. BX3 X1-X2
  494. BX3 -X0*X3
  495. NZ X3,VER IF INCORRECT UBC OR BLOCK LENGTH
  496. SB2 8
  497. VYL1 SA1 A1+B1
  498. SA2 A2+B1
  499. BX3 X1-X2
  500. SB2 B2-B1
  501. NZ X3,VER IF LABEL CONTENT ERROR
  502. NZ B2,VYL1 IF MORE WORDS TO VERIFY
  503. SA2 A2+B1
  504. AX2 48
  505. NZ X2,VER IF NOT LEVEL ZERO
  506. EQ VYLX RETURN
  507. TITLE PARAMETER PROCESSING SUBROUTINES.
  508. AOP SPACE 4,15
  509. ** AOP - ANALYZE OPTIONAL PARAMETERS.
  510. *
  511. * ENTRY (B3) = PARAMETER OPTION TABLE ADDRESS.
  512. * (B6) = ADDRESS TO BEGIN PARAMETER ASSEMBLY.
  513. *
  514. * EXIT (X1) = SEPARATOR.
  515. * (X2) = OPTION TABLE ENTRY.
  516. * (X5) = PARAMETER.
  517. * TO ERR IF ERROR.
  518. *
  519. * USES A - 2.
  520. * X - 2, 3, 6.
  521. *
  522. * CALLS CLP.
  523.  
  524.  
  525. AOP SUBR ENTRY/EXIT
  526. RJ CLP GET PARAMETER
  527. SA2 B3-B1 READ OPTION TABLE
  528. MX3 30
  529. AOP1 SA2 A2+B1
  530. BX6 X3*X2
  531. ZR X2,ERR IF END OF OPTIONS
  532. BX6 X6-X5
  533. NZ X6,AOP1 IF NO MATCH
  534. EQ AOPX RETURN
  535. BOP SPACE 4,20
  536. ** BOP - BLANK OPTIONAL PARAMETER PROCESSOR.
  537. *
  538. * ENTRY USBB CONTAINS UNPACKED COMMAND.
  539. * (B6) = STRING BUFFER POINTER.
  540. *
  541. * EXIT FET HAS TAPE DESCRIPTORS.
  542. * *VBUF* AND *HBUF* BUILT.
  543. * TO *ERR* IF PARAMETER ERROR.
  544. *
  545. * USES X - ALL.
  546. * A - 1, 3, 4, 5, 6, 7.
  547. * B - 2, 3.
  548. *
  549. * CALLS AOP, SDT, SOI.
  550. *
  551. * MACROS GETPFP, JDATE.
  552.  
  553.  
  554. BOP SUBR ENTRY/EXIT
  555.  
  556. * SET DEFAULT OWNERSHIP AND TAPE DESCRIPTORS.
  557.  
  558. SA4 DTD DEFAULT TAPE DESCRIPTORS
  559. BX7 X4
  560. BX6 X6-X6
  561. SA7 F+10B SET DEFAULT TAPE DESCRIPTORS IN FET
  562. SA6 A7+B1 CLEAR VSN FIELD
  563. GETPFP BOPA GET FAMILY NAME
  564. SA5 BOPA
  565. MX0 42
  566. BX5 X0*X5 FAMILY NAME
  567. SA4 SSJ=+/COMSSSJ/UIDS
  568. BX4 X0*X4 USER NUMBER
  569. RJ SOI SET OWNER IDENTIFICATION
  570. JDATE BOPA BUILD CREATION/RETENTION DATES
  571. SA1 BOPA
  572. BX2 X1
  573. AX2 24
  574. SX2 X2-1R7
  575. SX5 1R SET 20TH CENTURY FILL CHARACTER
  576. PL X2,BOP0 IF DATE IS BEFORE THE YEAR 2000
  577. SX5 1R0 SET 21ST CENTURY FILL CHARACTER
  578. BOP0 BX2 X1
  579. LX2 6
  580. BX2 X2+X5
  581. LX5 6*6
  582. BX2 X2+X5
  583. LX2 12
  584. LX1 -18
  585. MX5 -12
  586. BX0 -X5*X1
  587. BX2 X0+X2
  588. MX5 6
  589. SA3 HDR+4
  590. BX3 X5*X3
  591. BX6 X3+X2
  592. SA6 A3
  593. MX5 18
  594. SA3 A3+B1
  595. BX1 X5*X1
  596. BX3 -X5*X3
  597. BX6 X1+X3
  598. SA6 A3
  599.  
  600. * PROCESS OPTIONAL PARAMETERS.
  601. * REENTER HERE FROM COMMAND PARAMETER PROCESSORS.
  602.  
  603. BOP1 ZR B6,BOP4 IF COMMAND EXHAUSTED
  604. SB3 TCCP
  605. SX6 B0+
  606. SA6 LIT DISABLE LITERAL PROCESSING
  607. RJ AOP ANALYZE OPTION
  608. SB2 X2 PROCESSOR ADDRESS
  609. LX2 59-28
  610. SX3 X1-1R=
  611. PL X2,BOP2 IF NOT EQUIVALENCED PARAMETER
  612. NZ X3,ERR IF NOT CORRECT SEPARATOR
  613. EQ BOP3 CONTINUE
  614.  
  615. BOP2 ZR X3,ERR IF NOT CORRECT SEPARATOR
  616. BOP3 MX6 -1
  617. BX6 -X6*X2
  618. SA6 LIT ENABLE/DISABLE LITERAL PROCESSING
  619. LX2 0-18-59+28
  620. JP B2 JUMP TO PROCESSOR
  621.  
  622. * CHECK FOR DEVICE TYPE CONFLICT.
  623.  
  624. BOP4 RJ SDT SET DEVICE TYPE IN FET
  625. SA2 F+11B CHECK EXTERNAL VSN SPECIFIED
  626. LX1 12
  627. SX1 X1-2RAT
  628. MX0 36
  629. BX2 X0*X2
  630. NZ X1,BOP5 IF NOT *AT* TAPE DEVICE TYPE
  631. SB2 =C* EXTERNAL VSN NOT SPECIFIED FOR AT TAPE.*
  632. ZR X2,ABT IF EXTERNAL VSN NOT SPECIFIED
  633. EQ BOPX RETURN
  634.  
  635. BOP5 SB2 =C* EXTERNAL VSN NOT ALLOWED FOR TAPE DEVICE TYPE.*
  636. NZ X2,ABT IF EXTERNAL VSN SPECIFIED
  637. EQ BOPX RETURN
  638.  
  639.  
  640. BOPA BSS 3 TEMPORARIES
  641. TCCP SPACE 4,10
  642. ** TCCP - TABLE OF COMMAND PARAMETERS.
  643. *
  644. *T 30/KEYW,1/L,1/E,10/PARAM,18/PRAD
  645. *
  646. * KEYW 1 - 5 CHARACTER COMMAND KEYWORD
  647. * L LITERAL PROCESSING FOR ARGUMENT VALUE (1 = ENABLE,
  648. * 0 = DISABLE)
  649. * E PARAMETER EQUIVALENCE (1 = EQUIVALENCED,
  650. * 0 = NOT EQUIVALENCED)
  651. * PARAM PARAMETER FOR ARGUMENT PROCESSOR
  652. * PRAD PROCESSOR ADDRESS
  653.  
  654.  
  655. TCCP BSS 0
  656. VFD 30/0LVSN,1/1,1/1,10/0,18/VSN VSN
  657. VFD 30/0LVA,1/1,1/1,10/0,18/PVA VA
  658. VFD 30/0LOWNER,1/0,1/1,10/0,18/OWN OWNER
  659. VFD 30/0LLSL,1/0,1/1,10/0,18/LSL LSL
  660. VFD 30/0LFA,1/1,1/1,10/0,18/PFA FA
  661. VFD 30/0LOFA,1/1,1/1,10/0,18/OFA OFA
  662. VFD 30/0LD,1/0,1/1,10/0,18/DEN D
  663. VFD 30/0LCV,1/0,1/1,10/0,18/PCV CV
  664. VFD 30/0LMT,1/0,1/0,10/0,18/PDT1 MT
  665. VFD 30/0LNT,1/0,1/0,10/2,18/PDT1 NT
  666. VFD 30/0LDT,1/0,1/1,10/3,18/PDT DT
  667. VFD 30/0LU,1/0,1/0,10/0,18/UNL U
  668. VFD 30/0LEVSN,1/0,1/1,10/0,18/EVS EVSN
  669. CON 0 END OF TABLE
  670. TTDV SPACE 4,10
  671. ** TTDV - TABLE OF TAPE DEVICE MNEMONICS.
  672. *
  673. * T 12/ MNEMONIC,48/0
  674. *
  675. * THIS TABLE MUST BE IN THE ORDER OF THE TAPE DEVICE TYPE CODES
  676. * IN THE *LABEL* FET.
  677.  
  678.  
  679. TTDV BSS 0
  680. VFD 60/0LMT 7 TRACK
  681. VFD 60/0LCT CARTRIDGE
  682. VFD 60/0LNT 9 TRACK
  683. VFD 60/0LAT ACS CARTRIDGE
  684. CLP SPACE 4,15
  685. ** CLP - CALL POP (PICK OUT PARAMETER).
  686. *
  687. * ENTRY (B6) = PARAMETER BEGINNING ADDRESS IN STRING BUFFER.
  688. *
  689. * EXIT (X1) = SEPARATOR.
  690. * (X5) = PARAMETER.
  691. * TO ERR IF ERROR.
  692. *
  693. * USES X - 5.
  694. *
  695. * CALLS POP.
  696.  
  697.  
  698. CLP SUBR ENTRY/EXIT
  699. RJ POP PICK OUT PARAMETER
  700. NG B5,ERR IF NO PARAMETER
  701. ZR X2,ERR IF ILLEGAL TERMINATION
  702. GE B5,B1,ERR IF PARAMETER TOO LONG
  703. BX5 X6
  704. EQ CLPX RETURN
  705. ERR SPACE 4,10
  706. ** ERR - ERROR PROCESSOR.
  707.  
  708.  
  709. ERR SB2 =C* ERROR IN ARGUMENTS.*
  710. EQ ABT ISSUE MESSAGE AND ABORT
  711.  
  712.  
  713. ERR2 SB2 =C* SYSTEM ERROR.*
  714. * EQ ABT ISSUE MESSAGE AND ABORT
  715.  
  716.  
  717. ABT BSS 0
  718. MESSAGE B2,0
  719. ABORT
  720. SDT SPACE 4,15
  721. ** SDT - SET TAPE DEVICE TYPE IN FET.
  722. *
  723. * EXIT TAPE DEVICE MNEMONIC AND DEVICE TYPE SET IN *LABEL*
  724. * FET IF NO ERROR.
  725. * (X1) = TAPE DEVICE MNEMONIC LEFT JUSTIFED IF NO ERROR.
  726. * TO *ABT* IF DENSITY AND DEVICE TYPE CONFLICT.
  727. *
  728. * USES X - 0, 1, 2, 6.
  729. * A - 1, 2, 6.
  730. * B - 2.
  731. *
  732. * MACROS RDSB.
  733.  
  734.  
  735. SDT SUBR ENTRY/EXIT
  736.  
  737. * CHECK SPECIFIED TAPE DEVICE TYPE.
  738.  
  739. SA1 EDT
  740. SA2 DDT
  741. NG X1,SDT1 IF DEVICE TYPE NOT EXPLICITLY SPECIFIED
  742. NG X2,SDT2 IF DEVICE TYPE NOT SELECTED BY DENSITY
  743. BX2 X1-X2
  744. ZR X2,SDT2 IF NO DENSITY AND DEVICE TYPE CONFLICT
  745. SB2 =C* INCORRECT DENSITY FOR TAPE DEVICE TYPE.*
  746. EQ ABT ABORT
  747.  
  748. SDT1 BX1 X2
  749. PL X1,SDT2 IF DEVICE TYPE SELECTED BY DENSITY
  750.  
  751. * GET DEFAULT TAPE DEVICE TYPE.
  752.  
  753. MX6 1 GET INSTALLATION DEFAULTS
  754. SA6 SDTA
  755. RDSB 0,1,IPRL,A6
  756. SA1 SDTA
  757. LX1 0-4
  758. MX0 -2
  759. BX1 -X0*X1 DEFAULT TAPE DEVICE TYPE
  760.  
  761. * SET DEVICE MNEMONIC AND DEVICE TYPE IN FET.
  762.  
  763. SDT2 SA2 F+10B GET TAPE DESCRIPTORS
  764. MX0 58
  765. LX0 55-0
  766. LX1 55-0
  767. BX2 X0*X2
  768. BX6 X2+X1
  769. SA6 A2
  770. SA2 F+1
  771. LX1 0-0-55+0
  772. MX0 -48
  773. SA1 TTDV+X1 GET DEVICE MNEMONIC
  774. BX6 -X0*X2
  775. BX6 X6+X1
  776. SA6 A2 SET DEVICE MNEMONIC IN FET
  777. EQ SDTX RETURN
  778.  
  779.  
  780. SDTA BSSZ 3 *RSB* BUFFER
  781. SOI SPACE 4,15
  782. ** SOI - SET OWNER IDENTIFICATION IN VOL1.
  783. *
  784. * ENTRY (X4) = USER NUMBER, LEFT-JUSTIFIED, ZERO FILLED.
  785. * (X5) = FAMILY NAME, LEFT-JUSTIFIED, ZERO FILLED.
  786. *
  787. * EXIT FAMILY NAME CONCATENATED WITH USER NUMBER STORED IN
  788. * CHARACTER POSITIONS 38 - 51 OF VOL1 LABEL
  789. * (7 CHARACTERS EACH, LEFT-JUSTIFIED, BLANK FILLED).
  790. *
  791. * USES A - 1, 3, 6.
  792. * X - 0, 1, 2, 3, 4, 5, 6.
  793. *
  794. * CALLS SFN.
  795.  
  796.  
  797. SOI SUBR ENTRY/EXIT
  798. MX0 42
  799. BX1 X5
  800. RJ SFN SPACE FILL FAMILY NAME
  801. BX5 X0*X6
  802. LX1 X4
  803. RJ SFN SPACE FILL USER NUMBER
  804. BX4 X0*X6
  805. MX0 -18
  806. SA1 VOL1+3 PRESERVE CHARACTERS 31 - 37 OF VOL1
  807. LX5 18
  808. BX1 X0*X1
  809. BX2 -X0*X5 FIRST 3 CHARACTERS OF FAMILY NAME
  810. LX4 36
  811. BX5 X0*X5 LAST 4 CHARACTERS OF FAMILY NAME
  812. MX0 -42
  813. BX6 X1+X2
  814. BX2 -X0*X4 FIRST 6 CHARACTERS OF USER NUMBER
  815. SA6 A1
  816. BX4 X0*X4 LAST CHARACTER OF USER NUMBER
  817. SA3 VOL1+5 PRESERVE CHARACTERS 52 - 60 OF VOL1
  818. BX6 X5+X2
  819. MX0 -54
  820. SA6 A6+B1
  821. BX3 -X0*X3
  822. BX6 X3+X4
  823. SA6 A3
  824. EQ SOIX RETURN
  825. TITLE OPTION PROCESSORS.
  826. DEN SPACE 4,10
  827. ** DEN - PROCESS DENSITY.
  828. *
  829. * D=DENSITY.
  830.  
  831.  
  832. DEN BSS 0 ENTRY
  833. SB3 TDEN
  834. RJ AOP ANALYZE DENSITY OPTIONS
  835. SX1 X1-1R=
  836. ZR X1,ERR IF ILLEGAL SEPARATOR
  837. MX0 3
  838. LX2 51-0
  839. SA3 F+10B SET DENSITY IN FET
  840. LX0 -6
  841. BX1 X0*X2
  842. BX3 -X0*X3
  843. LX2 59-5-51+0
  844. BX6 X1+X3
  845. MX0 -2
  846. SA6 A3+
  847. PL X2,BOP1 IF NOT UNIQUE DEVICE TYPE FOR SELECTION
  848. LX2 0-3-59+5
  849. BX6 -X0*X2 IMPLICIT TAPE DEVICE TYPE
  850. SA6 DDT SET IMPLICIT DEVICE TYPE
  851. EQ BOP1 RETURN
  852. TDEN SPACE 4,10
  853. ** TDEN - TABLE OF DENSITY OPTIONS.
  854. *
  855. *T 30/OP, 24/, 1/T, 2/DT, 3/DC
  856. *
  857. * OP 1 - 5 CHARACTER DENSITY OPTION
  858. * T IF SET, IMPLICITLY SELECT TAPE DEVICE TYPE
  859. * DI INDEX INTO *TTDV* TABLE IF *T* FLAG IS SET
  860. * DC DENSITY CODE FOR FET
  861.  
  862.  
  863. TDEN BSS 0
  864. VFD 30/0L556,24/0,1/1,2/0,3/1 556 BPI MT
  865. VFD 30/0L200,24/0,1/1,2/0,3/2 200 BPI MT
  866. VFD 30/0L800,24/0,1/0,2/0,3/3 800 BPI MT, NT
  867. VFD 30/0L1600,24/0,1/1,2/2,3/4 1600 CPI NT
  868. VFD 30/0L6250,24/0,1/1,2/2,3/5 6250 CPI NT
  869. VFD 30/0L38000,24/0,1/0,2/0,3/6 38000 CPI CT, AT
  870. VFD 30/0LHI,24/0,1/1,2/0,3/1 556 BPI MT
  871. VFD 30/0LLO,24/0,1/1,2/0,3/2 200 BPI MT
  872. VFD 30/0LHY,24/0,1/1,2/0,3/3 800 BPI MT
  873. VFD 30/0LHD,24/0,1/1,2/2,3/3 800 BPI NT
  874. VFD 30/0LPE,24/0,1/1,2/2,3/4 1600 CPI NT
  875. VFD 30/0LGE,24/0,1/1,2/2,3/5 6250 CPI NT
  876. VFD 30/0LCE,24/0,1/1,2/1,3/6 38000 CPI CT
  877. VFD 30/0LAE,24/0,1/1,2/3,3/6 38000 CPI AT
  878. CON 0 END OF TABLE
  879. EVS SPACE 4,10
  880. ** EVS - PROCESS *AT* TAPE EXTERNAL VSN.
  881. *
  882. * EVSN=EEEEEE.
  883.  
  884.  
  885. EVS BSS 0 ENTRY
  886. RJ CLP GET VSN
  887. SX1 X1-1R=
  888. ZR X1,ERR IF ILLEGAL SEPARATOR
  889. SA1 F+11B
  890. MX0 -24
  891. BX6 -X0*X5
  892. BX1 -X0*X1
  893. NZ X6,ERR IF VSN .GT. 6 CHARACTERS
  894. BX6 X1+X5 SET EXTERNAL VSN IN LABEL FET
  895. SA6 A1
  896. EQ BOP1 RETURN
  897. PVA SPACE 4,10
  898. ** PVA - PROCESS VOLUME ACCESSIBLITY.
  899. *
  900. * VA=X.
  901.  
  902.  
  903. PVA BSS 0 ENTRY
  904. SA0 VBUF+2
  905. SB3 0
  906. EQ PSC PROCESS SINGLE CHARACTER
  907. OFA SPACE 4,10
  908. ** OFA - PROCESS OLD FILE ACCESSIBILITY (FA CURRENTLY ON TAPE).
  909. *
  910. * OFA=X.
  911.  
  912.  
  913. OFA BSS 0 ENTRY
  914. SA0 F+9
  915. SB3 24
  916. EQ PSC PROCESS SINGLE CHARACTER
  917. PFA SPACE 4,10
  918. ** PFA - PROCESS FILE ACCESSIBILITY.
  919. *
  920. * FA=X.
  921.  
  922.  
  923. PFA BSS 0 ENTRY
  924. SA0 HBUF+6
  925. SB3 42
  926. EQ PSC PROCESS SINGLE CHARACTER
  927. LSL SPACE 4,10
  928. ** LSL = PROCESS LABEL STANDARD LEVEL.
  929. *
  930. * LSL=A.
  931.  
  932.  
  933. LSL BSS 0 ENTRY
  934. SA0 VBUF+10B
  935. SB3 6
  936. * EQ PSC PROCESS SINGLE CHARACTER
  937. PSC SPACE 4,10
  938. ** PSC - PROCESS SINGLE CHARACTER.
  939.  
  940.  
  941. PSC BSS 0 ENTRY
  942. RJ CLP GET PARAMETER
  943. SX1 X1-1R=
  944. ZR X1,ERR IF ILLEGAL SEPARATOR
  945. MX0 6
  946. BX1 -X0*X5
  947. SA2 A0
  948. LX0 B3
  949. NZ X1,ERR IF MORE THAN ONE CHARACTER
  950. NZ X5,PSC1 IF NOT NULL PARAMETER
  951. SX5 1R
  952. LX5 -6
  953. PSC1 LX5 B3 SET VALUE IN LABEL
  954. BX2 -X0*X2
  955. BX6 X2+X5
  956. SA6 A2
  957. EQ BOP1 RETURN
  958. OWN SPACE 4,10
  959. ** OWN - PROCESS OWNER IDENTIFICATION.
  960. *
  961. * OWNER=USERNUM/FAMILYN.
  962.  
  963.  
  964. OWN BSS 0 ENTRY
  965. RJ CLP GET USER NUMBER
  966. MX0 -18
  967. SX1 X1-1R/
  968. BX7 -X0*X5
  969. NZ X1,ERR IF SEPARATOR NOT */*
  970. NZ X7,ERR IF USER NUMBER TOO LONG
  971. BX4 X5
  972. RJ CLP GET FAMILY NAME
  973. SX1 X1-1R=
  974. ZR X1,ERR IF ILLEGAL SEPARATOR
  975. BX7 -X0*X5
  976. NZ X7,ERR IF FAMILY NAME TOO LONG
  977. RJ SOI SET OWNER IDENTIFICATION
  978. JP BOP1 RETURN
  979. PCV SPACE 4,10
  980. ** PCV - PROCESS CONVERSION MODE.
  981. *
  982. * CV=MODE.
  983.  
  984.  
  985. PCV BSS 0 ENTRY
  986. SB3 TCVM
  987. RJ AOP ANALYZE CONVERSION MODE OPTION
  988. SX1 X1-1R=
  989. ZR X1,ERR IF ILLEGAL SEPARATOR
  990. LX2 -12
  991. MX0 3
  992. SA3 F+10B SET CONVERSION MODE IN FET
  993. LX0 -9
  994. BX3 -X0*X3
  995. BX2 X0*X2
  996. BX6 X3+X2
  997. SA6 A3
  998. EQ BOP1 RETURN
  999. TCVM SPACE 4,10
  1000. ** TCVM - TABLE OF CONVERSION MODE OPTIONS.
  1001. *
  1002. *T 30/OP,27/,3/CC
  1003. *
  1004. * OP 1 - 5 CHARACTER CONVERSION MODE OPTION
  1005. * CC CONVERSION MODE CODE FOR FET
  1006.  
  1007.  
  1008. TCVM BSS 0
  1009. VFD 30/0LAS,27/0,3/1 ASCII CONVERSION MODE
  1010. VFD 30/0LUS,27/0,3/1 USASI (SAME AS ASCII)
  1011. VFD 30/0LEB,27/0,3/2 EBCDIC CONVERSION MODE
  1012. CON 0 END OF TABLE
  1013. PDT SPACE 4,10
  1014. ** PDT - PROCESS TAPE DEVICE TYPE SELECTION.
  1015. *
  1016. * DT=TYPE
  1017. * MT
  1018. * NT
  1019.  
  1020.  
  1021. PDT BSS 0 ENTRY
  1022. SB3 TDVT
  1023. RJ AOP ANALYZE DEVICE TYPE OPTION
  1024. SX1 X1-1R=
  1025. ZR X1,ERR IF INCORRECT SEPARATOR
  1026.  
  1027. * ENTRY FOR *MT* AND *NT* KEYWORDS.
  1028.  
  1029. PDT1 SA1 EDT GET PREVIOUS DEVICE TYPE SELECTION
  1030. PL X1,ERR IF DEVICE TYPE PREVIOUSLY SPECIFIED
  1031. MX0 -2
  1032. BX6 -X0*X2 TAPE DEVICE TYPE
  1033. SA6 A1+ SET DEVICE TYPE
  1034. EQ BOP1 RETURN
  1035. TDVT SPACE 4,10
  1036. ** TDVT - TABLE OF TAPE DEVICE TYPES.
  1037. *
  1038. *T 30/OP,28/,3/DT
  1039. *
  1040. * OP 2 CHARACTER TAPE DEVICE TYPE MNEMONIC
  1041. * DT TAPE DEVICE TYPE FOR *LABEL* MACRO
  1042.  
  1043.  
  1044. TDVT BSS 0
  1045. VFD 30/0LMT,28/0,2/0
  1046. VFD 30/0LNT,28/0,2/2
  1047. VFD 30/0LCT,28/0,2/1
  1048. VFD 30/0LAT,28/0,2/3
  1049. CON 0
  1050. UNL SPACE 4,10
  1051. ** UNL - PROCESS UNLOAD AFTER BLANKING.
  1052. *
  1053. * U
  1054.  
  1055.  
  1056. UNL BSS 0 ENTRY
  1057. MX0 1 CLEAR INHIBIT UNLOAD
  1058. SA1 F+10B
  1059. LX0 -18
  1060. BX6 -X0*X1
  1061. SA6 A1
  1062. EQ BOP1 RETURN
  1063. VSN SPACE 4,10
  1064. ** VSN - PROCESS VOLUME SERIAL NUMBER.
  1065. *
  1066. * VSN=AAAAAA.
  1067.  
  1068.  
  1069. VSN BSS 0 ENTRY
  1070. RJ CLP GET VSN
  1071. SX1 X1-1R=
  1072. ZR X1,ERR IF ILLEGAL SEPARATOR
  1073. MX0 -24
  1074. SA2 VSNA
  1075. MX1 0
  1076. BX7 X5-X2
  1077. ZR X7,VSN1 IF VSN=SCRATCH
  1078. SA2 A2+B1
  1079. BX7 X5-X2
  1080. ZR X7,VSN1 IF VSN=0
  1081. BX2 -X0*X5
  1082. NZ X2,ERR IF VSN .GT. 6 CHARACTERS
  1083. BX1 X5
  1084. MX0 -6 CHECK IF VSN IS A LEGAL FILE NAME
  1085. VSN0 LX5 6
  1086. BX3 -X0*X5
  1087. SX2 X3-1R+
  1088. PL X2,VSN1 IF NOT ALPHANUMERIC
  1089. NZ X3,VSN0 IF MORE CHARACTERS TO CHECK
  1090. SA2 F
  1091. MX0 -18
  1092. BX3 -X0*X2
  1093. BX6 X3+X1 SET VSN INTO FET
  1094. SA6 A2
  1095. VSN1 MX0 -24 RESTORE VSN MASK
  1096. RJ SFN SPACE FILL VSN
  1097. BX6 X0*X6
  1098. SA1 VBUF+1 ENTER VSN
  1099. LX1 -36
  1100. BX1 -X0*X1
  1101. BX7 X6+X1
  1102. LX7 36
  1103. SA7 A1
  1104. EQ BOP1 RETURN
  1105.  
  1106. VSNA VFD 60/0LSCRATCH SCRATCH VSNS
  1107. VFD 60/0L0
  1108. SPACE 4,10
  1109. ** GLOBAL DATA.
  1110.  
  1111.  
  1112. EDT CON -1 EXPLICITLY SPECIFIED DEVICE TYPE
  1113. DDT CON -1 DEVICE TYPE IMPLICITLY SET BY DENSITY
  1114. TITLE COMMON DECKS.
  1115. * COMMON DECKS.
  1116.  
  1117.  
  1118. *CALL COMCCIO
  1119. *CALL COMCCPM
  1120. *CALL COMCLFM
  1121. *CALL COMCMVE
  1122. RCC SET 1 DEFINE COMMAND READ AHEAD
  1123. LIT CON 0 DEFINE LITERAL PROCESSING
  1124. *CALL COMCPOP
  1125. *CALL COMCRDW
  1126. *CALL COMCSFN
  1127. *CALL COMCSYS
  1128. *CALL COMCUSB
  1129. TITLE BUFFERS.
  1130. * FETS.
  1131.  
  1132.  
  1133. F BSS 0 FET
  1134. BLKTAPE FILEC BUF,BUFL,(FET=14),EPR
  1135. SPACE 4,10
  1136. ** VOLUME AND HEADER BUFFERS.
  1137.  
  1138. VBUF BSS 0 VOL1 BUFFER
  1139. VFD 5/0,1/1,18/8,12/0,24/40 CONTROL WORD
  1140. VOL1 BSS 0 VOLUME HEADER LABEL
  1141. DATA 10HVOL1
  1142. DATA 10H
  1143. DATA 10H
  1144. DATA 10H
  1145. DATA 10H
  1146. DATA 10H
  1147. DATA 10H
  1148. DATA 10H 1
  1149. VFD 12/0,48/0 CONTROL WORD
  1150.  
  1151.  
  1152. HBUF BSS 0 HDR1 / EOF1 BUFFER
  1153. VFD 5/0,1/1,18/8,12/0,24/40 CONTROL WORD
  1154. HDR BSS 0 FIRST FILE HEADER / FIRST EOF LABEL
  1155. VFD 24/0,36/1H
  1156. DATA 10H
  1157. DATA 10H 000
  1158. DATA 10H1000100010
  1159. DATA 10H0
  1160. DATA 10H 000000
  1161. DATA 10HNOS "VERNUM"-
  1162. DATA 10H
  1163. VFD 12/0,48/0 CONTROL WORD
  1164.  
  1165.  
  1166. EOT BSS 0 TAPE MARK CONTROL WORDS
  1167. VFD 5/0,1/1,18/8,12/0,24/0
  1168. VFD 12/17B,48/0
  1169.  
  1170.  
  1171. HDR1 VFD 24/4HHDR1,36/0
  1172. EOF1 VFD 24/4HEOF1,36/0
  1173. SPACE 4,10
  1174. ** DEFAULT TAPE DESCRIPTORS.
  1175.  
  1176.  
  1177. DTD VFD 12/0,12/60B,6/3,6/0,24/0 DEFAULT TAPE DESCRIPTORS
  1178. DBS VFD 30/0,6/0,6/0,18/8 DEFAULT BLOCK SIZE
  1179.  
  1180. * UNLABELED.
  1181. * INHIBIT UNLOAD.
  1182. * ENFORCE RING IN.
  1183. * S (STRANGER) FORMAT.
  1184. * 8 WORD (80 CHARACTER) BLOCKS.
  1185. SSJ SPACE 4,10
  1186. ** SSJ PARAMETERS.
  1187.  
  1188.  
  1189. SSJ= BSS 0 DEFINE SSJ= ENTRY POINT
  1190. VFD 12/0,24/-0,12/RXCS,12/IRSI
  1191. VFD 42/0LSYSTEMX,18/377777B
  1192. BSSZ /COMSSSJ/SSJL-2
  1193. SPACE 4,10
  1194. ** BUFFER AREA.
  1195.  
  1196.  
  1197. USE //
  1198. BUF EQU *
  1199. BUFF EQU BUF+BUFL
  1200. RFL= EQU BUFF+BUFFL
  1201. ARG= EQU *
  1202. END