User Tools

Site Tools


cdc:nos2.source:opl871:fotd

Table of Contents

FOTD

Table Of Contents

  • [00008] FOTD - FAMILY ORDINAL TABLE DISPLAY.
  • [00012] FAMILY ORDINAL TABLE DISPLAY.
  • [00061] ASSEMBLY CONSTANTS.
  • [00071] TABLES AND BUFFER DEFINITIONS.
  • [00121] MAIN PROGRAM.
  • [00136] LOP - LIST OPTION PROCESSOR.
  • [00173] SUBROUTINES.
  • [00175] ERR - ERROR PROCESSOR.
  • [00188] FDB - FORMAT DISPLAY BUFFER.
  • [00222] GNF - GET NEXT FAMILY.
  • [00241] GNO - GET NEXT ORDINAL.
  • [00268] RFD - RETURN *FOT* DATA.
  • [00297] WFB - WRITE *FOT* BUFFER.
  • [00413] BUFFER AREA.
  • [00446] PRS - PRESET ROUTINE.
  • [00553] TLOP - TABLE OF LIST OPTIONS.
  • [00565] FNB - FIND NON-BLANK CHARACTER.
  • [00590] PRESET COMMON DECKS.

Source Code

FOTD.txt
  1. IDENT FOTD,FOT
  2. ABS
  3. SST
  4. ENTRY FOTD
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. TITLE FOTD - FAMILY ORDINAL TABLE DISPLAY.
  9. *COMMENT FOTD - FAMILY ORDINAL TABLE DISPLAY.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. SPACE 4,10
  12. *** FOTD - FAMILY ORDINAL TABLE DISPLAY.
  13. *
  14. * B. J. OLIPHANT 81/03/19.
  15. SPACE 4,10
  16. *** *FOTD* IS A CPU UTILITY USED BY THE OPERATOR TO DISPLAY
  17. * THE FAMILY ORDINAL TABLE ASSIGNMENTS ON THE *L* DISPLAY OR
  18. * TO FORMAT IT FOR A PRINTER.
  19. SPACE 4,20
  20. *** COMMAND FORMAT.
  21. *
  22. *
  23. * FOTD(LFN,OP) ORDER DEPENDENT PARAMETERS.
  24. * OR
  25. * FOTD(L=LFN,LO=OP) ORDER INDEPENDENT (KEYWORD = PARAMETER).
  26. *
  27. * WHERE
  28. *
  29. * OP = *L* FORMAT DATA FOR A LINE PRINTER.
  30. *
  31. * OP = *D* FORMAT DATA FOR *L* DISPLAY (DEFAULT).
  32. *
  33. * LFN LIST OUTPUT FILE NAME (DEFAULT = OUTPUT).
  34. * THIS PARAMETER VALID ONLY WITH (LO=L).
  35. *
  36. * NOTES SPECIAL PRIVILEGES REQUIRED.
  37. * 1. USER MUST BE *SYOT* TO USE *L* DISPLAY (LO=D).
  38. * 2. USER MUST BE *SYOT* OR HAVE SYSTEM ORIGIN
  39. * PRIVILEGES TO GENERATE A LISTING (LO=L).
  40. SPACE 4,15
  41. *** DAYFILE MESSAGES.
  42. *
  43. * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES.
  44. *
  45. * *ARGUMENT ERROR.*
  46. * AN INCORRECT PARAMETER WAS ENTERED. (FATAL ERROR)
  47. *
  48. * *USER ACCESS NOT VALID.*
  49. * CALLING JOB WAS NOT SYSTEM ORIGIN. (FATAL ERROR)
  50. *
  51. * *FOTD UTILITY COMPLETE.*
  52. * INDICATES NORMAL COMPLETION OF PROGRAM.
  53. SPACE 4,10
  54. *** DEFINITION COMMON DECKS.
  55. *
  56. *CALL COMCMAC
  57. *CALL COMCCMD
  58. *CALL COMCDCM
  59. *CALL COMSSFM
  60. *CALL COMSSSJ
  61. TITLE ASSEMBLY CONSTANTS.
  62. **** ASSEMBLY CONSTANTS.
  63.  
  64. OBUFL EQU 101B OUTPUT BUFFER LENGTH
  65. LBUFL EQU LDSY *L* DISPLAY BUFFER LENGTH
  66. WBUFL EQU 100B*2 LENGTH WORKING BUFFER
  67. XCDT EQU 4 X - COORDINATE FOR *L* DISPLAY
  68. YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY
  69.  
  70. ****
  71. TITLE TABLES AND BUFFER DEFINITIONS.
  72. ORG 111B
  73. FOT BSS 0
  74. SPACE 4,10
  75. * DAYFILE MESSAGES.
  76.  
  77. DAFC DATA C* FOTD UTILITY COMPLETE.*
  78. ERAR DATA C* ARGUMENT ERROR.*
  79. ERIU DATA C* USER ACCESS NOT VALID.*
  80. SPACE 4,10
  81. * FLAG DEFINITIONS.
  82.  
  83. LFLG CON 0 *L* DISPLAY FLAG
  84. PFLG CON 0 PRINTER OUTPUT FLAG
  85. SYOF CON 0 SYSTEM ORIGIN FLAG
  86. WCNT BSSZ 1 NUMBER OF WORDS STORED IN WORKING BUFFER
  87. SPACE 4,10
  88. * *L* DISPLAY BUFFER FIRST WORD.
  89. *
  90. * T, 12/ N ,1/ S ,1/ F ,46/
  91. *
  92. * N SIZE OF DISPLAY BUFFER.
  93. * S CHARACTER SIZE.
  94. * F DATA FORMAT BIT.
  95.  
  96.  
  97. LDSW VFD 12/LBUFL,1/0,1/0,46/0
  98. SPACE 4,10
  99. ** *SETJOB* PARAMETER BLOCK.
  100.  
  101. SETB VFD 60/0
  102. VFD 48/0,12/2LDF
  103. SPACE 4,10
  104. ** *SFM* PARAMETER BLOCK.
  105.  
  106.  
  107. SFMB VFD 12/RFDF,12/0,12/WBUFL/2,6/0,18/WBUFA
  108. CON 0 END OF *SFM* PARAMETER BLOCK
  109. SPACE 4,5
  110. * SSJ= PARAMETER BLOCK.
  111.  
  112.  
  113. SSJ= BSS 0 SSJ= ENTRY POINT
  114. BSSZ SSJL SSJ= PARAMETER BLOCK
  115. FETS SPACE 4,10
  116. * FET DEFINITIONS.
  117.  
  118. O BSS 0 PRINTER OUTPUT FILE BUFFER
  119. OUTPUT FILEB OBUF,OBUFL,(FET=6)
  120. FOTD TITLE MAIN PROGRAM.
  121. ** FOTD - MAIN PROGRAM.
  122. *
  123. * EXIT *FOTD* PROGRAM COMPLETED.
  124. *
  125. * CALLS PRS, LOP.
  126. *
  127. * MACROS ENDRUN, MESSAGE.
  128.  
  129.  
  130. FOTD BSS 0 ENTRY
  131. RJ PRS PRESET ROUTINE
  132. RJ LOP PROCESS LIST OPTIONS
  133. MESSAGE DAFC,0,R * FOTD UTILITY COMPLETE.*
  134. ENDRUN
  135. LOP TITLE LIST OPTION PROCESSOR.
  136. ** LOP - LIST OPTION PROCESSOR.
  137. *
  138. * ENTRY USER HAS BEEN VALIDATED (EITHER SYSTEM ORIGIN
  139. * OR SYSTEM ORIGIN PRIVILEDGES).
  140. *
  141. * (PFLG) = 1, IF PRINT FILE REQUESTED.
  142. * (LFLG) = 1, IF *L* DISPLAY REQUESTED.
  143. *
  144. * EXIT (LBUF) = FWA OF FORMATTED *L* DISPLAY BUFFER,
  145. * DISPLAYED ON *L* DISPLAY, IF REQUESTED.
  146. *
  147. * PRINT FILE, IF REQUESTED, LOCAL TO USER JOB.
  148. *
  149. * USES X - 1, 2.
  150. * A - 1, 2.
  151. * B - NONE.
  152. *
  153. * CALLS FDB, RFD.
  154. *
  155. * MACROS DSDOUT, SETFS, SETJOB, WRITER.
  156.  
  157.  
  158. LOP SUBR ENTRY/EXIT
  159. RJ RFD GET FOT DATA
  160. SA2 PFLG CHECK PRINTER FLAG
  161. ZR X2,LOP1 IF NOT FOR PRINTER
  162. SX2 O SET OUTPUT FET ADDRESS
  163. RJ FDB BUILD PRINT FILE
  164. WRITER O FLUSH OUTPUT BUFFER
  165. SETFS O,0 SAVE OUTPUT AS LOCAL FILE
  166. SETJOB SETB CHANGE JOB DISPOSITION
  167. SX2 B0+ INDICATE *L* DISPLAY FOR *FDB*
  168. LOP1 SA1 LFLG
  169. ZR X1,LOPX IF *L* DISPLAY NOT SELECTED
  170. RJ FDB BUILD DISPLAY BUFFER
  171. DSDOUT LBUF DISPLAY *L* DISPLAY BUFFER
  172. EQ LOPX RETURN
  173. TITLE SUBROUTINES.
  174. ERR SPACE 4,10
  175. ** ERR - ERROR PROCESSOR.
  176. *
  177. * ENTRY (X2) = ADDRESS OF ERROR MESSAGE.
  178. *
  179. * EXIT MESSAGE ISSUED IN SYSTEM AND USER DAYFILE.
  180. *
  181. * MACROS ABORT, MESSAGE.
  182.  
  183.  
  184. ERR BSS 0 ENTRY
  185. MESSAGE X2,0,R
  186. ABORT
  187. FDB SPACE 4,10
  188. ** FDB - FORMAT DISPLAY BUFFER.
  189. *
  190. * ENTRY (X2) = 0, IF FORMATTING FOR *L* DISPLAY.
  191. * .EQ. FET ADDRESS OF OUTPUT FILE IF FOR PRINTER.
  192. *
  193. * EXIT (LBUF) = FWA FORMATTED *L* DISPLAY BUFFER.
  194. *
  195. * USES X - 1, 3, 4, 6, 7.
  196. * A - 3, 4, 7.
  197. * B - 2, 3, 4, 6.
  198. *
  199. * CALLS FLB.
  200.  
  201.  
  202. FDB SUBR ENTRY/EXIT
  203.  
  204. * SET UP PARAMETERS FOR *FLD*.
  205.  
  206. SA3 WCNT GET NUMBER OF WORDS TO REFORMAT
  207. SX6 X3+HBUF-1 LWA OF BUFFER TO REFORMAT
  208. SX3 B1+ *C* DISPLAY FORMAT
  209. SB2 LBUF+1 FWA TO PLACE FORMATTED DATA
  210. SB6 LBUF+LBUFL LWA+1 OF BUFFER TO RECEIVE CONVERTED DATA
  211. SX1 PBUF ASSUME FORMATTING FOR PRINTER
  212. NZ X2,FDB1 IF FORMATTING FOR PRINTER
  213. SA4 LDSW INITIALIZE *L* DISPLAY BUFFER
  214. BX7 X4
  215. SA7 B2-B1
  216. SB3 XCDT SET X-COORDINATE FOR *L* DISPLAY
  217. SB4 YCDT SET Y-COORDINATE FOR *L* DISPLAY
  218. SX1 HBUF FWA FOR FORMATTING FOR *L* DISPLAY
  219. FDB1 RJ FLB FORMAT DATA TO BE OUTPUT
  220. EQ FDBX RETURN
  221. GNF SPACE 4,15
  222. ** GNF - GET NEXT FAMILY.
  223. *
  224. * *GNF* RETURNS THE NEXT FAMILY FROM THE *FOT*.
  225. *
  226. * ENTRY (WBUFA) = *FOT* DATA.
  227. * (B6) = CURRENT FAMILY ORDINAL.
  228. *
  229. * EXIT (X1) = FAMILY NAME, LEFT JUSTIFIED.
  230. *
  231. * USES X - 0, 1.
  232. * A - 1.
  233.  
  234.  
  235. GNF SUBR ENTRY/EXIT
  236. SA1 WBUFA-1+B6 GET NEXT *FOT* ENTRY
  237. MX0 42 7 CHARACTER FAMILY MASK
  238. BX1 X0*X1 RETURN 7 FAMILY CHARACTERS ONLY
  239. EQ GNFX RETURN
  240. GNO SPACE 4,15
  241. ** GNO - GET NEXT ORDINAL.
  242. *
  243. * *GNO* RETURNS THE DISPLAY CODE ORDINAL NUMBER WITH TRAILING
  244. * PERIOD.
  245. *
  246. * ENTRY (B6) = PREVIOUS FAMILY ORDINAL NUMBER.
  247. *
  248. * EXIT (X1) = DISPLAY CODE ORDINAL WITH TRAILING PERIOD.
  249. * (B6) = NEXT FAMILY ORDINAL.
  250. *
  251. * USES X - 0, 1.
  252. * B - 6.
  253. *
  254. * CALLS COD.
  255.  
  256.  
  257. GNO SUBR ENTRY/EXIT
  258. SB6 B6+B1 SET CURRENT FAMILY ORDINAL NUMBER
  259. SX1 B6 ORDINAL NUMBER TO CONVERT
  260. RJ COD CONVERT OCTAL TO DISPLAY CODE
  261. MX0 -12 MASK FOR ORDINAL DIGITS
  262. BX1 -X0*X6 SET ORDINAL NUMBER
  263. SX0 1R.
  264. LX1 6 SHIFT FOR PERIOD TERMINATOR
  265. BX1 X0+X1 ADD PERIOD TERMINATOR
  266. EQ GNOX RETURN
  267. RFD SPACE 4,15
  268. ** RFD - RETURN *FOT* DATA.
  269. *
  270. * ENTRY (SFMB) = *SFM* PARAMETER BLOCK SET UP
  271. * FOR *RFDF* SUBFUNCTION.
  272. *
  273. * EXIT FAMILY ORDINAL TABLE (FOT) STORED.
  274. * (HBUF) = FWA OF FORMATTED *FOT* DATA.
  275. *
  276. * USES X - 0, 1, 2.
  277. * A - 2.
  278. * B - NONE.
  279. *
  280. * CALLS WFB.
  281. *
  282. * MACROS SYSTEM.
  283.  
  284.  
  285. RFD SUBR ENTRY/EXIT
  286. SYSTEM SFM,R,SFMB,RSDF*100B RETURN SYSTEM DATA
  287. SA2 SFMB SAVE INFORMATION FROM PARAMETER WORD
  288. LX2 11-47 GET MAXIMUM NUMBER ORDINALS POSSIBLE
  289. MX0 -12
  290. BX1 -X0*X2
  291. LX2 11-59 GET NUMBER OF ORDINALS CURRENTLY IN USE
  292. BX2 -X0*X2
  293. IX1 X1-X2 NUMBER OF FOT ENTRIES STILL AVAILABLE
  294. RJ WFB WRITE FOT BUFFER
  295. EQ RFDX RETURN
  296. WFB SPACE 4,15
  297. ** WFB - WRITE *FOT* BUFFER.
  298. *
  299. * ENTRY (X1) = NUMBER OF FOT ENTRIES STILL AVAILABLE.
  300. * (X2) = NUMBER OF *FOT* ENTRIES RETURNED BY *SFM*.
  301. * (WBUFA) = ADDRESS OF FIRST *FOT ENTRY.
  302. *
  303. * EXIT (HBUF) = FWA OF FORMATTED *FOT* DATA.
  304. * (WCNT) = NUMBER OF WORDS STORED IN (HBUF).
  305. *
  306. * USES X - ALL.
  307. * A - 0, 1, 2, 4, 6, 7.
  308. * B - 5, 6.
  309. *
  310. * CALLS COD, GNF, GNO, SFN, ZTB.
  311.  
  312.  
  313. WFB SUBR ENTRY/EXIT
  314. SB5 X2 SAVE NUMBER OF FAMILIES
  315. SB6 B0 INITIALIZE ORDINAL NUMBER
  316. RJ COD CONVERT AVAILABLE ENTRIES TO DISPLAY CODE
  317. SB7 B0+ INDICATE FIRST HALF OF LINE
  318. MX0 -12
  319. BX6 -X0*X6 REMOVE BLANK CHARACTERS RETURNED BY *COD*
  320. SA1 HBUFB-1 MERGE INTO HEADER LINE
  321. LX6 30 ADJUST RESULT FOR PROPER COLUMNS
  322. LX0 30 ADJUST MASK FOR PROPER COLUMNS
  323. BX1 X0*X1 PRESERVE ORIGINAL LINE
  324. BX6 X6+X1 INSERT AVAILABLE ENTRIES
  325. SA6 A1+
  326. SA4 WBUFA SET FIRST FAMILY = DEFAULT FAMILY
  327. MX0 42
  328. BX1 X0*X4
  329. SA4 HBUFA+2
  330. MX0 18
  331. LX0 12 ADJUST MASK
  332. RJ SFN SPACE-FILL NAME
  333. BX7 X0*X4
  334. LX6 -6
  335. BX6 -X0*X6
  336. BX7 X6+X7 MERGE FAMILY INTO HEADER LINE
  337. SA7 A4+
  338. SA0 WBUF FWA TO RETURN REFORMATTED DATA
  339.  
  340. * SET WORD 1 OF CURRENT HALF OF LINE.
  341.  
  342. WFB1 RJ GNO GET NEXT ORDINAL
  343. LX1 36 SET INTO PROPER COLUMN
  344. BX5 X1
  345. RJ GNF GET NEXT FAMILY
  346. LX1 -30 PUT INTO PROPER COLUMN
  347. MX0 -30
  348. BX2 -X0*X1 LAST PART OF WORD 1
  349. BX4 X0*X1 FIRST PART OF WORD 2
  350. BX1 X5+X2 SET WORD 1
  351. RJ ZTB CONVERT ZEROS TO BLANKS
  352. SA6 A0+ SET INTO *WBUF*
  353. SA0 A0+B1 NEXT WORD IN *WBUF*
  354.  
  355. * SET WORD 2 OF CURRENT HALF OF LINE.
  356.  
  357. BX5 X4 LAST PORTION OF FAMILY
  358. EQ B6,B5,WFB4 IF ALL FAMILIES PROCESSED
  359. RJ GNO GET NEXT ORDINAL
  360. LX1 6 PUT INTO PROPER COLUMN
  361. BX1 X5+X1 SET WORD 2
  362. RJ ZTB CONVERT ZEROS TO BLANKS
  363. SA6 A0 SET INTO *WBUF*
  364. SA0 A0+B1 NEXT LOCATION IN *WBUF*
  365.  
  366. * SET WORD 3 OF CURRENT HALF OF LINE.
  367.  
  368. RJ GNF GET NEXT FAMILY
  369. BX5 X1 ADD FAMILY INTO WORD
  370. EQ B6,B5,WFB4 IF ALL FAMILIES PROCESSED
  371. RJ ZTB CONVERT ZEROS TO BLANKS
  372.  
  373. * CHECK IF LINE TERMINATOR NEEDED.
  374.  
  375. EQ B7,B1,WFB2 IF TERMINATOR NEEDED
  376. SB7 1 INDICATE LAST HALF OF LINE
  377. EQ WFB3 SET IN LINE AND CONTINUE
  378.  
  379. WFB2 MX0 48 LINE TERMINATOR MASK
  380. BX6 X0*X6 ADD LINE TERMINATOR
  381. SB7 B0+ INDICATE FIRST HALF OF LINE
  382. WFB3 SA6 A0 SET WORD 3
  383. SA0 A0+B1 NEXT LOCATION IN *WBUF*
  384. EQ WFB1 CONTINUE FORMATTING LINES
  385.  
  386. * PROCESS END OF FAMILIES.
  387.  
  388. WFB4 BX1 X5 SET LAST WORD
  389. RJ ZTB CONVERT ZEROS TO BLANKS
  390. MX0 48 TERMINATOR MASK
  391. BX6 X0*X6 ADD LINE TERMINATOR
  392. SA6 A0+
  393. SX6 A0-HBUF+1 SAVE NUMBER OF WORDS IN FOT BUFFER
  394. SA6 WCNT
  395. EQ WFBX RETURN
  396. SPACE 4,5
  397. * COMMON DECKS.
  398.  
  399. *CALL COMCCIO
  400. *CALL COMCCOD
  401. *CALL COMCCPM
  402. LIST X
  403. *CALL COMCFLD
  404. LIST *
  405. *CALL COMCLFM
  406. *CALL COMCSFN
  407. *CALL COMCSYS
  408. *CALL COMCWOD
  409. *CALL COMCWTC
  410. *CALL COMCWTO
  411. *CALL COMCWTW
  412. *CALL COMCZTB
  413. TITLE BUFFER AREA.
  414. USE BUFFERS
  415.  
  416.  
  417. * BUFFER HEADER FOR PRINT OPTION.
  418.  
  419. PBUF DATA 40H FOTD - FAMILY ORDINAL TABLE DISPLAY.
  420. PDAT BSSZ 1 DATE STAMP BUFFER
  421. PTIM BSSZ 1 TIME STAMP BUFFER
  422. CON 0 END OF LINE
  423.  
  424. * BUFFER HEADER FOR *L* DISPLAY OPTION.
  425.  
  426. HBUF DATA C* FAMILY ORDINAL TABLE DISPLAY*
  427. DATA C* *
  428. HBUFA DATA 50H DEFAULT FAMILY = AVAILABLE ENTRIES
  429. DATA 8C = B
  430. HBUFB DATA C* *
  431. DATA 50HORD. FAMILY ORD. FAMILY ORD. FAMILY ORD.
  432. DATA 8CFAMILY
  433. DATA C* *
  434.  
  435. HBUFL EQU *-HBUF LENGTH OF HEADER BUFFER
  436.  
  437. WBUF EQU * WORKING BUFFER
  438. WBUFA EQU WBUF+WBUFL/2 *SFM* RETURNS DATA HERE
  439.  
  440. LBUF EQU WBUF+WBUFL *L* DISPLAY BUFFER
  441. LBUFE EQU LBUF+LBUFL END OF *L* DISPLAY BUFFER
  442.  
  443. OBUF EQU LBUF OUTPUT FILE BUFFER
  444. OBUFE EQU OBUF+OBUFL END OF OUTPUT BUFFER
  445. PRS TITLE PRESET.
  446. ** PRS - PRESET ROUTINE.
  447. *
  448. * ENTRY COMMAND ARGUMENT LIST AT RA+2 (ARGR)
  449. * IN OPERATING SYSTEM FORMAT.
  450. *
  451. * EXIT (B1) = 1.
  452. * (PFLG) = 1, IF PRINT FILE REQUESTED.
  453. * (LFLG) = 1, IF *L* DISPLAY REQUESTED.
  454. *
  455. * ERROR TO *ERR*, IF ARGUMENT ERROR OR USER ACCESS NOT VALID.
  456. * (X2) = FWA ERROR MESSAGE.
  457.  
  458.  
  459. * SET DATE AND TIME IN HEADER.
  460.  
  461. PRS9 DATE PDAT SET DATE IN HEADER
  462. CLOCK PTIM SET TIME IN HEADER
  463.  
  464. PRS SUBR ENTRY/EXIT
  465. SB1 1 B1 = 1.
  466. GETSPS SYOF CHECK FOR SYSTEM ORIGIN PRIVILEGES
  467. SA1 SYOF
  468. ZR X1,PRS1 IF SYSTEM ORIGIN PRIVILEGES
  469. SX2 ERIU * USER ACCESS NOT VALID.*
  470. EQ ERR ABORT
  471.  
  472. * PROCESS ARGUMENT LIST.
  473.  
  474. PRS1 SB2 CCDR UNPACK COMMAND
  475. RJ USB
  476. SA1 A6 ASSURE TERMINATOR CHARACTER
  477. SX6 1R.
  478. SA6 X1+B1
  479. SA2 PRSB SET SEPARATOR MASK
  480. SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE
  481. SB7 PRS8 SET EXIT FOR TERMINATOR CHARACTER
  482. RJ FNB FIND NON-BLANK CHARACTER
  483.  
  484. * SKIP PROGRAM NAME.
  485.  
  486. SB7 PRS6 SET EXIT FOR TERMINATOR CHARACTER
  487. PRS4 RJ FNB FIND NON-BLANK CHARACTER
  488. SB4 B5-B2
  489. LX4 X2,B5
  490. PL B4,PRS5 IF SEPARATOR CHARACTER
  491. PL X4,PRS4 IF NOT SEPARATOR CHARACTER
  492. PRS5 SB3 TARG FWA ARGUMENT EQUIVALENCE TABLE
  493. SB2 TARGL LENGTH ARGUMENT TABLE
  494. SB4 PRSA ADDRESS TO PLACE DATA
  495. RJ CPA CONVERT POSITIONAL ARGUMENTS
  496. NG B5,PRS8 IF ARGUMENT ERROR
  497. PL X1,PRS6 IF NO ARGUMENTS PROCESSED
  498. SX6 B5+ SET LWA OF ARGUMENTS
  499. SA6 USBC
  500. SB6 PRSA FWA OF ARGUMENTS
  501. RJ ARM PROCESS ARGUMENTS
  502. NZ X1,PRS8 IF ERROR
  503.  
  504. * DETERMINE LIST OPTIONS.
  505.  
  506. PRS6 SA1 LO GET CHARACTER FROM LIST OPTION
  507. SA2 TLOP-1
  508. MX0 6
  509. SB4 A2+ SAVE ADDRESS OF ARGUMENT TABLE
  510. PRS7 BX3 X0*X1 PROCESS NEXT CHARACTER FROM LIST OPTION
  511. ZR X3,PRS9 IF ALL OPTIONS PROCESSED
  512. PRS7.1 SA2 A2+B1 SEARCH ARGUMENT TABLE
  513. ZR X2,PRS8 IF LIST OPTION NOT DEFINED IN TABLE
  514. BX4 X0*X2
  515. BX4 X4-X3
  516. NZ X4,PRS7.1 IF MATCH NOT FOUND
  517. SX6 B1 SET FLAG FOR THIS OPTION
  518. SA6 X2
  519. SX3 A2-TLOP
  520. LX1 6
  521. SA2 B4 INITIALIZE TABLE ADDRESS
  522. NZ X3,PRS7 IF NOT LO=D
  523. MX4 -12
  524. SA3 JOPR CHECK FOR SYSTEM ORIGIN
  525. LX3 0-24
  526. BX3 -X4*X3
  527. SX3 X3-SYOT
  528. ZR X3,PRS7 IF SYSTEM ORIGIN JOB
  529. SX2 ERIU * USER ACCESS NOT VALID.*
  530. EQ ERR ABORT
  531.  
  532. PRS8 SX2 ERAR *ARGUMENT ERROR.*
  533. EQ ERR ABORT
  534.  
  535. PRSA BSS 100
  536.  
  537. PRSB CON 40000000000033127777B SEPARATOR MASK
  538.  
  539. ** ASSUMED VALUES FOR LIST OPTIONS.
  540.  
  541.  
  542. LO CON 0LD SELECTED LIST OPTION (DEFAULT = *D*)
  543. SPACE 4,10
  544. ** ARGUMENT EQUIVALENCE TABLE.
  545.  
  546.  
  547. TARG BSS 0
  548. L ARG O,O,0,0 OUTPUT FILE NAME
  549. LO ARG LO,LO,0,0 LIST OPTIONS
  550. ARG END OF ARGUMENT TABLE
  551. TARGL EQU *-TARG-1 LENGTH OF ARGUMENT TABLE
  552. TLOP SPACE 4,15
  553. ** TLOP - TABLE OF LIST OPTIONS.
  554. *
  555. *T, 42/ OPTION,18/ ADDR
  556. *
  557. * (ADDR) WILL BE SET NON-ZERO IN PRS IF OPTION IS SELECTED.
  558.  
  559.  
  560. TLOP BSS 0
  561. VFD 42/0LD,18/LFLG SELECT *L* DISPLAY
  562. VFD 42/0LL,18/PFLG SELECT LINE PRINTER
  563. CON 0 END OF TABLE
  564. FNB SPACE 4,15
  565. ** FNB - FIND NON-BLANK CHARACTER.
  566. *
  567. * ENTRY (B6) = NEXT CHARACTER ADDRESS.
  568. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED.
  569. *
  570. * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER.
  571. * (B6) = NEXT CHARACTER ADDRESS (UPDATED).
  572. * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED.
  573. *
  574. * USES X - 1, 4.
  575. * A - 1.
  576. * B - 5, 6.
  577.  
  578.  
  579. FNB SUBR ENTRY/EXIT
  580. FNB1 SA1 B6 GET NEXT CHARACTER
  581. SB6 B6+B1
  582. SX4 X1-1R
  583. ZR X4,FNB1 IF BLANK CHARACTER
  584. SB5 X1+
  585. SX4 X1-1R.
  586. ZR X4,FNB2 IF TERMINATOR CHARACTER
  587. SX4 X1-1R)
  588. NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN
  589. FNB2 JP B7 TERMINATOR CHARACTER
  590. TITLE PRESET COMMON DECKS.
  591. *CALL COMCARM
  592. *CALL COMCCPA
  593. *CALL COMCPOP
  594. *CALL COMCUSB
  595. SPACE 4,5
  596. FOTDE EQU * END OF PROGRAM
  597. .RFL= MAX FOTDE,LBUFE,OBUFE
  598. RFL= EQU .RFL=
  599. SPACE 4,5
  600. END
cdc/nos2.source/opl871/fotd.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator