User Tools

Site Tools


cdc:nos2.source:opl871:submit

SUBMIT

Table Of Contents

  • [00010] SUBMIT - ENTER JOB IN INPUT QUEUE.
  • [00012] ENTER JOB IN INPUT QUEUE.
  • [00098] COMMON DATA.
  • [00135] TFUN - FAMILY NAME AND USER NAME TABLE FOR *DSP*.
  • [00151] MAIN PROGRAM.
  • [00153] MAIN PROGRAM
  • [00335] SUBROUTINES.
  • [00337] ABT - ABORT JOB.
  • [00346] CPF - COPY INPUT FILE TO SUBMIT FILE.
  • [00378] CSF - CHECK SPECIAL FORMAT.
  • [00444] NLT - WRITE NO LINE TERMINATOR DATA TO BUFFER.
  • [00489] RFM - REFORMAT FILE.
  • [00764] SUBUFS - SET NUMBER OF WORDS TRANSFERRED TO BUF FROM I.
  • [00781] SUBUFR - RESET TRANSFER CELL TO ZERO.
  • [00795] SPECIAL DIRECTIVE PROCESSORS.
  • [00797] CHARGE - PROCESS CHARGE.
  • [00832] JOB - PROCESS JOB.
  • [00841] EOR - PROCESS EOR.
  • [00850] EOF - PROCESS EOF.
  • [00859] SEQ - PROCESS SEQ.
  • [00871] NOSEQ - PROCESS NOSEQ.
  • [00883] TRANS - PROCESS TRANS.
  • [00897] NOTRANS - PROCESS NOTRANS.
  • [00911] NOPACK - PROCESS NOPACK.
  • [00925] PACK - PROCESS PACK.
  • [00939] REWIND - REWIND FILE.
  • [00990] USER - PROCESS USER.
  • [01047] GLF - GET LOCAL FILE NAME.
  • [01083] SFN - SHIFT AND TEST FILE NAME.
  • [01110] READ - READ AND COPY LOCAL FILE.
  • [01233] RNM - PROCESS NONTRANSPARENT READ MODE.
  • [01309] RTM - PROCESS TRANSPARENT READ MODE.
  • [01372] ESCAPE - PROCESS NEW ESCAPE CODE.
  • [01388] TABLES.
  • [01390] TCCF - TABLE OF DIRECTIVE FORMATS.
  • [01432] COMMON DECKS.
  • [01460] BUFFERS.
  • [01477] PRS - PRESET PROGRAM.
  • [01603] TPAR - PARAMETER CONVERSION TABLE.
  • [01626] SCC - SET CONTROL CHARACTER.

Source Code

