Table of Contents

SCTD

Table Of Contents

  • [00008] SCTD - SERVICE CLASS CONTROL TABLE DISPLAY.
  • [00012] SERVICE CLASS CONTROL TABLE DISPLAY.
  • [00092] SCLASS - DEFINE SERVICE CLASS TABLE.
  • [00121] ASSEMBLY CONSTANTS.
  • [00135] TABLES AND BUFFER DEFINITIONS.
  • [00167] ROLB - ROLLOUT PARAMETER BLOCK.
  • [00171] TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
  • [00181] LDPT - *L* DISPLAY PAGE TABLE.
  • [00199] TSCT - SERVICE CLASS TABLE.
  • [00215] MAIN PROGRAM.
  • [00231] LOP - LIST OPTION PROCESSOR.
  • [00281] FUNCTION PROCESSORS.
  • [00283] END - *END* FUNCTION PROCESSOR.
  • [00302] SUBROUTINES.
  • [00304] CMP - COMMAND FUNCTION PROCESSOR.
  • [00370] TCOM - TABLE OF COMMANDS.
  • [00383] EFP - EXECUTE FUNCTION PROCESSOR.
  • [00406] ERR - ERROR PROCESSOR.
  • [00422] FDB - FORMAT DISPLAY BUFFER.
  • [00452] GSD - GET *SCT* DATA.
  • [00469] IDT - INITIALIZE DISPLAY TEMPLATES.
  • [00496] ILD - INPUT *L* DISPLAY.
  • [00525] OLD - OUTPUT *L* DISPLAY DATA.
  • [00577] WOS - WRITE ORIGINS-S SERVICE CLASS(ES).
  • [00687] TJOS - TABLE OF JOB ORIGIN SERVICE CLASS LIST.
  • [00701] WPO - WRITE PRIORITY ORDERED SERVICE CLASSES.
  • [00770] TPOS - TABLE OF PRIORITY ORDERED SERVICE CLASS ORIGINS.
  • [00798] BUFFER AREA.
  • [00894] PRS - PRESET ROUTINE.
  • [01008] TLOP - TABLE OF LIST OPTIONS.
  • [01020] FNB - FIND NON-BLANK CHARACTER.
  • [01049] PRESET COMMON DECKS.

Source Code

SCTD.txt
  1. IDENT SCTD,FWA
  2. ABS
  3. SST
  4. ENTRY SCTD
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. TITLE SCTD - SERVICE CLASS CONTROL TABLE DISPLAY.
  9. *COMMENT SCTD - SERVICE CLASS CONTROL TABLE DISPLAY.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. SPACE 4,10
  12. *** SCTD - SERVICE CLASS CONTROL TABLE DISPLAY.
  13. *
  14. * W. T. COLEMAN 82/09/16.
  15. SPACE 4,10
  16. *** *SCTD* IS A CPU UTILITY USED BY THE OPERATOR TO DISPLAY
  17. * THE SERVICE CLASS CONTROL TABLE AND THE PRIORITY ORDERED
  18. * SERVICE CLASSES ON THE *L* DISPLAY OR TO FORMAT IT FOR
  19. * A PRINTER.
  20. SPACE 4,20
  21. *** CONTROL STATEMENT CALL.
  22. *
  23. *
  24. * SCTD(LFN,OP) ORDER DEPENDENT PARAMETERS.
  25. * OR
  26. * SCTD(L=LFN,LO=OP) ORDER INDEPENDENT (KEYWORD = PARAMETER).
  27. *
  28. * WHERE
  29. *
  30. * OP = *L* FORMAT DATA FOR A LINE PRINTER.
  31. *
  32. * OP = *D* FORMAT DATA FOR *L* DISPLAY (DEFAULT).
  33. *
  34. * LFN LIST OUTPUT FILE NAME (DEFAULT = OUTPUT).
  35. * THIS PARAMETER VALID ONLY WITH (LO=L).
  36. *
  37. * NOTES SPECIAL PRIVILEGES REQUIRED.
  38. * 1. USER MUST BE *SYOT* TO USE *L* DISPLAY (LO=D).
  39. * 2. USER MUST BE *SYOT* OR HAVE SYSTEM ORIGIN
  40. * PRIVILEGES TO GENERATE A LISTING (LO=L).
  41. SPACE 4,20
  42. *** DAYFILE MESSAGES.
  43. *
  44. * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES.
  45. *
  46. * *ARGUMENT ERROR.*
  47. * AN INCORRECT PARAMETER WAS ENTERED. (FATAL ERROR)
  48. *
  49. * *INCORRECT USER ACCESS.*
  50. * CALLING JOB WAS NOT SYSTEM ORIGIN. (FATAL ERROR)
  51. *
  52. * *SCTD UTILITY COMPLETE.*
  53. * INDICATES NORMAL COMPLETION OF PROGRAM.
  54. *
  55. * *CANNOT ACCESS L-DISPLAY.*
  56. * *DSD* DETECTED AN ERROR CONDITION WHEN INPUT WAS
  57. * ENTERED VIA THE *L* DISPLAY.
  58. SPACE 4,15
  59. *** OPERATOR MESSAGES.
  60. *
  61. * *END PROCESSED.*
  62. * AN INFORMATIVE MESSAGE INDICATING THAT AN END COMMAND
  63. * WAS ENTERED VIA THE *L* DISPLAY. THE UTILITY HAS
  64. * BEEN TERMINATED.
  65. *
  66. * *UNRECOGNIZABLE DIRECTIVE.*
  67. * AN ERROR MESSAGE INDICATING THAT THE DIRECTIVE
  68. * ENTERED VIA THE *L* DISPLAY WAS NOT ONE OF THE VALID
  69. * DIRECTIVES.
  70. SPACE 4,10
  71. *** *L* DISPLAY COMMANDS.
  72. *
  73. * THE FOLLOWING ARE LEGAL COMMANDS TO BE ENTERED BY THE
  74. * OPERATOR THROUGH THE *L* DISPLAY.
  75. *
  76. * L.END. TERMINATE THE UTILITY.
  77. *
  78. * L.+. ADVANCE TO THE NEXT SCREEN.
  79. *
  80. * L.-. REVERSE TO THE PREVIOUS SCREEN.
  81. SPACE 4,15
  82. *** DEFINITION COMMON DECKS.
  83. *
  84. *CALL COMCCMD
  85. *CALL COMCDCM
  86. *CALL COMCDCP
  87. *CALL COMCMAC
  88. *CALL COMSEVT
  89. *CALL COMSSFM
  90. *CALL COMSSSJ
  91. SCLASS SPACE 4,15
  92. ** SCLASS - DEFINE SERVICE CLASS TABLE.
  93. *
  94. * SCLASS NM,MN,DF,ST,TX
  95. *
  96. * ENTRY *NM* = SERVICE CLASS NAME.
  97. * *MN* = TWO CHARACTER MNEMONIC.
  98. * *DF* = DAYFILE MESSAGE CHARACTER.
  99. * *ST* = SHORT TEXT FOR *QFTLIST*.
  100. * *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
  101. *
  102. * NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
  103. * THIS MACRO.
  104.  
  105.  
  106. PURGMAC SCLASS
  107.  
  108. SCLASS MACRO NM,MN,DF,ST,TX
  109. .SCL RMT
  110. .A IFLT NM,12D
  111. VFD 12/0L_MN,48/MN_MK TX
  112. .A ELSE
  113. VFD 12/0L_MN,36/MN_MK,12/0 TX
  114. .A ENDIF
  115. .SCL RMT
  116. SCLASS ENDM
  117.  
  118.  
  119. SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
  120. *CALL COMSSCD
  121. TITLE ASSEMBLY CONSTANTS.
  122. **** ASSEMBLY CONSTANTS.
  123.  
  124. CNCI EQU 4 NO COMMAND INPUT (*CPM* RETURN STATUS)
  125. LBUFL EQU LDSY *L* DISPLAY BUFFER LENGTH
  126. LCOMU EQU LCOM/2+1 INPUT BUFFER PACKED
  127. NPXW EQU 5 PRIORITY ORDERED SERVICE CLASSES PER WORD
  128. NSPL EQU 10 NUMBER OF SERVICE CLASSES PER LINE
  129. NUMPX EQU 10B NUMBER OF PRIORITY ORDERED SERVICE CLASSES
  130. SCTL EQU SCTE LENGTH OF OF *SCT*
  131. XCDT EQU 4 X - COORDINATE FOR *L* DISPLAY
  132. YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY
  133.  
  134. ****
  135. TITLE TABLES AND BUFFER DEFINITIONS.
  136. ORG 111B
  137. FWA BSS 0
  138. SPACE 4,10
  139. * DAYFILE MESSAGES.
  140.  
  141. DAFC DATA C* SCTD UTILITY COMPLETE.*
  142. ERAR DATA C* ARGUMENT ERROR.*
  143. ERCA DATA C* CANNOT ACCESS L-DISPLAY.*
  144. ERIU DATA C* INCORRECT USER ACCESS.*
  145. SPACE 4,10
  146. * FLAG DEFINITIONS.
  147.  
  148. LFLG CON 0 *L* DISPLAY FLAG
  149. PFLG CON 0 PRINTER OUTPUT FLAG
  150. SYOF CON 0 SYSTEM ORIGIN FLAG
  151. SPACE 4,5
  152. * GLOBAL STORAGE DEFINITIONS.
  153.  
  154. CPAG DATA 1 INDEX OF SCREEN TO DISPLAY
  155. SPACE 4,10
  156. ** *SETJOB* PARAMETER BLOCK.
  157.  
  158. SETB VFD 60/0
  159. VFD 48/0,12/2LDF
  160. SPACE 4,10
  161. ** *SFM* PARAMETER BLOCK.
  162.  
  163.  
  164. SFMB VFD 12/RSCF,12/0,12/SCTL,6/0,18/WBUF
  165. CON 0 END OF *SFM* PARAMETER BLOCK
  166. ROLB SPACE 4,5
  167. ** ROLB - ROLLOUT PARAMETER BLOCK.
  168.  
  169. ROLB VFD 30/0,18/LINE,12/60
  170. TMLD SPACE 4,10
  171. ** TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
  172.  
  173. TMLD BSS 0
  174. LOC 0
  175. DATA C* *
  176. ENDM DATA C*END PROCESSED. *
  177. EUND DATA C*UNRECOGNIZABLE DIRECTIVE. *
  178. LOC *O
  179. EMOR CON 0 ERROR MESSAGE ORDINAL
  180. LDPT SPACE 4,5
  181. ** LDPT - *L* DISPLAY PAGE TABLE.
  182.  
  183.  
  184. LDPT PAGT SDTA,SDTA+SDMP,SDTA+SDIP LEFT SCREEN PAGE 1
  185. PAGT SDTB,SDTB+SDMP,SDTB+SDIP LEFT SCREEN PAGE 2
  186. PAGT *
  187. SPACE 4,5
  188. * SSJ= PARAMETER BLOCK.
  189.  
  190.  
  191. SSJ= BSS 0 SSJ= ENTRY POINT
  192. BSSZ SSJL SSJ= PARAMETER BLOCK
  193. FETS SPACE 4,10
  194. * FET DEFINITIONS.
  195.  
  196. O BSS 0 PRINTER OUTPUT FILE BUFFER
  197. OUTPUT FILEB OBUF,SDTAE-SDTH,(FET=6)
  198. TSCT SPACE 4,10
  199. ** TSCT - SERVICE CLASS TABLE.
  200. *
  201. *T 12/CLASS, 48/VALUE
  202. *
  203. * CLASS - TWO CHARACTER SERVICE CLASS MNEMONIC.
  204. * VALUE - CORRESPONDING SERVICE CLASS MASK VALUE.
  205.  
  206.  
  207. TSCT BSS 0
  208. LIST G
  209. .SCL HERE
  210. LIST *
  211. TSCTL EQU *-TSCT
  212. ERRNZ TSCTL-MXJC+1 ENSURE ALL SERVICE CLASSES PRESENT
  213. CON 0 END OF TABLE
  214. SCTD TITLE MAIN PROGRAM.
  215. ** SCTD - MAIN PROGRAM.
  216. *
  217. * EXIT *SCTD* PROGRAM COMPLETED.
  218. *
  219. * CALLS PRS, LOP.
  220. *
  221. * MACROS ENDRUN, MESSAGE.
  222.  
  223.  
  224. SCTD BSS 0 ENTRY
  225. RJ PRS PRESET ROUTINE
  226. RJ LOP PROCESS LIST OPTIONS
  227. MESSAGE DAFC,0,R * SCTD UTILITY COMPLETE.*
  228. ENDRUN
  229. LOP TITLE LIST OPTION PROCESSOR.
  230. LOP SPACE 4,25
  231. ** LOP - LIST OPTION PROCESSOR.
  232. *
  233. * *LOP* FORMATS THE *SCT* DATA TO A LOCAL FILE FOR PRINTING,
  234. * IF THE PRINT OPTION IS SPECIFIED. IF THE *L* DISPLAY IS
  235. * SELECTED *LOP* WILL DISPLAY THE APPROPRIATE DATA ON THE
  236. * *L* DISPLAY UNTIL AN *L.END.* COMMAND IS ENTERED.
  237. *
  238. * ENTRY USER HAS BEEN VALIDATED (EITHER SYSTEM ORIGIN
  239. * OR SYSTEM ORIGIN PRIVILEGES).
  240. *
  241. * (SFMB) = *SFM* PARAMETER BLOCK SET UP
  242. * FOR *RSCF* SUBFUNCTION.
  243. * (PFLG) = 1, IF PRINT FILE REQUESTED.
  244. * (LFLG) = 1, IF *L* DISPLAY REQUESTED.
  245. *
  246. * EXIT PRINT FILE, IF REQUESTED, LOCAL TO USER JOB.
  247. *
  248. * USES X - 1, 2, 5, 6.
  249. * A - 1, 2, 5.
  250. *
  251. * CALLS CMP, EFP, FDB, GSD, ILD, OLD.
  252. *
  253. * MACROS SETFS, SETJOB, WRITER.
  254.  
  255.  
  256. LOP SUBR ENTRY/EXIT
  257. RJ GSD GET *SCT* DATA
  258. SA2 PFLG
  259. ZR X2,LOP1 IF NOT TO BE PRINTED
  260. SX2 O SET OUTPUT FET ADDRESS
  261. SX1 SDTH FWA PAGE 1 WITH PRINTER HEADER
  262. SX6 SDTAE LWA PAGE 1
  263. RJ FDB BUILD PRINT FILE
  264. WRITER O FLUSH OUTPUT BUFFER
  265. SX1 SDTB FWA PAGE 2
  266. SX6 SDTBE LWA PAGE 2
  267. RJ FDB BUILD PRINT FILE
  268. WRITER O FLUSH OUTPUT BUFFER
  269. SETFS O,0 SAVE OUTPUT AS LOCAL FILE
  270. SETJOB SETB CHANGE JOB DISPOSITION TO *DF*
  271. SX2 B0+ SET FORMATTING FOR *L* DISPLAY
  272. LOP1 SA1 LFLG
  273. ZR X1,LOPX IF *L* DISPLAY NOT SELECTED
  274. LOP2 RJ OLD OUTPUT *L* DISPLAY DATA
  275. RJ ILD INPUT *L* DISPLAY DATA
  276. RJ CMP COMMAND PROCESSOR
  277. SA1 EMOR CHECK FOR ERROR MESSAGE
  278. NZ X1,LOP2 IF ERROR IN COMMAND
  279. RJ EFP EXECUTE FUNCTION PROCESSOR
  280. EQ LOP2 LOOP
  281. TITLE FUNCTION PROCESSORS.
  282. END SPACE 4,15
  283. ** END - *END* FUNCTION PROCESSOR.
  284. *
  285. * *END* TERMINATES THE UTILITY.
  286. *
  287. * USES X - 6.
  288. * A - 6.
  289. *
  290. * CALLS OLD.
  291. *
  292. * MACROS DSDINP, ENDRUN, MESSAGE.
  293.  
  294.  
  295. END SUBR ENTRY/EXIT
  296. SX6 ENDM *END PROCESSED.*
  297. SA6 EMOR SET MESSAGE ORDINAL
  298. RJ OLD OUTPUT *L* DISPLAY
  299. DSDINP IPW,C CLEAR *L* DISPLAY INPUT BUFFER
  300. MESSAGE DAFC,0,R * SCTD UTILITY COMPLETE.*
  301. ENDRUN
  302. TITLE SUBROUTINES.
  303. CMP SPACE 4,20
  304. ** CMP - COMMAND FUNCTION PROCESSOR.
  305. *
  306. * *CMP* VALIDATES THE COMMAND ENTERED VIA THE *L* DISPLAY AND
  307. * SETS THE PROCESSOR ADDRESS FOR THE COMMAND ENTERED. PAGING
  308. * IS PROCESSED DIRECTLY BY *CMP*.
  309. *
  310. * ENTRY (IBUF) = *L* DISPLAY INPUT DIRECTIVE.
  311. *
  312. * EXIT (B5) = ADDRESS OF FUNCTION PROCESSOR, IF NO ERROR.
  313. * (B5) = 0, IF PAGING COMMAND.
  314. * (EMOR) = 0, IF NO ERROR IN DIRECTIVE INPUT.
  315. * (EMOR) = ERROR MESSAGE ADDRESS, IF ERROR.
  316. * (X3) = COMMAND, LEFT JUSTIFIED, ZERO FILLED.
  317. *
  318. * USES X - 0, 1, 2, 3, 4, 6, 7.
  319. * A - 1, 3, 6, 7.
  320. * B - 2, 3, 5, 6.
  321. *
  322. * CALLS PGD, POP, USB.
  323.  
  324.  
  325. CMP2 SB5 X1+ SET PROCESSOR ADDRESS
  326. CMP3 SX6 B0+ SET NO ERROR
  327. SA6 EMOR SET MESSAGE ORDINAL
  328.  
  329. CMP SUBR ENTRY/EXIT
  330.  
  331. * CHECK FOR PAGING COMMAND.
  332.  
  333. SX1 CMPA *L* DISPLAY BUFFER FWA
  334. SX2 LDPT PAGE TABLE FWA
  335. SA3 IBUF GET PAGING CHARACTER
  336. MX0 6 PAGING CHARACTER MASK
  337. BX3 X0*X3
  338. SX4 B1+ INDICATE *L* DISPLAY
  339. RJ PGD PAGE *L* DISPLAY
  340. SB5 B0 INDICATE PAGING COMMAND
  341. MX0 -18 SCREEN INDEX MASK
  342. SA1 LDPT PAGE TABLE FWA
  343. LX1 30
  344. BX6 -X0*X1 GET LEFT SCREEN INDEX
  345. SA6 CPAG SAVE LEFT SCREEN INDEX
  346. ZR X4,CMP3 IF LEGAL PAGING
  347.  
  348. * CHECK FOR VALID NON PAGING COMMAND.
  349.  
  350. SB2 IBUF FWA OF PACKED COMMAND BUFFER
  351. SB3 B0+ INDICATE DISPLAY CODE
  352. RJ USB UNPACK STRING BUFFER
  353. SB6 USBB FWA UNPACKED STRING BUFFER
  354. RJ POP PICK OUT PARAMETER
  355. SX7 EUND *UNRECOGNIZABLE DIRECTIVE.*
  356. SA7 EMOR SET MESSAGE ORDINAL
  357. SA1 TCOM TABLE OF COMMANDS
  358. MX0 42 COMMAND MASK
  359. CMP1 ZR X1,CMPX IF END OF TABLE (INCORRECT COMMAND)
  360. BX3 X0*X1 GET COMMAND
  361. BX2 X3-X6 CHECK IF CURRENT ENTRY IN TABLE
  362. ZR X2,CMP2 IF A MATCH
  363. SA1 A1+1 NEXT ENTRY IN TABLE
  364. EQ CMP1 CHECK NEXT COMMAND IN TABLE
  365.  
  366.  
  367. CMPA BSS 1 *L* DISPLAY BUFFER FWA REQUIRED BY *PGD*
  368. PGD HERE REMOTE BLOCK FROM *COMCDCP*
  369. TCOM SPACE 4,10
  370. ** TCOM - TABLE OF COMMANDS.
  371. *
  372. *T 36/COMMAND,6/0,18/ADDR
  373. *
  374. * COMMAND = DISPLAY CODE COMMAND VALUE.
  375. *
  376. * ADDR = PROCESSING ROUTINE ADDRESS.
  377.  
  378.  
  379. TCOM BSS 0
  380. VFD 42/0LEND,18/END
  381. CON 0
  382. EFP SPACE 4,15
  383. ** EFP - EXECUTE FUNCTION PROCESSOR.
  384. *
  385. * *EFP* JUMPS TO THE CORRECT FUNCTION PROCESSOR, BASED UPON
  386. * THE COMMAND ENTERED VIA THE *L* DISPLAY. THE FUNCTION
  387. * PROCESSING ROUTINE IS SET UP SO THAT IT RETURNS TO THE
  388. * ADDRESS *EFP* WOULD HAVE RETURNED TO.
  389. *
  390. * ENTRY (B5) = ADDRESS OF FUNCTION PROCESSOR.
  391. * (B5) = 0, IF PAGING COMMAND.
  392. *
  393. * EXIT TO FUNCTION PROCESSOR WITH RETURN ADDRESS SET.
  394. *
  395. * USES X - 2, 7.
  396. * A - 2, 7.
  397.  
  398.  
  399. EFP SUBR ENTRY/EXIT
  400. ZR B5,EFPX IF PAGING COMMAND
  401. SA2 EFPX SET RETURN ADDRESS
  402. BX7 X2
  403. SA7 B5
  404. JP B5+1 JUMP TO SUBROUTINE
  405. ERR SPACE 4,10
  406. ** ERR - ERROR PROCESSOR.
  407. *
  408. * *ERR* ISSUES AN ERROR MESSAGE TO THE USER AND SYSTEM
  409. * DAYFILE AND THEN ABORTS THE UTILITY.
  410. *
  411. * ENTRY (X2) = ADDRESS OF ERROR MESSAGE.
  412. *
  413. * EXIT MESSAGE ISSUED IN SYSTEM AND USER DAYFILE.
  414. *
  415. * MACROS ABORT, MESSAGE.
  416.  
  417.  
  418. ERR BSS 0 ENTRY
  419. MESSAGE X2,0,R
  420. ABORT
  421. FDB SPACE 4,20
  422. ** FDB - FORMAT DISPLAY BUFFER.
  423. *
  424. * ENTRY (X1) = FWA BUFFER TO FORMAT.
  425. * (X2) = 0, IF FORMATTING FOR *L* DISPLAY.
  426. * = FET ADDRESS OF OUTPUT FILE IF FOR PRINTER.
  427. * (X5) = (PADT) ENTRY FOR PAGE TO REFORMAT.
  428. * (X6) = LWA BUFFER TO FORMAT.
  429. * (B2) = *L* DISPLAY MESSAGE INDEX.
  430. *
  431. * EXIT (LBUF) = FWA FORMATTED *L* DISPLAY BUFFER.
  432. *
  433. * USES X - 3.
  434. * B - 2, 3, 4, 6.
  435. *
  436. * CALLS FLB.
  437.  
  438.  
  439. FDB SUBR ENTRY/EXIT
  440.  
  441. * SET UP PARAMETERS FOR *FLB*.
  442.  
  443. SX3 B1+ *C* DISPLAY FORMAT
  444. SB2 LBUF FWA TO PLACE FORMATTED DATA
  445. SB6 LBUF+LBUFL LWA+1 OF BUFFER TO RECEIVE CONVERTED DATA
  446. NZ X2,FDB1 IF FORMATTING FOR PRINTER
  447. SB3 XCDT SET X-COORDINATE FOR *L* DISPLAY
  448. SB4 YCDT SET Y-COORDINATE FOR *L* DISPLAY
  449. FDB1 RJ FLB FORMAT DATA TO BE OUTPUT
  450. EQ FDBX RETURN
  451. GSD SPACE 4,10
  452. ** GSD - GET *SCT* DATA.
  453. *
  454. * *GSD* UPDATES THE SERVICE CLASS CONTROL TABLE TEMPLATES.
  455. *
  456. * ENTRY (WBUF) = ADDRESS OF FIRST *SCT* ENTRY.
  457. *
  458. * CALLS WOS, WPO.
  459. *
  460. * MACROS SYSTEM.
  461.  
  462.  
  463. GSD SUBR ENTRY/EXIT
  464. SYSTEM SFM,R,SFMB,RSDF*100B RETURN SYSTEM DATA
  465. RJ WOS WRITE ORIGIN-S SERVICE CLASSES
  466. RJ WPO WRITE PRIORITY ORDERED SERICE CLASSES
  467. EQ GSDX RETURN
  468. IDT SPACE 4,15
  469. ** IDT - INITIALIZE DISPLAY TEMPLATES.
  470. *
  471. * *IDT* BLANK FILLS THE SERVICE CLASS DATA AREAS OF THE *L*
  472. * DISPLAY TEMPLATES.
  473. *
  474. * EXIT SERVICE CLASS DATA AREAS REINITIALIZED.
  475. *
  476. * USES X - 5.
  477. * A - 5.
  478. *
  479. * MACROS MOVE.
  480.  
  481.  
  482. IDT SUBR ENTRY/EXIT
  483. SA5 TJOS-1 TABLE OF JOB ORIGIN SERVICE CLASSES
  484. IDT1 SA5 A5+1 GET NEXT ENTRY FROM TABLE
  485. ZR X5,IDTX IF END OF TABLE
  486. MOVE 23,IDTA,X5 RESET TEMPLATE DATA AREA
  487. EQ IDT1 RESET NEXT SERVICE CLASS AREA
  488.  
  489.  
  490. IDTA BSS 0 TO RESET SERVICE CLASS DATA AREAS
  491. DATA 50H
  492. DATA 60H
  493. DATA 60H
  494. DATA 60H
  495. ILD SPACE 4,15
  496. ** ILD - INPUT *L* DISPLAY.
  497. *
  498. * *ILD* WILL ROLLOUT UNTIL A COMMAND IS ENTERED VIA THE *L*
  499. * DISPLAY. IF NO COMMAND HAS BEEN ENTERED AFTER THE
  500. * SPECIFIED ROLLOUT TIME, THE DISPLAY IS REBUILT TO REFLECT
  501. * THE CURRENT STATE OF THE SYSTEM.
  502. *
  503. * USES X - 0, 1, 2.
  504. * A - 1.
  505. * B - 2, 3.
  506. *
  507. * CALLS GSD, OLD.
  508. *
  509. * MACROS DSDINP, ROLLOUT.
  510.  
  511.  
  512. ILD SUBR ENTRY/EXIT
  513. ILD1 DSDINP IPW REQUEST INPUT FROM OPERATOR
  514. SA1 IPW
  515. MX0 -12
  516. BX1 -X0*X1
  517. AX1 1 IGNORE COMPLETION BIT
  518. SX2 X1-CNCI
  519. SB3 X1
  520. NZ X2,ILDX IF COMMAND ENTERED
  521. ROLLOUT ROLB WAIT FOR *L* DISPLAY INPUT
  522. RJ OLD OUTPUT *L* DISPLAY
  523. EQ ILD1 CHECK *L* DISPLAY INPUT
  524. OLD SPACE 4,15
  525. ** OLD - OUTPUT *L* DISPLAY DATA.
  526. *
  527. * *OLD* OUTPUTS THE DATA IN THE *L* DISPLAY BUFFER, THE
  528. * OPERATOR INPUT AND THE ERROR MESSAGE, IF ANY, TO THE
  529. * OPERATOR CONSOLE *L* DISPLAY.
  530. *
  531. * ENTRY (EMOR) = *L* DISPLAY MESSAGE INDEX.
  532. * (CMPB) = INDEX INTO *PADT*.
  533. *
  534. * USES X - 1, 2, 3, 5, 6.
  535. * A - 1, 5.
  536. *
  537. * CALLS FDB, GSD, IDT, ZTB.
  538. *
  539. * MACROS DSDOUT, MOVE.
  540.  
  541.  
  542. OLD SUBR ENTRY/EXIT
  543. RJ IDT INITIALIZE DISPLAY TEMPLATES
  544. RJ GSD GET *SCT* DATA
  545.  
  546. * SET OPERATOR INPUT AND ERROR MESSAGE IN BUFFER.
  547.  
  548. SA1 CPAG GET INDEX OF PAGE TO DISPLAY
  549. SA5 X1+LDPT
  550. SA3 EMOR GET MESSAGE ORDINAL
  551. SX3 TMLD+X3 GET MESSAGE FOR *L* DISPLAY
  552. LX5 -18 RIGHT JUSTIFY MESSAGE BUFFER ADDRESS
  553. MOVE 3,X3,X5 SET MESSAGE IN BUFFER
  554. SB2 LCOMU-1 OPERATOR INPUT LINE LENGTH
  555. SA1 IBUF FIRST WORD OF OPERATOR INPUT
  556. OLD1 ZR B2,OLD2 IF ALL WORDS CONVERTED
  557. RJ ZTB CONVERT ALL ZERO BYTES TO BLANKS
  558. SA6 A1 REPLACE IN *IBUF*
  559. SB2 B2-B1 DECREMENT NUMBER OF WORDS TO CONVERT
  560. SA1 A1+1 NEXT WORD IN *IBUF*
  561. EQ OLD1 CONVERT NEXT WORD
  562.  
  563. OLD2 SX3 IBUF GET OPERATOR INPUT
  564. LX5 -18 RIGHT JUSTIFY INPUT BUFFER ADDRESS
  565. MOVE 6,X3,X5 SET OPERATOR INPUT IN BUFFER
  566.  
  567. * FORMAT AND OUTPUT *L* DISPLAY BUFFER.
  568.  
  569. SX2 B0+ INDICATE *L* DISPLAY FOR *FDB*
  570. SA1 CPAG GET FWA BUFFER TO FORMAT
  571. SA1 X1+LDPT
  572. SX6 X1+SDTAL-1 LWA BUFFER TO FORMAT
  573. RJ FDB FORMAT *L* DISPLAY BUFFER
  574. DSDOUT LFWA DISPLAY *L* DISPLAY BUFFER
  575. EQ OLDX RETURN
  576. WOS SPACE 4,15
  577. ** WOS - WRITE ORIGINS-S SERVICE CLASS(ES).
  578. *
  579. * *WOS* WRITES THE ORIGIN-S SERVICE CLASSES TO THE
  580. * APPROPRIATE AREAS IN THE *L* DISPLAY TEMPLATES.
  581. *
  582. * ENTRY (WBUF) = ADDRESS OF FIRST *SCT* ENTRY.
  583. *
  584. * EXIT SERVICE CLASS DATA SET IN TEMPLATES.
  585. *
  586. * USES X - ALL.
  587. * A - 1, 2, 3, 6, 7.
  588. * B - 2, 3, 4, 5.
  589.  
  590.  
  591. WOS SUBR ENTRY/EXIT
  592.  
  593. * INITIALIZE FOR PROCESSING LOOP.
  594.  
  595. SB2 TJOS FWA OF WORD TO FILL IN TEMPLATE
  596. SB3 NSPL NUMBER OF SERVICE CLASSES PER LINE
  597. SA1 TSCT-1 FWA-1 OF SERVICE CLASS TABLE
  598. SA2 B2
  599. SA2 X2 GET FIRST TEMPLATE WORD
  600. SA3 WBUF FWA OF *SCT* DATA BUFFER
  601. MX0 -36
  602. BX3 -X0*X3
  603. SX6 B1+ USED TO TOGGLE WRITE WORD FLAG
  604. SX5 B0+ CLEAR WRITE WORD FLAG
  605.  
  606. * MAIN PROCESSING LOOP.
  607.  
  608. WOS1 SA1 A1+B1 GET NEXT ENTRY IN SERVICE CLASS TABLE
  609. ZR X1,WOS2 IF END OF TABLE
  610.  
  611. * CHECK FOR MATCH WITH TABLE ENTRY.
  612.  
  613. BX4 -X0*X1 GET SERVICE CLASS MASK
  614. BX4 X3*X4
  615. ZR X4,WOS1 IF NOT A MATCH, CHECK NEXT ENTRY IN TABLE
  616.  
  617. * PROCESS SERVICE CLASS MATCH.
  618.  
  619. MX0 12 GET SERVICE CLASS MNEMONIC
  620. BX4 X0*X1
  621. BX2 -X0*X2 CLEAR TWO CHARACTERS FOR SERVICE CLASS
  622. MX0 -36
  623. BX2 X4+X2 SET SERVICE CLASS INTO WORD
  624. LX2 30
  625. BX5 X6-X5 TOGGLE WRITE WORD FLAG
  626. SB3 B3-1
  627. NZ X5,WOS3 IF WRITE WORD FLAG IS SET
  628. ZR B3,WOS3 IF END OF LINE
  629. EQ WOS1 LOOP FOR NEXT SERVICE CLASS
  630.  
  631. * PROCESS END OF SERVICE CLASS TABLE.
  632.  
  633. WOS2 SX5 B1+ SET WRITE WORD FLAG
  634.  
  635. * WRITE WORD IN TEMPLATE.
  636.  
  637. WOS3 SB5 B3-NSPL+1
  638. ZR B5,WOS4 IF ONLY ONE SERVICE CLASS THIS LINE
  639. SX4 B3
  640. BX4 X5*X4
  641. NZ X4,WOS4 IF JUSTIFICATION NOT NEEDED
  642. LX2 30
  643. WOS4 BX7 X2
  644. SA7 A2 SET WORD IN TEMPLATE
  645. ZR X1,WOS6 IF END OF THIS ORIGIN TYPE
  646.  
  647. * CHECK NEXT SERVICE CLASS FOR THIS ORIGIN TYPE.
  648.  
  649. ZR B3,WOS5 IF END OF LINE
  650. SA2 A2+1 SET NEXT WORD IN TEMPLATE
  651. EQ WOS1 LOOP FOR NEXT SERVICE CLASS
  652.  
  653. * RESET FOR NEXT LINE IN TEMPLATE.
  654.  
  655. WOS5 SA2 A2+1 GET FIRST WORD NEXT LINE IN TEMPLATE
  656. SB3 NSPL
  657. EQ WOS1 LOOP FOR NEXT SERVICE CLASS
  658.  
  659. * PROCESS END OF THIS ORIGIN TYPE.
  660.  
  661. WOS6 SB2 B2+B1 GET FWA OF NEXT LINE IN TEMPLATE
  662. SA2 B2
  663. ZR X2,WOS7 IF END OF DATA
  664. SA2 X2 GET FIRST WORD NEXT LINE IN TEMPLATE
  665. BX5 X5-X5 CLEAR WRITE FLAG
  666. SB3 NSPL
  667. SA1 TSCT-1
  668. SA3 A3+1 GET NEXT WORD IN *SCT* BUFFER
  669. EQ WOS1 LOOP FOR NEXT SERVICE CLASS
  670.  
  671. * ADD LINE TERMINATORS TO ALL SERVICE CLASS DATA LINES.
  672.  
  673. WOS7 MX0 48 MASK FOR ZERO BYTE TERMINATOR
  674. SB3 TJOS-1 INITIALIZE AREAS TO PROCESS
  675. WOS8 SB3 B3+B1 GET FWA OF AREA TO PROCESS
  676. SA2 B3
  677. ZR X2,WOSX IF ALL AREAS PROCESSED
  678. SA2 X2-1
  679. SB4 4 NUMBER OF DATA LINES PER AREA
  680. WOS9 SA2 A2+6 LAST WORD IN LINE
  681. BX6 X0*X2 ADD IN ZERO BYTE TERMINATOR
  682. SA6 A2 REPLACE IN BUFFER
  683. SB4 B4-1 COUNT ONE LINE
  684. NZ B4,WOS9 IF MORE LINES IN THIS AREA
  685. EQ WOS8 PROCESS NEXT SERVICE CLASS AREA
  686. TJOS SPACE 4,10
  687. ** TJOS - TABLE OF JOB ORIGIN SERVICE CLASS LIST.
  688. *
  689. *T 42/0,18/SCOA
  690. *
  691. * (SCOA) = FWA OF SERVICE CLASS OUTPUT AREA.
  692.  
  693.  
  694. TJOS BSS 0
  695. VFD 42/0,18/SDSO
  696. VFD 42/0,18/SDBO
  697. VFD 42/0,18/SDRB
  698. VFD 42/0,18/SDIO
  699. CON 0 END OF TABLE
  700. WPO SPACE 4,20
  701. ** WPO - WRITE PRIORITY ORDERED SERVICE CLASSES.
  702. *
  703. * *WPO* WRITES THE PRIORITY ORDERED SERVICE CLASSES TO THE
  704. * APPROPRIATE AREAS IN THE *L* DISPLAY TEMPLATES.
  705. *
  706. * ENTRY TPOS = TABLE OF PRIORITY ORDERED SERVICE CLASSES IN
  707. * TEMPLATES.
  708. * (WBUF) = ADDRESS OF FIRST *SCT* ENTRY.
  709. *
  710. * EXIT PRIORITY ORDERED SERVICE CLASSES SET IN TEMPLATES.
  711. *
  712. * USES X - 0, 1, 3, 4, 5, 6, 7.
  713. * A - 1, 3, 5, 7.
  714. * B - 2, 3.
  715. *
  716. * MACROS MOVE.
  717.  
  718.  
  719. WPO SUBR ENTRY/EXIT
  720. MOVE PBUFL,WPOA,PBUF RE-INITIALIZE *PBUF*
  721. SB2 NPXW NUMBER OF SERVCE CLASSES PER WORD
  722. SB3 NUMPX NUMBER OF PRIORITY ORDERED SERVICE CLASSES
  723. SA1 PBUF FWA OF TEMPORARY BUILD BUFFER
  724. SA3 WBUF+PLSC FWA OF PRIORITY ORDERED SERVICE CLASS DATA
  725. MX0 12 MASK FOR SERVICE CLASSES
  726. SX6 B1 USED TO TOGGLE WRITE FLAG
  727. SX5 B0+ CLEAR WRITE FLAG
  728.  
  729. * PROCESS ALL PRIORITY ORDERED SERVICE CLASSES.
  730.  
  731. WPO1 BX4 X0*X3 GET NEXT SERVICE CLASS
  732. SB3 B3-B1 COUNT ONE SERVICE CLASS
  733. SB2 B2-1 COUNT ONE SERVICE CLASS THIS LINE
  734. LX3 12
  735. BX5 X6-X5 TOGGLE WRITE FLAG
  736. ZR X4,WPO2 IF NO SERVICE CLASS PRESENT
  737. BX1 -X0*X1 CLEAR 2 CHARACTERS
  738. BX1 X1+X4 SET SERVICE CLASS
  739. WPO2 LX1 30
  740. NZ B2,WPO3 IF MORE SERVCE CLASSES THIS LINE
  741. SB2 NPXW
  742. SA3 A3+1 GET MORE SERVCE CLASSES FROM SYSTEM BUFFER
  743. WPO3 NZ X5,WPO4 IF WRITE FLAG SET
  744. NZ B3,WPO1 IF MORE SERVICE CLASSES
  745.  
  746. * WRITE CURRENT WORD TO BUILD BUFFER.
  747.  
  748. WPO4 NZ B3,WPO5 IF NOT END OF SERVICE CLASSES
  749. LX1 30
  750. BX7 X1 WRITE LAST SERVICE CLASS ENTRY
  751. SA7 A1+
  752. EQ WPO6 SET SERVICE CLASSES IN TEMPLATES
  753.  
  754. WPO5 BX7 X1 WRITE CURRENT WORD TO BUILD BUFFER
  755. SA7 A1+
  756. SA1 A1+B1 NEXT WORD IN BUILD BUFFER
  757. EQ WPO1 LOOP FOR NEXT SERVICE CLASS
  758.  
  759. * SET PRIORITY ORDERED SERVICE CLASSES INTO TEMPLATES.
  760.  
  761. WPO6 SA5 TPOS TABLE OF TEMPLATE ADDRESSES
  762. WPO7 ZR X5,WPOX IF NO MORE PAGES IN TEMPLATE
  763. MOVE PBUFL,PBUF,X5 PUT DATA INTO TEMPLATE
  764. SA5 A5+B1 NEXT TEMPLATE ADDRESS
  765. EQ WPO7 LOOP FOR NEXT TEMPLATE PAGE
  766.  
  767.  
  768. WPOA DATA 50H
  769. TPOS SPACE 4,10
  770. ** TPOS - TABLE OF PRIORITY ORDERED SERVICE CLASS ORIGINS.
  771. *
  772. *T 42/0,18/ADDR
  773. *
  774. * (ADDR) = ADDRESS OF DATA OUTPUT AREA ON TEMPLATE PAGE.
  775.  
  776. TPOS BSS 0
  777. VFD 42/0,18/SDPA
  778. VFD 42/0,18/SDPB
  779. CON 0 END OF TABLE
  780. SPACE 4,20
  781. * COMMON DECKS.
  782.  
  783. *CALL COMCCIO
  784. *CALL COMCCOD
  785. *CALL COMCCPM
  786. *CALL COMCFLD
  787. *CALL COMCLFM
  788. *CALL COMCMVE
  789. *CALL COMCPOP
  790. *CALL COMCSFN
  791. *CALL COMCSYS
  792. *CALL COMCUSB
  793. *CALL COMCWOD
  794. *CALL COMCWTC
  795. *CALL COMCWTO
  796. *CALL COMCWTW
  797. *CALL COMCZTB
  798. TITLE BUFFER AREA.
  799. USE BUFFERS
  800.  
  801. SDTA SPACE 4,5
  802. ** SERVICE CLASS DISPLAY TEMPLATES.
  803.  
  804. SDTH BSS 0 HEADER FOR PRINT OPTION
  805. DATA 50HSCTD - SERVICE CLASS CONTROL TABLE DISPLAY
  806. SDAT BSSZ 1 DATE STAMP
  807. STIM BSSZ 1 TIME STAMP
  808. CON 0
  809.  
  810. SDTA BSS 0 PAGE 1 DATA
  811. DATA 50HSERVICE CLASS CONTROL TABLE DISPLAY PAG
  812. DATA 8CE 1 OF 2
  813. DATA C* *
  814. DATA 58C SYSTEM ORIGIN SERVICE CLASSES
  815. DATA C* *
  816. SDSO DATA 60H
  817. DATA 60H
  818. DATA 60H
  819. DATA 60H
  820. DATA C* *
  821. DATA 58C LOCAL BATCH ORIGIN SERVICE CLASSES
  822. DATA C* *
  823. SDBO DATA 60H
  824. DATA 60H
  825. DATA 60H
  826. DATA 60H
  827. DATA C* *
  828. DATA 58C PRIORITY ORDERED SERVICE CLASSES
  829. DATA C* *
  830. DATA 58C P0 P1 P2 P3 P4 P5 P6 P7
  831. SDPA DATA 50C
  832. SDMP EQU *-SDTA MESSAGE LINE POSITION IN TEMPLATE
  833. DATA 28C
  834. SDIP EQU *-SDTA INPUT LINE POSITION IN TEMPLATE
  835. DATA 50C
  836. SDTAL EQU *-SDTA LENGTH OF HEADER BUFFER
  837. SDTAE EQU *-1 END OF PAGE 1
  838. SDTB BSS 0 PAGE 2 DATA
  839. DATA 50HSERVICE CLASS CONTROL TABLE DISPLAY PAG
  840. DATA 8CE 2 OF 2
  841. DATA C* *
  842. DATA 58C REMOTE BATCH ORIGIN TYPE SERVICE CLASSES
  843. DATA C* *
  844. SDRB DATA 60H
  845. DATA 60H
  846. DATA 60H
  847. DATA 60H
  848. DATA C* *
  849. DATA 58C INTERACTIVE ORIGIN SERVICE CLASSES
  850. DATA C* *
  851. SDIO DATA 60H
  852. DATA 60H
  853. DATA 60H
  854. DATA 60H
  855. DATA C* *
  856. DATA 58C PRIORITY ORDERED SERVICE CLASSES
  857. DATA C* *
  858. DATA 58C P0 P1 P2 P3 P4 P5 P6 P7
  859. SDPB DATA 50C
  860. DATA 28C
  861. DATA 50C
  862. SDTBL EQU *-SDTB LENGTH OF PAGE 2 TEMPLATE
  863. SDTBE EQU *-1 END OF PAGE 2
  864. ERRNZ SDTBL-SDTAL TEMPLATES NOT SAME LENGTH
  865.  
  866. IPW BSS 0 INPUT BUFFER FOR *L* DISPLAY
  867. VFD 12/6,1/0,1/0,46/0
  868. IBUF BSS LCOMU INPUT BUFFER
  869.  
  870. * SCRATCH BUFFER.
  871.  
  872. PBUF DATA 50H
  873. PBUFL EQU *-PBUF *PBUF* LENGTH
  874.  
  875. * *L* DISPLAY BUFFER.
  876.  
  877. LFWA VFD 12/LBUFL,1/0,1/0,46/0 *L* DISPLAY CONTROL WORD
  878. LBUF EQU * *L* DISPLAY BUFFER STARTS HERE
  879. LBUFE EQU LBUF+LBUFL END OF *L* DISPLAY BUFFER
  880. ERRNG LFWA-SDTBE TEMPLATE OVERFLOWS *L* DISPLAY BUFFER
  881. ERRNG LBUFL-SDTAL TEMPLATE IS LARGER THAN *LBUF*
  882.  
  883. * OUTPUT FILE BUFFER.
  884.  
  885. OBUF EQU LBUF OUTPUT BUFFER OVERLAYS *L* DISPLAY BUFFER
  886. OBUFE EQU OBUF+SDTAE-SDTH END OF OUTPUT BUFFER
  887.  
  888. * *SFM* WORKING BUFFER.
  889.  
  890. .WBUF MAX LBUFE,OBUFE
  891. WBUF EQU .WBUF *WBUF* FOLLOWS *OBUF* AND *LBUF*
  892. WBUFE EQU WBUF+SCTL END OF *WBUF*
  893. PRS TITLE PRESET.
  894. ** PRS - PRESET ROUTINE.
  895. *
  896. * ENTRY CONTROL STATEMENT ARGUMENT LIST AT RA+2 (ARGR)
  897. * IN OPERATING SYSTEM FORMAT.
  898. *
  899. * EXIT (B1) = 1.
  900. * (PFLG) = 1, IF PRINT FILE REQUESTED.
  901. * (LFLG) = 1, IF *L* DISPLAY REQUESTED.
  902. *
  903. * ERROR TO *ERR*, IF ARGUMENT ERROR OR INCORRECT USER ACCESS.
  904. * (X2) = FWA ERROR MESSAGE.
  905. *
  906. * USES X - 0, 1, 2, 3, 4, 6.
  907. * A - 1, 2, 3, 6.
  908. * B - 1, 2, 3, 4, 5, 6, 7.
  909. *
  910. * CALLS ARM, CPA, FNB, USB.
  911. *
  912. * MACROS ARG, CLOCK, DATE, GETSPS, SUBR.
  913.  
  914.  
  915. * SET DATE AND TIME IN HEADER.
  916.  
  917. PRS SUBR ENTRY/EXIT
  918. SB1 1 SYSTEM COMMUNICATION (B1)=1
  919. DATE SDAT
  920. CLOCK STIM
  921. GETSPS SYOF CHECK FOR SYSTEM ORIGIN PRIVILEGES
  922. SA1 SYOF
  923. ZR X1,PRS1 IF SYSTEM ORIGIN PRIVILEGES
  924. SX2 ERIU *INCORRECT USER ACCESS.*
  925. EQ ERR ABORT
  926.  
  927. * PROCESS ARGUMENT LIST.
  928.  
  929. PRS1 SB2 CCDR UNPACK CONTROL CARD
  930. RJ USB
  931. SA1 A6 ASSURE TERMINATOR CHARACTER
  932. SX6 1R.
  933. SA6 X1+B1
  934. SA2 PRSB SET SEPARATOR MASK
  935. SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE
  936. SB7 PRS9 SET EXIT FOR TERMINATOR CHARACTER
  937. RJ FNB FIND NON-BLANK CHARACTER
  938.  
  939. * SKIP PROGRAM NAME.
  940.  
  941. SB7 PRS6 SET EXIT FOR TERMINATOR CHARACTER
  942. PRS4 RJ FNB FIND NON-BLANK CHARACTER
  943. SB4 B5-B2
  944. LX4 X2,B5
  945. PL B4,PRS5 IF SEPARATOR CHARACTER
  946. PL X4,PRS4 IF NOT SEPARATOR CHARACTER
  947. PRS5 SB3 TARG FWA ARGUMENT EQUIVALENCE TABLE
  948. SB2 TARGL LENGTH ARGUMENT TABLE
  949. SB4 PRSA ADDRESS TO PLACE DATA
  950. RJ CPA CONVERT POSITIONAL ARGUMENTS
  951. NG B5,PRS9 IF ARGUMENT ERROR
  952. PL X1,PRS6 IF NO ARGUMENTS PROCESSED
  953. SX6 B5+ SET LWA OF ARGUMENTS
  954. SA6 USBC
  955. SB6 PRSA FWA OF ARGUMENTS
  956. RJ ARM PROCESS ARGUMENTS
  957. NZ X1,PRS9 IF ERROR
  958.  
  959. * DETERMINE LIST OPTIONS.
  960.  
  961. PRS6 SA1 LO GET CHARACTER FROM LIST OPTION
  962. SA2 TLOP-1
  963. MX0 6
  964. SB4 A2+ SAVE ADDRESS OF ARGUMENT TABLE
  965. PRS7 BX3 X0*X1 PROCESS NEXT CHARACTER FROM LIST OPTION
  966. ZR X3,PRSX IF ALL OPTIONS PROCESSED
  967. PRS8 SA2 A2+B1 SEARCH ARGUMENT TABLE
  968. ZR X2,PRS9 IF LIST OPTION NOT DEFINED IN TABLE
  969. BX4 X0*X2
  970. BX4 X4-X3
  971. NZ X4,PRS8 IF MATCH NOT FOUND
  972. SX6 B1 SET FLAG FOR THIS OPTION
  973. SA6 X2
  974. SX3 A2-TLOP
  975. LX1 6
  976. SA2 B4 INITIALIZE TABLE ADDRESS
  977. NZ X3,PRS7 IF NOT LO=D
  978. MX4 -12
  979. SA3 JOPR CHECK FOR SYSTEM ORIGIN
  980. LX3 0-24
  981. BX3 -X4*X3
  982. SX3 X3-SYOT
  983. ZR X3,PRS7 IF SYSTEM ORIGIN JOB
  984. SX2 ERIU *INCORRECT USER ACCESS.*
  985. EQ ERR ABORT
  986.  
  987. PRS9 SX2 ERAR *ARGUMENT ERROR.*
  988. EQ ERR ABORT
  989.  
  990. PRSA BSS 100
  991.  
  992. PRSB CON 40000000000033127777B SEPARATOR MASK
  993.  
  994. ** ASSUMED VALUES FOR LIST OPTIONS.
  995.  
  996.  
  997. LO CON 0LD SELECTED LIST OPTION (DEFAULT = *D*)
  998. SPACE 4,10
  999. ** ARGUMENT EQUIVALENCE TABLE.
  1000.  
  1001.  
  1002. TARG BSS 0
  1003. L ARG O,O,0,0 OUTPUT FILE NAME
  1004. LO ARG LO,LO,0,0 LIST OPTIONS
  1005. ARG END OF ARGUMENT TABLE
  1006. TARGL EQU *-TARG-1 LENGTH OF ARGUMENT TABLE
  1007. TLOP SPACE 4,15
  1008. ** TLOP - TABLE OF LIST OPTIONS.
  1009. *
  1010. *T, 42/ OPTION,18/ ADDR
  1011. *
  1012. * (ADDR) WILL BE SET NON-ZERO IN PRS IF OPTION IS SELECTED.
  1013.  
  1014.  
  1015. TLOP BSS 0
  1016. VFD 42/0LD,18/LFLG SELECT *L* DISPLAY
  1017. VFD 42/0LL,18/PFLG SELECT LINE PRINTER
  1018. CON 0 END OF TABLE
  1019. FNB SPACE 4,15
  1020. ** FNB - FIND NON-BLANK CHARACTER.
  1021. *
  1022. * ENTRY (B6) = NEXT CHARACTER ADDRESS.
  1023. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED.
  1024. *
  1025. * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER.
  1026. * (B6) = NEXT CHARACTER ADDRESS (UPDATED).
  1027. * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED.
  1028. *
  1029. * USES X - 1, 4.
  1030. * A - 1.
  1031. * B - 1, 5, 6, 7.
  1032. *
  1033. * CALLS ARM, CPA, FNB, USB.
  1034. *
  1035. * MACROS CLOCK, DATE, GETSPS, SUBR.
  1036.  
  1037.  
  1038. FNB SUBR ENTRY/EXIT
  1039. FNB1 SA1 B6 GET NEXT CHARACTER
  1040. SB6 B6+B1
  1041. SX4 X1-1R
  1042. ZR X4,FNB1 IF BLANK CHARACTER
  1043. SB5 X1+
  1044. SX4 X1-1R.
  1045. ZR X4,FNB2 IF TERMINATOR CHARACTER
  1046. SX4 X1-1R)
  1047. NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN
  1048. FNB2 JP B7 TERMINATOR CHARACTER
  1049. TITLE PRESET COMMON DECKS.
  1050. *CALL COMCARM
  1051. *CALL COMCCPA
  1052. SPACE 4,5
  1053. SCTDE EQU * END OF PROGRAM
  1054. .RFL= MAX SCTDE,WBUFE
  1055. RFL= EQU .RFL=
  1056. SPACE 4,5
  1057. END