Table of Contents

KRONREF

Table Of Contents

  • [00008] KRONREF - KRONOS SYSTEM CROSS REFERENCE PROCESSOR.
  • [00075] MACRO DEFINITIONS.
  • [00083] ADDWRD - ADD WORD TO MANAGED TABLE.
  • [00104] ALLOC - ALLOCATE TABLE SPACE.
  • [00123] OPC - OPCODE TABLE ENTRY.
  • [00140] TABLE - GENERATE MANAGED TABLE POINTERS.
  • [00163] FETS AND STORAGE ASSIGNMENTS.
  • [00186] TNME - TABLE OF REFERENCED NAMES.
  • [00195] TABLE OF REFERENCES.
  • [00214] STORAGE ASSIGNMENTS.
  • [00270] MAIN PROGRAM.
  • [00272] MAIN PROGRAM.
  • [00336] DECK SCANNING.
  • [00338] LOC - PROCESS LOCATION FIELD.
  • [00404] OPC - CHECK OP CODE.
  • [00440] TOPC - TABLE OF OPCODES.
  • [00478] DECK SCANNING.
  • [00480] ENTRY - PROCESS ENTRY FOR SPECIAL ENTRY POINTS.
  • [00526] EXECUTE - PROCESS EXECUTE MACRO.
  • [00548] PERIPH - PROCESS PERIPH.
  • [00567] SYSTEM - PROCESS SYSTEM.
  • [00595] SCA - SCAN ADDRESS.
  • [00655] LIST PROCESSORS.
  • [00657] LCL - LIST SPECIAL CALLS.
  • [00740] LNK - LINK TABLES.
  • [00785] LRC - LIST REFERENCE CHAIN.
  • [00865] LSR - LIST SYSTEM SYMBOL REFERENCES.
  • [01053] SUBROUTINES.
  • [01055] ABT - ABORT JOB.
  • [01065] ADW - ADD ENTRY TO A TABLE.
  • [01108] ASN - ASSEMBLE NAME.
  • [01140] ATS - ALLOCATE TABLE SPACE.
  • [01217] ENT - ENTER NAME TABLE.
  • [01254] ESR - ENTER SPECIAL REFERENCE.
  • [01297] PLE - PROCESS LIBRARY ERROR.
  • [01317] PLS - ISSUE PROGRAM LIBRARY STATISTICS MESSAGES.
  • [01392] RMT - READ MODIFIER TABLE.
  • [01485] RPF - READ CARD FROM PROGRAM LIBRARY.
  • [01515] SNC - SET NEXT CHARACTER.
  • [01580] SSR - SORT SPECIAL REFERENCES.
  • [01626] TOV - TABLE OVERFLOW PROCESSOR.
  • [01660] WOF - WRITE LINE TO OUTPUT.
  • [01724] PRS - PRESET KRONREF.
  • [01762] PRSA - CONTROL CARD ARGUMENT VALUES.
  • [01772] IPP - INITIALIZE PAGE PARAMETERS.
  • [01796] LSS - LOAD SYSTEMS SYMBOLS.

Source Code

KRONREF.txt
  1. IDENT KRONREF,FETS,KRONREF
  2. ABS
  3. ENTRY KRONREF
  4. ENTRY MFL=
  5. SYSCOM B1 DEFINE (B1) = 1
  6. *COMMENT KRONREF - SYSTEM CROSS REFERENCE PROGRAM.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE KRONREF - KRONOS SYSTEM CROSS REFERENCE PROCESSOR.
  9. SPACE 4
  10. ***** *KRONREF* - KRONOS SYSTEM CROSS REFERENCE PROCESSOR.
  11. * G. R. MANSFIELD. 70/10/26.
  12. * A. D. FORET. 75/04/18.
  13. SPACE 4
  14. *** *KRONREF* GENERATES A CROSS REFERENCE OF SYSTEM
  15. * SYMBOLS USED BY DECKS ON A MODIFY OPL.
  16. SPACE 4
  17. *** CONTROL CARD CALL.
  18. *
  19. *
  20. * KRONREF(P1,P2,P3)
  21. * PN MAY BE OF THE FOLLOWING FORMS.
  22. * PN
  23. * PN=NAME
  24. *
  25. * OPTIONS.
  26. *
  27. * P OPL INPUT FROM FILE *OPL*.
  28. * P=FNAME OPL INPUT FROM FILE *FNAME*.
  29. *
  30. * L LIST OUTPUT ON FILE *OUTPUT*.
  31. * L=FNAME LIST OUTPUT ON FILE *FNAME*.
  32. *
  33. * S SYSTEMS TEXT FROM OVERLAY *NOSTEXT*.
  34. * S=NAME SYSTEMS TEXT FROM OVERLAY *NAME*.
  35. *
  36. * G SYSTEMS TEXT FROM FILE *TEXT*.
  37. * G=FNAME SYSTEMS TEXT FROM FILE *FNAME*.
  38. * OVERRIDES ANY *S* SELECTION.
  39. SPACE 4
  40. *** DAYFILE MESSAGES.
  41. *
  42. * * ERROR IN KRONREF ARGUMENTS. * - AN ILLEGAL CONTROL CARD
  43. * WAS SELECTED.
  44. *
  45. * * ERROR IN SYSTEM TEXT. * - DESIGNATED SYSTEM TEXT IS IN THE
  46. * WRONG FORMAT.
  47. *
  48. * * KRONREF COMPLETE.* - NORMAL COMPLETION MESSAGE.
  49. *
  50. * * MEMORY OVERFLOW. * - NOT ENOUGH STORAGE AVAILABLE TO STORE
  51. * TABLES.
  52. *
  53. * * NO REFERENCES LISTED.* - OPL FILE DID NOT REFERENCE ANY
  54. * SYSTEM TEXT SYMBOLS. CHECK FOR
  55. * EMPTY OR INVALID OPL FILE OR BAD
  56. * SYSTEM TEXT.
  57. *
  58. * * PL ERROR IN DECK (NAME). * - BAD OPL/OPLC DECK.
  59. SPACE 4,10
  60. *** OPERATOR MESSAGES.
  61. *
  62. * * SCANNING DECKNAME * - WHERE DECKNAME IS CURRENTLY BEING
  63. * PROCESSED.
  64. SPACE 4
  65. **** ASSEMBLY CONSTANTS.
  66.  
  67.  
  68. BUFL EQU 100B SCRATCH BUFFER LENGTH
  69. PBUFL EQU 4001B OPL FILE BUFFER LENGTH
  70. MXCCL EQU 37B MAXIMUM LENGTH OF ONE COMPRESSED CARD
  71. MTBSL EQU 26000B NOMINAL TABLE LENGTH
  72. MINC EQU 1000B MEMORY INCREMENT FOR *TOV*
  73. LCFE EQU 99999 LINE COUNT TO FORCE EJECT
  74. ****
  75. TITLE MACRO DEFINITIONS.
  76. ADDWRD SPACE 4
  77. ** COMMON DECKS.
  78.  
  79.  
  80. *CALL COMCMAC
  81. *CALL COMCCMD
  82. SPACE 4
  83. ** ADDWRD - ADD WORD TO MANAGED TABLE.
  84. *
  85. * ADDWRD TNAM,WORD
  86. *
  87. * ENTRY *TNAM* = TABLE NAME.
  88. * *WORD* = -X- REGISTER CONTAINING WORD.
  89. * *WORD* = BOOLEAN -X- REGISTER EXPRESSION.
  90. *
  91. * USES A0, X1.
  92. *
  93. * CALLS ADW.
  94.  
  95.  
  96. PURGMAC ADDWRD
  97. ADDWRD MACRO TNAM,WORD
  98. IFC NE,$X1$WORD$,1
  99. BX1 WORD
  100. R= A0,TNAM
  101. RJ ADW
  102. ADDWRD ENDM
  103. ALLOC SPACE 4,10
  104. ** ALLOC - ALLOCATE TABLE SPACE.
  105. *
  106. * ALLOC TNAM,N
  107. *
  108. * ENTRY *TNAM* = TABLE NAME.
  109. * *N* = NUMBER OF WORDS TO ADD.
  110. *
  111. * USES A0, X1.
  112. *
  113. * CALLS ATS.
  114.  
  115.  
  116. PURGMAC ALLOC
  117. ALLOC MACRO TNAM,N
  118. R= X1,N
  119. R= A0,TNAM
  120. RJ ATS
  121. ALLOC ENDM
  122. OPC SPACE 4,10
  123. ** OPC - OPCODE TABLE ENTRY.
  124. *
  125. * OPC OPCODE,ADDRESS
  126. *
  127. * ENTRY *OPCODE* = OPERATION CODE.
  128. * *ADDRESS* = ADDRESS OF PROCESSOR.
  129.  
  130.  
  131. PURGMAC OPC
  132. OPC MACRO OPCODE,ADDR
  133. VFD 60/0R;A
  134. IFC NE,*ADDR**
  135. VFD 60/ADDR
  136. ELSE 1
  137. CON OPCX
  138. OPC ENDM
  139. TABLE SPACE 4,10
  140. ** TABLE - GENERATE MANAGED TABLE POINTERS.
  141. *
  142. * TABLE TNAM
  143. *
  144. * ENTRY *TNAM* = TABLE NAME.
  145. *
  146. * EXIT *F.TNAM* = ADDRESS OF TABLE FWA POINTER.
  147. * *L.TNAM* = ADDRESS OF TABLE LENGTH POINTER.
  148.  
  149.  
  150. PURGMAC TABLE
  151. MACRO TABLE,TNAM,N
  152. TNAM EQU *
  153. VFD 60/MTBS
  154. F.TNAM EQU FTAB+TNAM
  155. RMT
  156. L.TNAM EQU LTAB+TNAM
  157. ORG L.TNAM
  158. DATA 0
  159. ORG NTAB+TNAM
  160. VFD 60/N
  161. RMT
  162. TABLE ENDM
  163. TITLE FETS AND STORAGE ASSIGNMENTS.
  164. FETS SPACE 4,10
  165. ** FETS.
  166.  
  167.  
  168. ORG 103B
  169. FETS BSS 0
  170.  
  171. O BSS 0
  172. OUTPUT FILEC PBUF,PBUFL,(FET=6)
  173.  
  174. P BSS 0
  175. OPL RFILEB PBUF,PBUFL,(FET=8),EPR
  176. FTAB SPACE 4,10
  177. ** MANAGED TABLES ARE REFERENCED BY THE TABLE NUMBER *TNAM*.
  178. * THE FWA OF A TABLE IS CONTAINED IN *F.TNAM*.
  179. * THE LENGTH OF A TABLE IS CONTAINED IN *L.TNAM*.
  180. * THESE SYMBOLS ARE GENERATED BY THE *TABLE* MACRO.
  181.  
  182.  
  183. FTAB BSS 0
  184. LOC 0
  185. TNME SPACE 4,10
  186. ** TNME - TABLE OF REFERENCED NAMES.
  187. * ENTRY = 1 WORD.
  188. *
  189. *T 12/,48/ *NAME*
  190. * NAME NAME RIGHT JUSTIFIED
  191.  
  192.  
  193. TNME TABLE 10 NAMES
  194. TREF SPACE 4,10
  195. ** TREF - TABLE OF REFERENCES.
  196. * ENTRY = 1 WORD.
  197. *
  198. *T 42/ *DECK*,18/ IN
  199. * DECK DECK NAME
  200. * IN INDEX IN *TNME*
  201.  
  202.  
  203. TREF TABLE 200
  204.  
  205. * REMAINDER OF MANAGED TABLE VALUES.
  206.  
  207. FTABL BSS 0
  208. LOC *O
  209.  
  210. VFD 60/MTBS LWA+1 ALL TABLES
  211. LTAB BSS 0
  212. NTAB EQU LTAB+FTABL
  213. HERE
  214. TITLE STORAGE ASSIGNMENTS.
  215. DATA SPACE 4,10
  216. * COMMON DATA.
  217.  
  218.  
  219. T1 DATA 0 TEMPORARY STORAGE
  220. T2 DATA 0
  221. FL DATA 0 FIELD LENGTH
  222. SL DATA 0 SYSTEM SYMBOL LENGTH
  223. RF DATA 0 REFERENCE FLAG
  224. PP DATA 0 PP CODE
  225. DN DATA 0 DECK NAME
  226. CH DATA 0 NEXT CHARACTER
  227. CP DATA 0 CHARACTER POINTER
  228. LIST SPACE 4,10
  229. * LIST CONTROLS.
  230.  
  231.  
  232. LC CON LCFE LINE COUNT
  233. LL CON 0 LINE LIMIT
  234. PD CON 0 PRINT DENSITY
  235. PN CON 1 PAGE NUMBER
  236. ST CON 0,LSRA ADDRESS OF SUBTITLE LINES
  237. TX CON 0 SYSTEXT PRESENT FLAG
  238. SPACE 4
  239. * PROGRAM LIBRARY STATISTICS.
  240.  
  241.  
  242. BLANK CON 0 BLANK STATEMENTS
  243. CALL CON 0 *CALL STATEMENTS
  244. CODE CON 0 LINES OF CODE NOT OTHERWISE COUNTED
  245. COMNT CON 0 * TYPE COMMENT STATEMENTS
  246. INACT CON 0 INACTIVE STATEMENTS
  247. BLOCK SPACE 4
  248. * BLOCK STORAGE.
  249.  
  250.  
  251. USE BUFFERS
  252.  
  253. * TITLE LINE.
  254.  
  255. TITL DATA 30H1 CROSS REFERENCE OF OPL.
  256. DATA 10H OPL FILE=
  257. PLNM DATA 10H
  258. DATA 10HSYS. TEXT=
  259. TXNM DATA 10H *NONE*
  260. DATA 10H
  261. DATA 10H
  262. DATE DATA 1H
  263. TIME DATA 1H
  264. DATA 4APAGE
  265. PAGE DATA 1H
  266. TITLL EQU *-TITL
  267.  
  268. CDTX BSS MXCCL CARD TEXT
  269. USE *
  270. TITLE MAIN PROGRAM.
  271. KRONREF SPACE 4,10
  272. ** KRONREF - MAIN PROGRAM.
  273. *
  274. * USES X - 1, 6.
  275. * A - 1, 6.
  276. * B - 1.
  277. *
  278. * CALLS LCL, LNK, LOC, LSR, LSS, OPC, PRS, RMT, SCA.
  279. *
  280. * MACROS ENDRUN, MESSAGE, RECALL, WRITEC, WRITER.
  281.  
  282.  
  283. KRONREF SB1 1 (B1) = 1
  284. RJ PRS PRESET PROGRAM
  285. RJ LSS LOAD SYSTEMS SYMBOLS
  286.  
  287. * BEGIN NEW DECK.
  288.  
  289. REF1 RJ RMT READ MODIFIER TABLE
  290. NZ X1,REF4 IF EOR
  291.  
  292. * SCAN DECK CARDS.
  293.  
  294. REF2 RJ RPF READ CARD
  295. NZ X1,REF1 IF EOR
  296. SA1 CDTX CHECK FIRST CHARACTER
  297. NZ X1,REF3 IF NOT BLANK STATEMENT
  298. SA1 BLANK COUNT BLANK STATEMENT
  299. SX6 B1
  300. IX6 X6+X1
  301. SA6 A1
  302. EQ REF2 LOOP FOR NEXT STATEMENT
  303.  
  304. REF3 RJ LOC PROCESS LOCATION FIELD
  305. ZR X6,REF2 IF NO PROCESSING
  306. SA1 TX
  307. ZR X1,REF2 IF NO SYSTEXT
  308. RJ OPC PROCESS OPCODE
  309. NZ X1,REF2 IF NOT INTERESTING
  310. SA2 RF
  311. ZR X2,REF2 IF REFERENCE FLAG OFF
  312. RJ SCA SCAN ADDRESS
  313. EQ REF2 CONTINUE SCAN
  314.  
  315. * LIST REFERENCE TABLE.
  316.  
  317. REF4 SA1 L.TREF
  318. ZR X1,REF6 IF NO REFERENCES
  319. RJ LNK LINK TABLES
  320. RECALL P
  321. SA1 TX
  322. ZR X1,REF4.1 IF NO SYSTEXT
  323. RJ LSR LIST SYMBOL REFERENCES
  324. REF4.1 RJ LCL LIST SPECIAL CALLS
  325. RJ PLS ISSUE PROGRAM LIBRARY STATISTICS MESSAGES
  326. SA1 PN
  327. LX1 59
  328. NG X1,REF5 IF PAGE COUNT EVEN
  329. WRITEC O,(=2L1 )
  330. REF5 WRITER O,R
  331. MESSAGE (=C* KRONREF COMPLETE.*)
  332. ENDRUN
  333.  
  334. REF6 MESSAGE (=C* NO REFERENCES LISTED.*)
  335. ENDRUN
  336. TITLE DECK SCANNING.
  337. LOC SPACE 4,10
  338. ** LOC - PROCESS LOCATION FIELD.
  339. *
  340. * EXIT (X6) = NEXT CHARACTER OR 0 IF NO NEXT CHARACTER.
  341. *
  342. * USES X - 1, 2, 5, 6, 7.
  343. * A - 1, 2, 6.
  344. *
  345. * CALLS ASN, ESR, SNC.
  346.  
  347.  
  348. LOC4 SA1 COMNT COUNT * TYPE COMMENT STATEMENTS
  349. SX6 B1
  350. IX6 X6+X1
  351. SA6 A1+
  352. SX6 B0+ CLEAR NEXT CHARACTER
  353. * EQ LOCX RETURN
  354.  
  355. LOC SUBR ENTRY/EXIT
  356. SX1 B0 SET CHARACTER POINTER
  357. PX6 X1,B0
  358. SA6 CP
  359. RJ SNC SET NEXT CHARACTER
  360. SA2 CDTX
  361. AX2 54
  362. ZR X2,LOC1 IF NO LOCATION FIELD
  363. SX7 X6-1R*
  364. ZR X7,LOC2 IF FIRST CHARACTER = (*)
  365. RJ SNC SET NEXT CHARACTER
  366. RJ ASN ASSEMBLE NAME
  367. LOC1 RJ SNC SET NEXT CHARACTER
  368. SA1 CODE COUNT LINE OF CODE
  369. SX6 B1
  370. IX6 X6+X1
  371. SA6 A1
  372. EQ LOCX RETURN
  373.  
  374. LOC2 RJ SNC SET NEXT CHARACTER
  375. RJ ASN ASSEMBLE NAME
  376. SA1 =4RCALL
  377. BX2 X1-X6
  378. ZR X2,LOC2.1 IF CALL FOUND
  379. SA1 =5RCALLC
  380. BX2 X1-X6 CHECK CALLC
  381. ZR X2,LOC2.1 IF *CALLC
  382. SA1 =6RIFCALL
  383. BX2 X1-X6 CHECK IFCALL
  384. ZR X2,LOC2.0 IF *IFCALL
  385. SA1 =7RNIFCALL
  386. BX2 X1-X6 CHECK IFCALL
  387. NZ X2,LOC4 IF NOT *IFCALL
  388. LOC2.0 RJ SNC SET NEXT CHARACTER
  389. RJ ASN ASSEMBLE NAME
  390. LOC2.1 SA1 CALL COUNT *CALL, *CALLC, *IF/NIFCALL
  391. SX6 B1
  392. IX6 X6+X1
  393. SA6 A1
  394. RJ SNC SET NEXT CHARACTER
  395. SX2 X6-1R
  396. NG X2,LOC3 IF NEXT " SEPARATOR
  397. RJ SNC SET NEXT CHARACTER
  398. LOC3 RJ ASN ASSEMBLE NAME
  399. SX5 B0 ENTER COMMON DECK REFERENCE
  400. RJ ESR ENTER SPECIAL REFERENCE
  401. SX6 B0
  402. EQ LOCX RETURN
  403. OPC SPACE 4,10
  404. ** OPC - CHECK OP CODE.
  405. *
  406. * ENTRY (CP) = CHARACTER POINTER,
  407. * (X0) = SEPARATOR MASK.
  408. *
  409. * EXIT (X1) = 0 IF ADDRESS FIELD TO BE PROCESSED.
  410. *
  411. * USES X - 1, 2, 6.
  412. * A - 1, 2, 6.
  413. * B - 2.
  414. *
  415. * CALLS ASN.
  416.  
  417.  
  418. OPC4 SA6 RF
  419. SX1 B1
  420.  
  421. OPC SUBR ENTRY/EXIT
  422. RJ ASN ASSEMBLE NAME
  423. SA1 TOPC CHECK OPCODE TABLE
  424. SB2 B1+B1
  425. OPC1 ZR X1,OPCX IF END OF TABLE - RETURN
  426. BX2 X6-X1
  427. SA1 A1+B2
  428. NZ X2,OPC1 LOOP IF NO MATCH FOUND
  429. SA2 A1-B1 EXIT TO PROCESSOR
  430. SB2 X2
  431. JP B2 GO TO PROCESSOR
  432.  
  433. OPC2 SX6 1
  434. EQ OPC4 SET REFERENCE FLAG
  435.  
  436. OPC3 SX6 0 CLEAR REFERENCE FLAG
  437. SA6 PP CLEAR PP CODE
  438. EQ OPC4 SET REFERENCE FLAG
  439. TOPC SPACE 4,10
  440. ** TOPC - TABLE OF OPCODES.
  441. *
  442. * ALL THOSE WITHOUT A SECOND ARGUMENT WILL NOT HAVE THE
  443. * ADDRESS FIELD EVALUATED.
  444.  
  445.  
  446. TOPC BSS 0
  447. OPC IDENT
  448. OPC SST,OPC2
  449. OPC END,OPC3
  450. OPC TITLE
  451. OPC EJECT
  452. OPC SPACE
  453. OPC PERIPH,PERIPH
  454. OPC EXECUTE,EXECUTE
  455. OPC SYSTEM,SYSTEM
  456. OPC ABS
  457. OPC STEXT
  458. OPC BASE
  459. OPC LIST
  460. OPC ENDM
  461. OPC ENDIF
  462. OPC ENDD
  463. OPC ENTRY,ENTRY
  464. OPC DIS
  465. OPC MICRO
  466. OPC IFC
  467. OPC XTEXT
  468. OPC NOLABEL
  469. OPC LIT
  470. OPC ERR
  471. OPC DATA
  472. OPC STEXT
  473. OPC COMMENT
  474. OPC MACRO
  475. OPC OPDEF
  476. OPC USE
  477. DATA 0
  478. TITLE DECK SCANNING.
  479. ENTRY SPACE 4,10
  480. ** ENTRY - PROCESS ENTRY FOR SPECIAL ENTRY POINTS.
  481. *
  482. * ENTRY (CP) = CHARACTER POINTER.
  483. *
  484. * EXIT (X1) = 0, IF ADDRESS FIELD TO BE PROCESSED.
  485. *
  486. * USES X - 1, 5.
  487. * A - 1.
  488. *
  489. * CALLS ASN, ESR, SNC.
  490.  
  491.  
  492. ENTRY BSS 0 ENTRY
  493. SA1 PP
  494. NZ X1,OPCX IF PP CODE
  495. RJ SNC SET NEXT CHARACTER
  496. RJ ASN ASSEMBLE NAME
  497. SA1 ETRA-1 CHECK FOR SPECIAL ENTRY POINTS
  498. ETR1 SA1 A1+B1
  499. ZR X1,OPCX IF END OF TABLE - SET NOT INTERESTING
  500. BX1 X6-X1
  501. NZ X1,ETR1 IF NO MATCH
  502. SX5 B1+B1
  503. RJ ESR ENTER SPECIAL REFERENCE
  504. SX1 B1
  505. EQ OPCX RETURN
  506.  
  507. * TABLE OF SPECIAL ENTRY POINTS.
  508.  
  509. ETRA BSS 0
  510. CON 4RARG= SUPPRESS ARGUMENT CRACKING
  511. CON 4RCLB= COMMAND LINE BUFFER FET
  512. CON 4RDMP= DUMP CONTROL
  513. CON 4RDPA= *DMP=* PROGRAM WITH ARGUMENTS
  514. CON 4RLDR= ALLOW EXECUTE-ONLY READ (LOADER)
  515. CON 4RLIB= ALLOW EXECUTE-ONLY READ (OTHER)
  516. CON 4RMFL= SET MINIMUM FIELD LENGTH
  517. CON 4RNPC= NOS PARAMETER CRACKING FORMAT FLAG
  518. CON 4RRFL= SET FIELD LENGTH
  519. CON 4RSDM= SUPPRESS DAYFILE MESSAGE
  520. CON 4RSSJ= SPECIAL SYSTEM JOB
  521. CON 4RSSM= SECURE SYSTEM MEMORY
  522. CON 4RUTL= PF UTILITY
  523. CON 4RVAL= VALIDATION JOB
  524. CON 0
  525. EXECUTE SPACE 4,10
  526. ** EXECUTE - PROCESS EXECUTE MACRO.
  527. *
  528. * ENTRY (CP) = CHARACTER POINTER.
  529. *
  530. * EXIT (X1) = 0, IF ADDRESS FIELD TO BE PROCESSED.
  531. *
  532. * USES X - 1.
  533. * A - 1.
  534. *
  535. * CALLS ASN, ESR, SNC.
  536.  
  537.  
  538. EXECUTE BSS 0 ENTRY
  539. SA1 PP
  540. ZR X1,OPC IF NOT PP CODE
  541. RJ SNC ASSEMBLE CALLED PACKAGE
  542. RJ ASN ASSEMBLE NAME
  543. SX5 B1 ENTER PP CALL
  544. RJ ESR
  545. SX1 B1 ADDRESS FIELD NOT TO BE PROCESSED
  546. EQ OPCX EXIT
  547. PERIPH SPACE 4,10
  548. ** PERIPH - PROCESS PERIPH.
  549. *
  550. * ENTRY (CP) = CHARACTER POINTER.
  551. *
  552. * EXIT (X1) = 0, IF ADDRESS FIELD TO BE PROCESSED.
  553. *
  554. * USES X - 1, 5.
  555. * A - 1.
  556. *
  557. * CALLS ASN, ESR, SNC.
  558.  
  559.  
  560. PERIPH BSS 0 ENTRY
  561. SX6 B1 SET PP FLAG
  562. SA6 PP
  563. SX5 B1
  564. RJ ENT ENTER PP NAME
  565. EQ OPCX EXIT
  566. SYSTEM SPACE 4,10
  567. ** SYSTEM - PROCESS SYSTEM.
  568. *
  569. * ENTRY (CP) = CHARACTER POINTER.
  570. *
  571. * EXIT (X1) = 0, IF ADDRESS FIELD TO BE PROCESSED.
  572. *
  573. * USES X - 1, 5.
  574. * A - 1.
  575. *
  576. * CALLS ASN, ESR, SNC.
  577.  
  578.  
  579. SYSTEM BSS 0 ENTRY
  580. SA1 PP
  581. NZ X1,OPCX IF PP CODE
  582. RJ SNC SET NEXT CHARACTER
  583. RJ ASN ASSEMBLE NAME
  584. MX5 42 ONLY ENTER 3 CHARACTER NAME
  585. BX5 X5*X6
  586. NZ X5,SYS1 IF MORE THAN 3 CHARACTERS IN NAME
  587. SX5 3
  588. RJ ESR ENTER SPECIAL REFERENCE
  589. SX1 B1 SET INTERESTING FLAG
  590. EQ OPCX RETURN
  591.  
  592. SYS1 SX1 B0+ SET NOT INTERESTING FLAG
  593. EQ OPCX RETURN
  594. SCA SPACE 4,10
  595. ** SCA - SCAN ADDRESS.
  596. *
  597. * ENTRY (X0) = SEPARATOR MASK.
  598. *
  599. * USES X - 1, 2, 6, 7.
  600. * A - 1, 2, 6.
  601. * B - 2, 3, 4.
  602. *
  603. * CALLS ADW, ASN, SNC.
  604. *
  605. * MACRO ADDWRD.
  606.  
  607.  
  608. SCA SUBR ENTRY/EXIT
  609. SCA1 RJ SNC SET NEXT CHARACTER
  610. SCA2 SB2 X6-1R
  611. ZR B2,SCAX IF END OF FIELD - RETURN
  612. SB3 X6
  613. LX7 X0,B3
  614. NG X7,SCA1 SKIP SEPARATOR
  615. SB2 X6-1R0
  616. NG B2,SCA4 IF ALPHA
  617. SB3 X6-1R+
  618. NG B3,SCA3 IF NUMERIC
  619. SB2 X6-1R$
  620. ZR B2,SCA IF *$* - RETURN
  621. EQ B2,B1,SCAX IF *$* - RETURN
  622. EQ SCA4 OTHER THAN *$*
  623.  
  624. SCA3 RJ SNC NEXT CHARACTER
  625. SB3 X6
  626. LX7 X0,B3
  627. PL X7,SCA3 IF END OF ELEMENT
  628. EQ SCA2 PROCESS CHARACTER
  629.  
  630. SCA4 RJ ASN ASSEMBLE NAME
  631. SA1 SL
  632. SA2 F.TNME
  633. SB2 B1+B1
  634. SB3 X1
  635. SA1 X2
  636. SB4 X2
  637. SCA5 BX7 X1-X6
  638. SB3 B3-B2
  639. ZR X7,SCA6 IF FOUND
  640. SA1 A1+B2
  641. NZ B3,SCA5 LOOP TO END OF TABLE
  642. SA1 CH
  643. BX6 X1
  644. EQ SCA2 PROCESS CHARACTER
  645.  
  646. SCA6 MX4 1 SET REFERENCE FLAG
  647. SA2 DN
  648. BX6 X1+X4
  649. SX3 A1-B4
  650. SA6 A1
  651. ADDWRD TREF,X2+X3 ENTER REFERENCE
  652. SA1 CH
  653. BX6 X1
  654. EQ SCA2 PROCESS CHARACTER
  655. TITLE LIST PROCESSORS.
  656. LCL SPACE 4,10
  657. ** LCL - LIST SPECIAL CALLS.
  658. *
  659. * USES X - ALL.
  660. * A - ALL.
  661. *
  662. * CALLS LRC, SFN, SSR.
  663.  
  664.  
  665. LCL SUBR ENTRY/EXIT
  666. SA1 TX
  667. NZ X1,LCL0 IF SYSTEXT PRESENT
  668. MX6 0 ZERO TITLES
  669. SA6 LCLD
  670. SA6 A6+B1
  671. LCL0 SA1 =1H
  672. SA1 =1H
  673. SX6 LCLA SET SUBTITLE
  674. BX7 X1
  675. SA6 ST+1
  676. SA7 BUF+1
  677. RJ SSR SORT SPECIAL REFERENCES
  678. LCL1 SA1 LCLC ADVANCE POINTER
  679. SX6 X1+2
  680. SA2 X6
  681. SA6 A1
  682. ZR X2,LCLX IF END OF TABLE - RETURN
  683. SA4 A2+B1 TYPE CODE
  684. SX6 X2 SET SUBTITLE
  685. SX7 LCFE FORCE EJECT
  686. SA6 ST
  687. SA7 LC
  688. SA1 F.TNME (X1) = FWA
  689. SA2 SL (X2) = LENGTH
  690. IX1 X1+X2
  691. SA3 L.TNME
  692. IX2 X3-X2
  693. LCL2 ZR X2,LCL1 IF END OF REFERENCE TABLE
  694. SA3 X1+B1 NEXT ENTRY
  695. BX6 X3-X4
  696. ZR X6,LCL4 IF REQUESTED TYPE
  697. LCL3 SX1 X1+2 ADVANCE TABLE
  698. SX2 X2-2
  699. EQ LCL2 LOOP
  700.  
  701. LCL4 SX6 X1 SAVE POSITION
  702. SX7 X2
  703. SA6 T1
  704. SA7 A6+B1
  705. MX0 42 SPACE FILL NAME
  706. SA5 A3-B1
  707. BX1 X0*X5
  708. RJ SFN SPACE FILL NAME
  709. LX6 -3*6
  710. SA6 BUF
  711. RJ LRC LIST REFERENCE CHAIN
  712. SA1 T1 RESET POSITION
  713. SA2 A1+B1
  714. SA3 LCLC RESET TYPE
  715. SA4 X3+B1
  716. EQ LCL3 LOOP
  717.  
  718. LCLA DATA 10H DECK
  719. DATA 10H
  720. DATA C*DECK REFERENCES.*
  721.  
  722. LCLB BSS 0
  723. CON =C* COMMON DECK CALLS.*
  724. CON 0
  725.  
  726. LCLD BSS 0
  727. CON =C* PP PACKAGES CALLED.*
  728. CON 1
  729.  
  730. CON =C* SPECIAL ENTRY POINTS.*
  731. CON 2
  732.  
  733. CON =C* SYSTEM MACRO REQUEST REFERENCES.*
  734. CON 3
  735.  
  736. CON 0
  737.  
  738. LCLC CON LCLB-2
  739. LNK SPACE 4,10
  740. ** LNK - LINK TABLES.
  741. *
  742. * USES X - ALL.
  743. * A - 1, 2, 3, 6, 7.
  744. * B - 2, 3, 4.
  745.  
  746.  
  747. LNK SUBR ENTRY/EXIT
  748. SA1 L.TNME LEFT JUSTIFY NAMES
  749. SA2 F.TNME
  750. MX0 6
  751. SB2 B1+B1
  752. SB3 X1
  753. SA1 X2
  754. LNK1 LX1 6
  755. BX2 X0*X1
  756. ZR X2,LNK1 IF CHARACTER NOT LEFT JUSTIFIED
  757. BX6 X1
  758. SA6 A1
  759. SB3 B3-B2
  760. SA1 A1+B2
  761. NZ B3,LNK1 IF NOT THE LAST NAME
  762. SA1 L.TREF LINK REFERENCES
  763. SA2 F.TREF
  764. MX0 42
  765. SB2 X1
  766. SA3 F.TNME
  767. SB2 B2-B1
  768. SA2 X2+B2
  769. SB4 X3
  770. BX5 X0*X2
  771. LNK2 SA1 B4+X2
  772. SX3 A2
  773. BX4 X0*X1
  774. SB2 B2-B1
  775. SA2 A2-B1
  776. BX7 -X0*X1
  777. IX6 X4+X3
  778. BX7 X5+X7
  779. SA6 A1
  780. SA7 A2+B1
  781. BX5 X0*X2
  782. PL B2,LNK2 IF MORE REFERENCES
  783. EQ LNKX RETURN
  784. LRC SPACE 4,10
  785. ** LRC - LIST REFERENCE CHAIN.
  786. *
  787. * ENTRY (X5) = FIRST CHAIN ENTRY.
  788. *
  789. * USES X - 0, 1, 2, 3, 5, 6, 7.
  790. * A - 1, 2, 3, 6, 7.
  791. * B - 2, 6.
  792. *
  793. * CALLS SFN, WOF.
  794.  
  795.  
  796. LRC6 MX6 0
  797. SA6 A6+B1
  798. SX1 BUF
  799. RJ WOF WRITE LINE TO OUTPUT
  800.  
  801. LRC SUBR ENTRY/EXIT
  802. SA1 LC CHECK LINE COUNT
  803. SA2 LL GET LINE LIMIT
  804. SX6 X1+B1
  805. IX2 X6-X2
  806. PL X2,LRC2 IF NOT ROOM FOR FIRST LINE
  807. SA3 BUF+1 COMPARE CURRENT VALUE WITH LAST
  808. SA2 =10H
  809. BX7 X2-X3
  810. ZR X7,LRC1 IF NO VALUE
  811. SA2 LRCB
  812. BX7 X3
  813. SA7 A2
  814. BX2 X3-X2
  815. BX6 X1 RESTORE *LC*
  816. ZR X2,LRC2 IF NO VALUE CHANGE
  817. LRC1 SX1 =C* *
  818. RJ WOF WRITE LINE TO OUTPUT
  819. SA1 LC
  820. BX6 X1
  821. LRC2 SA6 A1
  822. SX5 X5
  823. NZ X5,LRC3 IF ANY REFERENCES
  824. SA1 =10H **NONE**
  825. MX6 0
  826. BX7 X1
  827. SA7 BUF+2
  828. SA6 A7+B1
  829. SX1 BUF
  830. RJ WOF WRITE LINE TO OUTPUT
  831. EQ LRCX RETURN
  832.  
  833. LRC3 SA1 BUF SAVE FIRST 2 WORDS OF BUFFER
  834. SA2 A1+B1
  835. BX6 X1
  836. LX7 X2
  837. MX0 42
  838. SA6 LRCA
  839. SA7 A6+B1
  840. LRC4 SB6 -11
  841. ZR X5,LRCX IF END OF LIST - RETURN
  842. LRC5 ZR X5,LRC6 IF END OF LIST
  843. SA2 X5 NEXT ENTRY
  844. BX1 X0*X2 SPACE FILL NAME
  845. SX5 X2 SET NEXT ADDRESS
  846. RJ SFN SPACE FILL NAME
  847. LX6 60-6
  848. SA6 BUF+13+B6
  849. SB6 B6+B1
  850. NG B6,LRC5 IF NOT END OF LINE
  851. MX6 0
  852. SA6 A6+B1
  853. SX1 BUF
  854. RJ WOF WRITE LINE TO OUTPUT
  855. SA1 =1H CLEAR BUFFER
  856. BX6 X1
  857. LX7 X1
  858. SA6 BUF
  859. SA7 A6+B1
  860. EQ LRC4 LOOP
  861.  
  862. LRCA DATA 0,0
  863. LRCB DATA 0 LAST VALUE
  864. LSR SPACE 4,10
  865. ** LSR - LIST SYSTEM SYMBOL REFERENCES.
  866. *
  867. * USES X - ALL.
  868. * A - 1, 2, 3, 4, 5, 6, 7.
  869. *
  870. * CALLS COD, LRC, SFN, WOF.
  871.  
  872.  
  873. LSR SUBR ENTRY/EXIT
  874. SX3 B1+ SET NOT END OF REFERENCES
  875. LSR1 SA1 LSRC ADVANCE SYMBOL CHECK
  876. SX6 X1+3
  877. SA2 X6 SUBTITLE LINE ADDRESS
  878. SA6 A1
  879. ZR X3,LSRX IF END OF SYMBOL LIST
  880. ZR X2,LSR2 IF NO SUBTITLE
  881. SX7 X2 SET SUBTITLE
  882. SX6 LCFE FORCE EJECT
  883. SA7 ST
  884. SA6 LC
  885. EQ LSR3 SKIP LINE CHECK
  886.  
  887. LSR2 SA1 LC CHECK LINE COUNT
  888. SA3 LL GET LINE LIMIT
  889. SX1 X1+2
  890. IX7 X1-X3
  891. PL X7,LSR3 IF NO ROOM FOR LINE
  892. SX1 =C* * LIST BLANK LINE
  893. RJ WOF WRITE LINE TO OUTPUT
  894. LSR3 SA1 LSRC SET MASK
  895. SA3 X1+B1 MASK
  896. SA4 A3+B1 CHARACTER MATCH
  897. SA1 F.TNME (X1) = FWA
  898. SA2 SL (X2) = LENGTH
  899. LSR4 SA5 X1 NEXT ENTRY
  900. BX6 X5*X3
  901. IX7 X6-X4
  902. ZR X7,LSR6 IF MATCH FOUND
  903. SX1 X1+2 ADVANCE TABLE
  904. LSR5 SX2 X2-2
  905. NZ X2,LSR4 IF NOT END OF TABLE
  906. EQ LSR1 PROCESS NEXT SYMBOL TYPE
  907.  
  908. LSR6 SX6 X1 SAVE POSITION
  909. SX7 X2
  910. SA6 T1
  911. SA7 A6+B1
  912. MX0 42 SPACE FILL NAME
  913. BX1 X0*X5
  914. RJ SFN
  915. LX6 -3*6
  916. SA6 BUF
  917. SA1 A5+B1 CONVERT VALUE
  918. RJ COD
  919. LX6 3*6
  920. SA6 A6+B1
  921. MX7 -0 CLEAR ENTRY
  922. SA7 A5
  923. RJ LRC LIST REFERENCE CHAIN
  924. SA1 T1 ADVANCE SYMBOL CHAIN
  925. SA2 A1+B1
  926. SX1 X1+2
  927. SA3 LSRC RESET MASK AND CHARACTER
  928. SA3 X3+B1
  929. SA4 A3+B1
  930. EQ LSR5 LOOP TO NEXT REFERENCE
  931.  
  932. LSRA DATA 10H SYMBOL
  933. DATA 10H VALUE
  934. DATA C*DECK REFERENCES.*
  935.  
  936. LSRB BSS 0
  937.  
  938. CON =C* DIRECT LOCATIONS.*
  939. VFD 12/0,30/7777777777B,18/0
  940. CON 0
  941.  
  942. CON =C* PP RESIDENT ENTRY POINTS.*
  943. VFD 18/0,24/77777777B,18/0
  944. CON 0
  945.  
  946. CON 0
  947. VFD 6/77B,18/0,18/777777B,18/0
  948. VFD 6/1L.,54/0
  949.  
  950. CON 0
  951. VFD 42/77777777777777B,18/0
  952. CON 0LPPFW
  953.  
  954. CON =C* MONITOR FUNCTIONS.*
  955. VFD 18/0,6/77B,36/0
  956. VFD 18/0,6/1RM,36/0
  957.  
  958. CON =C* MASS STORAGE TABLE WORDS.*
  959. VFD 12/0,18/777777B,30/0
  960. VFD 12/0,18/2LGL,30/0
  961.  
  962. CON 0
  963. VFD 12/0,18/777777B,30/0
  964. VFD 12/0,18/2LLL,30/0
  965.  
  966. CON =C* GLOBAL/LOCAL FNT WORDS, ORDINALS.*
  967. VFD 12/0,18/777777B,30/0
  968. VFD 12/0,18/2LTG,30/0
  969.  
  970. CON 0
  971. VFD 12/0,18/777777B,30/0
  972. VFD 12/0,18/2LTL,30/0
  973.  
  974. CON 0
  975. VFD 12/0,18/777777B,30/0
  976. VFD 12/0,18/2LFO,30/0
  977.  
  978. CON =C* CENTRAL MEMORY POINTERS.*
  979. VFD 18/0,12/7777B,30/0
  980. VFD 18/0,6/1RP,36/0
  981.  
  982. CON =C* CENTRAL MEMORY LOCATIONS.*
  983. VFD 18/0,12/7777B,30/0
  984. VFD 18/0,12/1LL,30/0
  985.  
  986. CON 0
  987. VFD 18/0,12/7777B,30/0
  988. VFD 18/0,12/2RLL,30/0
  989.  
  990. CON =C* CONTROL POINT AREA WORDS.*
  991. VFD 18/0,12/7777B,30/0
  992. VFD 18/0,12/1LW,30/0
  993.  
  994. CON 0
  995. VFD 18/0,12/7777B,30/0
  996. VFD 18/0,12/2RWE,30/0
  997.  
  998. CON 0
  999. VFD 18/0,12/7777B,30/0
  1000. VFD 18/0,12/2RWL,30/0
  1001.  
  1002. CON =C* EJT, EST, QFT RELATED.*
  1003. VFD 18/0,12/7777B,30/0
  1004. VFD 18/0,12/1LE,30/0
  1005.  
  1006. CON 0
  1007. VFD 18/0,12/7777B,30/0
  1008. VFD 18/0,12/1LQ,30/0
  1009.  
  1010. CON =C* NFL SYMBOLS, AND DAYFILE MESSAGE OPTIONS.*
  1011. VFD 18/0,6/77B,36/0
  1012. VFD 18/0,6/1RN,36/0
  1013.  
  1014. CON =C* FILE TYPES, AND MASS STORAGE CONSTANTS.*
  1015. VFD 12/0,12/7777B,36/0
  1016. VFD 12/0,12/2RFT,36/0
  1017.  
  1018. CON 0
  1019. VFD 12/0,12/7777B,36/0
  1020. VFD 12/0,12/2RMS,36/0
  1021.  
  1022. CON 0
  1023. VFD 12/0,18/777777B,30/0
  1024. VFD 12/0,18/2LSF,30/0
  1025.  
  1026. CON 0
  1027. VFD 12/0,12/7777B,36/0
  1028. VFD 12/0,12/2RSS,36/0
  1029.  
  1030. CON 0
  1031. VFD 12/0,12/7777B,36/0
  1032. VFD 12/0,12/2RTS,36/0
  1033.  
  1034. CON =C* ORIGIN TYPES AND QUEUE TYPES.*
  1035. VFD 12/0,12/7777B,36/0
  1036. VFD 12/0,12/2ROT,36/0
  1037.  
  1038. CON 0
  1039. VFD 12/0,12/7777B,36/0
  1040. VFD 12/0,12/2RQT,36/0
  1041.  
  1042. CON =C* ERROR FLAGS.*
  1043. VFD 12/0,12/7777B,36/0
  1044. VFD 12/0,12/2RET,36/0
  1045.  
  1046. CON =C* MISCELLANEOUS.*
  1047. VFD 36/0,6/77B,18/0
  1048. CON 0
  1049.  
  1050. CON 0,0
  1051.  
  1052. LSRC CON LSRB-3
  1053. TITLE SUBROUTINES.
  1054. ABT SPACE 4,10
  1055. ** ABT - ABORT JOB.
  1056. *
  1057. * ENTRY (A0) = FWA OF MESSAGE.
  1058. *
  1059. * MACROS ABORT, MESSAGE.
  1060.  
  1061.  
  1062. ABT MESSAGE A0,,R OUTPUT MESSAGE
  1063. ABORT
  1064. ADW SPACE 4,10
  1065. ** ADW - ADD ENTRY TO A TABLE.
  1066. *
  1067. * ENTRY (A0) = TABLE POINTER ADDRESS.
  1068. * (X1) = ENTRY.
  1069. *
  1070. * EXIT (X6) = ENTRY.
  1071. * (A6) = ADDRESS OF ENTRY.
  1072. * (X3) = INDEX OF ENTRY.
  1073. *
  1074. * USES X - 1, 2, 3, 4, 6, 7.
  1075. * A - 1, 2, 3, 4, 6, 7.
  1076. * B - 2.
  1077. *
  1078. * CALLS ATS.
  1079. *
  1080. * MACROS ALLOC.
  1081.  
  1082.  
  1083. ADW1 BX6 X1 ENTER WORD
  1084. SX7 X3+B1 ADVANCE LENGTH
  1085. SA6 X2+B2
  1086. SA7 A3
  1087.  
  1088. ADW SUBR ENTRY/EXIT
  1089. SA2 FTAB+A0 CHECK TABLE ROOM
  1090. SA3 LTAB+A0
  1091. SA4 A2+B1
  1092. IX6 X2+X3
  1093. SB2 X3
  1094. IX7 X4-X6
  1095. NZ X7,ADW1 IF ROOM FOR WORD
  1096. SA2 NTAB+A0 ALLOCATE TABLE
  1097. BX6 X1 SAVE WORD
  1098. SA6 ADWA
  1099. ALLOC A0,X2
  1100. SA4 NTAB+A0 RESET LAST LENGTH
  1101. SA1 ADWA RESTORE WORD
  1102. IX3 X3-X4
  1103. SB2 X3
  1104. EQ ADW1 ENTER WORD
  1105.  
  1106. ADWA DATA 0
  1107. ASN SPACE 4,10
  1108. ** ASN - ASSEMBLE NAME.
  1109. *
  1110. * ENTRY (CP) = CHARACTER POINTER.
  1111. * (X0) = SEPARATOR MASK.
  1112. *
  1113. * EXIT (X6) = NAME RIGHT JUSTIFIED, ZERO FILLED.
  1114. * (X6) = 0 IF FIRST CHARACTER = * *, OR MORE THAN
  1115. * 7 CHARACTERS ASSEMBLED.
  1116. *
  1117. * USES X - 1, 2, 5, 6.
  1118. * A - 1.
  1119. * B - 2.
  1120. *
  1121. * CALLS SNC.
  1122.  
  1123.  
  1124. ASN SUBR ENTRY/EXIT
  1125. SA1 CH FIRST CHARACTER
  1126. SB2 X1
  1127. LX6 X0,B2
  1128. MI X6,ASNX IF SEPARATOR - RETURN
  1129. SX5 B0 CLEAR ASSEMBLY
  1130. BX6 X1
  1131. ASN1 LX5 6 SHIFT ASSEMBLY
  1132. BX5 X6+X5 MERGE NEW CHARACTER
  1133. RJ SNC SET NEXT CHARACTER
  1134. SB2 X6
  1135. LX2 X0,B2
  1136. PL X2,ASN1 IF NOT A SEPARATOR
  1137. BX6 X5
  1138. EQ ASNX RETURN
  1139. ATS SPACE 4,10
  1140. ** ATS - ALLOCATE TABLE SPACE.
  1141. *
  1142. * ENTRY (A0) = TABLE NUMBER.
  1143. * (X1) = NUMBER OF WORDS.
  1144. *
  1145. * EXIT (X2) = TABLE FWA.
  1146. * (X3) = TABLE LENGTH.
  1147. *
  1148. * USES X - 1, 2, 3, 4, 6, 7.
  1149. * A - 1, 2, 3, 4, 6, 7.
  1150. * B - 2, 3.
  1151. *
  1152. * CALLS TOV.
  1153.  
  1154.  
  1155. ATS5 SA2 FTAB+A0 SET RESPONSE
  1156. SA3 LTAB+A0
  1157.  
  1158. ATS SUBR ENTRY/EXIT
  1159. SA2 FTAB+A0 CHECK TABLE SPACE
  1160. SA3 LTAB+A0
  1161. IX7 X3+X1 ADVANCE LENGTH
  1162. SA4 A2+B1
  1163. IX6 X2+X7
  1164. SA7 A3
  1165. IX4 X4-X6
  1166. NG X4,ATS1 IF NO ROOM FOR CHANGE
  1167. BX3 X7
  1168. EQ ATSX RETURN
  1169.  
  1170. * CHECK AVAILABLE STORAGE.
  1171.  
  1172. ATS1 SA2 FTAB+FTABL CHECK STORAGE
  1173. SA3 FL
  1174. IX6 X2+X1
  1175. IX7 X3-X6
  1176. NG X7,ATS4 IF NO ROOM FOR INCREASE
  1177. SA6 A2 UPDATE LWA+1 OF ALL TABLES
  1178. SB2 A0+B1
  1179. SB3 FTABL
  1180. BX4 X2
  1181. EQ B2,B3,ATS5 IF LAST TABLE - RETURN
  1182.  
  1183. * MOVE HIGHER TABLE UP.
  1184.  
  1185. ATS2 SA2 A2-B1 ADVANCE FWA OF HIGHER TABLES
  1186. IX6 X2+X1
  1187. SA6 A2
  1188. SB2 B2+B1
  1189. NE B2,B3,ATS2
  1190. IX3 X4-X2 (B2) = WORD COUNT
  1191. SB3 X1 (B3) = MOVE INCREMENT
  1192. ZR X3,ATS5 IF NO MOVE NEEDED
  1193. SB2 X3
  1194. SA1 X4-1 BEGIN AT LWA
  1195. ATS3 BX6 X1 MOVE TABLE UP
  1196. SA6 A1+B3
  1197. SB2 B2-B1
  1198. SA1 A1-B1
  1199. NZ B2,ATS3 IF END OF MOVE
  1200. EQ ATS5 RETURN
  1201.  
  1202. * TABLE OVERFLOW.
  1203.  
  1204. ATS4 SX6 A0 SAVE (A0)
  1205. SA6 ATSA
  1206. BX6 X1 SAVE (X1)
  1207. SA6 ATSA+1
  1208. RJ TOV PROCESS TABLE OVERFLOW
  1209. SA1 ATSA RESTORE (A0)
  1210. SA0 X1
  1211. SA1 A1+B1 RESTORE (X1)
  1212. EQ ATS1 RE-COMPUTE WITH NEW MEMORY
  1213.  
  1214.  
  1215. ATSA BSSZ 2 (A0) AND (X1) STORAGE
  1216. ENT SPACE 4,10
  1217. ** ENT - ENTER NAME TABLE.
  1218. *
  1219. * ENTRY (X5) = REFERENCE TYPE.
  1220. *
  1221. * USES X - 1, 2, 3, 6, 7.
  1222. * A - 1, 2.
  1223. * B - 2, 3.
  1224. *
  1225. * CALLS ADW.
  1226. *
  1227. * MACROS ADDWRD.
  1228.  
  1229.  
  1230. ENT SUBR ENTRY/EXIT
  1231. SA1 DN RIGHT JUSTIFY DECK NAME
  1232. MX2 -6
  1233. BX6 X1
  1234. ENT1 LX6 -6
  1235. BX7 -X2*X6
  1236. ZR X7,ENT1 IF NOT A CHARACTER
  1237. SA1 L.TNME
  1238. SA2 F.TNME
  1239. SB2 B1+B1
  1240. SB3 X1
  1241. SA1 X2
  1242. MX2 1
  1243. ZR B3,ENT3 IF EMPTY TABLE
  1244. ENT2 BX3 -X2*X1 SCAN NAME TABLE
  1245. IX7 X3-X6
  1246. SB3 B3-B2
  1247. ZR X7,ENTX IF FOUND - RETURN
  1248. SA1 A1+B2
  1249. NZ B3,ENT2 IF NOT THE END OF THE TABLE
  1250. ENT3 ADDWRD TNME,X6
  1251. ADDWRD A0,X5
  1252. EQ ENTX RETURN
  1253. ESR SPACE 4,10
  1254. ** ESR - ENTER SPECIAL REFERENCE.
  1255. *
  1256. * ENTRY (X5) = REFERENCE TYPE.
  1257. * (X6) = NAME RIGHT JUSTIFIED.
  1258. *
  1259. * USES X - 1, 2, 3, 6, 7.
  1260. * A - 1, 2, 6.
  1261. * B - 2, 3, 4.
  1262. *
  1263. * CALLS ADW.
  1264. *
  1265. * MACROS ADDWRD.
  1266.  
  1267.  
  1268. ESR SUBR ENTRY/EXIT
  1269. MX1 6*3 TRUNCATE NAME TO 7 CHARACTERS
  1270. BX6 -X1*X6
  1271. SA1 L.TNME
  1272. SA2 F.TNME
  1273. SB2 B1+B1
  1274. SB3 X1
  1275. SA1 X2
  1276. SB4 X2
  1277. MX2 1
  1278. ZR B3,ESR1.1 IF EMPTY TABLE
  1279. ESR1 BX3 -X2*X1 SCAN NAME TABLE
  1280. IX7 X3-X6
  1281. SB3 B3-B2
  1282. ZR X7,ESR2 IF FOUND
  1283. SA1 A1+B2
  1284. NZ B3,ESR1 IF THE END OF THE TABLE
  1285. ESR1.1 ADDWRD TNME,X6
  1286. ADDWRD A0,X5
  1287. SA1 A6-B1
  1288. MX2 1
  1289. ESR2 MI X1,ESRX IF SYMBOL REFERENCED - EXIT
  1290. BX6 X1+X2 INDICATE REFERENCE
  1291. SA6 A1
  1292. SX3 A1-B4
  1293. SA2 DN
  1294. ADDWRD TREF,X2+X3 ENTER REFERENCE
  1295. EQ ESRX RETURN
  1296. PLE SPACE 4,10
  1297. ** PLE - PROCESS LIBRARY ERROR.
  1298. *
  1299. * ISSUE DAYFILE MESSAGE *PL ERROR IN DECK*.
  1300. * ABORT JOB.
  1301. *
  1302. * USES X - 1, 6.
  1303. * A - 0, 1, 6.
  1304. *
  1305. * CALLS ABT.
  1306.  
  1307.  
  1308. PLE SA1 DN SET DECK NAME IN MESSAGE
  1309. BX6 X1
  1310. SA6 PLEB
  1311. SA0 PLEA
  1312. EQ ABT ABORT JOB
  1313.  
  1314. PLEA DATA 20H PL ERROR IN DECK
  1315. PLEB DATA 0
  1316. PLS SPACE 4,20
  1317. ** PLS - ISSUE PROGRAM LIBRARY STATISTICS MESSAGES.
  1318. *
  1319. * ENTRY (BLANK) = ACTIVE BLANK STATEMENTS.
  1320. * (CALL) = ACTIVE *CALL STATEMENTS.
  1321. * (CODE) = ACTIVE NON-COMMENT, NON-BLANK STATEMENTS.
  1322. * (COMNT) = ACTIVE * TYPE COMMENT STATEMENTS.
  1323. * (INACT) = INACTIVE STATEMENTS.
  1324. *
  1325. * EXIT ALL DAYFILE MESSAGES ISSUED.
  1326. *
  1327. * USES X - 1, 2, 3, 4, 5, 6, 7.
  1328. * A - 1, 2, 3, 4, 6.
  1329. *
  1330. * CALLS CDD, WOF.
  1331.  
  1332.  
  1333. PLS SUBR ENTRY/EXIT
  1334. SA1 BLANK CONVERT NUMBER OF BLANK STATEMENTS
  1335. RJ CDD
  1336. SA6 PLSB+1
  1337. SA1 CALL CONVERT NUMBER OF *CALL STATEMENTS
  1338. RJ CDD
  1339. SA6 PLSC+1
  1340. SA1 CODE CONVERT NUMBER OF LINES OF CODE
  1341. RJ CDD
  1342. SA6 PLSD+1
  1343. SA1 COMNT CONVERT NUMBER OF COMMENT STATEMENTS
  1344. RJ CDD
  1345. SA6 PLSE+1
  1346. SA1 INACT CONVERT NUMBER OF INACTIVE STATEMENTS
  1347. RJ CDD
  1348. SA6 PLSF+1
  1349. SA1 BLANK COMPUTE TOTAL NUMBER OF ACTIVE STATEMENTS
  1350. SA2 CALL
  1351. SA3 CODE
  1352. SA4 COMNT
  1353. IX5 X1+X2
  1354. IX7 X3+X4
  1355. IX1 X5+X7
  1356. RJ CDD CONVERT TOTAL ACTIVE STATEMENTS
  1357. SA6 PLSG+1
  1358. SX7 LCFE FORCE EJECT
  1359. SX6 PLSA SET SUBTITLE LINE
  1360. SA7 LC
  1361. SA6 ST
  1362. SX7 =C* * SET SUB-SUB TITLE LINE
  1363. SX1 PLSB BLANK STATEMENTS
  1364. SA7 A6+1
  1365. RJ WOF WRITE OUTPUT FILE
  1366. SX1 PLSC *CALL STATEMENTS
  1367. RJ WOF WRITE OUTPUT FILE
  1368. SX1 PLSD LINES OF CODE
  1369. RJ WOF WRITE OUTPUT FILE
  1370. SX1 PLSE * TYPE COMMENTS
  1371. RJ WOF WRITE OUTPUT FILE
  1372. SX1 PLSF INACTIVE STATEMENTS
  1373. RJ WOF WRITE OUTPUT FILE
  1374. SX1 PLSG ACTIVE STATEMENTS
  1375. RJ WOF WRITE OUTPUT FILE
  1376. EQ PLSX RETURN
  1377.  
  1378. PLSA DATA C/ PROGRAM LIBRARY STATISTICS./
  1379. PLSB DATA 10H0
  1380. DATA C/ BLANK STATEMENTS./
  1381. PLSC DATA 10H0
  1382. DATA C/ *CALL STATEMENTS./
  1383. PLSD DATA 10H0
  1384. DATA C/ LINES OF CODE./
  1385. PLSE DATA 10H0
  1386. DATA C/ * TYPE COMMENT STATEMENTS./
  1387. PLSF DATA 10H0
  1388. DATA C/ TOTAL INACTIVE STATEMENTS./
  1389. PLSG DATA 10H0
  1390. DATA C/ TOTAL ACTIVE STATEMENTS./
  1391. RMT SPACE 4,10
  1392. ** RMT - READ MODIFIER TABLE.
  1393. *
  1394. * ENTRY (DN) = DECK NAME.
  1395. * (MA) = MODIFICATION TABLE ADDRESS.
  1396. *
  1397. * EXIT (X0) = TERMINATOR CHARACTOR MASK.
  1398. *
  1399. * USES X - ALL.
  1400. * A - 1, 2, 3, 6.
  1401. * B - 2, 3.
  1402. *
  1403. * CALLS ENT.
  1404. *
  1405. * MACROS MESSAGE, READ, READW.
  1406.  
  1407.  
  1408. RMT SUBR ENTRY/EXIT
  1409. SA1 L.TNME CLEAR REFERENCE INDICATORS
  1410. SA2 F.TNME
  1411. MX4 1
  1412. SB3 X1
  1413. SA1 X2
  1414. SB2 B1+B1
  1415. ZR B3,RMT2 IF EMPTY TABLE
  1416. RMT1 BX6 -X4*X1
  1417. SA6 A1
  1418. SB3 B3-B2
  1419. SA1 A1+B2
  1420. NZ B3,RMT1 IF MORE REFERENCES
  1421. RMT2 READ P
  1422. READW P,BUF,17B READ IDENT TABLE
  1423. MI X1,RMTX IF EOF - RETURN
  1424. SA1 BUF
  1425. LX1 12
  1426. SB2 X1-7700B
  1427. NZ B2,RMT7 IF NO IDENT TABLE
  1428. SA1 BUF+1 SET DECK NAME
  1429. BX6 X1
  1430. SA6 DN
  1431. SA6 RMTA+1
  1432. READW P,T1,1 READ MODIFIER TABLE LENGTH
  1433. NZ X1,PLE IF EOR
  1434. SA1 T1 CHECK TABLE
  1435. LX1 18
  1436. SX6 B0
  1437. SB2 X1-700100B
  1438. SB3 X1-700200B
  1439. NZ B2,RMT3 IF NOT NORMAL DECK
  1440. SA3 =0LCMDFILE CHECK FOR *CMDFILE* - *HELP* TEXT
  1441. BX7 X3-X2
  1442. ZR X7,RMT7 IF *CMDFILE* SKIP ENTIRE DECK
  1443. EQ RMT4 PROCESS NORMAL DECK
  1444.  
  1445. * CHECK FOR A COMMON DECK.
  1446.  
  1447. RMT3 NZ B3,RMT7 IF NOT A COMMON DECK
  1448. SX5 B0 ENTER NAME TABLE
  1449. RJ ENT
  1450. SA1 T1
  1451. LX1 18
  1452. SX6 B1 SET REFERENCE FLAG
  1453. MX4 4*6
  1454. SA6 RF
  1455. SA6 PP SET PP
  1456. SA2 DN GET DECK NAME
  1457. SA3 =0LCOMP
  1458. BX2 X4*X2
  1459. IX7 X2-X3
  1460. ZR X7,RMT4 IF -COMPXXX-
  1461. SA3 =0LCOMD
  1462. IX7 X2-X3
  1463. SX6 B0
  1464. ZR X7,RMT4 IF -COMDXXX-
  1465. SA6 PP
  1466. RMT4 LX1 60-18
  1467. SX5 X1
  1468. ZR X5,RMT6 IF NO MODIFIERS
  1469. RMT5 READW P,T1,1 READ OUT MODIFIERS
  1470. SX5 X5-1
  1471. NZ X5,RMT5 IF NOT THE LAST WORD
  1472. RMT6 MESSAGE RMTA,1
  1473. SA2 =36060020B MASK FOR BL , + - * /
  1474. SX1 B0 RETURN WITH NO EOR
  1475. BX0 X2
  1476. EQ RMTX RETURN
  1477.  
  1478. RMT7 READW P,BUF,BUFL READ TO EOR
  1479. ZR X1,RMT7 IF NOT AN EOR
  1480. EQ RMT2 BEGIN NEXT RECORD
  1481.  
  1482. RMTA DATA 10H SCANNING
  1483. DATA 0
  1484. RPF SPACE 4,10
  1485. ** RPF - READ CARD FROM PROGRAM LIBRARY.
  1486. *
  1487. * ENTRY (A0) = ADDRESS OF BUFFER.
  1488. *
  1489. * EXIT (X1) .NE. 0 IF EOR READ.
  1490. * (CDTX) = TEXT OF COMPRESSED CARD.
  1491. *
  1492. * USES X - 1, 6.
  1493. * A - 1, 6.
  1494. *
  1495. * MACROS READC.
  1496.  
  1497.  
  1498. RPF SUBR ENTRY/EXIT
  1499. RPF1 READC P,BUF,BUFL READ CARD HISTORY
  1500. NZ X1,RPF IF EOR - RETURN
  1501. READC P,CDTX,MXCCL READ COMPRESSED CARD
  1502. NZ X1,RPF IF EOR - RETURN
  1503. EQ B6,B7,PLE IF OVERFLOW
  1504. SA1 BUF
  1505. MI X1,RPF2 IF CARD ACTIVE
  1506. SA1 INACT COUNT INACTIVE CARD
  1507. SX6 B1
  1508. IX6 X6+X1
  1509. SA6 A1
  1510. EQ RPF1 LOOP FOR NEXT CARD
  1511.  
  1512. RPF2 BX1 X1-X1 SET NOT EOR FLAG
  1513. EQ RPFX RETURN
  1514. SNC SPACE 4,10
  1515. ** SNC - SET NEXT CHARACTER.
  1516. *
  1517. * ENTRY (CP) = CHARACTER POINTER.
  1518. *
  1519. * EXIT (X6) = (CH) = CHARACTER.
  1520. * (CP) UPDATED.
  1521. * CHARACTER = * * IF END OF CARD REACHED.
  1522. *
  1523. * USES X - 1, 2, 3, 4, 6, 7.
  1524. * A - 1, 2, 6, 7.
  1525. * B - 2, 3, 4, 5.
  1526.  
  1527.  
  1528. SNC3 SX4 X1+ SET POSITION
  1529. MI B4,SNC4 IF NOT SPACE COUNT
  1530. SX6 1R SUPPLY * *
  1531. EQ SNC6 SPACE FILL
  1532.  
  1533. SNC4 SX7 X6-1R CHECK FOR CURRENT CHARACTER BLANK
  1534. ZR X7,SNC4.1 IF BLANK
  1535. SX7 X6-76B CHECK ESCAPE CODE
  1536. NZ X7,SNC6 IF NOT ESCAPE CODE
  1537. SNC4.1 SB5 B2+6
  1538. NE B5,B3,SNC5 IF NOT AT END OF WORD
  1539. SB5 6 RESET POSITION
  1540. SX4 X4+B1 ADVANCE TO NEXT WORD
  1541. SA2 A2+B1 GET NEXT WORD OF CARD
  1542. SNC5 LX7 X2,B5 POSITION CHARACTER
  1543. BX7 -X3*X7 CHECK FOR SECOND CONSECUTIVE BLANK
  1544. SX2 X7-1R
  1545. ZR X2,SNC5.1 IF BLANK
  1546. ZR X7,SNC6 IF *00* FOLLOWS 76B
  1547. SX2 X6-76B
  1548. NZ X2,SNC6 IF NOT CONVERTING TO UPPER CASE
  1549. SX2 X7-33B
  1550. PL X2,SNC6 IF NOT LOWER CASE ALPHABETIC CHARACTER
  1551. BX6 X7
  1552. SNC5.1 SB2 B5
  1553. SX1 X4
  1554. SNC6 PX7 X1,B2 PACK POSITION
  1555. SA6 CH SET CHARACTER
  1556. SA7 A1
  1557.  
  1558. SNC SUBR ENTRY/EXIT
  1559. SA1 CP UNPACK POINTER
  1560. SA2 X1+CDTX LOAD WORD FROM CARD
  1561. MX3 54
  1562. SB3 66
  1563. UX1,B2 X1
  1564. SB4 -B1
  1565. SX4 1R PRESET * *
  1566. SNC1 SB2 B2+6 ADVANCE CHARACTER INDEX
  1567. NE B2,B3,SNC2 IF NOT LAST CHARACTER OF WORD
  1568. SB2 6 RESET CHARACTER
  1569. SX1 X1+B1 ADVANCE WORD
  1570. SA2 A2+B1
  1571. SNC2 LX7 X2,B2 SHIFT TO CHARACTER
  1572. BX6 -X3*X7
  1573. NZ X6,SNC3 IF NOT 00 CHARACTER
  1574. SB4 B4+B1
  1575. NE B4,B1,SNC1 IF NOT THE LAST SPACE
  1576. BX6 X4
  1577. SA6 CH
  1578. EQ SNCX RETURN
  1579. SSR SPACE 4,10
  1580. ** SSR - SORT SPECIAL REFERENCES.
  1581. *
  1582. * USES X - 1, 2, 3, 4, 6, 7.
  1583. * A - 0, 1, 2, 3, 4, 5, 6, 7.
  1584. * B - 2, 3, 4, 5, 6, 7.
  1585.  
  1586.  
  1587. SSR SUBR ENTRY/EXIT
  1588. SA1 F.TNME (A0) = FWA - 2
  1589. SA2 SL
  1590. IX6 X1+X2
  1591. SA3 L.TNME
  1592. IX7 X3-X2
  1593. SA0 X6-2
  1594. SB7 X7 N = LENGTH
  1595. SB6 B7 M = N
  1596. SSR1 SX6 B6 M = M/2
  1597. AX6 2
  1598. LX6 1
  1599. SB6 X6
  1600. SB3 B1+B1 J = 1
  1601. ZR B6,SSRX IF M = 0 - RETURN
  1602. SB4 B7-B6 K = N-M
  1603. SB2 B3
  1604. SSR2 SB5 B2+B6 L = I+M
  1605. SA1 A0+B2 A(I)
  1606. SA2 A0+B5 A(L)
  1607. IX6 X2-X1
  1608. PL X6,SSR3 IF A(L) .GE. A(I)
  1609. SA3 A1+B1 INTERCHANGE A(L) AND A(I)
  1610. SA4 A2+B1
  1611. BX6 X1
  1612. LX7 X2
  1613. SA6 A2
  1614. SA7 A1
  1615. BX6 X3
  1616. BX7 X4
  1617. SA6 A4
  1618. SA7 A3
  1619. SB2 B2-B6 I = I-M
  1620. GT B2,SSR2 IF I .GT. 0
  1621. SSR3 SB3 B3+2 J = J+1
  1622. SB2 B3
  1623. LE B3,B4,SSR2 IF J .LE. K
  1624. EQ SSR1 LOOP
  1625. TOV SPACE 4,10
  1626. ** TOV - TABLE OVERFLOW PROCESSOR.
  1627. *
  1628. * ENTRY (FL) = CURRENT FIELD LENGTH.
  1629. *
  1630. * EXIT (FL) = NEW FIELD LENGTH.
  1631. *
  1632. * USES A - 1, 6.
  1633. * X - 1, 6.
  1634. *
  1635. * CALLS ABT.
  1636. *
  1637. * MACROS MEMORY.
  1638.  
  1639.  
  1640. TOV SUBR ENTRY/EXIT
  1641. SA1 FL INCREMENT FIELD LENGTH
  1642. SX6 X1+MINC
  1643. SA6 A1
  1644. LX6 30 POSITION FOR *MEM* CALL
  1645. SA6 TOVA
  1646. SA1 A6+B1 CHECK MEMORY LIMIT
  1647. IX1 X1-X6
  1648. NG X1,TOV1 IF LIMIT REACHED.
  1649. MEMORY CM,TOVA,R
  1650. EQ TOVX RETURN
  1651.  
  1652.  
  1653. TOV1 SA0 =C* MEMORY OVERFLOW.*
  1654. EQ ABT ABORT
  1655.  
  1656.  
  1657. TOVA CON 0 MEMORY CALL WORD
  1658. TOVB VFD 30/-0,30/0 MAXIMUM MEMORY LIMIT
  1659. WOF SPACE 4,10
  1660. ** WOF - WRITE LINE TO OUTPUT.
  1661. *
  1662. * ENTRY (X1) = FWA LINE.
  1663. *
  1664. * USES X - 1, 2, 3, 6, 7.
  1665. * A - 1, 2, 3, 6, 7.
  1666. *
  1667. * CALLS CDD.
  1668. *
  1669. * MACROS WRITEC, WRITEW.
  1670.  
  1671.  
  1672. WOF SUBR ENTRY/EXIT
  1673. SA3 LC ADVANCE LINE COUNT
  1674. SX6 X3+B1
  1675. SA6 A3
  1676. SA2 LL
  1677. IX2 X6-X2
  1678. NG X2,WOF1 IF BOTTOM OF PAGE NOT REACHED
  1679. BX6 X1 SAVE REQUEST
  1680. SA6 WOFA
  1681. SA1 PN ADVANCE PAGE NUMBER
  1682. SX6 4 RESET LINE COUNT
  1683. SX7 X1+B1
  1684. SA6 A3
  1685. SA7 A1
  1686. RJ CDD CONVERT PAGE NUMBER
  1687. MX1 60-12
  1688. LX6 4*6 STORE PAGE NUMBER
  1689. BX6 X1*X6
  1690. SA6 PAGE
  1691. SA1 PD
  1692. ZR X1,WOF0 IF NO FORMAT EFFECTOR
  1693. WRITEW O,A1,1 WRITE FORMAT EFFECTOR
  1694. BX6 X6-X6
  1695. SA6 PD
  1696. WOF0 WRITEW O,TITL,TITLL
  1697. SA1 ST
  1698. WRITEC X2,X1
  1699. SA1 ST+1
  1700. WRITEC X2,X1
  1701. WRITEC X2,(=C* *)
  1702. SA1 WOFA RESTORE REQUEST
  1703. WOF1 WRITEC O,X1
  1704. EQ WOFX RETURN
  1705.  
  1706. WOFA DATA 0
  1707. SPACE 4,10
  1708. ** COMMON DECKS.
  1709.  
  1710.  
  1711. *CALL COMCRDC
  1712. *CALL COMCRDW
  1713. *CALL COMCWTC
  1714. *CALL COMCWTW
  1715. *CALL COMCCIO
  1716. *CALL COMCSYS
  1717. *CALL COMCCDD
  1718. *CALL COMCCOD
  1719. *CALL COMCSFN
  1720. SPACE 4,10
  1721. IDENT FORCE LITERALS
  1722. PRESET TITLE KRONREF PRESET.
  1723. PRS SPACE 4,10
  1724. ** PRS - PRESET KRONREF.
  1725. *
  1726. * ENTRY (A0) = FL.
  1727. *
  1728. * EXIT (FL) = FL - 10B.
  1729. *
  1730. * USES X - 1, 3, 4, 6.
  1731. * A - 0, 1, 4, 6.
  1732. * B - 4, 5.
  1733. *
  1734. * CALLS ARG, SFN.
  1735. *
  1736. * MACROS CLOCK, DATE, REWIND.
  1737.  
  1738.  
  1739. PRS SUBR ENTRY/EXIT
  1740. SX6 A0-10B
  1741. SA6 FL
  1742. MEMORY CM,TOVB,R GET CURRENT FL/MAXIMUM FL
  1743. CLOCK TIME REQUEST TIME
  1744. DATE DATE REQUEST DATE
  1745. SA1 ACTR SET ARGUMENT COUNT
  1746. SB4 X1
  1747. ZR B4,PRS1 IF NO ARGUMENTS
  1748. SB5 PRSA
  1749. SA4 ARGR
  1750. RJ ARG PROCESS ARGUMENTS
  1751. SA0 =C* ERROR IN KRONREF ARGUMENTS.*
  1752. NZ X1,ABT IF ARGUMENT ERRORS
  1753. PRS1 REWIND P,R
  1754. SA1 P
  1755. MX3 42
  1756. BX1 X3*X1
  1757. RJ SFN SPACE FILL FILE NAME
  1758. SA6 PLNM
  1759. RJ IPP INITALIZE PAGE PARAMETERS
  1760. EQ PRSX RETURN
  1761. PRSA SPACE 4,10
  1762. ** PRSA - CONTROL CARD ARGUMENT VALUES.
  1763.  
  1764.  
  1765. PRSA BSS 0
  1766. L ARG O,O OUTPUT FILE
  1767. P ARG P,P OPL FILE NAME
  1768. S ARG =0LNOSTEXT,LSSA
  1769. G ARG =0LTEXT,LSSB USER SUPPLIED TEXT FILE
  1770. ARG END OF THE TABLE
  1771. IPP SPACE 4,15
  1772. ** IPP - INITIALIZE PAGE PARAMETERS.
  1773. *
  1774. * EXIT (LL) = LINE LIMIT.
  1775. * (PD) = PRINT DENSITY IF NOT TERMINAL OUTPUT FILE.
  1776. * = 0 IF TERMINAL OUTPUT FILE.
  1777. *
  1778. * USES X - 2, 6.
  1779. * A - 6.
  1780. *
  1781. * CALLS STF.
  1782. *
  1783. * MACROS GETPP.
  1784.  
  1785.  
  1786. IPP SUBR ENTRY/EXIT
  1787. GETPP IPPA,LL,PD
  1788. SX2 O OUTPUT FILE FET ADDRESS
  1789. RJ STF SET TERMINAL FILE
  1790. NZ X6,IPPX IF NOT TERMINAL FILE
  1791. SA6 PD
  1792. EQ IPPX RETURN
  1793.  
  1794. IPPA BSS 2 *GETPP* RESPONSE BLOCK
  1795. LSS SPACE 4,10
  1796. ** LSS - LOAD SYSTEMS SYMBOLS.
  1797. *
  1798. * USES X - 0, 1, 2, 3, 4, 6, 7.
  1799. * A - 0, 1, 2, 3, 4, 6, 7.
  1800. * B - 2, 3, 4, 5, 6, 7.
  1801. *
  1802. * CALLS ATS, SFN.
  1803. *
  1804. * MACROS ALLOC, OVERLAY, VERSION.
  1805.  
  1806.  
  1807. LSS SUBR ENTRY/EXIT
  1808. SA1 LSSB CHECK TEXT FROM LOCAL FILE
  1809. ZR X1,LSS1 IF TEXT FROM SYSTEM
  1810. RJ SFN SET TEXT NAME
  1811. SA6 TX SET SYSTEXT PRESENT
  1812. SA6 TXNM
  1813. OVERLAY LSSB,101B,,MTBS LOAD TEXT
  1814. JP LSS2 NO SYSTEM TEXT
  1815.  
  1816. LSS1 SA1 LSSA SET TEXT NAME
  1817. ZR X1,LSSX IF S=0
  1818. RJ SFN
  1819. SA6 TX SET SYSTEXT PRESENT
  1820. SA6 TXNM
  1821. VERSION LSSC
  1822. OVERLAY LSSA,101B,SYSTEM,MTBS LOAD TEXT
  1823. LSS2 MX0 42
  1824. SA0 =C* ERROR IN SYSTEM TEXT.*
  1825. SA1 MTBS+1 CHECK FIRST WORD OF TEXT
  1826. BX6 X0*X1
  1827. NZ X6,ABT
  1828. SA1 65B SET TEMPORARY LENGTH OF TREF
  1829. SA2 FTAB+FTABL
  1830. SX6 X1
  1831. IX7 X2+X6
  1832. SA6 L.TREF
  1833. SA7 A2
  1834. SA1 MTBS+1 ALLOCATE NAME TABLE
  1835. ALLOC TNME,X1
  1836. SA0 =C* ERROR IN SYSTEM TEXT.*
  1837. ZR X3,ABT ABORT IF NO SYMBOLS
  1838. SX6 0 CLEAR REFERENCE LENGTH
  1839. SA6 L.TREF
  1840.  
  1841. * SORT SYMBOLS BY VALUE.
  1842.  
  1843. SA1 F.TREF (A0) = FWA - 1
  1844. SB7 X3 N = LENGTH
  1845. SA0 X1+1
  1846. SB6 B7 M = N
  1847. LSS3 SX6 B6 M = M/2
  1848. AX6 2
  1849. LX6 1
  1850. SB6 X6
  1851. SB3 B1+B1 J = 1
  1852. ZR B6,LSS6 IF M = 0
  1853. SB4 B7-B6 K = N-M
  1854. SB2 B3
  1855. LSS4 SB5 B2+B6 L = I + M
  1856. SA1 A0+B2 A(I)
  1857. SA2 A0+B5 A(L)
  1858. IX6 X2-X1
  1859. PL X6,LSS5 IF A(L) .GE. A(I)
  1860. SA3 A1-B1 INTERCHANGE A(L) AND A(I)
  1861. SA4 A2-B1
  1862. BX6 X1
  1863. LX7 X2
  1864. SA6 A2
  1865. SA7 A1
  1866. BX6 X3
  1867. BX7 X4
  1868. SA6 A4
  1869. SA7 A3
  1870. SB2 B2-B6 I = I-M
  1871. GT B2,LSS4 IF I .GT. 0
  1872. LSS5 SB3 B3+2 J = J + 1
  1873. SB2 B3
  1874. LE B3,B4,LSS4 IF J = K
  1875. EQ LSS3 LOOP
  1876.  
  1877. LSS6 SA1 F.TREF COPY SYMBOLS
  1878. SA2 F.TNME
  1879. SX7 B7 SET SYSTEM SYMBOLS LENGTH
  1880. SA3 X1+2
  1881. SA4 A3+B1
  1882. SA7 SL
  1883. BX6 X3
  1884. LX7 X4
  1885. SA6 X2
  1886. SA7 A6+B1
  1887. SB2 B1+B1
  1888. LSS7 SA3 A3+B2
  1889. SA4 A4+B2
  1890. BX6 X3
  1891. LX7 X4
  1892. SB7 B7-B2
  1893. SA6 A6+B2
  1894. SA7 A7+B2
  1895. NZ B7,LSS7 IF MOVE NOT COMPLETE
  1896. EQ LSSX RETURN
  1897.  
  1898. LSSA CON 0LNOSTEXT
  1899. LSSB CON 0
  1900. LSSC VFD 12/12B,12/0,12/0,24/TXNM+1
  1901. SPACE 4,10
  1902. ** COMMON DECKS.
  1903.  
  1904.  
  1905. *CALL COMCARG
  1906. *CALL COMCCPM
  1907. *CALL COMCLFM
  1908. *CALL COMCOVL
  1909. *CALL COMCSTF
  1910. SPACE 4,10
  1911. * MEMORY ALLOCATION.
  1912.  
  1913.  
  1914. BUF EQU PRS
  1915. PBUF EQU BUF+BUFL OPL BUFFER
  1916. MTBS EQU PBUF+PBUFL FWA TABLES
  1917. MFL= EQU MTBS+MTBSL+200000B NOMINAL RUNNING FL
  1918. SPACE 4
  1919. END KRONREF KRONOS SYSTEM CROSS REFERENCE PROCESSOR