SUBMIT.txt
  1. IDENT SUBMIT,FETS
  2. ABS
  3. ENTRY SUBMIT
  4. ENTRY RFL=
  5. ENTRY SSJ=
  6. SYSCOM B1
  7. SST
  8. *COMMENT SUBMIT - ENTER JOB IN INPUT QUEUE.
  9. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10. TITLE SUBMIT - ENTER JOB IN INPUT QUEUE.
  11. SPACE 4,10
  12. *** SUBMIT - ENTER JOB IN INPUT QUEUE.
  13. * G. R. MANSFIELD. 70/10/29.
  14. SPACE 4,10
  15. *** SUBMIT PLACES THE REQUESTED FILE IN THE REQUESTED
  16. * INPUT QUEUE.
  17. SPACE 4,25
  18. *** CALL.
  19. *
  20. * SUBMIT (LFN,Q)C
  21. * OR
  22. * SUBMIT (LFN,Q,NR)C
  23. *
  24. * LFN SOURCE FILE NAME.
  25. * Q INPUT QUEUE TYPE.
  26. * B OR BC = BATCH.
  27. * N OR NO = BATCH, WITH OUTPUT NOT TO BE PRINTED.
  28. * E=UN OR RB=UN = REMOTE BATCH, WITH OUTPUT TO BE SENT
  29. * TO THE SPECIFIED USER NAME. IF OMITTED, *UN*
  30. * DEFAULTS TO THE USER NAME ASSOCIATED WITH THE
  31. * SUBMITTING JOB.
  32. * TO = BATCH, WITH OUTPUT TO BE SENT TO THE WAIT QUEUE.
  33. * NR IF SPECIFIED, NO FILES ARE REWOUND UNLESS
  34. * EXPLICITLY DONE WITH /REWIND DIRECTIVES.
  35. * C ESCAPE CHARACTER FOR REFORMAT.
  36. *
  37. * ASSUMED -
  38. * Q=B OR BC, IF SUBMITTED FROM NON-*IAOT* JOB.
  39. * Q=N OR NO, IF SUBMITTED FROM *IAOT* JOB.
  40. * LFN=NO DEFAULT (HOWEVER, *IAF* WILL EDIT THE COMMAND TO
  41. * INSERT THE PRIMARY FILE NAME IF *SUBMIT.* IS ENTERED
  42. * IN RESPONSE TO A COMMAND LINE PROMPT).
  43. * C=/
  44. SPACE 4,35
  45. *** DAYFILE MESSAGES.
  46. *
  47. * * CONFLICTING PARAMETERS.* = INPUT QUEUE TYPE SPECIFIED MORE
  48. * THAN ONCE.
  49. *
  50. * * INCORRECT QUEUE SPECIFIED.* = QUEUE TYPE SPECIFIED NOT A
  51. * CORRECT TYPE FOR *SUBMIT*.
  52. *
  53. * * NO READ FILE FOUND- LFN .* = LFN ON /READ DIRECTIVE COULD
  54. * NOT BE FOUND.
  55. *
  56. * * NO SOURCE FILE SPECIFIED.* = NO SOURCE FILE NAME GIVEN.
  57. *
  58. * * READ FILE BUSY- LFN .* = LFN ON /READ DIRECTIVE WAS BUSY.
  59. *
  60. * * SUBMIT COMPLETE. JSN IS XXXX.* = THE JOB WAS
  61. * SUBMITTED WITH THE JSN XXXX.
  62. *
  63. * * SUBMIT FILE EMPTY.* = EOR/EOF FOUND ON FIRST READ OF SUBMIT
  64. * FILE.
  65. *
  66. * * TOO MANY ARGUMENTS.* = TOO MANY ARGUMENTS WERE PRESENT ON
  67. * THE COMMAND.
  68. *
  69. * * USER COMMAND HAS NOT BEEN EXECUTED.* = A */USER* DIRECTIVE
  70. * HAS BEEN SPECIFIED, BUT THE CALLING JOB HAS NEVER EXECUTED
  71. * A *USER* COMMAND.
  72. *
  73. * * USER DIRECTIVE INCORRECT.* = A */USER* DIRECTIVE COULD
  74. * NOT BE PROCESSED, EITHER BECAUSE THE CALLING JOB HAS NEVER
  75. * ISSUED A *USER* COMMAND, OR BECAUSE THE DIRECTIVE DID NOT
  76. * FOLLOW BOTH A *JOB* DIRECTIVE AND A *JOB* COMMAND.
  77. SPACE 4,10
  78. *CALL COMCCMD
  79. *CALL COMCMAC
  80. *CALL COMSDSP
  81. *CALL COMSIOQ
  82. *CALL COMSMLS
  83. *CALL COMSPFM
  84. *CALL COMSSFM
  85. *CALL COMSSSD
  86. SPACE 4,10
  87. **** ASSEMBLY CONSTANTS.
  88.  
  89.  
  90. BUFL EQU 320D WORKING BUFFER
  91. IBUFL EQU 2001B INPUT FILE BUFFER
  92. FBUFL EQU 2001B
  93. RBUFL EQU 2001B READ FILE BUFFER
  94. SBUFL EQU 100B *SFM* BUFFER LENGTH
  95. TBUFL EQU BUFL/10+1 NO LINE TERMINATOR DATA BUFFER LENGTH
  96. WBUFL EQU 1
  97. ****
  98. TITLE COMMON DATA.
  99. DATA SPACE 4,10
  100. ** COMMON DATA.
  101.  
  102.  
  103. ORG 110B
  104. FETS BSS 0
  105.  
  106. I BSS 0
  107. INPUT FILEB IBUF,IBUFL,(FET=8)
  108.  
  109. F BSS 0
  110. SCR FILEB FBUF,FBUFL,(FET=8)
  111.  
  112. R BSS 0
  113. TAPE1 FILEB RBUF,RBUFL,(FET=8)
  114.  
  115. RR BSS 0
  116. PFMFIL FILEB RBUF,RBUFL,EPR,(FET=13B)
  117.  
  118. W BSS 0
  119. SCR2 FILEB WBUF,WBUFL
  120.  
  121.  
  122. ALVL CON 0 FILE ACCESS LEVEL
  123. EORBIT CON 0 BIT59=EOR BIT, BIT47=/READ ACTIVE BIT
  124. FLAGS CON 0 BIT59=NOSEQ, BIT47=TRANS, BIT35=NOPACK
  125. NRFLG DATA 2RNR NO REWIND FLAG
  126. IPTR CON 0 INPUT FET *IN* POINTER
  127. IPTR2 CON 0 READ FILE FET *IN* POINTER
  128. LCNT CON 1 LINE COUNTER
  129. OPTR CON 0 INPUT FET OUT POINTER
  130. OPTR2 CON 0 READ FILE FET OUT POINTER
  131. RJ CON 0 RETURN JUMP ADDRESS
  132. RJ2 CON 0 READ FILE ORIGINAL RETURN JUMP ADDRESS
  133. USRF CON 0 A */USER* DIRECTIVE HAS BEEN PROCESSED
  134. TFUN SPACE 4,10
  135. ** TFUN - FAMILY NAME AND USER NAME TABLE FOR *DSP*.
  136. *
  137. *T W0 42/ FAMILY NAME,18/0
  138. *T,W1 42/ USER NAME,18/0
  139.  
  140.  
  141. TFUN BSSZ 2
  142. TDSP SPACE 4,10
  143. * TDSP - *DSP* PARAMETER BLOCK.
  144.  
  145.  
  146. TDSP VFD 42/0LSCR,18/0
  147. VFD 24/0,12/0LIN,6/0,18/FRFN+FREB+FRDC+FRCS
  148. BSSZ DPBL-*+TDSP
  149. VFD 42/0,18/EFNV
  150. BSSZ EPBL-*+TDSP
  151. TITLE MAIN PROGRAM.
  152. SUBMIT SPACE 4,100
  153. ** SUBMIT - MAIN PROGRAM
  154. *
  155. * THE ESCAPE CODE (*C* PARAMETER) IS A UNIQUE CHARACTER
  156. * THAT ENABLES THE SUBMIT PROCESSOR TO RECOGNIZE SPECIAL
  157. * DIRECTIVES THAT AFFECT THE FINAL FORMAT OF THE
  158. * SUBMIT FILE. DEFAULT CHARACTER IS /.
  159. *
  160. * FUNCTIONS
  161. *
  162. * 1. READS FIRST UNIT RECORD AND CHECKS FOR *C*JOB
  163. * A. IF THE FIRST DIRECTIVE IS NOT *C*JOB THE
  164. * INPUT FILE IS COPIED AS IS TO BECOME THE
  165. * ACTUAL SUBMIT FILE.
  166. *
  167. * B. IF THE FIRST DIRECTIVE IS *C*JOB THE INPUT
  168. * FILE WILL BE REFORMATTED TO BECOME THE
  169. * SUBMIT FILE.
  170. * NOTE REFORMATTING IS ACCOMPLISHED BY PLACING
  171. * SUBMIT DIRECTIVES IN THE INPUT FILE.
  172. * 2. SETS QUEUE FOR EVENTUAL DISPOSAL OF OUTPUT
  173. * 3. SUBMIT FILE IS PASSED TO THE SYSTEM *ROUTE* MACRO
  174. * 4. MESSAGE IS ISSUED TO DAYFILE/INTERACTIVE TERMINAL
  175. *
  176. *
  177. * HOW DIRECTIVES INFLUENCE THE SUBMIT FILE.
  178. *
  179. * 1. MODES EDITING IS DONE UNDER TWO MODES
  180. * A. NON-TRANSPARENT EACH LINE OF THE INPUT FILE IS
  181. * EXAMINED FOR DIRECTIVES. DEFAULT
  182. * MODE WITH *C*JOB DIRECTIVE.
  183. * DIRECTIVE FORMAT *C*NOTRANS
  184. *
  185. * B. TRANSPARENT ONLY GROUPS OF DIRECTIVES AT
  186. * THE BEGINNING OF EACH RECORD MAY
  187. * BE EXAMINED.
  188. * DIRECTIVE FORMAT *C*TRANS
  189. *
  190. * 2. OPTIONS EACH DIRECTIVE ENABLES THE USER TO
  191. * DICTATE SOME ASPECT OF THE FINAL FORMAT OF
  192. * THE SUBMIT FILE.
  193. *
  194. * DIRECTIVE FORMAT *C*CHARGE
  195. * REPLACES THE DIRECTIVE WITH A *CHARGE*
  196. * COMMAND USING THE CURRENTLY ACTIVE
  197. * CHARGE AND PROJECT NUMBER IF THE CHARGE
  198. * AND PROJECT NUMBERS HAVE BEEN VALIDATED.
  199. * IF NO CHARGE NUMBER IS IN EFFECT OR IF
  200. * THE CURRENT CHARGE AND PROJECT NUMBERS
  201. * HAVE NOT BEEN VALIDATED NO ACTION IS
  202. * TAKEN.
  203. *
  204. * DIRECTIVE FORMAT *C*EOR
  205. * END OF RECORD IS WRITTEN ON SUBMIT FILE
  206. *
  207. * DIRECTIVE FORMAT *C*EOF
  208. * END OF FILE IS WRITTEN ON SUBMIT FILE
  209. *
  210. * DIRECTIVE FORMAT *C*EC=A
  211. * CHANGES ESCAPE CHARACTER FROM *C* TO A.
  212. *
  213. * DIRECTIVE FORMAT *C*NOSEQ
  214. * WILL AFFECT FORMAT ONLY UNDER NON-TRANS-
  215. * PARENT MODE. NO ATTEMPT WILL BE MADE TO
  216. * STRIP LINE NUMBERS FROM INPUT FILE LINES.
  217. *
  218. * DIRECTIVE FORMAT *C*SEQ
  219. * WILL AFFECT FORMAT ONLY UNDER NON-TRANS-
  220. * PARENT MODE. LINE NUMBERS WILL BE
  221. * STRIPPED OFF INPUT FILE LINES. DEFAULT
  222. * WITH *C*JOB DIRECTIVE.
  223. *
  224. * DIRECTIVE FORMAT *C*REWIND,FILENAME
  225. * REWINDS ONE OF USER S LOCAL FILES
  226. *
  227. * DIRECTIVE FORMAT *C*READ,FILENAME
  228. * COPIES USER,S LOCAL FILE TO SUBMIT FILE.
  229. * EDITING IS DONE ON THE FILE AS THOUGH IT
  230. * WERE SOURCE CODE OF THE INPUT FILE.
  231. *
  232. * DIRECTIVE FORMAT *C*PACK
  233. * DEFAULT WHEN *C*JOB DIRECTIVE IS DETECTED.
  234. * ALL EOR MARKS ARE REMOVED FROM A FILE.
  235. * ALL EOF MARKS REMOVED FROM A MULTI-FILE
  236. * FILE. AN EOF MARK WILL BE WRITTEN TO THE
  237. * SUBMIT FILE ONLY WHEN EOI IS ENCOUNTERED
  238. * IN THE INPUT FILE. EDITING STOPS AT THAT
  239. * POINT.
  240. *
  241. * DIRECTIVE FORMAT *C*NOPACK
  242. * INTERNAL FILE STRUCTURES ARE PRESERVED
  243. * INTACT. EACH INTERNAL EOR OR EOF MARK IS
  244. * COPIED TO THE SUBMIT FILE. FILES COPIED
  245. * WITH *C*READ HAVE EOF AND EOI MARKS
  246. * CONVERTED TO EOR MARKS. WHEN EOI IS
  247. * ENCOUNTERED ON THE INPUT FILE AN EOF IS
  248. * WRITTEN TO THE SUBMIT FILE AND EDITING
  249. * STOPS.
  250. *
  251. * DIRECTIVE FORMAT *C*USER
  252. * READS *VALIDUS* FILE FOR THE PASSWORD OF
  253. * THE USER NAME CURRENTLY IN EFFECT AND
  254. * REPLACES THE DIRECTIVE WITH A *USER*
  255. * DIRECTIVE USING THE CURRENT USER NAME
  256. * AND PASSWORD.
  257.  
  258.  
  259. SUBMIT BSS 0 ENTRY
  260. SB1 1
  261. MX6 0 SET NO READ FILE YET
  262. SA6 RR
  263. RJ PRS
  264. RETURN F,R
  265. SA2 NRFLG
  266. ZR X2,SBM0 IF NO REWIND
  267. REWIND I
  268. SBM0 READ I
  269. READS I,BUF,BUFL READ FIRST LINE
  270. SX0 =C* SUBMIT FILE EMPTY.*
  271. NZ X1,ABT IF EOR/EOF
  272. SA1 BUF SKIP SEQUENCE NUMBERS
  273. RJ SSN
  274. RJ CSF CHECK SPECIAL FORMAT
  275. SA1 F+1 ASSIGN FILE TO INPUT DEVICE
  276. MX0 -48
  277. BX6 -X0*X1
  278. SX1 2RIN
  279. MX0 1 FILE ACCESS LEVEL BIT
  280. LX0 39-59
  281. LX1 59-11
  282. BX7 X6+X1
  283. BX7 X0+X7 MERGE ACCESS LEVEL BIT
  284. SA7 A1
  285. SA1 F+CFAL GET ACCESS LEVEL FIELD
  286. MX0 -3
  287. LX0 36
  288. SA2 ALVL
  289. BX1 X0*X1 CLEAR OLD ACCESS LEVEL
  290. LX2 36
  291. BX6 X1+X2 MERGE NEW ACCESS LEVEL
  292. SA6 A1
  293. REQUEST F,U,N REQUEST EQUIPMENT WITH NO DAYFILE MESSAGE
  294. SX6 B2-JOB
  295. NZ X6,SBM1 IF NOT JOB IDENTIFIER
  296. RJ RFM REFORMAT
  297. EQ SBM2
  298.  
  299. SBM1 RJ CPF COPY FILE
  300. SBM2 RECALL F
  301. SA1 USRF
  302. NZ X1,SBM3 IF */USER* SPECIFIED
  303. SX6 B0+
  304. SA6 TDSP+7 CLEAR *NO VALIDATE* BIT
  305. SBM3 ROUTE TDSP,RECALL
  306. CLOCK SBMA BUILD OUTPUT MESSAGE FOR TERMINAL
  307. SA1 TDSP
  308. SA2 =0LOUTPUT
  309. MX3 24
  310. BX6 X3*X1
  311. SA1 SBMB+2
  312. LX3 24
  313. BX1 -X3*X1
  314. LX6 24
  315. BX6 X1+X6
  316. SA6 SBMB+2
  317. SX3 B1
  318. BX6 X2+X3
  319. SA6 F
  320. WRITEW F,SBMA,5
  321. MESSAGE SBMB,3,R SEND JSN MESSAGE
  322. MX0 -6
  323. SA1 FWPR
  324. AX1 24
  325. BX3 -X0*X1
  326. SX6 X3-IAOT
  327. NZ X6,SBM5 IF NOT INTERACTIVE JOB
  328. MESSAGE NOFIL+2,1 CLEAR CONTROL POINT MESSAGE
  329. WRITER F
  330. SBM5 ENDRUN
  331.  
  332.  
  333. SBMA BSS 1
  334. SBMB DATA C* SUBMIT COMPLETE. JSN IS XXXX.*
  335. TITLE SUBROUTINES.
  336. ABT SPACE 4,10
  337. ** ABT - ABORT JOB.
  338. *
  339. * ENTRY (X0) = MESSAGE ADDRESS.
  340.  
  341.  
  342. ABT BSS 0
  343. MESSAGE X0,,R
  344. ABORT
  345. CPF SPACE 4,10
  346. ** CPF - COPY INPUT FILE TO SUBMIT FILE.
  347. *
  348. * USES X - 0, 1, 5.
  349. * B - 1, 6.
  350.  
  351.  
  352. CPF SUBR ENTRY/EXIT
  353. WRITES F,BUF,BUFL
  354. EQ CPF2
  355.  
  356. CPF1 READ I
  357. RECALL F
  358. CPF2 READW I,BUF,BUFL
  359. SX0 X1
  360. SX5 B6-BUF
  361. WRITEW F,BUF,X5
  362. NG X0,CPF4 IF EOF/EOI
  363. NZ X0,CPF3 IF EOR
  364. EQ CPF2
  365.  
  366. CPF3 WRITER F
  367. NG X0,CPFX IF EOI
  368. EQ CPF1
  369.  
  370. CPF4 SX0 X0+B1
  371. NG X0,CPF5 IF EOI
  372. WRITEF F
  373. EQ CPF1
  374.  
  375. CPF5 NZ X5,CPF3 IF DATA IN BUFFER
  376. EQ CPFX RETURN
  377. CSF SPACE 4,15
  378. ** CSF - CHECK SPECIAL FORMAT.
  379. *
  380. * ENTRY (A1) = ADDRESS OF FIRST CHARACTER.
  381. * (X1) = FIRST CHARACTER.
  382. *
  383. * EXIT (B2) = 0 IF NOT SPECIAL FORMAT.
  384. * = ADDRESS OF PROCESSOR OTHERWISE.
  385. *
  386. * USES X - 2, 3, 4, 5, 6, 7.
  387. * B - 2, 5, 7.
  388. * A - 2, 3, 5.
  389.  
  390.  
  391. CSF7 BX7 X3-X6
  392. BX4 X2*X7
  393. MX2 48D
  394. BX7 -X2*X7
  395. SA3 A3+1
  396. SA5 A5+1
  397. ZR X4,CSF4 IF MATCH FOUND
  398. NZ X3,CSF1 IF NOT END OF TABLE
  399.  
  400.  
  401. CSF SUBR ENTRY/EXIT
  402. SA5 TCCFL
  403. SA3 TCCF
  404. CSF1 BX6 X6-X6 CLEAR ASSEMBLY
  405. SA2 A1 FIRST CHARACTER
  406. MX4 48D
  407. BX4 -X4*X5
  408. SB7 X4 SAVE SHIFT COUNT PER CC FORMAT
  409. SB2 B0 CLEAR RESPONSE
  410. CSF2 LX6 6 ADVANCE ASSEMBLY
  411. BX6 X6+X2
  412. LX5 1 SHIFT CHARACTER COUNT
  413. SA2 A2+B1 NEXT CHARACTER
  414. NG X5,CSF2 LOOP FOR X5 CHARACTERS
  415. SB5 A3-TCCFR
  416. PL B5,CSF3 IF /EC=,/READ,/REWIND
  417. SX2 X2-1R
  418. ZR X2,CSF3 IF BLANK
  419. SA3 A3+1
  420. SA5 A5+1
  421. ZR X3,CSFX IF END OF LINE
  422. EQ CSF1 LOOP
  423.  
  424. CSF3 LX6 B7,X6
  425. SX4 59D
  426. SX2 B7
  427. IX4 X4-X2
  428. SB7 X4
  429. MX2 1
  430. AX2 B7,X2
  431. EQ CSF7 CHECK FOR DIRECTIVE FORMAT
  432.  
  433. CSF4 SB5 A3-1-TCCFR TEST FOR /READ
  434. NZ B5,CSF5 IF NOT /READ
  435. SA3 EORBIT TEST READ ACTIVE BIT
  436. LX3 12D
  437. NG X3,CSF6 IF READ ALREADY ACTIVE (DISREGARD /READ)
  438. CSF5 SB2 X7+ SET PROCESSOR ADDRESS
  439. CSF6 SA1 LCNT DECREMENT COUNT OF COMMANDS
  440. SX6 X1-1
  441. SA6 A1
  442. EQ CSFX RETURN
  443. NLT SPACE 4,10
  444. ** NLT - WRITE NO LINE TERMINATOR DATA TO BUFFER.
  445. *
  446. * ENTRY (X1) = STATUS FROM *READS*.
  447. * (B6) = LWA+1 OF DATA TRANSFERRED ON *READS*.
  448. *
  449. * EXIT (X1) = SAME AS ENTRY.
  450. *
  451. * USES A - 2, 3, 7.
  452. * B - 4, 5, 7.
  453. * X - 0, 1, 2, 3, 7.
  454.  
  455.  
  456. NLT SUBR ENTRY/EXIT
  457. SB7 B6-BUF
  458. ZR B7,NLTX IF NO DATA TRANSFERRED
  459. SB7 BUF SET CHARACTER BUFFER ADDRESS
  460. SB4 TBUF SET WORD BUFFER ADDRESS
  461. NLT1 SB5 10 INITIALIZE NUMBER OF CHARACTERS IN WORD
  462. SX7 B0+ CLEAR CHARACTER BUFFER WORD
  463. NLT2 SA2 B7+ MERGE NEXT CHARACTER
  464. LX7 6
  465. SB7 B7+B1 INCREMENT CHARACTER BUFFER ADDRESS
  466. BX7 X7+X2
  467. EQ B7,B6,NLT3 IF ALL CHARACTERS PROCESSED
  468. SB5 B5-B1 DECREMENT CHARACTERS IN WORD
  469. NZ B5,NLT2 IF NOT END OF WORD
  470. SA7 B4 STORE WORD
  471. SB4 B4+B1 INCREMENT WORD BUFFER ADDRESS
  472. EQ NLT1 PROCESS NEXT 10 CHARACTERS
  473.  
  474. NLT3 SA7 B4 STORE LAST WORD
  475. SB4 B4+B1 SET NUMBER OF WORDS
  476. SB7 B4-TBUF
  477. BX0 X1 SAVE READ STATUS
  478. WRITEW F,TBUF,B7 WRITE DATA WITH NO TERMINATOR
  479. SA2 FLAGS CHECK PACK MODE
  480. SA3 I CHECK EOI STATUS
  481. LX2 59-35
  482. LX3 59-9
  483. PL X2,NLT4 IF PACK MODE
  484. PL X3,NLT4 IF NOT EOI
  485. WRITEF F FLUSH BUFFER IF EOI IN NOPACK MODE
  486. NLT4 BX1 X0 RESTORE READ STATUS
  487. EQ NLTX RETURN
  488. RFM SPACE 4,40
  489. ** RFM - REFORMAT FILE.
  490. * *RFM* PROCESSES THE INPUT FILE WHENEVER A *C*JOB
  491. * DIRECTIVE IS DETECTED AS THE FIRST UNIT RECORD OF
  492. * THE FILE.
  493. * PROCESSING IS DONE IN ONE OF TWO MODES
  494. * 1. NONTRANSPARENT MODE
  495. * AFTER *C*JOB DIRECTIVE OR *C*NOTRANS*
  496. * DIRECTIVE EACH UNIT RECORD OF THE INPUT FILE IS
  497. * CHECKED FOR SPECIAL SUBMIT DIRECTIVES
  498. * A. *C*TRANS FOUND
  499. * EDITING REVERTS IMMEDIATELY TO TRANSPARENT
  500. * MODE. (SEE BELOW).
  501. * B. OTHER DIRECTIVES
  502. * THE DIRECTIVE APPEARANCE IS MARKED AND
  503. * IT TAKES EFFECT WITH THE NEXT UNIT RECORD
  504. * C. TEXT LINE
  505. * TEXT LINES ARE EDITED ACCORDING TO THE
  506. * CURRENT SETTING OF THE SUBMIT CONTROL
  507. * OPTIONS.
  508. * D. EOR/EOF/EOI
  509. * SEE COMMENTS IN SUBROUTINE *SUBEO*.
  510. *
  511. * 2. TRANSPARENT MODE
  512. * AFTER *C*TRANS DIRECTIVE HAS BEEN
  513. * PROCESSED THE FIRST UNIT RECORD IS EXAMINED
  514. * A. TEXT
  515. * THE WHOLE RECORD IS TRANSFERED TO THE
  516. * SUBMIT FILE AS IS
  517. * B. *C*NOTRANS FOUND
  518. * PROCESSING REVERTS IMMEDIATELY TO
  519. * NON-TRANSPARENT MODE. (SEE ABOVE).
  520. * C. SUBMIT CONTROL OPTION
  521. * THE CONTROL OPTION OCCURENCE IS MARKED
  522. * EVEN IF IT MAY NOT INFLUENCE THE EDITING
  523. * UNDER THIS MODE. IF MODE REVERTS TO NON-
  524. * TRANSPARENT, ALL OPTIONS USED UNDER
  525. * TRANSPARENT MODE WILL TAKE EFFECT.
  526. * D. EOR/EOF/EOI
  527. * SEE COMMENTS IN SUBROUTINE *SUBEO*.
  528.  
  529.  
  530. RFM SUBR ENTRY/EXIT
  531.  
  532. * PROCESS NONTRANSPARENT MODE
  533.  
  534. PNM BSS 0 NOTRANS
  535. EQ PNM2 SKIP ADDITIONAL READ
  536.  
  537. PNM1 READ I,R
  538. RECALL F
  539. PNM2 SA1 I+3 SAVE OUTPTR(I)
  540. SA2 I+2 SAVE INPUT FET *IN* POINTER
  541. BX6 X1
  542. LX7 X2
  543. SA6 OPTR
  544. SA7 IPTR
  545. READS I,BUF,BUFL READ UNIT RECORD
  546. ZR X1,PNM2.1 IF NO EOR/EOF/EOI
  547. SB7 B6-BUF
  548. ZR B7,PNM2.0 IF END OF RECORD
  549. SA2 FLAGS CHECK TRANS MODE BIT
  550. LX2 59-47
  551. PL X2,PNM2.0 IF TRANS NOT SET
  552. SA2 OPTR RESTORE POINTERS FOR TRANS DATA
  553. SA3 IPTR
  554. BX6 X2
  555. LX7 X3
  556. SA6 I+3
  557. SA7 I+2
  558. EQ PTM6 SWITCH TO TRANS MODE
  559.  
  560. PNM2.0 RJ NLT WRITE NO LINE TERMINATOR DATA TO BUFFER
  561. SX0 B0 INPUT FILE
  562. SX7 B0 NO WRITE REMAINDER
  563. SX5 RFMX RETURN ADDRESS FOR EOI
  564. RJ SUBEO PROCESS EOF/EOR
  565. EQ PNM1 PROCESS NEXT RECORD
  566.  
  567. PNM2.1 SA1 LCNT INCREMENT LINE COUNT
  568. SX6 X1+B1
  569. SA6 A1
  570. SA1 BUF SET BEGINNING ADDRESS
  571. RJ CSF CHECK SPECIAL FORMAT
  572. NZ B2,PNM3 IF SPECIAL FORMAT
  573. RJ SSN STRIP SEQUENCE NUMBER
  574. SB6 A1 SAVE BEGINNING ADDRESS AFTER STRIPPING
  575. SB3 B2 SAVE BEGINNING ADDRESS BEFORE STRIPPING
  576. RJ CSF CHECK SPECIAL FORMAT
  577. ZR B2,PNM4 IF NOT SPECIAL FORMAT
  578. PNM3 SX7 PNM2 SAVE RETURN ADDRESS
  579. SA7 RJ
  580. JP B2
  581.  
  582. PNM4 SA2 FLAGS TEST TRANS BIT
  583. LX2 12D
  584. PL X2,PNM5 TRANS NOT SET
  585. SA1 OPTR RESTORE *IN* AND *OUT* POINTERS
  586. SA2 IPTR
  587. BX6 X1
  588. LX7 X2
  589. SA6 I+3
  590. SA7 I+2
  591. EQ PTM6 SWITCH TO TRANS MODE
  592.  
  593. PNM5 SB2 BUF+BUFL
  594. SA2 FLAGS TEST NOSEQ BIT
  595. PL X2,PNM6 STRIP SEQUENCE NUMBERS
  596. SB6 B3 NO SEQUENCE NUMBER STRIPPING
  597. PNM6 SB7 B2-B6 CALCULATE WRITE LENGTH
  598. WRITES F,B6,B7
  599. EQ PNM2 LOOP TO NEXT RECORD
  600.  
  601. * PROCESS TRANSPARENT MODE
  602.  
  603. PTM BSS 0
  604. PTM1 READ I
  605. RECALL F
  606. PTM2 SA1 I+3 SAVE OUTPTR(I)
  607. BX6 X1
  608. SA6 OPTR
  609. SA1 X6 CHECK FOR END OF LINE BYTE
  610. MX7 -12
  611. BX7 -X7*X1
  612. NZ X7,PTM5 IF NOT A POSSIBLE SPECIAL FORMAT DIRECTIVE
  613. READS I,BUF,BUFL READ UNIT RECORD FROM INPUT FILE
  614. ZR X1,PTM3 IF NO EOR/EOF
  615. SX0 B0 INPUT FILE
  616. SX7 B0 NO RECORD REMAINDER
  617. SX5 RFMX RETURN ADDRESS FOR EOI
  618. RJ SUBEO PROCESS TERMINATION CONDITION
  619. EQ PTM1 PROCESS NEXT RECORD
  620.  
  621. PTM3 SA1 LCNT INCREMENT LINE COUNT
  622. SX6 X1+B1
  623. SA6 A1
  624. SA1 BUF SET BEGINNING ADDRESS
  625. RJ CSF CHECK SPECIAL FORMAT WITH NO SEQ NO STRIP
  626. NZ B2,PTM4 IF SPECIAL FORMAT
  627. RJ SSN STRIP SEQUENCE NUMBER
  628. SB6 A1 SAVE BEGINNING ADDRESS AFTER STRIPPING
  629. SB3 B2 SAVE BEGINNING ADDRESS BEFORE STRIPPING
  630. RJ CSF CHECK SPECIAL FORMAT
  631. ZR B2,PTM5 IF NOT SPECIAL FORMAT
  632. PTM4 SX7 PTM2 SAVE RETURN ADDRESS
  633. SA7 RJ
  634. JP B2
  635.  
  636. PTM5 SA2 FLAGS TEST FOR TRANS BIT SET
  637. LX2 12D
  638. SA3 OPTR RESTORE OUT POINTER
  639. BX6 X3
  640. SA6 I+3
  641. PL X2,PNM2 IF NOT SET, SWITCH TO NONTRANSPARENT MODE
  642. PTM6 READW I,BUF,BUFL
  643. RJ SUBUFS SET TRANSFER TO BUF
  644. ZR X1,PTM7 IF NO EOR/EOF
  645. SX0 B0 INPUT FILE
  646. SX7 B1 PROCESS INCOMPLETE RECORD
  647. SX5 RFMX RETURN ADDRESS FOR EOI
  648. RJ SUBEO PROCESS TERMINATION CONDITION
  649. EQ PTM1 PROCESS NEXT RECORD
  650.  
  651. PTM7 WRITEW F,BUF,BUFL
  652. RJ SUBUFR CLEAR TRANSFER TO BUF
  653. EQ PTM6 LOOP
  654. SUBEO SPACE 4,40
  655. ** SUBEO PROCESS FILE TERMINATION CONDITION.
  656. *
  657. * ENTRY (I) = FILE FET ADDRESS.
  658. * (X1) = EOR/EOF/EOI STATUS FROM READW OR READS
  659. * (X0) IF 0 - FILE IS INPUT FILE
  660. * 1 - FILE FROM /READ,....
  661. * (X5) = ALTERNATE RETURN ADDRESS
  662. * (X7) = 0 IF ENTIRE RECORD.
  663. * = 1 IF PARTIAL RECORD POSSIBLE.
  664. *
  665. * EXIT THE ROUTINE WILL RETURN VIA REGULAR LINKAGE WHEN
  666. * EOR/EOF ON INPUT FILE
  667. * EOR ON READ FILE
  668. * THE ROUTINE WILL RETURN TO THE ALTERNATE RETURN
  669. * ADDRESS WHEN
  670. * EOI ON INPUT FILE
  671. * EOF ON READ FILE
  672. *
  673. *
  674. * THIS ROUTINE PROCESSES A TERMINAL CONDITION FOR A FILE
  675. * AS FOLLOWS
  676. * 1. END-OF-INFORMATION
  677. * A. INPUT FILE
  678. * THE REFORMATTING ROUTINE IS TERMINATED BUT
  679. * THE SUBMIT BUFFER F IS FLUSHED IF NOT
  680. * EMPTY WITH A WRITEF MACRO.
  681. * 2. END OF FILE
  682. * A. INPUT FILE
  683. * IF THE PACK CONTROL OPTION IS
  684. * IN EFFECT THE FILE MARK IS IGNORED.
  685. * ELSE A FILE MARK IS WRITTEN TO THE OUTPUT
  686. * FILE F
  687. * B. READ FILE
  688. * READING FROM FILE IS TERMINATED, EDITING
  689. * WILL BE THE SAME AS IF EOR WAS DETECTED.
  690. * 3. END OF RECORD
  691. * A. INPUT FILE
  692. * B. READ FILE
  693. * IF THE PACK OPTION IS IN EFFECT THE RECORD
  694. * MARK IS IGNORED, ELSE A RECORD MARK IS
  695. * WRITTEN TO THE OUTPUT FILE F.
  696.  
  697.  
  698. SUBEO SUBR ENTRY/EXIT
  699. SA2 FLAGS PACK/NOPAK
  700. LX2 59-35
  701.  
  702. * SEPARATE EOR FROM EOF.
  703.  
  704. PL X1,SUB6 IF EOR
  705. NZ X0,SUB4 IF EOF ON READ FILE
  706.  
  707. * END OF FILE.
  708.  
  709. SA4 SUBTR
  710. BX0 X2
  711. ZR X4,SUB1 IF BUFFER EMPTY
  712. WRITEW F,BUF,X4
  713. RJ SUBUFR CLEAR TRANSFER COUNT
  714. SUB1 SA3 I CHECK EOI STATUS
  715. LX3 59-9
  716. PL X0,SUB2 IF PACK MODE
  717. NG X3,SUB3 IF EOI/INPUT/NOPACK
  718. WRITEF F EOF/NOPACK, FLUSH FILE
  719. EQ SUBEOX REGULAR RETURN
  720.  
  721. SUB2 PL X3,SUBEOX IF NOT EOI
  722. WRITEF F ON EOI,FLUSH OUTPUT BUFFER
  723. SUB3 SB7 X5 SET ALTERNATE RETURN ADDRESS
  724. JP B7
  725.  
  726. * READ FILE EOF OR EOI.
  727.  
  728. SUB4 ZR X7,SUB5 IF NO PARTIAL RECORD READ
  729. SA4 SUBTR
  730. ZR X4,SUB5 IF NO DATA
  731. BX0 X2
  732. WRITEW F,BUF,X4 WRITE LAST AMOUNT OF DATA
  733. RJ SUBUFR CLEAR TRANSFER COUNT
  734. BX2 X0
  735. SX0 B0 SET EOF
  736. EQ SUB8
  737.  
  738. SUB5 SA3 F+2 *IN*
  739. SX0 B0 X0 SET TO EOF
  740. SA4 A3+B1 OUT
  741. BX6 X3-X4 IN-OUT
  742. ZR X6,SUB9 IF OUTPUT BUFFER EMPTY
  743. EQ SUB8 READ FILE TERMINATED WITH EOR
  744.  
  745. * END OF RECORD.
  746.  
  747. SUB6 ZR X7,SUB7 IF NO PARTIAL RECORD READ
  748. BX0 X2
  749. SA4 SUBTR
  750. ZR X4,SUB6.1 IF NO DATA
  751. WRITEW F,BUF,X1-BUF
  752. RJ SUBUFR CLEAR TRANSFER TO BUF
  753. BX2 X0
  754. SUB6.1 SX1 B1 FORCE EOR FLAG
  755.  
  756. * PROCESS READ FILE EOR OR EOF.
  757.  
  758. SUB7 SX0 X1+ RESTORE EOR/EOF FLAG
  759. SUB8 PL X2,SUB9 IF PACK MODE
  760. WRITER F NOPACK PRESERVES THE RECORD MARK
  761. SUB9 ZR X0,SUB3 IF EOF ON READ FILE
  762. EQ SUBEOX EOR
  763. SUBUFS SPACE 4,10
  764. ** SUBUFS - SET NUMBER OF WORDS TRANSFERRED TO BUF FROM I.
  765. *
  766. * ENTRY (B6) = LWA+1 OF DATA TRANSFERRED.
  767. *
  768. * EXIT (SUBTR) = NUMBER OF WORDS TRANSFERRED.
  769. *
  770. * USES A - 6.
  771. * X - 4, 6.
  772.  
  773.  
  774. SUBUFS SUBR ENTRY/EXIT
  775. SX4 B6
  776. SX6 BUF
  777. IX6 X4-X6
  778. SA6 SUBTR
  779. EQ SUBUFSX RETURN
  780. SUBUFR SPACE 4,10
  781. ** SUBUFR - RESET TRANSFER CELL TO ZERO.
  782. *
  783. * EXIT (SUBTR) = 0.
  784. *
  785. * USES A - 6.
  786. * X - 6.
  787.  
  788.  
  789. SUBUFR SUBR ENTRY/EXIT
  790. SX6 B0+
  791. SA6 SUBTR
  792. EQ SUBUFRX RETURN
  793.  
  794. SUBTR BSSZ 1
  795. TITLE SPECIAL DIRECTIVE PROCESSORS.
  796. CHARGE SPACE 4,10
  797. ** CHARGE - PROCESS CHARGE.
  798. *
  799. * USES A - 1, 2.
  800. * X - 1, 2.
  801. * B - 2, 5.
  802. *
  803. * CALLS SNM.
  804. *
  805. * MACROS GETCN, WRITEC.
  806.  
  807.  
  808. CHARGE BSS 0
  809. SA1 CHGA
  810. NZ X1,CHG1 IF NOT FIRST *CHARGE* DIRECTIVE
  811. GETCN CHGA GET CHARGE INFORMATION
  812. SA1 CHGA READ CHARGE NUMBER
  813. SB5 CHGB SET COMMAND TEMPLATE ADDRESS
  814. SB2 1R#
  815. RJ SNM SET CHARGE NUMBER
  816. SA1 CHGA+1 READ FIRST PART OF PROJECT NUMBER
  817. SB2 1R<
  818. RJ SNM SET PROJECT NUMBER
  819. SA1 CHGA+2 READ SECOND PART OF PROJECT NUMBER
  820. SB2 1R>
  821. RJ SNM SET PROJECT NUMBER
  822. CHG1 SA1 CHGA+3
  823. PL X1,CHG2 IF CHARGE NOT VALIDATED
  824. WRITEC F,CHGB WRITE COMMAND TO SUBMIT FILE
  825. CHG2 SA2 RJ SET RETURN ADDRESS
  826. SB2 X2
  827. JP B2 RETURN
  828.  
  829. CHGA BSSZ 4 *GETCN* BLOCK
  830. CHGB DATA C/$CHARGE,##########,<<<<<<<<<<>>>>>>>>>>./
  831. JOB SPACE 4,10
  832. ** JOB - PROCESS JOB.
  833.  
  834.  
  835. JOB BSS 0
  836. WRITER F,R
  837. SA2 RJ
  838. SB2 X2
  839. JP B2
  840. EOR SPACE 4,10
  841. ** EOR - PROCESS EOR.
  842.  
  843.  
  844. EOR BSS 0
  845. WRITER F,R
  846. SA2 RJ
  847. SB2 X2
  848. JP B2
  849. EOF SPACE 4,10
  850. ** EOF - PROCESS EOF.
  851.  
  852.  
  853. EOF BSS 0
  854. WRITEF F,R
  855. SA2 RJ
  856. SB2 X2
  857. JP B2
  858. SEQ SPACE 4,10
  859. ** SEQ - PROCESS SEQ.
  860.  
  861.  
  862. SEQ BSS 0
  863. SA1 FLAGS
  864. MX2 1
  865. BX6 -X2*X1
  866. SA6 FLAGS
  867. SA2 RJ
  868. SB2 X2
  869. JP B2
  870. NOSEQ SPACE 4,10
  871. ** NOSEQ - PROCESS NOSEQ.
  872.  
  873.  
  874. NOSEQ BSS 0
  875. SA1 FLAGS
  876. MX2 1
  877. BX6 X2+X1
  878. SA6 FLAGS
  879. SA2 RJ
  880. SB2 X2
  881. JP B2
  882. TRANS SPACE 4,10
  883. ** TRANS - PROCESS TRANS.
  884.  
  885.  
  886. TRANS BSS 0
  887. SA1 FLAGS
  888. LX1 12D
  889. MX2 1
  890. BX6 X2+X1
  891. LX6 48D
  892. SA6 FLAGS
  893. SA2 RJ
  894. SB2 X2
  895. JP B2
  896. NOTRANS SPACE 4,10
  897. ** NOTRANS - PROCESS NOTRANS.
  898.  
  899.  
  900. NOTRANS BSS 0
  901. SA1 FLAGS
  902. LX1 12D
  903. MX2 1
  904. BX6 -X2*X1
  905. LX6 48D
  906. SA6 FLAGS
  907. SA2 RJ
  908. SB2 X2
  909. JP B2
  910. NOPACK SPACE 4,10
  911. ** NOPACK - PROCESS NOPACK.
  912.  
  913.  
  914. NOPACK BSS 0
  915. SA1 FLAGS
  916. LX1 24D
  917. MX2 1
  918. BX6 X2+X1
  919. LX6 36D
  920. SA6 FLAGS
  921. SA2 RJ
  922. SB2 X2
  923. JP B2
  924. PACK SPACE 4,10
  925. ** PACK - PROCESS PACK.
  926.  
  927.  
  928. PACK BSS 0
  929. SA1 FLAGS
  930. LX1 24D
  931. MX2 1
  932. BX6 -X2*X1
  933. LX6 36D
  934. SA6 FLAGS
  935. SA2 RJ
  936. SB2 X2
  937. JP B2
  938. REWIND SPACE 4,10
  939. ** REWIND - REWIND FILE.
  940. *
  941. * USES A - 1, 2, 6.
  942. * B - 2.
  943. * X - 1, 2, 3, 6.
  944. *
  945. * CALLS GLF, SFN.
  946.  
  947.  
  948. REWIND BSS 0
  949. RJ GLF GET LOCAL FILE NEME
  950. NZ X4,RWD6 IF INCORRECT SEPARATOR, PUT OUT AS DATA
  951. NZ B2,RWD1 IF VALID CHARACTERS IN FILEMAME
  952. SA2 =0LTAPE1 SET DEFAULT FILENAME IN FET
  953. BX6 X2
  954. SA1 EORBIT TEST READ ACTIVE BIT
  955. LX1 12D
  956. PL X1,RWD3 NOT ACTIVE
  957. EQ RWD6 ACTIVE,PUT OUT AS DATA
  958.  
  959. RWD1 RJ SFN SHIFT FILENAME, TEST FOR SUBMIT FILENAME
  960. ZR X2,RWD6 IF EQUAL,PUT OUT AS DATA
  961. RWD2 SA1 EORBIT TEST FOR READ ACTIVE
  962. LX1 12D
  963. PL X1,RWD3 READ NOT ACTIVE
  964. SA1 R TEST FOR READ FILENAME
  965. MX3 42D
  966. BX2 X3*X1
  967. BX2 X2-X6
  968. ZR X2,RWD6 IF EQUAL,PUT OUT AS DATA
  969. RWD3 SX1 1
  970. IX6 X6+X1
  971. SA6 W STORE FILENAME IN FET
  972. REWIND W,R REWIND FILE
  973. SA1 RJ GET RETURN ADDRESS
  974. SB2 X1
  975. JP B2 RETURN
  976.  
  977. RWD6 SA1 RJ TEST RETURN ADDRESS = TO NONTRANS
  978. PARENT MODE ROUTINE
  979. SX2 PNM2
  980. BX2 X1-X2
  981. ZR X2,PNM4 RETURN TO NONTRANSPARENT MODE ROUTINE
  982. SX2 PTM2
  983. BX2 X1-X2
  984. ZR X2,PTM5
  985. SX2 RTM1
  986. BX2 X1-X2
  987. ZR X2,RTM5
  988. EQ RNM3
  989. USER SPACE 4,10
  990. ** USER - PROCESS USER.
  991. *
  992. * USES X - 0, 1, 2, 6.
  993. * A - 1, 2, 6.
  994. * B - 2, 5.
  995. *
  996. * CALLS SNM.
  997. *
  998. * MACROS ABORT, MESSAGE, RECALL, SYSTEM, WRITEC.
  999.  
  1000.  
  1001. USER BSS 0 ENTRY
  1002. SA1 PFPB+2
  1003. MX0 42
  1004. BX5 X0*X1
  1005. NZ X5,USE2 IF *USER* COMMAND HAS BEEN EXECUTED
  1006. MESSAGE (=C* USER COMMAND HAS NOT BEEN EXECUTED.*),,R
  1007. USE1 MESSAGE (=C* USER DIRECTIVE INCORRECT.*),,R
  1008. ABORT
  1009.  
  1010. USE2 SA2 LCNT CHECK LINE COUNT
  1011. SX6 X2-1
  1012. NZ X6,USE1 IF MORE THAN ONE COMMAND PROCESSED
  1013. SA2 USRF
  1014. NZ X2,USE1 IF USER DIRECTIVE ALREADY PROCESSED
  1015. SX6 B1 SET */USER* FLAG
  1016. SA6 A2
  1017. SYSTEM SFM,R,USEC,RSDF*100B GET FAMILY ORDINAL TABLE
  1018. SA1 SBUF+0 GET SYSTEM DEFAULT FAMILY NAME
  1019. SA2 PFPB+0 CHECK FOR DEFAULT FAMILY
  1020. SB5 USEB SET ADDRESS OF DEFAULT FAMILY TEMPLATE
  1021. BX2 X1-X2
  1022. BX2 X0*X2
  1023. ZR X2,USE3 IF CURRENT FAMILY IS THE DEFAULT FAMILY
  1024. SB5 USEA SET ADDRESS OF ALTERNATE FAMILY TEMPLATE
  1025. SA1 PFPB+0 SET FAMILY NAME IN *USER* COMMAND
  1026. BX1 X0*X1
  1027. SB2 1R#
  1028. RJ SNM SET NAME IN MESSAGE
  1029. USE3 SB2 1R* SET USER NAME IN *USER* COMMAND
  1030. BX1 X5
  1031. RJ SNM SET NAME IN MESSAGE
  1032. USE4 WRITEC F,B5
  1033. RECALL F
  1034. SA2 RJ
  1035. SB2 X2
  1036. JP B2 RETURN
  1037.  
  1038. * *USER* COMMAND TEMPLATES.
  1039.  
  1040. USEA DATA C/$USER,*******,,#######./ ALTERNATE FAMILY TEMPLATE
  1041.  
  1042. USEB DATA C/$USER,*******,./ DEFAULT FAMILY TEMPLATE
  1043.  
  1044. USEC VFD 12/RFDF,12/0,12/SBUFL,6/0,18/SBUF *RSDF* CONTROL WORD
  1045. CON 0 END OF CONTROL WORDS
  1046. GLF SPACE 4,10
  1047. ** GLF - GET LOCAL FILE NAME.
  1048. *
  1049. * ENTRY (A2) = ADDRESS OF NEXT CHARACTER IN STRING BUFFER.
  1050. *
  1051. * EXIT (X4) .NE. 0 IF INCORRECT SEPARATOR.
  1052. * (B2) = NUMBER OF CHARACTERS IN NAME.
  1053. *
  1054. * USES A - 1.
  1055. * X - 1, 3, 4, 5, 6.
  1056. * B - 2.
  1057.  
  1058.  
  1059. GLF SUBR ENTRY/EXIT
  1060. SA1 A2 TEST FOR , OR BLANK SEPARATOR
  1061. SX4 1R,
  1062. BX4 X1-X4
  1063. ZR X4,GLF2
  1064. SX4 1R
  1065. BX4 X1-X4
  1066. NZ X4,GLFX IF INCORRECT SEPARATOR
  1067. GLF2 SA1 A2+1 GET LOCAL FILENAME
  1068. SB2 B0 SET BUFFER INDEX
  1069. MX5 7 SET FILENAME CHARACTER LIMIT
  1070. SX3 1R
  1071. BX6 X6-X6 CLEAR ASSEMBLY
  1072. GLF1 BX4 X1-X3 TEST FOR BLANK
  1073. ZR X4,GLFX IF BLANK
  1074. LX6 6
  1075. BX6 X6+X1 PLANT CHARACTER
  1076. LX5 1 SHIFT CHARACTER COUNT
  1077. SB2 B2+B1 INCREMENT CHARACTER INDEX
  1078. SA1 A1+B1 GET NEXT CHARACTER
  1079. NG X5,GLF1 IF NOT 7 CHARACTERS
  1080. BX4 X1-X3 TEST FOR BLANK
  1081. EQ GLFX RETURN
  1082. SFN SPACE 4,10
  1083. ** SFN - SHIFT AND TEST FILE NAME.
  1084. *
  1085. * ENTRY (B2) = NUMBER OF CHARACTERS IN NAME.
  1086. *
  1087. * EXIT (X2) = 0 IF NAME SAME AS SUBMIT FILE NAME.
  1088. *
  1089. * USES A - 2.
  1090. * X - 2, 3, 4.
  1091. * B - 2.
  1092.  
  1093.  
  1094. SFN SUBR ENTRY/EXIT
  1095. SX4 B2 SHIFT FILENAME + TEST FOR SUBMIT FILENAME
  1096. SX3 10D GENERATE SHIFT COUNT
  1097. IX4 X3-X4
  1098. BX3 X4
  1099. LX4 2
  1100. LX3 1
  1101. IX4 X4+X3
  1102. SB2 X4
  1103. LX6 B2,X6
  1104. SA2 I TEST READ FILENAME SAME AS SUBMIT FILE NAME
  1105. MX3 42D
  1106. BX2 X3*X2
  1107. BX2 X2-X6
  1108. EQ SFNX RETURN
  1109. READ SPACE 4,10
  1110. ** READ - READ AND COPY LOCAL FILE.
  1111. *
  1112. * USES A - 1, 2, 6.
  1113. * X - 0, 1, 2, 3, 4, 6.
  1114. * B - 3.
  1115. *
  1116. * CALLS GLF, RNM, RTM, SFN.
  1117. *
  1118. * MACROS ATTACH, GET, RECALL, RETURN, REWIND, SETFAL, STATUS.
  1119.  
  1120.  
  1121. READ BSS 0
  1122. RJ GLF GET LOCAL FILENAME
  1123. NZ X4,READ13 IF INCORRECT SEPARATOR, PUT OUT AS DATA
  1124. READ1 NZ B2,READ2 IF VALID CHARACTERS IN FILENAME
  1125. SA2 =0LTAPE1 SET DEFAULT FILENAME IN FET
  1126. BX6 X2
  1127. EQ READ3
  1128.  
  1129. READ2 RJ SFN SHIFT FILENAME + TEST FOR SUBMIT FILENAME
  1130. ZR X2,READ13 IF EQUAL, PUT OUT AS DATA
  1131. READ3 SX1 1
  1132. IX6 X6+X1
  1133. SA6 R STORE FILENAME IN FET
  1134. SA6 RR
  1135. READ4 SA1 RJ STORE ORIGINAL RETURN JUMP
  1136. BX6 X1
  1137. SA6 RJ2
  1138. SA1 EORBIT SET READ ACTIVE BIT
  1139. MX2 1
  1140. LX1 12D
  1141. BX6 X1+X2
  1142. LX6 48D
  1143. SA6 EORBIT
  1144. SA1 RR+1 SET ACCESS LEVEL PROCESSING BIT
  1145. MX6 1
  1146. LX6 39-59
  1147. BX6 X1+X6
  1148. SA6 A1
  1149. STATUS RR
  1150. SA1 RR
  1151. MX3 60-7
  1152. BX4 -X3*X1
  1153. SX3 X4-1
  1154. NZ X3,READ8 IF FILE LOCAL
  1155. GET RR
  1156. SB3 B0
  1157. READ5 SA1 RR CHECK *PFM* ERROR STATUS
  1158. MX3 60-4
  1159. AX1 10
  1160. BX6 -X3*X1
  1161. ZR X6,READ10 IF FILE OBTAINED
  1162. SX3 X6-1
  1163. ZR X3,READ6 IF FILE BUSY
  1164. NE B3,B0,READ7 IF BOTH *GET* AND *ATTACH* FAILED
  1165. SA1 R
  1166. BX6 X1
  1167. SA6 RR RESET LFN AND STATUS
  1168. ATTACH RR,,,,,,,,NF
  1169. SB3 B1 SET *ATTACH* FLAG
  1170. EQ READ5 CHECK *PFM* ERROR STATUS
  1171.  
  1172. READ6 SA1 R * READ FILE BUSY - LFN*
  1173. MX3 42
  1174. BX6 X3*X1
  1175. SA6 BSFIL+2 SET FILE NAME IN MESSAGE
  1176. SX0 BSFIL
  1177. EQ ABT ABORT
  1178.  
  1179. READ7 SA1 R * NO READ FILE FOUND - LFN*
  1180. MX3 42
  1181. BX6 X3*X1
  1182. SA6 NOFIL+2 SET FILE NAME IN MESSAGE
  1183. SX0 NOFIL
  1184. EQ ABT ABORT
  1185.  
  1186. READ8 SA1 NRFLG
  1187. ZR X1,READ9 IF NO REWIND
  1188. REWIND RR,R
  1189. READ9 MX6 0
  1190. SA6 RR SET *LOCAL FILE* FLAG
  1191.  
  1192. * CHECK ACCESS LEVEL OF READ FILE.
  1193.  
  1194. READ10 SA1 RR+CFAL GET ACCESS LEVEL OF READ FILE
  1195. MX6 -3
  1196. LX1 -36
  1197. BX6 -X6*X1
  1198. SA1 ALVL GET ACCESS LEVEL OF SUBMIT FILE
  1199. IX1 X1-X6
  1200. PL X1,READ10.1 IF READ FILE LEVEL .LE. SUBMIT FILE LEVEL
  1201. SA6 A1+
  1202. RECALL F
  1203. SETFAL F,ALVL SET SUBMIT FILE LEVEL TO READ FILE LEVEL
  1204.  
  1205. * CALL APPROPRIATE READ PROCESSOR.
  1206.  
  1207. READ10.1 SA1 FLAGS TEST FOR TRANS BIT ON
  1208. LX1 12D
  1209. NG X1,RTM TRANS
  1210. EQ RNM NOTRANS
  1211.  
  1212. READ11 SA1 EORBIT SET READ ACTIVE BIT INACTIVE
  1213. MX2 1
  1214. LX1 12D
  1215. BX6 -X1*X2
  1216. LX6 48D
  1217. SA6 EORBIT
  1218. SA1 RR
  1219. ZR X1,READ12 READ FILE NOT ATTACHED BY SUBMIT
  1220. RETURN RR,R
  1221. MX6 0
  1222. SA6 RR CLEAR RETURN FLAG
  1223. READ12 SA2 RJ2 RESTORE ORIGINAL RETURN ADDRESS
  1224. SB2 X2
  1225. JP B2 RETURN
  1226.  
  1227. READ13 SA1 RJ TEST RETURN ADDRESS = TO NONTRANSPARENT
  1228. SX2 PNM2 MODE ROUTINE
  1229. BX2 X1-X2
  1230. ZR X2,PNM4 RETURN TO NONTRANSPARENT MODE ROUTINE
  1231. EQ PTM5 RETURN TO TRANSPARENT MODE ROUTINE
  1232. RNM SPACE 4,10
  1233. ** RNM - PROCESS NONTRANSPARENT READ MODE.
  1234. *
  1235. * USES A - 1, 2, 3, 6, 7.
  1236. * X - 0, 1, 2, 3, 5, 6, 7.
  1237. * B - 2, 3, 6, 7.
  1238. *
  1239. * CALLS CSF, NLT, SSN, SUBEO.
  1240. *
  1241. * MACROS READ, READS, RECALL, WRITES.
  1242.  
  1243.  
  1244. RNM BSS 0 ENTRY
  1245. RNM0 READ R,R READ NEXT BUFFER LOAD
  1246. RECALL F
  1247. RNM1 SA1 R+3 SAVE OUTPTR(R)
  1248. SA2 R+2 SAVE READ FILE FET *IN* POINTER
  1249. BX6 X1
  1250. LX7 X2
  1251. SA6 OPTR2
  1252. SA7 IPTR2
  1253. READS R,BUF,BUFL READ UNIT RECORD
  1254. ZR X1,RNM1.1 IF NO EOR/EOF/EOI
  1255. SB7 B6-BUF
  1256. ZR B7,RNM1.0 IF END OF RECORD
  1257. SA2 FLAGS CHECK TRANS MODE BIT
  1258. LX2 59-47
  1259. PL X2,RNM1.0 IF TRANS NOT SET
  1260. SA2 OPTR2 RESTORE POINTERS FOR TRANS DATA
  1261. SA3 IPTR2
  1262. BX6 X2
  1263. LX7 X3
  1264. SA6 R+3
  1265. SA7 R+2
  1266. EQ RTM6 SWITCH TO TRANS MODE
  1267.  
  1268. RNM1.0 RJ NLT WRITE NO LINE TERMINATOR DATA TO BUFFER
  1269. SX0 B1 READ FILE
  1270. BX7 X7-X7 SET NO PARTIAL RECORD
  1271. SX5 READ11 RETURN ADDRESS ON EOF
  1272. RJ SUBEO
  1273. EQ RNM0 READ NEXT BUFFER LOAD
  1274.  
  1275. RNM1.1 SA1 LCNT INCREMENT LINE COUNT
  1276. SX6 X1+B1
  1277. SA6 A1
  1278. SA1 BUF SET STARTING ADDRESS
  1279. RJ CSF CHECK SPECIAL FORMAT
  1280. NZ B2,RNM2 IF SPECIAL FORMAT
  1281. RJ SSN STRIP SEQUENCE NUMBER
  1282. SB6 A1 SAVE BEGINNING ADDRESS AFTER STRIPPING
  1283. SB3 B2 SAVE BEGINNING ADDRESS BEFORE STRIPPING
  1284. RJ CSF CHECK SPECIAL FORMAT AFTER STRIPPING
  1285. ZR B2,RNM3 IF NOT SPECIAL FORMAT
  1286. RNM2 SX7 RNM1 SAVE RETURN ADDRESS
  1287. SA7 RJ
  1288. JP B2 PROCESS SPECIAL FORMAT
  1289.  
  1290. RNM3 SA2 FLAGS TEST TRANS BIT
  1291. LX2 12D
  1292. PL X2,RNM4 TRANS NOT SET
  1293. SA1 OPTR2 RESTORE *IN* AND *OUT* POINTERS
  1294. SA2 IPTR2
  1295. BX6 X1
  1296. LX7 X2
  1297. SA6 R+3
  1298. SA7 R+2
  1299. EQ RTM6 SWITCH TO TRANS MODE
  1300.  
  1301. RNM4 SB2 BUF+BUFL
  1302. SA2 FLAGS TEST NOSEQ BIT
  1303. PL X2,RNM5 STRIP SEQUENCE NUMBERS
  1304. SB6 B3 NO SEQUENCE NUMBER STRIPPING
  1305. RNM5 SB7 B2-B6 CALCULATE WRITE LENGTH
  1306. WRITES F,B6,B7
  1307. EQ RNM1 LOOP TO NEXT RECORD
  1308. RTM SPACE 4,10
  1309. ** RTM - PROCESS TRANSPARENT READ MODE.
  1310. *
  1311. * USES A - 1, 2, 3, 6, 7.
  1312. * B - 3, 6.
  1313. * X - 0, 1, 2, 3, 5, 6, 7.
  1314. *
  1315. * CALLS CSF, SSN, SUBEO, SUBUFR, SUBUFS.
  1316. *
  1317. * MACROS READ, READS, READW, RECALL, WRITEW.
  1318.  
  1319.  
  1320. RTM BSS 0 ENTRY
  1321. RTM0 READ R,R READ NEXT BUFFER LOAD
  1322. RECALL F
  1323. RTM1 SA1 R+3 SAVE OUTPTR(R)
  1324. BX6 X1
  1325. SA6 OPTR2
  1326. SA1 X6 CHECK FOR END OF LINE BYTE
  1327. MX7 -12
  1328. BX7 -X7*X1
  1329. NZ X7,RTM5 IF NOT A POSSIBLE SPECIAL FORMAT DIRECTIVE
  1330. READS R,BUF,BUFL READ UNIT RECORD FROM READ FILE
  1331. ZR X1,RTM2 IF NO EOF/EOI
  1332. SX0 B1 READ FILE
  1333. SX7 B0 NO PARTIAL RECORD
  1334. SX5 READ11 RETURN ADDRESS ON EOF
  1335. RJ SUBEO
  1336. EQ RTM0 READ NEXT BUFFER LOAD
  1337.  
  1338. RTM2 SA1 LCNT INCREMENT LINE COUNT
  1339. SX6 X1+B1
  1340. SA6 A1
  1341. SA1 BUF SET STARTING ADDRESS
  1342. RJ CSF CHECK SPECIAL FORMAT (BEFORE STRIPPING)
  1343. NZ B2,RTM4 IF SPECIAL FORMAT
  1344. RJ SSN STRIP SEQUENCE NUMBER
  1345. SB6 A1 SAVE BEGINNING ADDRESS AFTER STRIPPING
  1346. SB3 B2 SAVE BEGINNING ADDRESS BEFORE STRIPPING
  1347. RJ CSF CHECK SPECIAL FORMAT (AFTER STRIPPING)
  1348. ZR B2,RTM5 IF NOT SPECIAL FORMAT
  1349. RTM4 SX7 RTM1 SAVE RETURN ADDRESS
  1350. SA7 RJ
  1351. JP B2 PROCESS SPECIAL FORMAT
  1352.  
  1353. RTM5 SA2 FLAGS TEST FOR TRANS BIT SET
  1354. LX2 12D
  1355. SA3 OPTR2 RESTORE OUT POINTER
  1356. BX6 X3
  1357. SA6 R+3
  1358. PL X2,RNM1 IF NOT SET, SWITCH TO NON-TRANSPARENT MODE
  1359. RTM6 READW R,BUF,BUFL
  1360. RJ SUBUFS SET BUF LENGTH
  1361. ZR X1,RTM7 IF NO EOR/EOF/EOI
  1362. SX0 B1 READ FILE
  1363. SX7 B1 PARTIAL RECORD
  1364. SX5 READ11 SET RETURN ON EOI OR EOF
  1365. RJ SUBEO
  1366. EQ RTM0 READ NEXT BUFFER LOAD
  1367.  
  1368. RTM7 WRITEW F,BUF,BUFL
  1369. RJ SUBUFR RESET BUF LENGTH TO 0
  1370. EQ RTM6 LOOP
  1371. ESCAPE SPACE 4,10
  1372. ** ESCAPE - PROCESS NEW ESCAPE CODE.
  1373.  
  1374.  
  1375. ESCAPE BSS 0
  1376. SA1 A2 PICK UP NEW ESCAPE CODE
  1377. LX1 54D
  1378. SA2 TCCF
  1379. MX3 -54
  1380. ESCAPE1 BX2 -X3*X2
  1381. IX7 X2+X1 PLANT NEW ESCAPE CODE
  1382. SA7 A2
  1383. SA2 A2+B1
  1384. NZ X2,ESCAPE1
  1385. SA2 RJ
  1386. SB2 X2
  1387. JP B2 RETURN
  1388. TITLE TABLES.
  1389. TCCF SPACE 4,10
  1390. ** TCCF - TABLE OF DIRECTIVE FORMATS.
  1391.  
  1392.  
  1393. TCCF BSS 0
  1394.  
  1395. CON 4L/JOB+JOB
  1396. CON 7L/CHARGE+CHARGE
  1397. CON 4L/EOF+EOF
  1398. CON 4L/EOR+EOR
  1399. CON 6L/NOSEQ+NOSEQ
  1400. CON 4L/SEQ+SEQ
  1401. CON 6L/TRANS+TRANS
  1402. CON 8L/NOTRANS+NOTRANS
  1403. CON 7L/NOPACK+NOPACK
  1404. CON 5L/PACK+PACK
  1405. CON 5L/USER+USER
  1406. TCCFR CON 5L/READ+READ
  1407. TCCFW CON 7L/REWIND+REWIND
  1408. TCCFE CON 4L/EC=+ESCAPE
  1409.  
  1410. CON 0
  1411.  
  1412. NOFIL DATA 20H NO READ FILE FOUND-
  1413. DATA 0
  1414. BSFIL DATA 20H READ FILE BUSY-
  1415. DATA 0
  1416. SPACE 4,10
  1417. TCCFL DATA 74000000000000000044B /JOB LENGTH
  1418. DATA 77400000000000000022B /CHARGE LENGTH
  1419. DATA 74000000000000000044B /EOF LENGTH
  1420. DATA 74000000000000000044B /EOR LENGTH
  1421. DATA 77000000000000000030B /NOSEQ LENGTH
  1422. DATA 74000000000000000044B /SEQ LENGTH
  1423. DATA 77000000000000000030B /TRANS LENGTH
  1424. DATA 77600000000000000014B /NOTRANS LENGTH
  1425. DATA 77400000000000000022B /NOPACK LENGTH
  1426. DATA 76000000000000000036B /PACK LENGTH
  1427. DATA 76000000000000000036B /USER LENGTH
  1428. DATA 76000000000000000036B /READ LENGTH
  1429. DATA 77400000000000000022B /REWIND LENGTH
  1430. DATA 74000000000000000044B /EC= LENGTH
  1431. CON 0
  1432. TITLE COMMON DECKS.
  1433. * COMMON DECKS.
  1434.  
  1435.  
  1436. *CALL COMCCIO
  1437. *CALL COMCCPM
  1438. *CALL COMCLFM
  1439. *CALL COMCPFM
  1440. *CALL COMCRDS
  1441. *CALL COMCRDW
  1442. *CALL COMCSNM
  1443. *CALL COMCSFM
  1444. *CALL COMCSSN
  1445. *CALL COMCSYS
  1446. *CALL COMCWTC
  1447. *CALL COMCWTS
  1448. *CALL COMCWTW
  1449. *CALL COMSPFM
  1450. *CALL COMSPRD
  1451. *CALL COMSSSJ
  1452. SSJB SPACE 4,10
  1453. * SPECIAL SYSTEM JOB PARAMETER AREA.
  1454.  
  1455. SSJ= EQU 0
  1456. PFPB SPACE 4,10
  1457. * PERMANENT FILE PARAMETER BLOCK.
  1458.  
  1459. PFPB BSSZ 3
  1460. TITLE BUFFERS.
  1461. * BUFFERS.
  1462.  
  1463.  
  1464. USE //
  1465. SEG
  1466. BUF SPACE 4,10
  1467. BUF EQU *
  1468. IBUF EQU BUF+BUFL
  1469. FBUF EQU IBUF+IBUFL
  1470. RBUF EQU FBUF+FBUFL
  1471. SBUF EQU RBUF+RBUFL
  1472. TBUF EQU SBUF+SBUFL
  1473. WBUF EQU TBUF+TBUFL
  1474. RFL= EQU WBUF+WBUFL
  1475. PRS TITLE PRESET.
  1476. PRS SPACE 4,10
  1477. ** PRS - PRESET PROGRAM.
  1478.  
  1479.  
  1480. ORG BUF
  1481. PRS SUBR ENTRY/EXIT
  1482. GETPFP PFPB GET PERMANENT FILE PARAMETERS
  1483. SX6 RBUF SET *PFM* ERROR MESSAGE ADDRESS
  1484. SA6 RR+CFPW
  1485. RJ SCC SET CONTROL CHARACTER
  1486. SA1 FWPR
  1487. MX2 -6
  1488. AX1 24
  1489. BX2 -X2*X1
  1490. SX6 X2-IAOT
  1491. SB7 B0 INITIALIZE QUEUE FLAG
  1492. NZ X6,PRS1 IF NOT INTERACTIVE
  1493. SA1 TPAR+PRSF CHANGE DEFAULT QUEUE
  1494. BX6 X1
  1495. SA6 PRSE
  1496. PRS1 SA1 ACTR CHECK ARGUMENT COUNT
  1497. SA4 ARGR
  1498. MX0 42
  1499. SB4 X1
  1500. NZ B4,PRS2 IF ARGUMENTS PRESENT
  1501. PRS1.1 SX0 PRSA * NO SOURCE FILE SPECIFIED.*
  1502. EQ ABT ABORT JOB
  1503.  
  1504. PRS2 SX2 B1 SET SOURCE FILE NAME
  1505. BX4 X0*X4
  1506. ZR X4,PRS1.1 IF EMPTY FILE NAME
  1507. SX0 PRSC * TOO MANY ARGUMENTS.*
  1508. SB3 B4-4
  1509. GT B3,ABT IF TOO MANY ARGUMENTS
  1510. BX6 X4+X2
  1511. SB4 B4-B1
  1512. SA6 I
  1513. PRS2.1 ZR B4,PRS4 IF END OF ARGUMENTS
  1514. SA1 TPAR
  1515. SA4 A4+1 CHECK QUEUE TYPE
  1516. MX0 12
  1517. BX6 X0*X4
  1518. PRS3 BX2 X0*X1
  1519. BX2 X6-X2
  1520. ZR X2,PRS3.1 IF MATCH FOUND
  1521. SA1 A1+1
  1522. NZ X1,PRS3 IF NOT END OF TABLE
  1523. LX6 12
  1524. SX7 X6-2RNR
  1525. SB4 B4-B1
  1526. SA7 NRFLG SET NO REWIND FLAG
  1527. ZR X7,PRS3.2 IF *NR* OPTION
  1528. SX0 PRSB * INCORRECT QUEUE SPECIFIED.*
  1529. ZR X6,PRS2.1 IF NO PARAMETER PRESENT
  1530. EQ ABT ABORT JOB
  1531.  
  1532. PRS3.1 SX0 PRSD * CONFLICTING PARAMETERS.*
  1533. NZ B7,ABT IF QUEUE ALREADY SELECTED
  1534. SB7 B1
  1535. SB4 B4-B1
  1536. BX7 X1
  1537. MX0 -6
  1538. SA7 PRSE
  1539. LX1 59-18 CHECK FOR REMOTE QUEUE
  1540. BX7 -X0*X4
  1541. PL X1,PRS2.1 IF NOT REMOTE QUEUE
  1542. MX6 24 SET TID FIELD
  1543. LX6 24
  1544. SA6 TDSP+2
  1545. SX7 X7-1R=
  1546. NZ X7,PRS2.1 IF NOT *=* SEPARATOR
  1547. SA4 A4+B1 GET USER NAME
  1548. MX0 42
  1549. BX7 X0*X4
  1550. SB4 B4-B1
  1551. SA7 TFUN+1
  1552. SX0 -TFUN RESET TID FIELD
  1553. BX6 X6*X0
  1554. SA6 A6
  1555. EQ PRS2.1 GET NEXT ARGUMENT
  1556.  
  1557. PRS3.2 SX0 PRSC * TOO MANY ARGUMENTS.*
  1558. NZ B4,ABT IF ANOTHER ARGUMENT
  1559.  
  1560. * SAVE FILE ACCESS LEVEL.
  1561.  
  1562. PRS4 SA1 I+1 SET BIT TO RETURN FILE ACCESS LEVEL
  1563. MX0 1
  1564. LX0 39-59
  1565. BX6 X0+X1
  1566. SA6 A1
  1567. STATUS I,P
  1568. SA1 I+CFAL GET ACCESS LEVEL
  1569. MX0 -3
  1570. LX1 -36
  1571. BX6 -X0*X1
  1572. SA6 ALVL
  1573. SA1 PRSE SET ORIGIN TYPE
  1574. ZR X1,PRSX IF NO QUEUE GIVEN AND NOT *IAOT*
  1575. MX0 -18
  1576. BX3 -X0*X1
  1577. SA2 TDSP+1
  1578. SX6 FRCS CLEAR PRESET CENTRAL SITE BIT
  1579. BX4 -X6*X2
  1580. BX7 X4+X3 ADD NEW FLAG BITS
  1581. SA7 A2 SET FLAGS
  1582. MX0 -12
  1583. AX1 36
  1584. BX4 -X0*X1
  1585. ZR X4,PRSX IF NO DISPOSITION CODE CHANGE
  1586. LX0 35-11
  1587. BX2 X0*X7
  1588. LX4 24
  1589. BX7 X2+X4
  1590. SA7 A7+ SET DISPOSITION CODE
  1591. EQ PRSX RETURN
  1592.  
  1593. PRSA DATA C* NO SOURCE FILE SPECIFIED.*
  1594.  
  1595. PRSB DATA C* INCORRECT QUEUE SPECIFIED.*
  1596.  
  1597. PRSC DATA C* TOO MANY ARGUMENTS.*
  1598.  
  1599. PRSD DATA C* CONFLICTING PARAMETERS.*
  1600.  
  1601. PRSE CON 0
  1602. TPAR SPACE 4,10
  1603. ** TPAR - PARAMETER CONVERSION TABLE.
  1604. *
  1605. *T 12/KEYWORD,12/DISP CODE,17/0,1/R,18/FLAGS
  1606. *
  1607. * R - SET IF REMOTE BATCH TYPE KEYWORD.
  1608. * FLAGS - FLAGS TO PRESET IN *DSP* CALL.
  1609.  
  1610.  
  1611. TPAR BSS 0
  1612. LOC 0
  1613. PRSF VFD 12/0LN,12/0LNO,17/0,1/0,18/FRCS
  1614. VFD 12/0LB,12/0,17/0,1/0,18/FRCS
  1615. VFD 12/0LE,12/0,17/0,1/1,18/FRTI
  1616. VFD 12/0LNO,12/0LNO,17/0,1/0,18/FRCS
  1617. VFD 12/0LBC,12/0,17/0,1/0,18/FRCS
  1618. VFD 12/0LRB,12/0,17/0,1/1,18/FRTI
  1619. VFD 12/0LTO,12/0LTO,17/0,1/0,18/FRCS
  1620. CON 0 END OF TABLE
  1621. LOC *O
  1622.  
  1623. PRSG BSSZ 1 *DISSJ* PARAMETER
  1624. PRSH BSS 1 USER NAME
  1625. SCC SPACE 4,10
  1626. ** SCC - SET CONTROL CHARACTER.
  1627. *
  1628. * EXIT CONTROL CHARACTER REPLACED IN *TCCF*.
  1629. *
  1630. * USES X - 1, 2, 3, 6, 7.
  1631. * A - 1, 7.
  1632.  
  1633.  
  1634. SCC SUBR ENTRY/EXIT
  1635. MX2 -6 SCAN DIRECTIVE
  1636. SA1 CCDR
  1637. MX3 1
  1638. SCC1 LX1 6
  1639. BX6 -X2*X1
  1640. SX7 X6-1R)
  1641. ZR X6,SCCX IF END OF LINE
  1642. SX6 X6-1R.
  1643. ZR X7,SCC2 IF *)*
  1644. ZR X6,SCC2 IF *.*
  1645. LX3 6
  1646. PL X3,SCC1 LOOP TO END OF WORD
  1647. SA1 A1+B1
  1648. EQ SCC1
  1649.  
  1650. SCC2 LX3 6
  1651. PL X3,SCC3 IF NOT END OF WORD
  1652. SA1 A1+B1
  1653. SCC3 LX1 6
  1654. BX6 -X2*X1
  1655. SX7 X6-1R
  1656. ZR X6,SCCX IF END OF LINE
  1657. ZR X7,SCCX IF * *
  1658. LX6 54
  1659. SA1 TCCF
  1660. MX2 -54
  1661. SCC4 BX1 -X2*X1 REPLACE CONTROL CHARACTER IN TABLE
  1662. IX7 X1+X6
  1663. SA7 A1
  1664. SA1 A1+B1 GET NEXT TABLE ENTRY
  1665. NZ X1,SCC4 IF NOT END OF TABLE
  1666. EQ SCCX RETURN
  1667. SPACE 4
  1668. END
cdc/nos2.source/opl871/submit.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator