Table of Contents

KTSDMP

Table Of Contents

  • [00009] KTSDMP - KTS MEMORY DUMP.
  • [00154] MACRO DEFINITIONS.
  • [00182] GLOBAL STORAGE.
  • [00198] MAIN PROGRAM.
  • [00291] GIN - PROCESS GENERAL INFORMATION TABLE.
  • [00319] MED - PROCESS MEMORY DUMP TABLE.
  • [00394] XPD - PROCESS EXCHANGE PACKAGE DUMP.
  • [00448] CBD - PROCESS COMMUNICATION BLOCK DUMP.
  • [00527] DBD - PROCESS DATA BUFFER DUMP.
  • [00626] CFA - CLEAR FILE ARGUMENTS.
  • [00645] COF - CHECK OUTPUT FILE NAME AND ASSIGNMENT.
  • [00688] DCK - STRING OUT DATA.
  • [00744] DCM - DUMP CENTRAL MEMORY.
  • [00828] DXP - DUMP EXCHANGE PACKAGE.
  • [00915] ERR - PROCESS ERROR.
  • [00939] OCB - CONVERT OCTAL BY BYTES.
  • [00987] OCT - LIST OCTAL OR OCTAL WITH DISPLAY.
  • [01083] SKW - SKIP WORDS.
  • [01102] WTL - WRITE TITLE LINES.
  • [01163] PRS - PRESET KTSDMP.

Source Code

KTSDMP.txt
  1. IDENT KTSDMP,FETS
  2. ABS
  3. SST LA
  4. ENTRY KTSDMP
  5. ENTRY RFL=
  6. SYSCOM B1
  7. *COMMENT KTSDMP - *TAF* TASK MEMORY DUMP.
  8. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9. TITLE KTSDMP - KTS MEMORY DUMP.
  10. SPACE 4
  11. ***** KTSDMP - KTS MEMORY DUMP.
  12. * J. C. BOHNHOFF. 72/09/23.
  13. * W. E. MARTIN. 78/08/30.
  14. SPACE 4,20
  15. *** *KTSDMP* IS AUTOMATICALLY CALLED BY THE TRANSACTION FACILITY
  16. * TO PROCESS A MEMORY DUMP AFTER A TASK ABORT OR AN EXPLICIT
  17. * *CMDUMP* REQUEST. IF THE *P* OPTION IS USED, AN
  18. * INSTALLATION MAY KEEP A RUNNING STACK OF MEMORY DUMPS TO BE
  19. * SELECTIVELY LISTED AT SOME LATER TIME. TO LIST ALL DUMPS
  20. * ON THE PERMANENT DUMP FILE, ATTACH THE FILE AND EXECUTE
  21. * *KTSDMP*. ALL DUMP RECORDS ON THE FILE WILL BE PROCESSED.
  22. * TO LIST ONLY SELECTED DUMPS, ATTACH THE PERMANENT FILE
  23. * AND EXTRACT THE DESIRED DUMP RECORDS USING *GTR* -
  24. * THEN EXECUTE *KTSDMP* TO PROCESS THE EXTRACTED RECORDS.
  25. * THE INPUT FILE FORMAT IS DESCRIBED IN THE *KTSDMP*
  26. * DOCUMENTATION. ITEMS THAT MAY BE LISTED INCLUDE -
  27. *
  28. * CENTRAL MEMORY OF A TASK OR PROGRAM.
  29. * EXCHANGE PACKAGE OF A TASK.
  30. * CONTROL POINT AREA OF A TASK.
  31. * COMMUNICATION BLOCK OF A TASK.
  32. * DATA BUFFERS.
  33. SPACE 4,20
  34. *** CONTROL CARD CALL.
  35. *
  36. * KTSDMP(IF,OF,P,O)
  37. *
  38. * IF - INPUT FILE NAME.
  39. * IF ABSENT - *INPUT*.
  40. *
  41. * OF - OUTPUT FILE NAME.
  42. * IF ABSENT - *OUTPUT*.
  43. *
  44. * P - IF PRESENT - *APPEND* FILE *IF* ON DIRECT ACCESS
  45. * PERMANENT FILE *OF*. THE JOB MUST BE RUNNING WITH
  46. * THE PROPER USER NUMBER, AND FILE *OF* MUST BE
  47. * DEFINED. FURTHER, AN END-OF-FILE IS NOT COPIED TO
  48. * *OF*.
  49. *
  50. * O - *OCTAL* FORMAT IF SPECIFIED - OTHERWISE DEFAULT
  51. * IS *DISPLAY*.
  52. SPACE 4,25
  53. *** DAYFILE MESSAGES ISSUED.
  54. *
  55. * * DISPLAY DUMP NOT ALLOWED TO TERMINAL.*
  56. * A DISPLAY DUMP (DEFAULT) IS NOT ALLOWED TO AN
  57. * INTER-ACTIVE TERMINAL. OCTAL DUMPS, OBTAINED WITH
  58. * THE *O* CONTROL CARD PARAMETER, ARE ALLOWED.
  59. *
  60. * * FILE NAME CONFLICT.*
  61. * THE INPUT FILE NAME IS THE SAME AS THE OUTPUT FILE
  62. * NAME.
  63. *
  64. * * FWA .GE. LWA+1.*
  65. * DUMP FIRST WORD ADDRESS IS GIVEN AS .GE. THE LAST WORD
  66. * ADDRESS + 1.
  67. *
  68. * * KTSDMP COMPLETE.*
  69. * DUMP COMPLETED NORMALLY.
  70. *
  71. * * UNKNOWN FILE FORMAT.*
  72. * FILE DOES NOT CONFORM TO THE FORMAT RULES ESTABLISHED.
  73. *
  74. * * XXXXXXX NOT FOUND.*
  75. * THE FILE SPECIFIED ON THE P-PARAMETER WAS NOT FOUND
  76. * IN THE USER-S PERMANENT FILE CATALOG.
  77. SPACE 4,80
  78. ** DUMP INPUT FILE FORMAT -
  79. *
  80. * THE DUMP INPUT FILE IS COMPOSED OF AT LEAST ONE RECORD
  81. * COMPRISED OF SEVERAL TABLES, EACH CONTAINING DATA PERTAINING
  82. * TO A TYPE OF DUMP AS DESCRIBED ABOVE. SEVERAL RECORDS MAY
  83. * APPEAR IN THE FILE, EACH STARTING A NEW DUMP SEQUENCE.
  84. * ALL TABLES EXCEPT TABLE-0 MAY APPEAR IN ANY ORDER AND MAY
  85. * BE REPEATED INDEFINITELY OR MAY BE SUPPRESSED.
  86. *
  87. * RECORD FORMAT -
  88. *
  89. * WORD 1 - RECORD NAME.
  90. *T WD1 42/ NAME,18/ 0
  91. *
  92. * WHERE - NAME MAY BE USED BY OTHER UTILITIES TO IDENTIFY
  93. * THE RECORD.
  94. *
  95. * TABLE 0 - GENERAL INFORMATION.
  96. *T GIN 12/ 2000B,30/ 0,18/ 0
  97. *T, 60/ LABEL
  98. *T, 60/ DUMP DATE
  99. *T, 60/ DUMP TIME
  100. *T, 60/ RESERVED
  101. *
  102. * WHERE - LABEL IS USED FOR IDENTIFICATION IN TITLE LINES.
  103. * DUMP DATE IS THE DATE UPON WHICH THE INPUT FILE WAS
  104. * CREATED.
  105. * DUMP TIME IS THE TIME AT WHICH THE INPUT FILE WAS
  106. * CREATED.
  107. *
  108. * TABLE 1 - MEMORY DUMP.
  109. *T MED 12/ 2001B,30/ 0,18/ N
  110. *T, 42/ 0,18/ FWA
  111. *T, 42/ 0,18/ LWA
  112. *T, 60/ RESERVED
  113. *T, 60/ RESERVED
  114. *T, 60/ ... FIRST OF N WORDS OF MEMORY TO DUMP ...
  115. *
  116. * WHERE - FWA IS THE FIRST WORD ADDRESS OF THE DUMP AREA.
  117. * FWA IS ROUNDED UP TO A MULTIPLE OF FOUR, AND LWA IS
  118. * THE LAST WORD ADDRESS OF THE DUMP AREA. LWA IS
  119. * IS ROUNDED DOWN TO A MULTIPLE OF FOUR.
  120. *
  121. * TABLE 2 - EXCHANGE PACKAGE.
  122. *T EXP 12/ 2002B,30/ 0,18/ N
  123. *T, 60/ RESERVED
  124. *T, 60/ RESERVED
  125. *T, 60/ RESERVED
  126. *T, 60/ RESERVED
  127. *T, 60/ ... FIRST OF 20B WORDS OF EXCHANGE PACKAGE ...
  128. *T, 60/ ... FIRST OF *M* WORDS OF TASK CONTROL POINT AREA ...
  129. *
  130. * WHERE - *N* IS THE TOTAL OF 20B EXCHANGE PACKAGE WORDS
  131. * PLUS *M* TASK CONTROL POINT WORDS.
  132. *
  133. * TABLE 3 - COMMUNICATION BLOCK.
  134. *T CMB 12/ 2003B,30/ 0,18/ N
  135. *T, 42/ TASK NAME,18/ 0
  136. *T, 36/ 0 ,24/ SEQUENCE NUMBER
  137. *T, 42/ 0 ,18/ ADDRESS
  138. *T, 60/ RESERVED
  139. *T, 60/ ... FIRST OF *N* WORDS OF COMMUNICATION BLOCK ...
  140. *
  141. * WHERE - SEQUENCE NUMBER IS THE TRANSACTION SEQUENCE NUMBER.
  142. * ADDRESS IS THE ADDRESS FROM WHICH THE DUMP WAS
  143. * CALLED.
  144. *
  145. * TABLE 4 - DATA BUFFERS.
  146. *T DAB 12/ 2004B,30/ 0,18/N
  147. *T, 6/ DB,36/ FILE NAME,18/ 0
  148. *T, 60/ .. FIRST OF 2 WORDS OF CURRENT KEY VALUE ...
  149. *T, 60/ ... ...
  150. *T, 30/ CURRENT PRU ADDRESS,30/ CURRENT FILE STATUS
  151. *T, 60/ .. FIRST OF N WORDS OF DATA BUFFER TO DUMP ...
  152. *
  153. * WHERE - DB IS THE DATA BASE NAME.
  154. TITLE MACRO DEFINITIONS.
  155. * COMMON TEXT.
  156.  
  157.  
  158. *CALL COMSPFM
  159. *CALL COMCMAC
  160. *CALL COMKMAC
  161. TRXCOM
  162. SPACE 4
  163. * ASSEMBLY CONSTANTS.
  164.  
  165.  
  166. CMBM OCTMIC COMC FWA OF COMMUNICATION BLOCK
  167. IBUFL EQU 1001B INPUT BUFFER SIZE
  168. OBUFL EQU 4001B OUTPUT BUFFER SIZE
  169. SPACE 4
  170. * FET DEFINITIONS.
  171.  
  172.  
  173. ORG 115B
  174.  
  175. FETS BSS 0
  176.  
  177. I BSS 0 INPUT FILE
  178. INPUT FILEB IBUF,IBUFL
  179.  
  180. O BSS 0 OUTPUT FILE
  181. OUTPUT FILEC OBUF,OBUFL,FET=CFLM
  182. TITLE GLOBAL STORAGE.
  183. * GLOBAL STORAGE.
  184.  
  185.  
  186. CW BSSZ 5 TABLE CONTROL WORDS
  187. FW CON 0 FWA OF DUMP
  188. LW CON 0 LWA OF DUMP
  189. LA CON 0 LINE ADDRESS
  190. DB CON 0 DUMP BLOCK INDEX
  191. DC VFD 6/36B,18/,18/2,18/4 DUMP CONTROL
  192. EP CON 0 EXCHANGE PACKAGE DUMP INDICATOR
  193. IND CON BUF2
  194. DF CON 0 DISPLAY/OCTAL DUMP FLAG
  195. TERM CON 0 TERMINAL OUTPUT FLAG (IF SET)
  196. ZR CON 0 ZERO WORD
  197. MBUF BSSZ 3 *PFM* ERROR MESSAGE BUFFER
  198. TITLE MAIN PROGRAM.
  199. ** MAIN PROGRAM.
  200.  
  201.  
  202. KTSDMP SB1 1
  203. RJ PRS PRESET PROGRAM
  204. NZ X5,KTS5 IF *APPEND* TO PERMAMENT FILE OPERATION
  205.  
  206. * PROCESS DUMP LIST.
  207.  
  208. KTS1 SX7 0 CLEAR EXCHANGE PACKAGE DUMPED INDICATOR
  209. SA7 EP
  210. RJ COF CHECK OUTPUT FILE
  211. READ I START READ OF DUMP RECORD
  212. READW I,CW,B1 SKIP RECORD NAME
  213. NZ X1,KTS2 IF EOR/EOF/EOI
  214.  
  215. * RETURN FROM DUMP PROCESSORS.
  216.  
  217. KTSX READW I,CW,5 READ TABLE CONTROL WORDS
  218. NZ X1,KTS2 IF EOR/EOF/EOI
  219. SA1 CW PROCESS TABLE
  220. UX6,B7 X1
  221. NG B7,ERR1 IF UNKNOWN TABLE
  222. SB7 B7-TCTPL
  223. PL B7,ERR1 IF UNKNOWN TABLE
  224. JP TCTP+TCTPL+B7 EXECUTE DUMP PROCESSOR
  225.  
  226. KTS2 NG X1,KTS3 IF EOF/EOI
  227. WRITER O,R END OUTPUT RECORD
  228. RJ CFA CLEAR FILE ARGUMENTS
  229. EQ KTS1 LOOP TO END OF FILE
  230.  
  231. KTS3 WRITER O,R END OUTPUT RECORD
  232. KTS4 MESSAGE (=C* KTSDMP COMPLETE.*)
  233. ENDRUN
  234.  
  235. * APPEND *IF* TO PERMENANT FILE *OF*.
  236.  
  237. KTS5 SA1 O+B1 SET *EP* BIT
  238. SX2 B1
  239. LX2 44
  240. BX6 X1+X2
  241. SX7 MBUF SET ERROR MESSAGE RETURN ADDRESS
  242. SA6 A1
  243. SA7 O+CFPW
  244. KTS6 ATTACH O,,,,M
  245. SA1 X2 CHECK ERROR FLAG
  246. MX0 -8
  247. LX1 -10
  248. BX2 -X0*X1
  249. ZR X2,KTS7 IF NO ERROR ON ATTACH
  250. SX2 X2-1
  251. NZ X2,ERR4 IF NOT *FILE BUSY*
  252. BX6 X0*X1 CLEAR STATUS FIELD
  253. LX6 10
  254. SA6 A1+
  255. ROLLOUT ZR WAIT FOR FILE NOT BUSY
  256. EQ KTS6 RETRY OPERATION
  257.  
  258. KTS7 SA1 A1+B1 CLEAR *EP* BIT
  259. MX2 -1
  260. SX7 B0 CLEAR ERROR ADDRESS
  261. LX2 44
  262. BX6 X1*X2
  263. SA7 O+CFPW
  264. SA6 A1
  265. SKIPEI O POSITION TO WRITE AT EOI
  266. KTS8 READ I COPY RECORD
  267. RECALL O
  268. KTS9 READW I,BUF,100B
  269. NZ X1,KTS10 IF EOR/EOF/EOI
  270. WRITEW O,BUF,100B
  271. EQ KTS9 LOOP TO EOR
  272.  
  273. KTS10 NG X1,KTS4 IF EOF/EOI
  274. WRITEW O,BUF,X1-BUF TERMINATE RECORD
  275. WRITER O
  276. EQ KTS8 LOOP TO EOF
  277. SPACE 4
  278. * TABLE OF FUNCTION PROCESSORS.
  279.  
  280. TCTP BSS 0
  281. LOC 0
  282. EQ GIN GENERAL INFORMATION
  283. EQ MED MEMORY DUMP
  284. EQ XPD EXCHANGE PACKAGE DUMP
  285. EQ CBD COMMUNICATION BLOCK DUMP
  286. EQ DBD DATA BUFFER DUMP
  287. TCTPL BSS 0 LENGTH OF TABLE
  288. LOC *O
  289. GIN TITLE PROCESS TABLE 0 - GENERAL INFORMATION.
  290. GIN SPACE 4,10
  291. ** GIN - PROCESS GENERAL INFORMATION TABLE.
  292. *
  293. * ENTRY (CW - CW+3) = TABLE CONTROL WORDS.
  294. *
  295. * EXIT TO *KTSX*.
  296. *
  297. * USES A - 1, 2, 3, 6, 7.
  298. * X - 0, 1, 2, 3, 6, 7.
  299. *
  300. * CALLS SKW.
  301.  
  302.  
  303. GIN BSS 0 ENTRY
  304. SA1 CW+1 READ LABEL
  305. SA2 A1+B1 READ DUMP DATE
  306. SA3 A2+B1 READ DUMP TIME
  307. BX6 X1
  308. LX7 X2
  309. SA6 LB STORE LABEL
  310. SA7 DD STORE DUMP DATE
  311. SA1 A1-B1 READ TABLE LENGTH
  312. BX6 X3
  313. SX0 X1+
  314. SA6 DT STORE DUMP TIME
  315. RJ SKW SKIP EXCESS WORDS IN TABLE
  316. EQ KTSX RETURN
  317. MED TITLE PROCESS TABLE 1 - MEMORY DUMP.
  318. MED SPACE 4,15
  319. ** MED - PROCESS MEMORY DUMP TABLE.
  320. *
  321. * ENTRY (CW - CW+3) = TABLE CONTROL WORDS.
  322. *
  323. * EXIT TO *KTSX*.
  324. * TO *ERR1* - IF UNKNOWN FILE FORMAT.
  325. * TO *ERR2* - IF FWA .GE. LWA+1.
  326. *
  327. * USES A - 0, 1, 2, 3, 6, 7.
  328. * X - ALL.
  329. * B - 2.
  330. *
  331. * CALLS COD, DCM, SKW, WTL.
  332.  
  333.  
  334. MED BSS 0 ENTRY
  335. SA1 CW READ TABLE LENGTH
  336. SA2 A1+B1 READ FWA
  337. SA3 A2+B1 READ LWA
  338. SX1 X1 N
  339. SX2 X2 FWA
  340. SX3 X3 LWA
  341. IX4 X2+X1 FWA+N
  342. NG X2,ERR1 IF FWA .LT. 0
  343. NZ X3,MED1 IF LWA .NE. 0
  344. SX3 X4-1 LWA = FWA+N-1
  345. MED1 SX3 X3+B1 LIMIT = LWA+1
  346. IX5 X3-X4
  347. NG X5,MED2 IF TOO MANY WORDS ON FILE - LIMIT = LWA+1
  348. SX3 X4+ LIMIT = FWA+N
  349. MED2 IX7 X2-X3 FWA - LIMIT
  350. PL X7,ERR2 IF FWA .GE. LIMIT
  351. SB2 B1+B1 ROUND UP FWA
  352. SX0 X2+3
  353. AX6 X3,B2 ROUND DOWN LWA
  354. AX0 X0,B2
  355. LX6 X6,B2
  356. LX7 X0,B2
  357. SA6 LW STORE LIMIT
  358. IX0 X7-X2 FIND NUMBER OF WORDS FWA ROUNDED UP
  359. IX6 X6-X4
  360. SA7 FW STORE FWA
  361. IX6 X6+X0 DECREMENT EXCESS WORD COUNT
  362. SA6 MEDA
  363. RJ SKW SKIP WORDS TO FWA
  364. SA1 FW SET SECOND TITLE LINE
  365. RJ COD CONVERT FWA
  366. SA1 MEDC
  367. LX6 3*6
  368. BX7 X1-X6
  369. SA1 LW CONVERT LIMIT
  370. SA7 MEDB+2
  371. RJ COD CONVERT CONSTANT TO DISPLAY
  372. LX6 3*6
  373. SA0 MEDB SET TITLE ADDRESS
  374. SA6 MEDB+3
  375. RJ WTL WRITE TITLE LINES
  376. RJ DCM DUMP CENTRAL MEMORY
  377. SA1 MEDA SKIP EXCESS WORDS
  378. PL X1,KTSX IF NO EXCESS WORDS - RETURN
  379. BX0 -X1
  380. SX0 X0-1
  381. ZR X0,KTSX IF NO EXCESS WORDS - RETURN
  382. RJ SKW SKIP EXCESS WORDS
  383. EQ KTSX RETURN
  384.  
  385. MEDA CON 0 STORAGE FOR EXCESS WORD COUNT
  386. MEDB DATA 1H0 SET DOUBLE SPACE
  387. DATA 10HDUMP FROM
  388. CON 0 STORAGE FOR FWA OF DUMP
  389. CON 0 STORAGE FOR LWA OF DUMP
  390. CON 0 LINE TERMINATOR
  391. MEDC CON 2ATO&2A
  392. XPD TITLE PROCESS TABLE 2 - EXCHANGE PACKAGE DUMP.
  393. XPD SPACE 4,15
  394. ** XPD - PROCESS EXCHANGE PACKAGE DUMP.
  395. *
  396. * ENTRY (CW - CW+3) = TABLE CONTROL WORDS.
  397. *
  398. * EXIT TO *KTSX*.
  399. * TO *ERR1* - UNKNOWN FILE FORMAT.
  400. *
  401. * USES A - 0, 1, 6, 7.
  402. * X - 0, 1, 6, 7.
  403. * B - 7.
  404. *
  405. * CALLS DCM, DXP, SKW, WTL.
  406. *
  407. * MACROS READW, WRITEC.
  408.  
  409.  
  410. XPD BSS 0 ENTRY
  411. SA1 CW READ TABLE LENGTH
  412. SB7 X1-20B
  413. NG B7,ERR1 IF .LT. 20B WORDS
  414. READW I,BUF,20B READ EXCHANGE PACKAGE
  415. SA0 XPDA SET TITLE ADDRESS
  416. RJ WTL WRITE TITLE LINES
  417. RJ DXP DUMP EXCHANGE PACKAGE
  418. SX7 B1+ SET EXCHANGE PACKAGE DUMPED INDICATOR
  419. SA1 CW CHECK TASK CONTROL POINT AREA PRESENT
  420. SX0 X1-20B
  421. SA7 EP
  422. ZR X0,KTSX IF NO CONTROL POINT - RETURN
  423. WRITEC O,XPDB LIST CONTROL POINT AREA HEADER
  424. WRITEC O,XPDC
  425. SX7 X0+20B SET DUMP FROM 20 TO 20+M (MOD 4)
  426. IX6 X7-X0
  427. AX7 2 ROUND LWA DOWN
  428. SA6 FW
  429. LX7 2
  430. IX6 X0-X7
  431. SA7 LW
  432. SX6 X6+20B
  433. SA6 XPDD SAVE EXCESS WORD COUNT
  434. RJ DCM DUMP IN CM FORMAT
  435. SA1 XPDD READ EXCESS WORD COUNT
  436. SX0 X1+
  437. RJ SKW SKIP EXCESS WORDS
  438. EQ KTSX RETURN
  439.  
  440. XPDA DATA 1H0 DOUBLE SPACE CARRIAGE CONTROL
  441. DATA C*EXCHANGE PACKAGE.*
  442. XPDB DATA 1H- TRIPLE SPACE CARRIAGE CONTROL
  443. DATA C*TASK CONTROL POINT AREA.*
  444. XPDC DATA 1L BLANK LINE
  445. XPDD CON 0
  446. CBD TITLE PROCESS TABLE 3 - COMMUNICATION BLOCK DUMP.
  447. CBD SPACE 4,15
  448. ** CBD - PROCESS COMMUNICATION BLOCK DUMP.
  449. *
  450. * ENTRY (CW - CW+3) = TABLE CONTROL WORDS.
  451. *
  452. * EXIT TO *KTSX*.
  453. *
  454. * USES A - 0, 1, 6, 7.
  455. * X - 0, 1, 6, 7.
  456. * B - 2.
  457. *
  458. * CALLS CDD, COD, DCM, SFN, SKW, WTL.
  459. *
  460. * MACROS WRITEC.
  461.  
  462.  
  463. CBD BSS 0 ENTRY
  464. SX6 COMC SET FWA OF TASK LOAD
  465. SA1 CW CALCULATE LWA+1
  466. SA6 FW STORE FWA
  467. SX1 X1 NUMBER OF WORDS
  468. SB2 B1+B1 ROUND DOWN NUMBER OF WORDS
  469. AX0 X1,B2
  470. LX0 X0,B2
  471. IX7 X1-X0 NUMBER OF EXCESS WORDS IN TABLE
  472. IX6 X6+X0 SET LWA+1
  473. SX1 COMC+COMCL-1 SET LWA OF COMMUNICATION BLOCK
  474. SA7 CBDC
  475. SA6 LW STORE LIMIT
  476. RJ COD CONVERT LWA
  477. BX6 X4
  478. SA1 CW+B1 SET TITLE LINE
  479. MX0 42
  480. SA6 CBDB
  481. BX1 X0*X1
  482. RJ SFN SPACE FILL NAME
  483. SA6 CBDB+2
  484. SA1 CW+2 CONVERT *TRF* NUMBER
  485. MX0 -24
  486. BX1 -X0*X1
  487. RJ COD CONVERT TO OCTAL DISPLAY CODE
  488. LX6 6
  489. MX0 54
  490. SX1 1RB
  491. BX6 X0*X6
  492. BX6 X6+X1
  493. SA6 CBDB+4
  494. SA1 CW+3 CONVERT CALL ADDRESS
  495. SX1 X1+
  496. RJ COD CONVERT TO DECIMAL
  497. BX6 X4
  498. SA0 CBDA SET TITLE ADDRESS
  499. SA6 CBDB+6
  500. SA1 EP
  501. NZ X1,CBD1 IF EXCHANGE PACKAGE DUMPED FOR THIS RECORD
  502. RJ WTL WRITE TITLE LINES
  503. EQ CBD2 WRITE BLANK LINE
  504.  
  505. CBD1 WRITEC O,CBDA WRITE COMMUNICATION BLOCK HEADER
  506. CBD2 WRITEC O,CBDD
  507. RJ DCM DUMP CENTRAL MEMORY
  508. SA1 CBDC READ EXCESS WORD COUNT
  509. BX0 X1
  510. RJ SKW SKIP EXCESS WORDS
  511. EQ KTSX RETURN
  512.  
  513. CBDA DATA 1H- SET TRIPLE SPACE
  514. DATA H*COMMUNICATION BLOCK DUMP FROM "CMBM" TO *
  515. CBDB CON 0 LWA
  516. DATA 10H PROGRAM
  517. CON 0 TASK/PROGRAM NAME
  518. DATA 10H SEQUENCE
  519. CON 0 SEQUENCE NUMBER
  520. DATA 10H ADDRESS
  521. CON 0 CALL ADDRESS
  522. CON 0 LINE TERMINATOR
  523. CBDC CON 0
  524. CBDD DATA 1L BLANK LINE
  525. DBD TITLE PROCESS TABLE 4 - DATA BUFFER DUMP.
  526. DBD SPACE 4,15
  527. ** DBD - PROCESS DATA BUFFER DUMP.
  528. *
  529. * ENTRY (CW - CW+4) = TABLE CONTROL WORDS.
  530. *
  531. * EXIT TO *KTSX*.
  532. * TO *ERR1* - IF UNKNOWN FILE FORMAT.
  533. *
  534. * USES A - 0, 1, 2, 6, 7.
  535. * X - 0, 1, 2, 6, 7.
  536. *
  537. * CALLS DCM, OCB, SFN, SKW, WOD, WTL.
  538. *
  539. * MACROS WRITEW.
  540.  
  541.  
  542. DBD BSS 0 ENTRY
  543. SX6 0 SET FWA OF DUMP
  544. SA1 CW FIND LWA+1
  545. SA6 FW
  546. SX7 X1+ LWA+1
  547. SX1 X1
  548. AX7 2 ROUND DOWN LWA+1
  549. ZR X1,KTSX IF TABLE EMPTY - RETURN
  550. LX7 2
  551. IX6 X1-X7 EXCESS WORDS
  552. NG X1,ERR1 IF N .LT. ZERO
  553. SA7 LW STORE LWA
  554. SA6 DBDF SAVE EXCESS
  555. SA1 CW+1 SET DATA BASE, FILE NAME IN TITLE
  556. MX0 42
  557. BX1 X0*X1
  558. RJ SFN SPACE FILL NAME
  559. SA6 DBDA+3
  560. SA0 DBDA SET FWA OF LINE TO BE WRITTEN
  561. RJ WTL WRITE TITLE LINES
  562. SA1 DBDB SET KEY VALUE
  563. SA2 DBDC
  564. BX6 X1
  565. LX7 X2
  566. SA6 BUFO
  567. SA7 BUFO+1
  568. SA6 BUFO+3
  569. SX7 0
  570. SA1 CW+2 CONVERT KEY VALUE
  571. SA7 BUFO+2
  572. RJ OCB OCTAL CONVERSION TO BUFO+4, +5
  573. SA1 CW+2 SET DISPLAY INTERPRETATION
  574. RJ SFN SPACE FILL NAME
  575. SA2 TERM GET TERMINAL OUTPUT FLAG
  576. SX7 B0+ TERMINATE LINE
  577. NZ X2,DBD1 IF OUTPUT TO TERMINAL
  578. SA6 A6+1
  579. DBD1 SA7 A6+1
  580. SA2 DBDB STORE SECOND KEY VALUE WORD
  581. SA1 CW+3
  582. BX6 X2
  583. SA6 A7+B1
  584. RJ OCB CONVERT WORD 2
  585. SA1 CW+3
  586. RJ SFN SPACE FILL NAME
  587. SA2 TERM GET TERMINAL OUTPUT FLAG
  588. SX7 B0+
  589. NZ X2,DBD2 IF OUTPUT TO TERMINAL
  590. SA6 A6+1
  591. DBD2 SA7 A6+1
  592. WRITEW O,BUFO,A7-BUFO+1 LIST KEY VALUE
  593. SA1 CW+4 CONVERT PRU NUMBER
  594. RJ WOD CONVERT WORD TO OCTAL DISPLAY
  595. SA1 CW+4 CONVERT STATUS
  596. SA6 DBDD+3
  597. RJ WOD CONVERT WORD TO OCTAL DISPLAY
  598. SA7 DBDE+2
  599. WRITEW O,DBDD,DBDDL LIST PRU, STATUS
  600. RJ DCM DUMP CENTRAL MEMORY BUFFER
  601. SA1 DBDF READ EXCESS WORD COUNT
  602. BX0 X1
  603. RJ SKW SKIP EXCESS WORDS
  604. EQ KTSX RETURN
  605.  
  606. DBDA DATA 1H0 DOUBLE SPACE PAGE HEADER
  607. DATA H*DATA BUFFER DUMP OF *
  608. CON 0 DB,FN
  609. CON 0 LINE TERMINATOR
  610. DBDB DATA 10H
  611. DBDC DATA 10HKEY VALUE
  612. DBDD DATA 2L
  613. DATA 10H
  614. DATA 10HPRU
  615. CON 0 PRU NUMBER
  616. CON 0
  617. DBDE DATA 10H
  618. DATA 10HSTATUS
  619. CON 0 STATUS
  620. CON 0
  621. DATA 2L
  622. DBDDL EQU *-DBDD
  623. DBDF CON 0
  624. CFA TITLE SUBROUTINES.
  625. CFA SPACE 4,10
  626. ** CFA - CLEAR FILE ARGUMENTS.
  627. *
  628. * EXIT (LB), (DD), AND (DT) RESET TO (CFAA).
  629. *
  630. * USES A - 1, 6, 7.
  631. * X - 1, 6, 7.
  632.  
  633.  
  634. CFA SUBR ENTRY/EXIT
  635. SA1 CFAA RESET LABEL, DUMP DATE, DUMP TIME
  636. BX6 X1
  637. LX7 X1
  638. SA6 LB
  639. SA7 DD
  640. SA6 DT
  641. EQ CFAX RETURN
  642.  
  643. CFAA CON 1H BLANKS
  644. COF SPACE 4,10
  645. ** COF - CHECK OUTPUT FILE NAME AND ASSIGNMENT.
  646. *
  647. * EXIT (X2) = FWA OF ERROR MESSAGE - IF ERROR.
  648. * TO *ERR3* - IF OUTPUT FILE IS TERMINAL FILE AND *DMD*
  649. * TYPE DUMP REQUESTED.
  650. *
  651. * USES A - 1, 2, 4, 6, 7.
  652. * X - 1, 2, 4, 6, 7.
  653. *
  654. * CALLS STF.
  655.  
  656.  
  657. COF SUBR ENTRY/EXIT
  658. SX2 O
  659. RJ STF CHECK FILE ASSIGNMENT
  660. NZ X6,COFX IF OUTPUT NOT ASSIGNED TO TERMINAL
  661. SA1 DF
  662. ZR X1,ERR3 IF DISPLAY DUMP REQUESTED
  663. SA4 COFB TERMINAL DUMP CONTROL WORD
  664. BX6 X4
  665. SA2 COFA CLEAR AUTO EJECT
  666. LX7 X2
  667. SA6 DC NEW DUMP CONTROL WORD
  668. SA7 WTLB
  669. SX6 B1+ SET TERMINAL OUTPUT FLAG
  670. SX7 BUF1+2
  671. SA6 TERM
  672. SA7 IND
  673. SA1 COFC CLEAR OTHER CARRIAGE CONTROL CHARACTERS
  674. BX6 X1
  675. LX7 X1
  676. SA6 MEDB
  677. SA7 XPDA
  678. SA6 XPDB
  679. SA7 CBDA
  680. SA6 DBDA
  681. SA7 WTLA
  682. EQ COFX RETURN
  683.  
  684. COFA CON 1L
  685. COFB VFD 6/30B,18/0,18/1,18/2 TERMINAL DUMP CONTROL WORD
  686. COFC DATA 10H BLANK FILLER
  687. DCK SPACE 4,15
  688. ** DCK - STRING OUT DATA.
  689. *
  690. * ENTRY (X6) = FIRST CONVERTED WORD OF DUMP.
  691. * (X7) = SECOND CONVERTED WORD OF DUMP.
  692. * (B3) = INDEX OF SPACE.
  693. * (A7) = LOCATION IN DESTINATION LINE.
  694. *
  695. * EXIT WORDS PACKED AND INTERPRETED INTO BUFFER.
  696. *
  697. * USES A - 3, 4, 6, 7.
  698. * X - 2, 3, 4, 6, 7.
  699. * B - 2, 3, 4, 5.
  700.  
  701.  
  702. DCK SUBR ENTRY/EXIT
  703. SB4 B3
  704. SB5 1
  705. BX3 X6 SAVE (X6)
  706. DCK1 SA4 B4+SBUF+19
  707. SB4 B4-B1
  708. BX6 X4
  709. SA6 B4+SBUF
  710. PL B4,DCK1 IF TRANSFER RESIDUE
  711. NG B7,DCK2 IF NO SPACE PRESENT
  712. SX6 1R
  713. SA6 B3+SBUF
  714. SB3 B3+1
  715. DCK2 SB2 10
  716. MX2 6
  717. DCK3 BX6 X2*X3
  718. LX6 6
  719. SA6 B3+SBUF
  720. SB2 B2-B1 SHIFT COUNT
  721. LX3 6
  722. SB3 B3+1
  723. NZ B2,DCK3 IF COMPLETE STRING
  724. BX3 X7
  725. SB5 B5-B1
  726. ZR B5,DCK2 IF ZERO - PROCESS SECOND WORD
  727. SB5 B1
  728. SB3 B0
  729. DCK4 SB2 10
  730. SX7 0
  731. DCK5 SA3 B3+SBUF
  732. NZ X3,DCK6 IF NOT A 0-CHARACTER
  733. SX3 1R
  734. DCK6 LX7 6
  735. BX7 X7+X3
  736. SB3 B3+B1
  737. SB2 B2-B1
  738. NZ B2,DCK5 IF COMPLETE STRING
  739. SA7 A7+B1
  740. SB5 B5-B1
  741. ZR B5,DCK4 IF ZERO - DO SECOND WORD
  742. EQ DCKX RETURN
  743. DCM SPACE 4,15
  744. ** DCM - DUMP CENTRAL MEMORY.
  745. *
  746. * ENTRY (FW) = FWA OF DUMP.
  747. * (LW) = LIMIT ADDRESS OF DUMP.
  748. *
  749. * EXIT TO *ERR1* - IF PREMATURE EOR/EOF/EOI.
  750. *
  751. * USES A - 0, 1, 2, 3, 5, 6, 7.
  752. * X - ALL.
  753. * B - 2, 6, 7.
  754. *
  755. * CALLS COD, OCT, RDW=.
  756. *
  757. * MACROS READW, WRITEW.
  758.  
  759.  
  760. DCM4 SA1 LA READ ADDRESS
  761. RJ COD CONVERT OCTAL TO DISPLAY
  762. SA1 DB SET BLOCK INDEX
  763. LX6 2*6
  764. SA0 BUF1+X1
  765. SA6 BUF
  766. SB7 X5
  767. RJ OCT LIST MEMORY IN OCTAL
  768.  
  769. DCM SUBR ENTRY/EXIT
  770. SA1 FW SET LINE ADDRESS
  771. SA5 DC SET DUMP CONTROL
  772. SX6 X1
  773. BX7 X7-X7 CLEAR BUFFER INDEX
  774. SA6 LA
  775. SA7 DB
  776. READW I,BUF1,X5 READ FIRST BLOCK
  777. DCM1 SA1 LA CONVERT LINE ADDRESS
  778. RJ COD CONVERT OCTAL TO DISPLAY
  779. SA1 DB SET BLOCK INDEX
  780. LX6 2*6
  781. SA0 BUF1+X1 FWA OF MEMORY TO CONVERT
  782. SA6 BUF DESTINATION ADDRESS - 1
  783. SB7 X5 WORD COUNT
  784. RJ OCT LIST MEMORY IN OCTAL
  785. SA5 DC SET DUMP CONTROL
  786. SA1 DB TOGGLE DUMP BLOCK
  787. SX2 X5
  788. BX6 X1-X2
  789. SA6 A1
  790. BX0 X1-X2
  791. * READW I,BUF1+X0,X5 READ NEXT BLOCK
  792. DCM2 SB6 BUF1+X0
  793. SB7 X5+
  794. SX2 I
  795. RJ RDW= READ SPECIFIED NUMBER OF WORDS
  796. SA3 LA ADVANCE LINE ADDRESS
  797. NZ X1,ERR1 IF EOR/EOF/EOI
  798. SA1 BUF1 LOAD FIRST WORD PAIR
  799. SA2 IND
  800. SA2 X2
  801. LX4 X5,B1 SET WORD COUNT
  802. SB2 X5
  803. BX7 X7-X7 CLEAR DIFFERENCE
  804. SX6 X3+B2
  805. DCM3 BX3 X1-X2 COMPARE WORDS
  806. LX4 1 COUNT WORD
  807. SA1 A1+B1
  808. BX7 X7+X3 ACCUMULATE DIFFERENCES
  809. SA2 A2+B1
  810. NG X4,DCM3 IF .LT. ZERO - LOOP FOR ALL WRODS
  811. SA1 A3-B1 CHECK LIMIT REACHED
  812. IX2 X6-X1
  813. SA6 A3+ STORE ADDRESS
  814. SB6 X2+B2
  815. PL B6,DCM4 IF LIMIT REACHED
  816. NZ X7,DCM1 IF DIFFERENT WORD DETECTED
  817. NG X7,DCM1 IF DIFFERENT WORD DETECTED
  818. NG X5,DCM2 IF DUPLICATE LINE SET
  819. WRITEW O,DCMA,DCMAL
  820. MX1 1 SET DUPLICATE LINE
  821. BX5 X1+X5
  822. EQ DCM2 CONTINUE DUMPING MEMORY
  823.  
  824. DCMA DATA 1H BLANKS
  825. DATA C*DUPLICATED LINES.*
  826. DCMAL EQU *-DCMA
  827. DXP SPACE 4,15
  828. ** DXP - DUMP EXCHANGE PACKAGE.
  829. *
  830. * ENTRY (BUF - BUF+17B) = EXCHANGE PACKAGE.
  831. *
  832. * EXIT CONVERTED EXCHANGE PACKAGE WRITTEN TO OUTPUT BUFFER.
  833. *
  834. * USES A - 0, 1, 2, 5, 6.
  835. * X - 0, 1, 2, 3, 5, 6.
  836. * B - 2.
  837. *
  838. * CALLS COD, OCB.
  839. *
  840. * MACROS WRITEW.
  841.  
  842.  
  843. DXP SUBR ENTRY/EXIT
  844. SA0 0 INITIALIZE REGISTER INDEX
  845. SA5 BUF
  846. DXP1 SA1 DXPA+A0 SET REGISTER NAME
  847. SA2 DXPB
  848. MX0 4*6
  849. SB2 X1 SET SHIFT
  850. BX3 X0*X1
  851. LX3 4*6
  852. IX6 X2+X3
  853. MX0 -18
  854. SA6 BUFO
  855. NG X1,DXP2 IF BLANK FIELD
  856. LX2 X5,B2 EXTRACT REGISTER
  857. BX1 -X0*X2
  858. RJ COD CONVERT OCTAL TO DISPLAY
  859. DXP2 LX6 4*6 CONVERT A-REGISTER
  860. SX3 2RA0-2R +A0
  861. IX6 X6+X3
  862. SA6 A6+B1
  863. LX5 -18
  864. SX0 1RB-1R
  865. MX2 -18
  866. BX1 -X2*X5
  867. RJ COD CONVERT OCTAL TO DISPLAY
  868. LX6 3*6
  869. IX6 X6+X0
  870. SA6 A6+B1
  871. LX5 18 CONVERT B-REGISTER
  872. SX0 1R0-1R +A0
  873. MX2 -18
  874. BX1 -X2*X5
  875. LX0 54
  876. RJ COD CONVERT OCTAL TO DISPLAY
  877. LX6 2*6
  878. IX6 X6+X0
  879. SA6 A6+1
  880. BX6 X6-X6 CLEAR LAST WORD
  881. SA6 A6+B1
  882. WRITEW O,BUFO,A6-BUFO+1
  883. SA0 A0+1 ADVANCE REGISTER
  884. SB2 A0-10B
  885. SA5 BUF+A0 READ REGISTER
  886. NZ B2,DXP1 IF MORE A-REGISTERS TO PROCESS
  887. WRITEW O,(=C* *),B1 SPACE
  888. DXP3 SA2 DXPC CONVERT X-REGISTERS
  889. SX3 A0-10B
  890. LX3 2*6
  891. IX6 X2+X3
  892. SA1 BUF+A0
  893. SA6 BUFO
  894. RJ OCB CONVERT OCTAL BY BYTES
  895. BX6 X6-X6
  896. SA6 A6+B1
  897. WRITEW O,BUFO,A6-BUFO+1
  898. SA0 A0+1 ADVANCE REGISTER
  899. SB2 A0-20B
  900. NZ B2,DXP3 IF NOT ZERO - PROCESS END OF REGISTERS
  901. EQ DXPX RETURN
  902.  
  903. DXPA VFD 24/0HP,36/24
  904. VFD 24/0HRA,36/24
  905. VFD 24/0HFL,36/24
  906. VFD 24/0HEM,36/12
  907. VFD 24/0HRAE,36/18
  908. VFD 24/0HFLE,36/18
  909. VFD 24/0HMA,36/24
  910. VFD 60/1H
  911. DXPB DATA 6L
  912. DXPC DATA 4AX0
  913. DXPAL EQU *-DXPA LENGTH OF EXCHANGE PACKAGE
  914. ERR SPACE 4,10
  915. ** ERR - PROCESS ERROR.
  916. *
  917. * MACROS ABORT, MESSAGE.
  918.  
  919.  
  920. ERR MESSAGE X2,0,R ISSUE DAYFILE MESSAGE
  921. ABORT
  922.  
  923. ERR1 SX2 ERRA * UNKNOWN FILE FORMAT.*
  924. EQ ERR PROCESS ERROR
  925.  
  926. ERR2 SX2 ERRB * FWA .GE. LWA+1.*
  927. EQ ERR PROCESS ERROR
  928.  
  929. ERR3 SX2 ERRC * DISPLAY DUMP NOT ALLOWED TO TERMINAL.*
  930. EQ ERR PROCESS ERROR
  931.  
  932. ERR4 SX2 MBUF * XXXXXXX NOT FOUND.*
  933. EQ ERR PROCESS ERROR
  934.  
  935. ERRA DATA C* UNKNOWN FILE FORMAT.*
  936. ERRB DATA C* FWA .GE. LWA+1.*
  937. ERRC DATA C* DISPLAY DUMP NOT ALLOWED TO TERMINAL.*
  938. OCB SPACE 4,15
  939. ** OCB - CONVERT OCTAL BY BYTES.
  940. *
  941. * ENTRY (X1) = WORD TO CONVERT.
  942. * (A6) = BUFFER ADDRESS.
  943. *
  944. * EXIT (A6) = BUFFER ADDRESS ADVANCED.
  945. *
  946. * USES A - 1, 6, 7.
  947. * X - ALL.
  948. *
  949. * CALLS WOD.
  950.  
  951.  
  952. OCB SUBR ENTRY/EXIT
  953. RJ WOD CONVERT WORD (ABCDEFGHIJ KLMNOPQRST)
  954. SA1 OCBA
  955. MX2 -2*6
  956. BX5 -X2*X6 ........IJ
  957. MX0 4*6
  958. BX3 X0*X6 ABCD......
  959. LX0 -4*6
  960. IX4 X1+X3 ABCD*....*
  961. BX2 X0*X6
  962. LX2 -6 .....EFGH.
  963. BX6 X4+X2 ABCD*EFGH*
  964. LX7 -4*6 QRSTKLMNOP
  965. SA6 A6+B1
  966. MX0 4*6
  967. BX6 X0*X7 QRST......
  968. LX5 8*6 IJ........
  969. BX7 -X0*X7 ....KLMNOP
  970. LX7 2*6 ..KLMONP..
  971. IX2 X5+X7 IJKLMNOP..
  972. BX3 X0*X2 IJKL......
  973. LX0 -4*6
  974. IX4 X1+X3 IJKL*....*
  975. BX5 X0*X2 ....MNOP..
  976. SA1 A1+B1 ....******
  977. LX5 -6 .....MNOP.
  978. IX7 X4+X5 IJKL*MNOP*
  979. BX6 X1+X6 QRST******
  980. SA7 A6+B1
  981. SA6 A7+B1
  982. EQ OCBX RETURN
  983.  
  984. OCBA VFD 24/0,6/1R ,24/0,6/1R
  985. VFD 24/0,36/6H
  986. OCT SPACE 4,15
  987. ** OCT - LIST OCTAL OR OCTAL WITH DISPLAY.
  988. *
  989. * ENTRY (B7) = WORD COUNT.
  990. * (A0) = WORD ADDRESS.
  991. * (A6) = DESTINATION ADDRESS - 1.
  992. *
  993. * EXIT NONE.
  994. *
  995. * USES A - 1, 2, 6, 7.
  996. * X - ALL.
  997. * B - 6, 7.
  998. *
  999. * CALLS WOD, SFN.
  1000. *
  1001. * MACROS WRITEW.
  1002.  
  1003.  
  1004. OCT SUBR ENTRY/EXIT
  1005. SA1 A0 READ FIRST WORD
  1006. SB6 B7
  1007. SA2 DF READ CONVERSION TYPE FLAG
  1008. ZR X2,OCT2 IF DISPLAY DUMP REQUESTED
  1009. OCT1 RJ WOD CONVERT WORD TO DISPLAY
  1010. MX5 5*6
  1011. BX3 X5*X6 ABCDE.....
  1012. SA2 OCTA
  1013. LX3 -4*6 ....ABCDE.
  1014. BX1 -X5*X6 .....FGHIJ
  1015. IX6 X2+X3 ****ABCDE*
  1016. SA2 A2+B1
  1017. LX1 5*6 FGHIJ.....
  1018. BX4 -X5*X7 .....PQRST
  1019. MX3 -4*6
  1020. IX2 X2+X1 FGHIJ*....
  1021. SA6 A6+B1
  1022. LX7 -6*6 OPQRSTKLMN
  1023. BX0 -X3*X7 ......KLMN
  1024. SA3 A2+B1
  1025. IX6 X2+X0 FGHIJ*KLMN
  1026. MX5 1*6
  1027. SA6 A6+B1
  1028. IX4 X3+X4 ***.*PQRST
  1029. SB7 B7-B1
  1030. BX3 X5*X7 O.........
  1031. SA1 A1+B1 NEXT DUMP BLOCK WORD
  1032. LX4 3*6 .*PQRST***
  1033. IX6 X3+X4 O*PQRST***
  1034. SA6 A6+B1
  1035. NZ B7,OCT1 IF NOT ZERO - CONTINUE CONVERTING
  1036. MX6 0
  1037. SA6 A6+B1
  1038. WRITEW O,BUF,A6-BUF+1
  1039. EQ OCTX RETURN
  1040.  
  1041. * LIST MEMORY WITH DISPLAY CODE INTERPRETATION.
  1042.  
  1043. OCT2 RJ WOD CONVERT WORD TO OCTAL
  1044. SA6 A6+1
  1045. SA7 A6+1
  1046. OCT3 SA1 A1+1 NEXT DUMP BLOCK
  1047. RJ WOD CONVERT WORD TO OCTAL
  1048. SB7 B7-1
  1049. ZR B7,OCT4 IF END OF NUMBER FORMATTING
  1050. SB2 3
  1051. SB3 B2-B7
  1052. RJ DCK STRING OUT DATA
  1053. EQ OCT3 PROCESS NEXT WORD
  1054.  
  1055. OCT4 SB6 B1
  1056. SA1 A0-B1
  1057. SB3 3
  1058. OCT5 SA1 A1+B1
  1059. BX6 X1
  1060. SA1 A1+B1
  1061. BX7 X1
  1062. RJ DCK STRING OUT DATA
  1063. SB6 B6-B1
  1064. SB7 B7-B1
  1065. SB3 4
  1066. PL B6,OCT5 IF POSITIVE - CONTINUE COMMENTS
  1067. MX6 0
  1068. SX7 B0
  1069. RJ DCK FLUSH BUFFER AND ADD TERMINATING BYTE
  1070. MX2 24
  1071. SA1 BUF+13
  1072. BX6 X2*X1 SET TERMINATION BYTE
  1073. SA6 A1
  1074. WRITEW O,BUF,A7-BUF
  1075. EQ OCTX RETURN
  1076.  
  1077. OCTA BSS 0
  1078. VFD 24/1H ,30/0,6/1H
  1079. VFD 30/0,6/1H ,24/0
  1080. VFD 18/1H ,6/0,6/1H ,30/0
  1081. OCTB CON 1H
  1082. SKW SPACE 4,10
  1083. ** SKW - SKIP WORDS.
  1084. *
  1085. * ENTRY (X0) = WORD COUNT.
  1086. *
  1087. * USES X - 0.
  1088. *
  1089. * MACROS READW.
  1090.  
  1091.  
  1092. SKW SUBR ENTRY/EXIT
  1093. SKW1 ZR X0,SKWX IF NO WORDS TO SKIP - RETURN
  1094. SX0 X0-100B
  1095. PL X0,SKW2 IF .GE. 100B WORDS TO SKIP
  1096. READW I,BUF,X0+100B SKIP
  1097. EQ SKWX RETURN
  1098.  
  1099. SKW2 READW I,BUF,100B SKIP
  1100. EQ SKW1 LOOP
  1101. WTL SPACE 4,10
  1102. ** WTL - WRITE TITLE LINES.
  1103. *
  1104. * ENTRY (A0) = ADDRESS OF SECOND TITLE LINE.
  1105. *
  1106. * MACROS CLOCK, WRITEC, WRITEW.
  1107.  
  1108.  
  1109. WTL SUBR ENTRY/EXIT
  1110. CLOCK TM GET TIME
  1111. WRITEW O,WTLA,WTLAL WRITE LINE ONE
  1112. WRITEC O,A0 WRITE LINE TWO
  1113. WRITEW O,(=C* *),B1 SPACE
  1114. WRITEW O,WTLB,B1 SET AUTO EJECT
  1115. EQ WTLX RETURN
  1116.  
  1117. WTLA BSS 0 TITLE LINES
  1118. DATA 10H1 EJECT PAGE
  1119. DATA 10HKTSDMP -
  1120. LB CON 0 LABEL
  1121. DD CON 0 DUMP DATE
  1122. DT CON 0 DUMP TIME
  1123. DATA 10H BLANKS
  1124. DA CON 0 CURRENT DATE
  1125. TM CON 0 CURRENT TIME
  1126. CON 0 LINE TERMINATOR
  1127. WTLAL EQU *-WTLA
  1128. WTLB DATA 1LR SET AUTO EJECT
  1129. SPACE 4
  1130. * COMMON DECKS.
  1131.  
  1132.  
  1133. *CALL COMCCDD
  1134. *CALL COMCCIO
  1135. *CALL COMCCOD
  1136. *CALL COMCCPM
  1137. *CALL COMCPFM
  1138. *CALL COMCRDW
  1139. *CALL COMCSFN
  1140. *CALL COMCSTF
  1141. *CALL COMCSYS
  1142. *CALL COMCWOD
  1143. *CALL COMCWTC
  1144. *CALL COMCWTW
  1145. BUFFERS TITLE BUFFERS.
  1146. * BUFFERS.
  1147.  
  1148.  
  1149. USE BUFFERS.
  1150.  
  1151. BUFFERS BSS 0
  1152. IBUF EQU BUFFERS INPUT FILE BUFFER
  1153. OBUF EQU IBUF+IBUFL OUTPUT FILE BUFFER
  1154. BUF EQU OBUF+OBUFL WORKING BUFFER
  1155. BUFO EQU BUF+20B EXCHANGE PACKAGE OUTPUT BUFFER
  1156. BUF1 EQU BUF+400B DUMP BUFFERS
  1157. BUF2 EQU BUF1+4 DUMP BUFFER
  1158. SBUF EQU BUF1-24 STRING BUFER FOR DISPLAY CODE
  1159. RFL= EQU BUF2+10B
  1160.  
  1161. USE *
  1162. PRS TITLE PRESET.
  1163. ** PRS - PRESET KTSDMP.
  1164. *
  1165. * EXIT (X5) = .GT. 0 - APPEND *IF* TO *P*.
  1166. * (X5) = 0 - LIST *IF* TO *OF*.
  1167. * (DA) = CURRENT DATE.
  1168. * (DF) = 0 - LIST WITH DISPLAY CODE.
  1169. * (DF) = 1 - LIST WITH OCTAL ONLY.
  1170. *
  1171. * USES B - 7.
  1172. * A - 1, 2, 3, 6, 7.
  1173. * X - 0, 1, 2, 3, 5, 6, 7.
  1174. *
  1175. * MACROS ABORT, DATE, MESSAGE.
  1176.  
  1177.  
  1178. ORG BUFFERS
  1179.  
  1180. PRS SUBR ENTRY/EXIT
  1181. SA1 ACTR READ ARGUMENT COUNT
  1182. SA2 ARGR READ FIRST ARGUMENT
  1183. SB7 X1
  1184. MX0 42
  1185. ZR B7,PRS2 IF NO ARGUMENTS - COMPLETE PRESETTING
  1186. SX3 3
  1187. ZR X2,PRS1 IF DEFAULT INPUT FILE
  1188. BX6 X0*X2 SET INPUT FILE NAME
  1189. IX7 X6+X3
  1190. SA7 I
  1191. PRS1 SB7 B7-B1 DECREMENT NUMBER OF REMAINING ARGUMENTS
  1192. ZR B7,PRS2 IF END OF ARGUMENTS
  1193. SA2 A2+B1 READ SECOND ARGUMENT
  1194. ZR X2,PRS2 IF DEFAULT OUTPUT FILE NAME
  1195. BX6 X0*X2 STORE OUTPUT FILE NAME
  1196. IX7 X6+X3
  1197. SB7 B7-1 DECREMENT ARGUMENT COUNT
  1198. SA7 O
  1199. PRS2 SA1 I CHECK FILE NAME CONFLICT
  1200. SA3 O
  1201. BX6 X1-X3
  1202. BX7 X0*X6
  1203. ZR X7,PRS5 IF I = O
  1204. ZR B7,PRS4 IF ARGUMENT COUNT EXHAUSTED
  1205. SA2 A2+B1 READ *APPEND* PARAMETER
  1206. SB7 B7-B1
  1207. BX2 X0*X2
  1208. ZR X2,PRS3 IF NULL ARGUMENT
  1209. SX5 1 SET *APPEND* FLAG
  1210. ZR B7,PRS4 IF ARGUMENT COUNT EXHAUSTED
  1211. PRS3 SA2 A2+B1 READ *OCTAL* PARAMETER
  1212. BX2 X0*X2
  1213. ZR X2,PRS4 IF NO PARAMETER SPECIFIED
  1214. SX6 B1
  1215. SA6 DF
  1216. PRS4 DATE DA
  1217. EQ PRSX RETURN
  1218.  
  1219. PRS5 MESSAGE PRSA,R
  1220. ABORT
  1221.  
  1222. PRSA DATA C* FILE NAME CONFLICT.*
  1223. SPACE 4
  1224. END