Table of Contents

QDSPLAY

Table Of Contents

  • [00008] QDSPLAY - QUEUED FILE DISPLAY.
  • [00174] ASSEMBLY CONSTANTS.
  • [00212] DATA STORAGE.
  • [00248] TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
  • [00265] TVST - TABLE OF VALID STATUSES.
  • [00359] MAIN PROGRAM.
  • [00361] MAIN PROGRAM LOOP.
  • [00380] FUNCTION PROCESSORS.
  • [00382] ADV - ADVANCE DISPLAY FORWARD.
  • [00429] BOI - BEGINNING OF FILE FUNCTION PROCESSOR.
  • [00453] DAY - *DAYFILE* FUNCTION PROCESSOR.
  • [00498] DRP - *DROP* FUNCTION PROCESSOR.
  • [00515] END - *END* FUNCTION PROCESSOR.
  • [00533] HLP - *HELP* FUNCTION PROCESSOR.
  • [00644] LNE - SET *L* DISPLAY FORMAT TO LINE MODE.
  • [00678] OCT - SETS THE *L* DISPLAY FORMAT TO OCTAL MODE.
  • [00712] SLF - SKIP LINES FORWARD.
  • [00739] SPF - SKIP PAGES FORWARD.
  • [00787] SRB - SKIP RECORDS BACKWARD.
  • [00832] SRF - SKIP RECORDS FORWARD.
  • [00872] SSP - *SYSTEM SECTOR* FUNCTION PROCESSOR.
  • [00898] TOG - TOGGLE BACK TO FILE DISPLAY.
  • [00924] SUBROUTINES.
  • [00926] BLD - BUILD *L* DISPLAY DATA.
  • [01014] CMP - COMMAND FUNCTION PROCESSOR.
  • [01144] CMPA - PAGE TABLE.
  • [01154] TCOM - TABLE OF COMMANDS.
  • [01183] COI - CONVERT OPERATOR INPUT.
  • [01211] DCM - DETERMINE CHARACTER MODE.
  • [01245] DLD - DROP *L* DISPLAY.
  • [01283] EFP - EXECUTE FUNCTION PROCESSOR.
  • [01299] FOD - FORMAT OCTAL DATA.
  • [01390] ILD - INPUT *L* DISPLAY.
  • [01421] OLD - OUTPUT *L* DISPLAY DATA.
  • [01430] RNR - READ NEW RECORD.
  • [01461] RQF - READ QUEUED FILE.
  • [01490] RPV - REPRIEVE PROCESSOR.
  • [01508] RSC - REMOVE SPECIAL CHARACTERS.
  • [01596] SEM - SET ERROR MESSAGE.
  • [01628] TLD - TRANSFER LINES OF DATA.
  • [01753] BUFFER AREA.
  • [01772] PRESET.
  • [01774] PRS - PRESET ARGUMENT PROCESSING.
  • [01928] ERR - ERROR PROCESSOR.
  • [01949] TQTG - TABLE OF QUEUE TYPES FOR *GET* FUNCTION.

Source Code

QDSPLAY.txt
  1. IDENT QDSPLAY,FWA,QDSPLAY
  2. ABS
  3. ENTRY QDSPLAY
  4. ENTRY RFL=
  5. ENTRY SSJ=
  6. SYSCOM B1 DEFINE (B1) = 1
  7. SST
  8. TITLE QDSPLAY - QUEUED FILE DISPLAY.
  9. SPACE 4,10
  10. *COMMENT QDSPLAY - QUEUED FILE DISPLAY.
  11. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  12. SPACE 4,10
  13. ***** QDSPLAY - DISPLAY QUEUED FILE.
  14. *
  15. * C. P. GERR. 81/12/01.
  16. SPACE 4,10
  17. *** *QDSPLAY* IS AN *L* DISPLAY UTILITY INITIATED
  18. * BY A CONSOLE OPERATOR (VIA *DSD*) WHICH DISPLAYS
  19. * PORTIONS OF A QUEUED FILE.
  20. SPACE 4,10
  21. *** COMMAND FORMAT.
  22. *
  23. *
  24. * QDSPLAY(JSN)
  25. *
  26. * JSN = JOB SEQUENCE NUMBER OF QUEUED FILE.
  27. *
  28. * ONLY INPUT, PRINT, TERMINAL WAIT, PUNCH AND PLOT TYPE FILES
  29. * ARE DISPLAYED.
  30. SPACE 4,10
  31. *** DAYFILE MESSAGES.
  32. *
  33. * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES.
  34. *
  35. * * USER ACCESS NOT VALID.*
  36. * CALLING JOB WAS NOT SYSTEM ORIGIN.
  37. *
  38. * * INCORRECT JSN.*
  39. * JSN WAS GREATER THAN 4 CHARACTERS OR LESS THAN 3
  40. * CHARACTERS.
  41. *
  42. * * ARGUMENT ERROR.*
  43. * JSN WAS NOT ENTERED IN THE COMMAND CALL OR
  44. * MORE THAN ONE PARAMETER WAS ENTERED.
  45. *
  46. * * JSN XXXX NOT FOUND.*
  47. * JSN XXXX WAS NOT FOUND IN INPUT, PRINT, PLOT, TERMINAL
  48. * WAIT OR PUNCH QUEUE. *XXXX* IS REPLACED BY JSN.
  49. *
  50. * * CANNOT ACCESS L-DISPLAY.*
  51. * *DSD* DETECTED AN ERROR CONDITION WHEN INPUT WAS
  52. * ENTERED VIA THE *L* DISPLAY.
  53. *
  54. SPACE 4,10
  55. *** *L* DISPLAY ERROR MESSAGES.
  56. *
  57. * THESE MESSAGES ARE ISSUED THROUGH THE *L* DISPLAY.
  58. *
  59. * *NO DAYFILE FOUND.*
  60. * DAYFILE FOR JOB DOES NOT EXIST.
  61. *
  62. * *UNRECOGNIZABLE DIRECTIVE.*
  63. * INCORRECT COMMAND WAS ENTERED VIA *L* DISPLAY.
  64. *
  65. * *DIRECTIVE NOT ALLOWED.*
  66. * A SKIP COMMAND WAS ENTERED WHEN *SS* OR *HELP* DATA
  67. * WAS DISPLAYED OR *L* DISPLAY FORMAT WAS IN OCTAL
  68. * MODE.
  69. *
  70. * *INCORRECT SKIP COUNT.*
  71. * AN ASTERISK WAS PRESENT ON A SKIP LINE, SKIP PAGE, OR
  72. * SKIP RECORD BACKWARD COMMAND OR THE SKIP COUNT WAS
  73. * GREATER THAN 377777B OR THE SKIP COUNT WAS NOT
  74. * NUMERIC.
  75. *
  76. * *EXCESS PARAMETERS.*
  77. * A SECOND PARAMETER WAS SPECIFIED ON A COMMAND WHICH
  78. * WAS NOT A SKIP COMMAND.
  79. *
  80. * *SYSTEM ABORT.*
  81. * A SYSTEM ERROR WAS ENCOUNTERED.
  82. SPACE 4,10
  83. *** *L* DISPLAY INFORMATIVE MESSAGES.
  84. *
  85. * THESE MESSAGES ARE ISSUED THROUGH THE *L* DISPLAY.
  86. *
  87. * *DROP PROCESSED.*
  88. * A DROP COMMAND WAS ENTERED VIA *L* DISPLAY.
  89. * THE FILE HAS BEEN REMOVED FROM THE QUEUE AND THE
  90. * UTILITY HAS TERMINATED.
  91. *
  92. * *END PROCESSED.*
  93. * AN END COMMAND WAS ENTERED VIA *L* DISPLAY.
  94. * THE FILE HAS BEEN RETURNED TO THE QUEUE AND THE
  95. * UTILITY HAS TERMINATED.
  96. SPACE 4,10
  97. *** *L* DISPLAY COMMANDS.
  98. *
  99. * THE FOLLOWING ARE LEGAL COMMANDS TO BE ENTERED BY THE
  100. * OPERATOR THROUGH THE *L* DISPLAY.
  101. *
  102. * L.HELP. LIST *L* DISPLAY DIRECTIVES FOR *QDSPLAY*
  103. * UTILITY.
  104. *
  105. * L.DROP. DROP THE FILE FROM THE QUEUE AND TERMINATE
  106. * UTILITY.
  107. *
  108. * L.END. RETURN THE FILE TO THE QUEUE AND TERMINATE
  109. * UTILITY.
  110. *
  111. * L.LINE. SET FILE DISPLAY MODE TO LINE FORMAT.
  112. * (MODE DOES NOT APPLY TO SYSTEM SECTOR
  113. * DISPLAY WHICH IS ALWAYS IN OCTAL DISPLAY
  114. * FORMAT.)
  115. *
  116. * L.OCTAL. SET FILE DISPLAY MODE TO OCTAL FORMAT.
  117. *
  118. * L.SS. DISPLAY FROM BEGINNING OF SYSTEM SECTOR
  119. * IN OCTAL FORMAT.
  120. *
  121. * L.*. RETURN FROM *HELP* OR *SS* DISPLAY TO
  122. * DISPLAY FILE AT PREVIOUS POSITION
  123. * (IGNORED IF ALREADY DISPLAYING FILE).
  124. *
  125. * L.BACK. RETURN FROM *HELP* OR *SS* DISPLAY TO
  126. * DISPLAY FILE AT PREVIOUS POSITION
  127. * (IGNORED IF ALREADY DISPLAYING FILE).
  128. *
  129. * L.+. ADVANCE DISPLAY FORWARD TO NEXT SCREEN
  130. * OF DATA. CIRCULAR ADVANCE IS DONE FOR
  131. * SYSTEM SECTOR DISPLAY.
  132. *
  133. * L.-. PAGE BACKWARD TO PREVIOUS SCREEN OF DATA.
  134. * COMMAND IS VALID ONLY FOR HELP DISPLAY.
  135. *
  136. * L.BOI. POSITION FILE TO BEGINNING OF INFORMATION
  137. * AND DISPLAY DATA.
  138. *
  139. * L.DAY. POSITION FILE TO DAYFILE RECORD AND
  140. * DISPLAY DATA (MEANINGFUL FOR SOME PRINT
  141. * FILES).
  142. *
  143. * L.SL. SKIP 1 OR N LINES FORWARD IN FILE AND
  144. * L.SL,N. DISPLAY DATA. A LINE IS BASED ON 14D WORD
  145. * MAXIMUM PRINT LINE SIZE. SKIP PREMATURELY
  146. * STOPS ON EOR/EOF/EOI. COMMAND IS ALLOWED
  147. * ONLY WHEN DISPLAYING DATA IN LINE FORMAT.
  148. * COMMAND IS NOT ALLOWED UNDER *HELP* OR
  149. * *SS* DISPLAY.
  150. *
  151. * L.SP. SKIP 1 OR N PAGES FORWARD IN FILE AND
  152. * L.SP,N. DISPLAY DATA. A PAGE IS BASED ON
  153. * CARRIAGE CONTROL 1 AS FIRST CHARACTER
  154. * OF LINE. SKIP PREMATURELY STOPS ON
  155. * EOR/EOF/EOI. COMMAND IS ALLOWED ONLY
  156. * WHEN DISPLAYING DATA IN LINE FORMAT.
  157. * COMMAND IS NOT ALLOWED UNDER *HELP* OR
  158. * *SS* DISPLAY.
  159. *
  160. * L.SR. SKIP 1 OR N RECORDS OR TO END OF
  161. * L.SR,N. INFORMATION (N=* OPTION) IN FILE AND
  162. * L.SR,*. DISPLAY DATA. SKIP PREMATURELY STOPS AT
  163. * EOI. COMMAND IS NOT ALLOWED UNDER *HELP*
  164. * OR *SS* DISPLAY.
  165. *
  166. * L.BR. SKIP 1 OR N RECORDS BACKWARD IN FILE AND
  167. * L.BR,N. DISPLAY DATA. SKIP PREMATURELY STOPS
  168. * AT BOI. COMMAND IS NOT ALLOWED UNDER
  169. * *HELP* OR *SS* DISPLAY.
  170. *
  171. * SKIP LINE/PAGE/RECORD COUNTS ARE ASSUMED DECIMAL BUT
  172. * POST-RADIX B OR D CAN BE SPECIFIED. MAXIMUM SKIP COUNT
  173. * ACCEPTED IS 377777B.
  174. TITLE ASSEMBLY CONSTANTS.
  175. SPACE 4,10
  176. **** ASSEMBLY CONSTANTS.
  177.  
  178. CNCI EQU 4 NO COMMAND INPUT (*DSD* RETURN STATUS)
  179. DLSZ EQU 6 NUMBER OF WORDS PER LINE ON *L* DISPLAY
  180. ERML EQU 3 ERROR MESSAGE LENGTH
  181. MLLD EQU 18 MAXIMUM NUMBER OF LINES ON *L* DISPLAY
  182. PLSZ EQU 14 PRINTER LINE SIZE
  183. LBHRL EQU 6 *L* DISPLAY HEADER LENGTH
  184. LBUFL EQU LDSY-LBHRL LENGTH OF *L* DISPLAY BUFFER
  185. QBUFL EQU 701B QUEUED BUFFER SIZE
  186. ERRNG 1000B-QBUFL PREVENT BUFFER AHEAD
  187. SBUFL EQU 100B LENGTH OF SYSTEM SECTOR BUFFER
  188. WBUFL EQU LBUFL LENGTH OF WORKING BUFFER
  189. XCDT EQU 1 X - COORDINATE FOR *L* DISPLAY
  190. YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY
  191. LCOMU SET LCOM/2+1 INPUT BUFFER PACKED
  192. LLBF EQU LBUFL/5 *L* DISPLAY BUFFER FOR OCTAL MODE
  193. MLLB MIN LLBF,MLLD *L* DISPLAY BUFFER FOR OCTAL MODE
  194. ****
  195. SPACE 4,10
  196. ** COMMON DECKS.
  197.  
  198.  
  199. *CALL COMCMAC
  200. *CALL COMCCMD
  201. *CALL COMCDCM
  202. *CALL COMCDCP
  203. *CALL COMSDSP
  204. *CALL COMSEVT
  205. *CALL COMSIOQ
  206. *CALL COMSJIO
  207. *CALL COMSQAC
  208. *CALL COMSSSD
  209. *CALL COMSSSE
  210. IOSS. EQU IOSS-BFMS-2
  211. *CALL COMSSSJ
  212. TITLE DATA STORAGE.
  213. ORG 111B
  214. FWA BSS 0
  215. SPACE 4,10
  216. ** DATA STORAGE.
  217.  
  218.  
  219. BLNS DATA 8C BLANK LINES
  220. DATA 8C
  221. DATA 8C
  222. DATA 8C
  223. DATA 8C
  224. DATA 8C
  225. DATA 8C
  226. DATA 8C
  227. DATA 8C
  228. DATA 8C
  229. DATA 8C
  230. DATA 8C
  231. DATA 8C
  232. DATA 8C
  233. DATA 8C
  234. DATA 8C
  235. DATA 8C
  236. DATA 8C
  237. DATA 8C
  238. DATA 8C
  239. CLDF CON HLPA CURRENT *L* DISPLAY FWA
  240. DFLG CON 0 RANDOM ADDRESS OF DAYFILE
  241. ERIB CON 0 ENTIRE RECORD IN BUFFER FLAG
  242. FETA CON 0 FET ADDRESS
  243. SCNT CON 0 SKIP COUNT
  244. STAT CON SHLP FILE STATUS
  245. PSTT CON SBOI PREVIOUS FILE STATUS
  246. MODE CON 0 FILE DISPLAY MODE (O=LINE, 1=OCTAL)
  247. SPACE 4,10
  248. ** TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
  249.  
  250.  
  251. TMLD BSS 0
  252. LOC 0
  253. DATA C* *
  254. DRPM DATA C*DROP PROCESSED. *
  255. EABT DATA C*SYSTEM ABORT. *
  256. EDNA DATA C*DIRECTIVE NOT ALLOWED. *
  257. EEPS DATA C*EXCESS PARAMETERS. *
  258. EISC DATA C*INCORRECT SKIP COUNT. *
  259. ENDF DATA C*NO DAYFILE FOUND. *
  260. ENDM DATA C*END PROCESSED. *
  261. EUND DATA C*UNRECOGNIZABLE DIRECTIVE. *
  262. EVOH DATA C*VALID ONLY FOR HELP DISPLAY.*
  263. LOC *O
  264. TVST SPACE 4,10
  265. ** TVST - TABLE OF VALID STATUSES.
  266. *
  267. * THIS TABLE CONSISTS OF A VALUE TO BE DISPLAYED
  268. * IN THE HEADER FOR FILE STATUS.
  269. * DUE TO CODE REQUIREMENTS, THIS TABLE MUST BE MAINTAINED
  270. * IN THE FOLLOWING ORDER AND LOCATION POSITIONS.
  271.  
  272.  
  273. TVST BSS 0
  274. LOC 0
  275. SHLP DATA L* = .* *HELP* STATUS
  276. ERRNZ SHLP CODE DEPENDS UPON VALUE BEING 0
  277. SSYS DATA L* = SS. * SYSTEM SECTOR STATUS
  278. ERRNZ SSYS-1 CODE DEPENDS UPON VALUE BEING 1
  279. SBOI DATA L* = BOI.* BEGINNING OF INFORMATION STATUS
  280. SBOR DATA L* = BOR.* BEGINNING OF RECORD STATUS
  281. SMID DATA L* = .* MIDDLE OF RECORD STATUS
  282. SEOI DATA L* = EOI.* END OF INFORMATION STATUS
  283. SEOF DATA L* = EOF.* END OF FILE STATUS
  284. SEOR DATA L* = EOR.* END OF RECORD STATUS
  285. LOC *O
  286. SPACE 4,10
  287. ** *QAC* PARAMETER BLOCK.
  288.  
  289.  
  290. QACPB BSS 0
  291. QACR VFD 50/0,9/GTFC,1/0 REQUEST PREFIX PORTION
  292. VFD 36/0,6/GTLB-5,18/0
  293. VFD 60/0
  294. VFD 60/0
  295. VFD 60/0
  296. QACS VFD 60/0 SELECTION CRITERIA PORTION
  297. VFD 60/0
  298. VFD 36/0,12/DLSF,12/JSSF+ZPSF
  299. VFD 12/INQQ,48/0
  300. VFD 18/0,18/3H***,24/0
  301. VFD 60/0
  302. VFD 60/0
  303. QACF VFD 60/0 *GET* FUNCTION PORTION
  304. VFD 60/0
  305. VFD 60/0
  306. VFD 60/0
  307. SPACE 4,10
  308. ** *ROUTE* PARAMETER BLOCK.
  309.  
  310.  
  311. ROPB BSSZ EPBL
  312. .R BSS 0
  313. ORG ROPB+1
  314. VFD 42/0,18/FREB EXTENDED BLOCK PRESENT
  315. ORG ROPB+7
  316. VFD 42/0,18/EFRQ SPECIAL REQUEUE OPERATION FLAG
  317. ORG .R
  318. SPACE 4,10
  319. ** *ROLLOUT* PARAMETER BLOCK.
  320.  
  321.  
  322. ROLB VFD 30/0,18/LINE,12/0
  323. SPACE 4,10
  324. ** *REPRIEVE* PARAMETER BLOCK.
  325.  
  326.  
  327. RPB BSS 0
  328. VFD 36/0,12/RPBL,12/0
  329. VFD 30/0,30/RPV
  330. BSSZ 27B
  331. RPBL EQU *-RPB
  332. SPACE 4,10
  333. ** *SSJ=* PARAMETER BLOCK.
  334.  
  335.  
  336. SSJ= BSS 0
  337. VFD 48/0,12/IRSI
  338. BSSZ SSJL-1
  339. SPACE 4,5
  340. ** *L* DISPLAY BUFFER HEADER.
  341.  
  342.  
  343. LBHR DATA C* QDSPLAY. JSN = $$$$. QFT = ++++. IC = --. STATUS =
  344. , .*
  345. .LBHRL EQU *-LBHR *L* DISPLAY HEADER LENGTH
  346. ERRNZ .LBHRL-LBHRL *LBHRL* NEEDS TO BE REDEFINED
  347. SPACE 4,10
  348. ** FET DEFINITIONS.
  349.  
  350.  
  351. CON 0 SAVE PREVIOUS *IN* FOR QUEUED FILE
  352. CON 0 SAVE PREVIOUS *OUT* FOR QUEUED FILE
  353. Q RFILEB QBUF,QBUFL,(FET=9) QUEUED FILE FET
  354.  
  355.  
  356. CON 0 SAVE PREVIOUS *IN* FOR SYSTEM SECTOR FILE
  357. CON 0 SAVE PREVIOUS *OUT* FOR SYSTEM SECTOR FILE
  358. S FILEB SBUF,SBUFL+1,(FET=7) SYSTEM SECTOR FET
  359. TITLE MAIN PROGRAM.
  360. QDSPLAY SPACE 4,10
  361. ** QDSPLAY - MAIN PROGRAM LOOP.
  362. *
  363. * CALLS BLD, CMP, EFP, ILD, OLD, PRS, SEM.
  364.  
  365.  
  366. QDSPLAY BSS 0 ENTRY
  367. RJ PRS EXECUTE PRESET
  368.  
  369. * EXECUTE LOOP TO PROCESS COMMAND.
  370.  
  371. QDS1 RJ EFP EXECUTE FUNCTION PROCESSOR
  372. ZR X2,QDS2 IF DISPLAY NOT TO BE REBUILT
  373. RJ BLD BUILD *L* DISPLAY
  374. QDS2 RJ OLD OUTPUT *L* DISPLAY DATA.
  375. RJ ILD INPUT *L* DISPLAY DATA.
  376. RJ CMP COMMAND PROCESSOR
  377. ZR B2,QDS1 IF NO ERROR IN COMMAND
  378. RJ SEM PROCESS ERROR
  379. EQ QDS2 UPDATE *L* DISPLAY
  380. TITLE FUNCTION PROCESSORS.
  381. ADV SPACE 4,20
  382. ** ADV - ADVANCE DISPLAY FORWARD.
  383. *
  384. * *ADV* ADVANCES THE *L* DISPLAY TO DISPLAY NEXT PORTION OF
  385. * DATA. ADVANCE IS CIRCULAR FOR SYSTEM SECTOR.
  386. *
  387. * EXIT (X2) = FET ADDRESS OF QUEUED FILE IF FILE STATUS IS
  388. * NOT *SS*.
  389. * (X2) = FET ADDRESS OF SYSTEM SECTOR IF FILE STATUS
  390. * IS *SS*.
  391. * (B2) = 0 (NO ERROR), IF *HELP* DISPLAY STATUS.
  392. *
  393. * USES X - 2, 3, 4, 6, 7.
  394. * A - 2, 3, 4, 6, 7.
  395. * B - 2, 3, 5.
  396. *
  397. * CALLS RNR.
  398.  
  399.  
  400. ADV2 SB5 SEOI
  401. LT B3,B5,ADVX IF NOT EOR/EOF/EOI
  402. SX6 SBOR BEGINNING OF RECORD STATUS
  403. RJ RNR READ NEW RECORD
  404.  
  405. ADV SUBR ENTRY/EXIT
  406. SA2 STAT GET FILE STATUS
  407. SB2 B0 NO ERROR
  408. SB3 X2
  409. SX2 S SET SYSTEM SECTOR FET
  410. EQ B3,B1,ADV1 IF *SS* STATUS PRESENT
  411. SX2 Q SET QUEUED FILE FET
  412. SX6 SMID SET FILE STATUS
  413. SA6 STAT
  414. ADV1 SA3 X2-2 GET PREVIOUS *IN*
  415. SA4 A3+B1 GET PREVIOUS *OUT*
  416. BX6 X3
  417. LX7 X4
  418. SA6 X2+2 RESET TO ADVANCED FET POINTERS
  419. IX3 X3-X4 COMPARE *IN* AND *OUT*
  420. SA7 A6+1
  421. NZ X3,ADVX IF *IN* .NE. *OUT*
  422. NE B3,B1,ADV2 IF NOT *SS* DISPLAY
  423. SX7 SBUF SET *OUT*
  424. SA7 A7
  425. SX6 SBUF+77B SET *IN*
  426. SA6 A6
  427. EQ ADVX RETURN
  428. BOI SPACE 4,15
  429. ** BOI - BEGINNING OF FILE FUNCTION PROCESSOR.
  430. *
  431. * *BOI* DISPLAYS THE BEGINNING OF THE QUEUED FILE ON THE *L*
  432. * DISPLAY.
  433. *
  434. * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
  435. *
  436. * USES X - 1, 2, 6, 7.
  437. * A - 1, 7.
  438. *
  439. * CALLS RNR.
  440.  
  441.  
  442. BOI SUBR ENTRY/EXIT
  443. SA1 STAT GET FILE STATUS
  444. SX2 Q
  445. SX6 SBOI SET BEGINNING OF INFORMATION STATUS
  446. SX7 B1 SET RANDOM READ IN FET TO BOI
  447. BX1 X1-X6
  448. ZR X1,BOIX IF AT BOI
  449. SA7 Q+6
  450. RJ RNR READ NEXT RECORD
  451. EQ BOIX RETURN
  452. DAY SPACE 4,15
  453. ** DAY - *DAYFILE* FUNCTION PROCESSOR.
  454. *
  455. * *DAY* DISPLAYS THE DAYFILE PORTION OF THE FILE IF THE
  456. * DAYFILE EXISTS.
  457. *
  458. * EXIT (X2) = 0, IF DAYFILE NOT FOUND AND HELP STATUS.
  459. * (X2) = FET ADDRESS OF QUEUED FILE OR SYSTEM SECTOR,
  460. * IF DAYFILE NOT FOUND AND NOT HELP STATUS.
  461. * (X2) = FET ADDRESS OF QUEUED FILE IF DAYFILE FOUND.
  462. * (B2) = ERROR MESSAGE ADDRESS, IF NO DAYFILE FOUND.
  463. *
  464. * USES X - 1, 2, 6, 7.
  465. * A - 1, 2, 7.
  466. * B - 2.
  467. *
  468. * CALLS HLP, RNR.
  469.  
  470.  
  471. DAY SUBR ENTRY/EXIT
  472. SA2 DFLG GET DAYFILE ADDRESS
  473. SB2 ENDF *NO DAYFILE FOUND.*
  474. ZR X2,DAY1 IF NO DAYFILE FOUND
  475. BX7 X2 SET RANDOM ADDRESS OF DAYFILE IN FET
  476. SA7 Q+6
  477. SX6 SBOR SET BEGINNING OF RECORD STATUS
  478. RJ RNR READ NEW RECORD
  479. SB2 B0+ INDICATE NO ERROR
  480. EQ DAYX RETURN
  481.  
  482. * REBUILD PROPER DISPLAY WITH ERROR MESSAGE.
  483.  
  484. DAY1 SA1 STAT GET FILE STATUS
  485. SX6 SHLP CHECK IF HELP STATUS
  486. BX6 X1-X6
  487. NZ X6,DAY2 IF NOT HELP STATUS
  488. RJ HLP FORMAT HELP DISPLAY
  489. EQ DAYX RETURN
  490.  
  491. DAY2 SX6 SSYS CHECK IF SYSTEM SECTOR STATUS
  492. SX2 S SET SYSTEM SECTOR FET
  493. BX6 X1-X6
  494. ZR X6,DAYX IF SYSTEM SECTOR STATUS
  495. SX2 Q SET QUEUED FILE STATUS
  496. EQ DAYX RETURN
  497. DRP SPACE 4,10
  498. ** DRP - *DROP* FUNCTION PROCESSOR.
  499. *
  500. * *DRP* DROPS THE FILE FROM THE QUEUE AND TERMINATES UTILITY.
  501. *
  502. * USES B - 2.
  503. *
  504. * CALLS DLD.
  505. *
  506. * MACROS ENDRUN, RETURN.
  507.  
  508.  
  509. DRP SUBR ENTRY/EXIT
  510. SB2 DRPM DISPLAY *DROP PROCESSED.* MESSAGE
  511. RJ DLD DROP *L* DISPLAY
  512. RETURN Q,R
  513. ENDRUN
  514. END SPACE 4,10
  515. ** END - *END* FUNCTION PROCESSOR.
  516. *
  517. * *END* RETURNS THE FILE TO THE QUEUE AND TERMINATES THE
  518. * UTILITY.
  519. *
  520. * USES B - 2.
  521. *
  522. * CALLS DLD.
  523. *
  524. * MACROS ENDRUN, ROUTE.
  525.  
  526.  
  527. END SUBR ENTRY/EXIT
  528. SB2 ENDM DISPLAY *END PROCESSED.* MESSAGE
  529. RJ DLD DROP *L* DISPLAY
  530. ROUTE ROPB,R RETURN FILE TO QUEUE
  531. ENDRUN
  532. HLP SPACE 4,15
  533. ** HLP - *HELP* FUNCTION PROCESSOR.
  534. *
  535. * *HLP* MOVES *HELP* DISPLAY DATA TO *L* DISPLAY.
  536. *
  537. * ENTRY (CMPB) = FWA OF PAGE TO DISPLAY.
  538. * (B2) = MESSAGE ORDINAL FOR TABLE OF MESSAGES.
  539. *
  540. * EXIT (B2) = 0 (NO ERR0R).
  541. * (X2) = 0 (*L* DISPLAY DATA NEED NOT BE REBUILT).
  542. *
  543. * USES X - 1, 2, 3, 5, 6, 7.
  544. * A - 1, 5, 6, 7.
  545. * B - 2, 3, 4, 6.
  546. *
  547. * CALLS COI, FLB.
  548. *
  549. * MACROS MOVE.
  550.  
  551.  
  552. HLP SUBR ENTRY/EXIT
  553. SA5 CLDF GET CURRENT SCREEN FWA
  554. SX2 TMLD+B2 SET MESSAGE
  555. MOVE ERML,X2,X5+HLMA-HLPA
  556. RJ COI CONVERT OPERATOR INPUT
  557. SX2 IBUF SET INPUT LINE
  558. MOVE LCOMU,X2,X5+HLIA-HLPA SET INPUT LINE
  559. SX1 X5 FWA DATA TO FORMAT
  560. SX6 X1+HLPAL-1 LWA DATA TO FORMAT
  561. MX2 0 INDICATE *L* DISPLAY
  562. SX3 B1+ INDICATE LINE MODE
  563. SB2 LBUF FWA *L* DISPLAY BUFFER
  564. SB3 XCDT X - COORDINATE OF DISPLAY
  565. SB4 YCDT Y - COORDINATE OF DISPLAY
  566. SB6 LBUF+LBUFL LWA *L* DISPLAY BUFFER
  567. RJ FLB FORMAT DATA FOR *L* DISPLAY
  568. SA1 STAT GET FILE STATUS
  569. SX6 SHLP SET *HELP* STATUS
  570. SA6 A1
  571. SB3 X1
  572. SX2 B0 PREVENT *L* DISPLAY BUILD FROM FILE
  573. SB2 B0 SET NO ERROR
  574. LE B3,B1,HLPX IF *SS* OR *HELP* STATUS
  575. SX7 X1+ SAVE PREVIOUS FILE STATUS
  576. SA7 PSTT
  577. EQ HLPX RETURN
  578.  
  579.  
  580. HLPA BSS 0 *L* DISPLAY HELP PAGE 1
  581. DATA 50HQDSPLAY COMMANDS PAGE
  582. DATA 10H 1 OF 2
  583. DATA C* *
  584. DATA 34C COMMAND DESCRIPTION
  585. DATA C* *
  586. DATA 50H BACK RETURN FROM HELP/SS TO PREVIOUS FILE DI
  587. DATA 10HSPLAY.
  588. DATA 49C BOI POSITION FILE TO BOI AND DISPLAY DATA.
  589. DATA 50H DAY POSITION PRINT FILE TO DAYFILE AND DISP
  590. DATA 10HLAY DATA.
  591. DATA 46C DROP DROP FILE FROM QUEUE AND TERMINATE.
  592. DATA C* *
  593. DATA 46C END RETURN FILE TO QUEUE AND TERMINATE.
  594. DATA 50H HELP LIST L DISPLAY COMMANDS FOR QDSPLAY UTI
  595. DATA 10HLITY.
  596. DATA 48C LINE SET FILE DISPLAY MODE TO LINE FORMAT.
  597. DATA 49C OCTAL SET FILE DISPLAY MODE TO OCTAL FORMAT.
  598. DATA C* *
  599. DATA 50H SS DISPLAY IN OCTAL FROM BEGINNING OF SYST
  600. DATA 10HEM SECTOR.
  601. DATA 50C + PAGE DISPLAY FORWARD (CIRCULAR FOR SS).
  602. DATA 48C - PAGE DISPLAY BACKWARD.
  603. DATA C* *
  604. HLMA DATA C* *
  605. HLIA DATA C* *
  606. CON 0 END OF HELP PAGE 1 DISPLAY
  607. HLPAL EQU *-HLPA LENGTH OF PAGE 1 DISPLAY
  608. HLPB BSS 0 *L* DISPLAY HELP PAGE 2
  609. DATA 50HQDSPLAY COMMANDS PAGE
  610. DATA 10H 2 OF 2
  611. DATA C* *
  612. DATA 34C COMMAND DESCRIPTION
  613. DATA C* *
  614. DATA 50H SL SKIP 1 LINE FORWARD IN FILE AND DISPLAY
  615. DATA 10H DATA.
  616. DATA 50H SL,N SKIP N LINES FORWARD IN FILE AND DISPLA
  617. DATA 10HY DATA.
  618. DATA 50H SP SKIP 1 PAGE FORWARD IN FILE AND DISPLAY
  619. DATA 10H DATA.
  620. DATA 50H SP,N SKIP N PAGES FORWARD IN FILE AND DISPLA
  621. DATA 10HY DATA.
  622. DATA 50H SR SKIP 1 RECORD FORWARD IN FILE AND DISPL
  623. DATA 10HAY DATA.
  624. DATA C* *
  625. DATA 50H SR,N SKIP N RECORDS FORWARD IN FILE AND DISP
  626. DATA 10HLAY DATA.
  627. DATA 31C SR,* SKIP TO EOI IN FILE.
  628. DATA 50H BR SKIP 1 RECORD BACKWARD IN FILE AND DISP
  629. DATA 10HLAY DATA.
  630. DATA 50H BR,N SKIP N RECORDS BACKWARD IN FILE AND DIS
  631. DATA 10HPLAY DATA.
  632. DATA 20C
  633. DATA 20C
  634. DATA 20C
  635. DATA 20C
  636. HLMB DATA C* *
  637. HLIB DATA C* *
  638. CON 0 END OF HELP PAGE 2 DISPLAY
  639. HLPBL EQU *-HLPB LENGTH OF PAGE 2 DISPLAY
  640. ERRNZ HLPAL-HLPBL PAGE LENGTHS MUST BE EQUAL
  641. ERRNZ HLMA-HLPA-HLMB+HLPB MESSAGE OFFSETS MUST BE THE SAME
  642. ERRNZ HLIA-HLPA-HLIB+HLPB INPUT OFFSETS MUST BE THE SAME
  643. LNE SPACE 4,15
  644. ** LNE - SET *L* DISPLAY FORMAT TO LINE MODE.
  645. *
  646. * *LNE* SETS LINE MODE FORMAT FOR THE *L* DISPLAY.
  647. *
  648. * EXIT (B2) = 0 (NO ERROR).
  649. * (X2) = 0, IF *HELP* STATUS.
  650. * (X2) = SYSTEM SECTOR FET, IF *SS* STATUS.
  651. * (X2) = QUEUED FET, IF NOT *HELP* OR *SS* STATUS.
  652. *
  653. * USES X - 2, 6.
  654. * A - 2, 6.
  655. * B - 2, 3.
  656. *
  657. * CALLS HLP.
  658.  
  659.  
  660. LNE SUBR ENTRY/EXIT
  661. SA2 STAT GET FILE STATUS
  662. SB2 B0 NO ERROR
  663. SX6 B0 SET *L* DISPLAY FORMAT TO LINE MODE
  664. SA6 MODE
  665. SB3 X2
  666. SX2 B0 DO NOT REBUILD *L* DISPLAY
  667. NE B3,B0,LNE1 IF NOT HELP STATUS
  668. RJ HLP REBUILD HELP DISPLAY WITH *LINE* ECHOED
  669. EQ LNEX RETURN
  670.  
  671. LNE1 NE B3,B1,LNE2 IF NOT *SS* STATUS
  672. SX2 S SET SYSTEM SECTOR FET
  673. EQ LNEX RETURN
  674.  
  675. LNE2 SX2 Q SET QUEUED FILE FET
  676. EQ LNEX RETURN
  677. OCT SPACE 4,15
  678. ** OCT - SETS THE *L* DISPLAY FORMAT TO OCTAL MODE.
  679. *
  680. * *OCT* SETS OCTAL MODE FORMAT FOR THE *L* DISPLAY.
  681. *
  682. * EXIT (B2) = 0 (NO ERROR).
  683. * (X2) = 0, IF *HELP* STATUS.
  684. * (X2) = SYSTEM SECTOR FET, IF *SS* STATUS.
  685. * (X2) = QUEUED FET, IF NOT *HELP* OR *SS* STATUS.
  686. *
  687. * USES X - 2, 6.
  688. * A - 2, 6.
  689. * B - 2, 3.
  690. *
  691. * CALLS HLP.
  692.  
  693.  
  694. OCT SUBR ENTRY/EXIT
  695. SX6 B1 SET *L* DISPLAY FORMAT TO OCTAL MODE
  696. SA6 MODE
  697. SB2 B0 NO ERROR
  698. SA2 STAT GET FILE STATUS
  699. SB3 X2
  700. SX2 B0 DO NOT REBUILD *L* DISPLAY
  701. NE B3,B0,OCT1 IF NOT HELP STATUS
  702. RJ HLP REBUILD HELP DISPLAY WITH *OCTAL* ECHOED
  703. EQ OCTX RETURN
  704.  
  705. OCT1 NE B3,B1,OCT2 IF NOT *SS* STATUS
  706. SX2 S SET SYSTEM SECTOR FET
  707. EQ OCTX RETURN
  708.  
  709. OCT2 SX2 Q SET QUEUED FILE FET
  710. EQ OCTX RETURN
  711. SLF SPACE 4,10
  712. ** SLF - SKIP LINES FORWARD.
  713. *
  714. * *SLF* SKIPS LINES FORWARD.
  715. *
  716. * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
  717. * (B2) = 0 (NO ERROR).
  718. *
  719. * USES X - 1, 5, 6.
  720. * A - 5, 6.
  721. * B - 2.
  722. *
  723. * MACROS READC.
  724.  
  725.  
  726. SLF SUBR ENTRY/EXIT
  727. SA5 SCNT GET SKIP COUNT
  728. SX6 SMID SET FILE STATUS TO MIDDLE OF RECORD
  729. SA6 STAT
  730. SLF1 READC Q,WBUF,PLSZ
  731. SB2 B0+ INDICATE NO ERROR
  732. NG X1,SLFX IF EOF/EOI
  733. SX1 X1-WBUF
  734. ZR X1,SLFX IF EOR (NO DATA)
  735. SX5 X5-1 DECREMENT SKIP COUNT
  736. NZ X5,SLF1 IF MORE LINES TO SKIP
  737. EQ SLFX RETURN
  738. SPF SPACE 4,10
  739. ** SPF - SKIP PAGES FORWARD.
  740. *
  741. * *SPF* SKIPS PAGES FORWARD.
  742. *
  743. * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
  744. * (B2) = 0 (NO ERROR).
  745. *
  746. * USES X - 0, 1, 3, 4, 5, 6, 7.
  747. * A - 1, 3, 4, 5, 6, 7.
  748. * B - 2.
  749. *
  750. * MACROS READC.
  751.  
  752.  
  753. SPF SUBR ENTRY/EXIT
  754. SA5 SCNT GET SKIP COUNT
  755. SX6 SMID SET MIDDLE OF RECORD FILE STATUS
  756. SA6 STAT
  757. SX0 B1+ INDICATE TOP OF FIRST PAGE
  758. SPF1 SA3 Q+2 GET *IN*
  759. BX6 X3
  760. SA4 A3+B1 GET *OUT*
  761. BX7 X4
  762. SA6 Q-2 SAVE PREVIOUS *IN*
  763. SA7 A6+B1 SAVE PREVIOUS *OUT*
  764. READC Q,WBUF,PLSZ
  765. SB2 B0+ INDICATE NO ERROR
  766. NG X1,SPFX IF EOF/EOI
  767. SX1 X1-WBUF
  768. ZR X1,SPFX IF EOR (WITH NO DATA)
  769. MX3 6 CHECK LINE FOR CARRIAGE CONTROL
  770. SA1 WBUF
  771. BX1 X3*X1
  772. LX1 6
  773. SX1 X1-1R1
  774. BX1 X1+X0
  775. SX0 B0+ INDICATE NOT TOP OF FIRST PAGE
  776. NZ X1,SPF1 IF TOP OF FIRST PAGE OR NOT PAGE EJECT 1
  777. SX5 X5-1 DECREMENT SKIP COUNT
  778. NZ X5,SPF1 IF MORE PAGES TO SKIP
  779. SA1 Q-2 GET PREVIOUS *IN*
  780. SA3 A1+B1 GET PREVIOUS *OUT*
  781. BX6 X1
  782. SA6 Q+2 SET *IN* AND *OUT* IN FET
  783. BX7 X3
  784. SA7 A6+B1
  785. EQ SPFX RETURN
  786. SRB SPACE 4,15
  787. ** SRB - SKIP RECORDS BACKWARD.
  788. *
  789. * *SRB* SKIP RECORDS BACKWARD.
  790. *
  791. * EXIT (X2) = FET ADDRESS OF QUEUED FILE, IF FILE STATUS IS
  792. * NOT BOI.
  793. * (X2) = 0, IF FILE STATUS IS BOI.
  794. *
  795. * USES X - 0, 1, 2, 3, 4, 6.
  796. * A - 1, 3, 6.
  797. * B - 2.
  798. *
  799. * CALLS RNR.
  800. *
  801. * MACROS SKIPB.
  802.  
  803.  
  804. SRB SUBR ENTRY/EXIT
  805. SA3 STAT GET FILE STATUS
  806. SB2 B0+ NO ERROR
  807. SX2 X3-SBOI
  808. ZR X2,SRBX IF FILE DISPLAY IS AT BOI
  809. SX6 QBUF SET *IN* = *OUT* = *FIRST* (EMPTY BUFFER)
  810. SA6 Q+2
  811. SA1 SCNT GET SKIP COUNT
  812. SA6 Q+3
  813. SX4 X3-SEOF
  814. SX2 X3-SBOR
  815. ZR X4,SRB1 IF FILE DISPLAY AT EOF
  816. NZ X2,SRB2 IF FILE DISPLAY NOT AT BOR
  817. SRB1 SX4 X1+B1
  818. NG X4,SRB2 IF FILE COUNT ALREADY AT MAXIMUM
  819. SX1 X1+B1 SKIP EXTRA RECORD
  820. SRB2 SKIPB Q,X1,R
  821. SA3 X2
  822. MX0 -6
  823. AX3 3
  824. BX1 -X0*X3
  825. SX1 X1-5
  826. SX6 SBOI
  827. ZR X1,SRB3 IF FILE IS AT BOI
  828. SX6 SBOR BEGINNING RECORD STATUS
  829. SRB3 RJ RNR READ NEW RECORD
  830. EQ SRBX RETURN
  831. SRF SPACE 4,15
  832. ** SRF - SKIP RECORDS FORWARD.
  833. *
  834. * *SRF* SKIPS RECORDS FORWARD.
  835. *
  836. * EXIT (X2) = 0, IF STATUS = EOI.
  837. * (B2) = 0, IF STATUS = EOI.
  838. * (X2) = FET ADDRESS OF QUEUED FILE, IF STATUS NOT EOI.
  839. *
  840. * USES X - 1, 2, 3, 4, 6.
  841. * A - 1, 3, 4, 6.
  842. * B - 2, 3.
  843. *
  844. * CALLS RNR.
  845. *
  846. * MACROS SKIPF.
  847.  
  848.  
  849. SRF SUBR ENTRY/EXIT
  850. SA3 STAT GET STATUS
  851. SX2 B0 DISPLAY WILL NOT BE REBUILT
  852. SB2 B0 NO ERROR
  853. SB3 X3-SEOI
  854. ZR B3,SRFX IF STATUS IS EOI
  855. SX6 QBUF SET *IN* = *OUT* = *FIRST* (EMPTY BUFFER)
  856. SA6 Q+2
  857. SA6 A6+B1
  858. SA1 SCNT GET SKIP COUNT
  859. BX3 X1
  860. LX3 59-17
  861. SA4 Q
  862. LX4 59-4
  863. NG X3,SRF1 IF SKIP COUNT = 777777B (* OPTION)
  864. PL X4,SRF1 IF NOT EOR/EOF/EOI IN FET
  865. SX1 X1-1 DECREMENT SKIP COUNT
  866. ZR X1,SRF2 IF SKIP COUNT = 0
  867. SRF1 SKIPF Q,X1,R SKIP RECORDS
  868. SRF2 SX6 SBOR BEGINNING OF RECORD STATUS
  869. RJ RNR READ NEW RECORD
  870. EQ SRFX RETURN
  871. SSP SPACE 4,10
  872. ** SSP - *SYSTEM SECTOR* FUNCTION PROCESSOR.
  873. *
  874. * *SSP* DISPLAYS THE SYSTEM SECTOR PORTION OF THE QUEUED FILE.
  875. *
  876. * EXIT (X2) = FET ADDRESS FOR SYSTEM SECTOR BUFFER.
  877. *
  878. * USES X - 1, 2, 6, 7.
  879. * A - 1, 6, 7.
  880. * B - 3.
  881.  
  882.  
  883. SSP SUBR ENTRY/EXIT.
  884. SX6 SBUF
  885. SA6 S+3 SET *OUT* = *FIRST*
  886. SX7 SBUF+77B
  887. SA1 STAT GET FILE STATUS
  888. SA7 A6-B1 SET *IN*
  889. SB3 X1
  890. SX7 SSYS SET *SS* FILE STATUS
  891. BX6 X1 SET PREVIOUS FILE STATUS
  892. SA7 A1
  893. SX2 S
  894. LE B3,B1,SSPX IF *SS* OR *HELP* STATUS
  895. SA6 PSTT
  896. EQ SSPX RETURN
  897. TOG SPACE 4,15
  898. ** TOG - TOGGLE BACK TO FILE DISPLAY.
  899. *
  900. * *TOG* - TOGGLES THE DISPLAY TO THE PREVIOUS FILE DISPLAY
  901. * IF *HELP* OR *SYSTEM SECTOR* IS CURRENTLY BEING DISPLAYED.
  902. *
  903. * EXIT (B2) = 0 (NO ERROR).
  904. * (X2) = 0, IF FILE STATUS IS NOT *SS* OR *HELP*.
  905. * (X2) = FET ADDRESS OF QUEUED FILE IF FILE STATUS IS
  906. * *SS* OR *HELP*.
  907. *
  908. * USES X - 1, 2, 3, 6.
  909. * A - 1, 3, 6.
  910. * B - 2, 3.
  911.  
  912.  
  913. TOG SUBR ENTRY/EXIT
  914. SA1 STAT GET FILE STATUS
  915. SB3 X1
  916. SB2 B0 NO ERROR
  917. SA3 PSTT GET PREVIOUS STATUS
  918. SX2 B0 DISPLAY WILL NOT BE REBUILT
  919. BX6 X3 SET PREVIOUS FILE STATUS
  920. GT B3,B1,TOGX IF NOT *SS* OR *HELP* STATUS
  921. SX2 Q
  922. SA6 A1+
  923. EQ TOGX RETURN
  924. TITLE SUBROUTINES.
  925. BLD SPACE 4,15
  926. ** BLD - BUILD *L* DISPLAY DATA.
  927. *
  928. * *BLD* BUILDS THE *L* DISPLAY FOR QUEUED FILE OR
  929. * SYSTEM SECTOR DATA.
  930. *
  931. * ENTRY (X2) = FET ADDRESS.
  932. * (B2) = MESSAGE ADDRESS.
  933. *
  934. * USES X - 1, 2, 3, 4, 5, 6, 7.
  935. * A - 1, 2, 3, 4, 6, 7.
  936. * B - 2, 3, 4, 6.
  937. *
  938. * CALLS COI, FLB, FOD, RQF, TLD.
  939. *
  940. * MACROS MOVE.
  941.  
  942.  
  943. BLD1 RJ FOD FORMAT OCTAL DATA
  944. BLD2 BX5 X6 SAVE FILE STATUS
  945. SA2 BLDA GET MESSAGE ORDINAL
  946. SX2 TMLD+X2 SET MESSAGE ADDRESS
  947. MOVE ERML,X2,B6 SET MESSAGE IN MESSAGE LINE
  948. RJ COI CONVERT OPERATOR INPUT
  949. SX2 IBUF ECHO INPUT
  950. MOVE LCOMU,X2,B6+ERML
  951. SB6 B6+ERML+LCOMU RESET LWA OF WORKING BUFFER
  952. BX6 X5 RESTORE FILE STATUS
  953. SA1 STAT GET LAST FILE STATUS
  954. SB4 X6-SEOI
  955. SB3 X1+
  956. EQ B3,B1,BLD4 IF *SS* STATUS
  957. NG B4,BLD4 IF NOT EOR/EOF/EOI ENCOUNTERED
  958. LE B4,B1,BLD3 IF EOF/EOI ENCOUNTERED
  959. SB4 SBOR
  960. GT B3,B4,BLD3 IF NOT AT BOI/BOR
  961. SA1 ERIB
  962. NZ X1,BLD4 IF ENTIRE RECORD IN BUFFER
  963. BLD3 SA6 STAT SAVE FILE STATUS
  964. BLD4 SA1 STAT GET FILE STATUS
  965. SA1 TVST+X1 SET STATUS IN HEADER
  966. BX6 X1
  967. SA6 WBHR+5
  968. SX1 WBHR FWA OF DATA TO FORMAT
  969. SX6 B6-B1 LWA DATA TO FORMAT
  970. MX2 0 INDICATE *L* DISPLAY
  971. SX3 B1+ SET MODE FOR *FLB*
  972. SB2 LBUF FWA *L* DISPLAY BUFFER
  973. SB3 XCDT X - COORDINATE OF DISPLAY
  974. SB4 YCDT Y - COORDINATE OF DISPLAY
  975. SB6 LBUF+LBUFL LWA+1 *L* DISPLAY BUFFER
  976. RJ FLB FORMAT DATA FOR *L* DISPLAY
  977. SA2 FETA GET FET ADDRESS
  978. SA1 X2-2 GET PREVIOUS *IN*
  979. SA3 X2+2 GET CURRENT *IN*
  980. BX6 X1
  981. LX7 X3
  982. SA6 A3 SWITCH *IN* POINTERS
  983. SA7 A1
  984. SA1 A1+B1 GET PREVIOUS *OUT*
  985. SA3 A3+B1 GET CURRENT *OUT*
  986. BX6 X1
  987. LX7 X3
  988. SA6 A3 SWITCH *OUT* POINTERS
  989. SA7 A1
  990.  
  991. BLD SUBR ENTRY/EXIT
  992. SX6 B2+ SAVE MESSAGE ORDINAL
  993. SA6 BLDA
  994. RJ RQF READ QUEUED FILE TO BUFFER AHEAD
  995. BX7 X2 SAVE FET ADDRESS
  996. SA3 X2+2 GET *IN*
  997. BX6 X3
  998. SA7 FETA
  999. SA4 A3+B1 GET *OUT*
  1000. BX7 X4
  1001. SA6 X2-2 SAVE PREVIOUS *IN*
  1002. SA1 STAT GET FILE STATUS
  1003. SA7 A6+B1 SAVE PREVIOUS *OUT*
  1004. SB3 X1
  1005. EQ B3,B1,BLD1 IF STATUS IS *SS*
  1006. SA3 MODE
  1007. NZ X3,BLD1 IF IN OCTAL MODE
  1008. RJ TLD TRANSFER LINES OF DATA
  1009. EQ BLD2 UPDATE FILE STATUS
  1010.  
  1011.  
  1012. BLDA BSS 1 MESSAGE ORDINAL IN TABLE
  1013. CMP SPACE 4,15
  1014. ** CMP - COMMAND FUNCTION PROCESSOR.
  1015. *
  1016. * *CMP* PROCESSES EACH INPUT DIRECTIVE AND SETS SKIP COUNTS.
  1017. *
  1018. * EXIT (B5) = ADDRESS OF FUNCTION PROCESSOR, IF NO ERROR.
  1019. * (B2) = 0, IF NO ERROR IN DIRECTIVE INPUT.
  1020. * (B2) = ERROR MESSAGE ADDRESS, IF ERROR.
  1021. *
  1022. * USES X - 0, 1, 2, 3, 4, 5, 6.
  1023. * A - 1, 3, 4, 6.
  1024. * B - 2, 3, 4, 5, 6, 7.
  1025. *
  1026. * CALLS DXB, PGD, POP, USB.
  1027.  
  1028.  
  1029. CMP6 SB5 B4+ SET PROCESSOR ADDRESS
  1030.  
  1031. CMP SUBR ENTRY/EXIT
  1032. SA1 STAT CHECK IF HELP STATUS
  1033. SB2 SHLP
  1034. SB4 X1+
  1035. NE B2,B4,CMP1 IF NOT HELP STATUS
  1036.  
  1037. * CHECK FOR PAGING COMMAND.
  1038.  
  1039. SX1 CLDF POINTER TO FWA *L* DISPLAY
  1040. SX2 CMPA PAGE TABLE
  1041. MX0 6 MASK FOR PAGING CHARACTER
  1042. SA3 IBUF COMMAND BUFFER
  1043. BX3 X0*X3 GET PAGING CHARACTER
  1044. SX4 B1+ INDICATE *L* DISPLAY
  1045. RJ PGD PAGE *L* DISPLAY
  1046. NZ X4,CMP1 IF ILLEGAL PAGING
  1047. SB2 B0+ INDICATE NO ERROR
  1048. SB5 HLP PAGE HELP DISPLAY
  1049. EQ CMPX RETURN
  1050.  
  1051. * CHECK FOR NON HELP PAGING COMMAND.
  1052.  
  1053. CMP1 SB2 IBUF *L* DISPLAY INPUT DIRECTIVE
  1054. SB3 B0+ SET DISPLAY CODE FOR *USB*
  1055. RJ USB UNPACK STRING BUFFER
  1056. RJ POP GET FIRST PARAMETER
  1057. BX2 X1 SEPARATOR
  1058. SB2 EUND *UNRECOGNIZABLE DIRECTIVE.*
  1059. MX0 36 COMMAND MASK
  1060. SA1 TCOM TABLE OF COMMANDS
  1061. NZ X6,CMP2 IF PARAMETER - NOT PAGING COMMAND
  1062. SB2 EVOH
  1063. SX3 1R-
  1064. IX3 X3-X2
  1065. ZR X3,CMPX IF MINUS SIGN ENTERED
  1066. SB2 EUND RESET ERROR MESSAGE
  1067. SX3 1R+ CHECK FOR PAGING COMMAND
  1068. IX3 X3-X2
  1069. NZ X3,CMPX IF NOT *+*
  1070. SB5 X1 SET PROCESSOR ADDRESS
  1071. SB2 B0 INDICATE NO ERROR
  1072. EQ CMPX RETURN
  1073.  
  1074. * CHECK FOR REMAINING COMMANDS.
  1075.  
  1076. CMP2 SA1 A1+B1 READ NEXT ENTRY IN COMMAND TABLE
  1077. ZR X1,CMPX IF END OF TABLE (INCORRECT COMMAND)
  1078. BX3 X1-X6
  1079. BX3 X0*X3
  1080. NZ X3,CMP2 IF MATCH NOT FOUND
  1081. BX6 X1 SAVE TABLE ENTRY
  1082. SA6 CMPB
  1083. SB2 B0 NO ERROR
  1084. SB4 X1 SAVE ADDRESS OF ROUTINE FROM TABLE
  1085. LX1 0-18
  1086. SX6 B1+ SAVE SKIP COUNT
  1087. BX6 X6*X1
  1088. SA6 SCNT
  1089. ZR B6,CMP6 IF NO MORE PARAMETERS
  1090. LT B5,CMP6 IF PARAMETER BUFFER NOT EXHAUSTED
  1091.  
  1092. * CHECK FOR SECOND PARAMETER.
  1093.  
  1094. SX5 B4+ SAVE ADDRESS OF ROUTINE FROM TABLE
  1095. RJ POP GET SECOND PARAMETER
  1096. SB5 X5 RESTORE ADDRESS OF ROUTINE FROM TABLE
  1097. SA1 SCNT GET SKIP COUNT
  1098. IX2 X6+X1
  1099. ZR X2,CMPX IF NO SECOND PARAMETER AND NOT SKIP
  1100.  
  1101. * PROCESS SECOND PARAMETER.
  1102.  
  1103. SB2 EEPS *EXCESS PARAMETER ON DIRECTIVE.*
  1104. NZ X1,CMP4 IF SKIP COMMAND
  1105. NZ X6,CMPX IF SECOND PARAMETER AND NOT SKIP COMMAND
  1106. CMP4 SB2 EDNA *DIRECTIVE NOT ALLOWED.*
  1107. SA4 STAT
  1108. SA3 MODE
  1109. SX2 1R*
  1110. SB4 X4
  1111. LX2 -6
  1112. LE B4,B1,CMPX IF *SS* OR *HELP* STATUS
  1113. NZ X3,CMPX IF OCTAL MODE
  1114. SB2 B0
  1115. MX0 36 MASK FOR PARAMETER
  1116. ZR X6,CMPX IF NO SECOND PARAMETER ON SKIP
  1117. BX2 X6-X2
  1118. BX2 X0*X2
  1119. ZR X2,CMP5 IF ASTERISK IN SKIP COUNT
  1120. SB6 B5 SAVE FUNCTION ROUTINE ADDRESS
  1121. SB7 B1
  1122. BX5 X6 SET WORD TO CONVERT
  1123. RJ DXB CONVERT TO BINARY
  1124. SB5 B6 RESTORE FUNCTION ROUTINE ADDRESS
  1125. SB2 EISC *INCORRECT SKIP COUNT.*
  1126. MX0 43
  1127. NZ X4,CMPX IF ERROR
  1128. ZR X6,CMPX IF ZERO SKIP COUNT
  1129. BX3 X0*X6
  1130. NZ X3,CMPX IF SKIP COUNT EXCEEDS 377777B
  1131. SB2 B0 NO ERROR
  1132. SA6 SCNT SAVE SKIP COUNT
  1133. EQ CMPX EXIT
  1134.  
  1135. CMP5 SA1 CMPB GET COMMAND TABLE ENTRY BACK
  1136. LX1 59-19
  1137. MX6 18
  1138. LX6 18
  1139. SA6 SCNT
  1140. NG X1,CMPX IF SKIP DIRECTIVE ALLOWS ASTERISK
  1141. SB2 EISC *INCORRECT SKIP COUNT.*
  1142. EQ CMPX EXIT
  1143. CMPA SPACE 4,5
  1144. ** CMPA - PAGE TABLE.
  1145.  
  1146.  
  1147. CMPA PAGT HLPA,HLMA,HLIA LEFT SCREEN PAGE 1
  1148. PAGT HLPB,HLMB,HLIB LEFT SCREEN PAGE 2
  1149. PAGT *
  1150.  
  1151. PGD HERE REMOTE BLOCK FROM *COMCDCP*
  1152. CMPB BSS 1 COMMAND TABLE ENTRY
  1153. TCOM SPACE 4,10
  1154. ** TCOM - TABLE OF COMMANDS.
  1155. *
  1156. *T, 36/ COMMAND,4/0,1/A,1/SK,18/ADDR
  1157. *
  1158. * (A) = 1, IF ASTERISK ALLOWED AS SECOND PARAMETER.
  1159. *
  1160. * (SK) = 1, IF SKIP COUNT ALLOWED.
  1161. *
  1162. * ADDR = ADDRESS OF ROUTINE FOR COMMAND.
  1163.  
  1164.  
  1165. TCOM BSS 0
  1166. VFD 36/1L+,6/0,18/ADV
  1167. VFD 36/0LBACK,6/0,18/TOG
  1168. VFD 36/0LBOI,6/0,18/BOI
  1169. VFD 36/0LDAY,6/0,18/DAY
  1170. VFD 36/0LDROP,6/0,18/DRP
  1171. VFD 36/0LEND,6/0,18/END
  1172. VFD 36/0LHELP,6/0,18/HLP
  1173. VFD 36/0LLINE,6/0,18/LNE
  1174. VFD 36/0LOCTAL,6/0,18/OCT
  1175. VFD 36/0LSL,5/0,1/1,18/SLF
  1176. VFD 36/0LSP,5/0,1/1,18/SPF
  1177. VFD 36/0LBR,5/0,1/1,18/SRB
  1178. VFD 36/0LSR,4/0,1/1,1/1,18/SRF
  1179. VFD 36/0LSS,6/0,18/SSP
  1180. VFD 36/1L*,6/0,18/TOG
  1181. CON 0 END OF TABLE
  1182. COI SPACE 4,20
  1183. ** COI - CONVERT OPERATOR INPUT.
  1184. *
  1185. * *COI* CONVERTS THE OPERATOR *L* DISPLAY INPUT BY CHANGING
  1186. * ALL ZERO BYTES TO BLANKS, AND INSURING THAT A ZERO BYTE
  1187. * TERMINATOR EXISTS IN THE LAST WORD OF THE INPUT LINE.
  1188. *
  1189. * ENTRY IBUF = FWA INPUT BUFFER.
  1190. *
  1191. * EXIT (IBUF) = INPUT BUFFER, BLANK FILLED, ZERO BYTE
  1192. * TERMINATED.
  1193. *
  1194. * USES X - 0, 1, 6.
  1195. * A - 1, 6.
  1196. * B - 2.
  1197. *
  1198. * CALLS ZTB.
  1199.  
  1200.  
  1201. COI SUBR ENTRY/EXIT
  1202. SB2 LCOMU-1 OPERATOR INPUT LINE LENGTH
  1203. SA1 IBUF-1 FIRST WORD-1 OF OPERATOR INPUT
  1204. COI1 SA1 A1+1 NEXT WORD TO CONVERT
  1205. ZR B2,COIX IF ALL WORDS CONVERTED
  1206. RJ ZTB CONVERT ALL ZERO BYTES TO BLANKS
  1207. SA6 A1 REPLACE IN *IBUF*
  1208. SB2 B2-B1 DECREMENT NUMBER OF WORDS TO CONVERT
  1209. EQ COI1 CONVERT NEXT WORD
  1210. DCM SPACE 4,10
  1211. ** DCM - DETERMINE CHARACTER MODE.
  1212. *
  1213. * EXIT (B4) = 0 IF ASCII MODE.
  1214. * (A0) = NUMBER OF WORDS TO READ PER LINE.
  1215. *
  1216. * USES X - 1, 3.
  1217. * A - 0, 1, 3.
  1218. * B - 4.
  1219.  
  1220.  
  1221. DCM2 SB4 1 DISPLAY CODE
  1222. SA0 DLSZ
  1223.  
  1224. DCM SUBR
  1225. SA1 STAT CHECK DISPLAY STATUS
  1226. AX1 1
  1227. ZR X1,DCM2 IF HELP OR SYSTEM SECTOR
  1228. SA1 DFLG CHECK IF DISPLAYING DAYFILE
  1229. ZR X1,DCM1 IF NO DAYFILE
  1230. SA3 Q+6
  1231. AX3 30
  1232. IX1 X3-X1
  1233. SX3 B1
  1234. IX1 X1-X3
  1235. PL X1,DCM2 IF DISPLAYING DAYFILE
  1236. DCM1 SA1 SBUF+IOSS./5+SCLQ GET INTERNAL CHARACTERISTICS
  1237. MX3 -3
  1238. AX1 12
  1239. BX1 -X3*X1
  1240. SB4 X1-ASIC
  1241. NZ B4,DCM2 IF NOT ASCII
  1242. SA0 DLSZ*2
  1243. EQ DCMX RETURN
  1244. DLD SPACE 4,10
  1245. ** DLD - DROP *L* DISPLAY.
  1246. *
  1247. * *DLD* DROPS THE *L* DISPLAY.
  1248. *
  1249. * ENTRY (B2) = *L* DISPLAY MESSAGE ORDINAL.
  1250. *
  1251. * USES X - 1, 2.
  1252. * A - 1.
  1253. *
  1254. * CALLS BLD, HLP, OLD.
  1255. *
  1256. * MACROS DSDINP.
  1257.  
  1258.  
  1259. DLD SUBR ENTRY/EXIT
  1260. SA1 STAT CHECK FOR HELP STATUS
  1261. SX2 SHLP
  1262. BX2 X2-X1
  1263. ZR X2,DLD1 IF HELP STATUS
  1264. SX2 SSYS CHECK FOR SYSTEM SECTOR STATUS
  1265. BX2 X2-X1
  1266. ZR X2,DLD2 IF SYSTEM SECTOR STATUS
  1267. SX2 Q SET FOR QUEUED FILE STATUS
  1268. EQ DLD3 BUILD DISPLAY
  1269.  
  1270. * BUILD DISPLAY FOR HELP STATUS.
  1271.  
  1272. DLD1 RJ HLP BUILD HELP DISPLAY
  1273. EQ DLD4 OUTPUT DISPLAY
  1274.  
  1275. * BUILD ALL NON-HELP DISPLAYS.
  1276.  
  1277. DLD2 SX2 S SET SYSTEM SECTOR FET
  1278. DLD3 RJ BLD BUILD *L* DISPLAY
  1279. DLD4 RJ OLD OUTPUT *L* DISPLAY
  1280. DSDINP IPW,C
  1281. EQ DLDX RETURN
  1282. EFP SPACE 4,10
  1283. ** EFP - EXECUTE FUNCTION PROCESSOR.
  1284. *
  1285. * ENTRY (B5) = SUBROUTINE ADDRESS.
  1286. *
  1287. * EXIT TO SUBROUTINE WITH RETURN ADDRESS SET.
  1288. *
  1289. * USES X - 2, 7.
  1290. * A - 2, 7.
  1291.  
  1292.  
  1293. EFP SUBR ENTRY
  1294. SA2 EFPX SET RETURN ADDRESS
  1295. BX7 X2
  1296. SA7 B5
  1297. JP B5+1 JUMP TO SUBROUTINE
  1298. FOD SPACE 4,15
  1299. ** FOD - FORMAT OCTAL DATA.
  1300. *
  1301. * *FOD* FORMATS OCTAL DATA AND STORES IT IN *WBUF*.
  1302. *
  1303. * EXIT (X6) = FILE STATUS.
  1304. * (B6) = LWA+1 CONVERTED DATA.
  1305. *
  1306. * USES X - ALL.
  1307. * A - 0, 1, 6, 7.
  1308. * B - 2, 5, 6, 7.
  1309. *
  1310. * CALLS DCM, RSC, WOD, ZTB.
  1311. *
  1312. * MACROS MOVE, READW.
  1313.  
  1314.  
  1315. FOD SUBR ENTRY/EXIT
  1316. READW X2,OBUF,MLLB
  1317. SX6 X1+2+SEOI
  1318. SB5 OBUF
  1319. NG X1,FOD1 IF EOF/EOI
  1320. SX6 SEOR
  1321. NZ X1,FOD1 IF EOR
  1322. SX6 B0+
  1323. FOD1 SA6 FODA SAVE FILE STATUS
  1324. EQ B5,B6,FODX IF NO DATA IN WORKING BUFFER
  1325. RJ DCM DETERMINE CHARACTER MODE
  1326. SB2 12 SHIFT COUNT
  1327. SA0 WBUF WORKING BUFFER
  1328. FOD2 SA1 B5 GET NEXT WORD
  1329. SB5 B5+B1
  1330. RJ WOD CONVERT WORD TO OCTAL DISPLAY CODE
  1331. MX0 24
  1332. BX1 X0*X6 SET FIRST WORD IN BUFFER
  1333. LX0 -24
  1334. BX2 X0*X6
  1335. LX0 -12
  1336. BX3 X0*X7 SET THIRD WORD IN BUFFER
  1337. LX2 -12
  1338. BX1 X2+X1
  1339. MX0 12
  1340. BX4 X0*X7
  1341. LX7 -36
  1342. BX5 X0*X7
  1343. LX0 12
  1344. BX2 X0*X6 SET SECOND WORD IN BUFFER
  1345. BX2 X2+X4
  1346. LX2 36
  1347. BX4 X0*X7
  1348. BX2 X2+X4
  1349. LX3 12
  1350. BX3 X3+X5
  1351. SX4 2R SET BLANKS IN EACH WORD
  1352. BX7 X3+X4
  1353. LX4 12
  1354. BX2 X2+X4
  1355. LX4 12
  1356. BX6 X1+X4
  1357. LX4 12
  1358. SA6 A0
  1359. SA0 A0+B1
  1360. BX7 X7+X4
  1361. LX4 12
  1362. BX6 X2+X4
  1363. SA6 A0
  1364. SA7 A0+B1
  1365. SA1 B5-B1
  1366. SA0 A0+2
  1367. RJ RSC REMOVE SPECIAL CHARACTERS
  1368. BX1 X7 SET ENTRY TO *ZTB*
  1369. RJ ZTB CONVERT ZERO BYTES TO BLANKS
  1370. SA6 A0+
  1371. SA0 A0+B1
  1372. BX7 X7-X7 SET END OF LINE
  1373. SA7 A0
  1374. SA0 A0+B1
  1375. NE B5,B6,FOD2 IF MORE WORDS TO TRANSFER
  1376. SB7 OBUF
  1377. SB5 MLLB MAXIMUM NUMBER OF LINES ON *L* DISPLAY
  1378. SB7 B6-B7 NUMBER OF LINES OF DATA ON *L* DISPLAY
  1379. SB5 B5-B7 NUMBER OF LINES TO BLANK PAD
  1380. SB6 A0 RESET LWA+1 OF BUFFER
  1381. MOVE B5,BLNS,B6 FILL BUFFER WITH BLANK LINES
  1382. SB6 B6+B5 RESET LWA+1 OF *WBUF*
  1383. SA1 FODA RESTORE FILE STATUS
  1384. BX6 X1
  1385. EQ FODX RETURN
  1386.  
  1387.  
  1388. FODA BSS 1 FILE STATUS SAVE AREA
  1389. ILD SPACE 4,15
  1390. ** ILD - INPUT *L* DISPLAY.
  1391. *
  1392. * *ILD* WILL ROLLOUT UNTIL A COMMAND IS ENTERED VIA THE *L*
  1393. * DISPLAY. IF *DSD* RETURNS AN ERROR CONDITION AFTER AN INPUT
  1394. * COMMAND IS ISSUED, *ILD* WILL ISSUE A MESSAGE TO THE SYSTEM
  1395. * DAYFILE AND TERMINATE.
  1396. *
  1397. * USES X - 0, 1, 2.
  1398. * A - 1.
  1399. * B - 3.
  1400. *
  1401. * MACROS DSDINP, ENDRUN, MESSAGE, ROLLOUT, ROUTE.
  1402.  
  1403.  
  1404. ILD SUBR ENTRY/EXIT
  1405. ILD1 DSDINP IPW REQUEST INPUT FROM OPERATOR
  1406. SA1 IPW
  1407. MX0 -12
  1408. BX1 -X0*X1
  1409. AX1 1 IGNORE COMPLETION BIT
  1410. SX2 X1-CNCI
  1411. SB3 X1
  1412. ZR X2,ILD2 IF COMMAND NOT ENTERED
  1413. LT B3,B1,ILDX IF NO SYSTEM ERROR
  1414. ROUTE ROPB,R RETURN FILE TO QUEUE
  1415. MESSAGE (=C* CANNOT ACCESS L-DISPLAY*),0,R
  1416. ENDRUN
  1417.  
  1418. ILD2 ROLLOUT ROLB WAIT FOR *L* DISPLAY INPUT
  1419. EQ ILD1 CHECK *L* DISPLAY INPUT
  1420. OLD SPACE 4,10
  1421. ** OLD - OUTPUT *L* DISPLAY DATA.
  1422. *
  1423. * MACROS DSDOUT.
  1424.  
  1425.  
  1426. OLD SUBR ENTRY/EXIT
  1427. DSDOUT LFWA
  1428. EQ OLDX RETURN
  1429. RNR SPACE 4,15
  1430. ** RNR - READ NEW RECORD.
  1431. *
  1432. * *RNR* READS A NEW RECORD INTO THE QUEUED FILE BUFFER.
  1433. *
  1434. * ENTRY (X6) = STATUS (*BOR* OR BOI).
  1435. *
  1436. * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
  1437. *
  1438. * USES X - 1, 6.
  1439. * A - 1, 6.
  1440. *
  1441. * MACROS READ.
  1442.  
  1443.  
  1444. RNR SUBR ENTRY/EXIT
  1445. SA6 STAT SET FILE STATUS
  1446. SX6 QBUF RESET *IN* AND *OUT* FOR EMPTY BUFFER
  1447. SA6 Q+2
  1448. SA6 Q+3
  1449. READ Q,R
  1450. SA1 Q CHECK FOR EOR/EOF/EOI
  1451. BX6 X6-X6 INDICATE RECORD EXCEEDS BUFFER
  1452. LX1 59-4
  1453. SA6 ERIB
  1454. PL X1,RNRX IF NOT EOR/EOF/EOI
  1455. LX1 59-3-59+4
  1456. NG X1,RNRX IF EOF/EOI
  1457. SX6 B1 INDICATE ENTIRE DATA RECORD WITHIN BUFFER
  1458. SA6 A6+
  1459. EQ RNRX RETURN
  1460. RQF SPACE 4,10
  1461. ** RQF - READ QUEUED FILE.
  1462. *
  1463. * *RQF* READS THE QUEUED FILE INTO THE CIO BUFFER.
  1464. *
  1465. * ENTRY (X2) = FET ADDRESS OF FILE.
  1466. *
  1467. * USES X - 1, 3, 4, 5.
  1468. * A - 1, 3, 4.
  1469. *
  1470. * MACROS READ.
  1471.  
  1472.  
  1473. RQF SUBR ENTRY/EXIT
  1474. SA4 X2
  1475. LX4 59-4
  1476. NG X4,RQFX IF EOR/EOF/EOI
  1477. SA1 A4+1 GET *FIRST*
  1478. SA3 A1+1 GET *IN*
  1479. SA4 A3+B1 GET *OUT*
  1480. IX5 X3-X4 NUMBER OF WORDS IN BUFFER (*IN*-*OUT*)
  1481. PL X5,RQF1 IF *IN* .GE. *OUT*
  1482. SA3 A4+1 GET *LIMIT*
  1483. IX3 X3-X1 *LIMIT* - *FIRST*
  1484. IX5 X3+X5 NUMBER OF WORDS IN BUFFER
  1485. RQF1 SX5 X5-LBUFL *L* DISPLAY BUFFER LENGTH
  1486. PL X5,RQFX IF NUMBER OF WORDS .GE. *LBUFL*
  1487. READ X2,R
  1488. EQ RQFX RETURN
  1489. RPV SPACE 4,10
  1490. ** RPV - REPRIEVE PROCESSOR.
  1491. *
  1492. * *RPV* DISPLAYS *SYSTEM ABORT.* MESSAGE AND CLEARS *L*
  1493. * DISPLAY.
  1494. *
  1495. * USES B - 2.
  1496. *
  1497. * CALLS DLD.
  1498. *
  1499. * MACROS REPRIEVE, ROUTE.
  1500.  
  1501.  
  1502. RPV BSS 0 ENTRY
  1503. SB2 EABT DISPLAY *SYSTEM ABORT.* MESSAGE
  1504. RJ DLD DROP *L* DISPLAY
  1505. ROUTE ROPB,R RETURN FILE TO QUEUE
  1506. REPRIEVE RPB,RESET,0 RESET ERROR FLAG
  1507. RSC SPACE 4,10
  1508. ** RSC - REMOVE SPECIAL CHARACTERS.
  1509. *
  1510. * *RSC* REMOVES SPECIAL CHARACTERS 60B THROUGH 77B FROM
  1511. * DISPLAY CODE.
  1512. *
  1513. * ENTRY (X1) = DISPLAY CODE WORD.
  1514. * (B4) = 0 IF ASCII MODE.
  1515. * (B2) = SHIFT COUNT FOR CONVERTED ASCII CHARACTERS.
  1516. *
  1517. * EXIT (X4) = LAST BYTE IF ASCII MODE.
  1518. * (X7) = CONVERTED DISPLAY CODE WORD.
  1519. *
  1520. * USES X - 0, 1, 2, 3, 4, 7.
  1521. * A - 1, 4.
  1522. * B - 3.
  1523.  
  1524.  
  1525. RSC1 BX7 X7-X7
  1526. MX0 5
  1527. MX3 -12
  1528. RSC2 LX1 12
  1529. BX4 -X3*X1 GET CHARACTER
  1530. ZR X4,RSC6 IF ZERO BYTE
  1531. SB3 X4-173B
  1532. PL B3,RSC3 IF SPECIAL CHARACTER
  1533. SB3 B3-140B+173B
  1534. GT B3,RSC5 IF LOWER CASE
  1535. SB3 B3-133B+140B
  1536. PL B3,RSC3 IF SPECIAL CHARACTER
  1537. SB3 B3-100B+133B
  1538. GT B3,RSC5 IF UPPER CASE
  1539. SX4 X4-47B
  1540. PL X4,RSC4 IF DISPLAYABLE SPECIAL CHARACTER
  1541. RSC3 SX4 B0+
  1542. RSC4 MX2 -3
  1543. BX2 -X2*X4 CHARACTER NUMBER 0..7
  1544. AX4 3 WORD NUMBER
  1545. LX2 1 CREATE SHIFT COUNT
  1546. SB3 X2
  1547. LX2 1
  1548. SA4 X4+RSCC GET WORD
  1549. SB3 B3+X2
  1550. LX4 B3
  1551. SB3 X4
  1552. RSC5 SX4 B3
  1553. MX2 -6
  1554. BX4 -X2*X4 GET REPLACEMENT CHARACTER
  1555. BX7 X7+X4 INSERT NEW CHARACTER
  1556. RSC6 LX0 1
  1557. LX7 B2
  1558. MX2 -12 RESET MASK
  1559. NG X0,RSC2 IF MORE TO PROCESS
  1560. LX7 -B2
  1561.  
  1562. RSC SUBR ENTRY/EXIT
  1563. ZR B4,RSC1 IF ASCII MODE
  1564. SA4 RSCA 40404040404040404040
  1565. BX3 X4*X1
  1566. BX7 X1 RETURN ORIGINAL DISPLAY CODE WORD
  1567. LX1 1
  1568. BX4 X4*X1
  1569. BX4 X4*X3
  1570. BX3 X4
  1571. ZR X4,RSCX IF NO SPECIAL CHARACTERS
  1572.  
  1573. * BUILD CHARACTER MASK.
  1574.  
  1575. LX3 -1
  1576. BX4 X3+X4
  1577. LX3 -1
  1578. BX4 X3+X4
  1579. BX3 X4
  1580. LX4 -3
  1581. BX3 X4+X3 FINAL CHARACTER MASK
  1582. SA1 RSCB
  1583. BX1 X3*X1 SAVE BLANK IN SPECIAL CHARACTER POSITIONS
  1584. BX4 -X3*X7 CLEAR OUT SPECIAL CHARACTERS
  1585. BX7 X4+X1 STORE BLANKS IN DISPLAY CODE WORD
  1586. EQ RSCX RETURN
  1587.  
  1588.  
  1589. RSCA DATA 40404040404040404040B
  1590. RSCB DATA 10H
  1591. RSCC DATA 10H()*+,-.
  1592. DATA 10H0123456 /
  1593. DATA 10H89 = 7
  1594. DATA 10H
  1595. SEM SPACE 4,15
  1596. ** SEM - SET ERROR MESSAGE.
  1597. *
  1598. * *SEM* FORMATS THE APPROPRIATE SCREEN WITH THE ERROR MESSAGE
  1599. * SET INTO THE DISPLAY.
  1600. *
  1601. * ENTRY (B2) = ERROR MESSAGE ORDINAL.
  1602. *
  1603. * EXIT *LBUF* RESET WITH ERROR MESSAGE.
  1604. *
  1605. * USES X - 1, 2.
  1606. * A - 1.
  1607. *
  1608. * CALLS BLD, HLP.
  1609.  
  1610.  
  1611. SEM2 SX2 S SET SYSTEM SECTOR FET
  1612. SEM3 RJ BLD BUILD *L* DISPLAY
  1613.  
  1614. SEM SUBR ENTRY/EXIT
  1615. SA1 STAT CHECK FOR HELP STATUS
  1616. SX2 SHLP
  1617. BX2 X2-X1
  1618. NZ X2,SEM1 IF NOT HELP STATUS
  1619. RJ HLP FORMAT HELP SCREEN
  1620. EQ SEMX RETURN
  1621.  
  1622. SEM1 SX2 SSYS CHECK FOR SYSTEM SECTOR STATUS
  1623. BX1 X2-X1
  1624. ZR X1,SEM2 IF SYSTEM SECTOR
  1625. SX2 Q SET QUEUED FILE FET
  1626. EQ SEM3 FORMAT SCREEN
  1627. TLD SPACE 4,20
  1628. ** TLD - TRANSFER LINES OF DATA.
  1629. *
  1630. * *TLD* TRANSFERS LINES OF DATA TO THE *L* DISPLAY WORKING
  1631. * BUFFER.
  1632. *
  1633. * ENTRY (X2) = FET ADDRESS OF FILE.
  1634. *
  1635. * EXIT (X6) = STATUS, IF EOR/EOF/EOI ENCOUNTERED.
  1636. * (X6) = 0, IF NOT EOR/EOF/EOI.
  1637. * (B6) = LWA+1 OF DATA IN WBUF.
  1638. *
  1639. * USES X - 0, 1, 3, 4, 5, 6, 7.
  1640. * A - 1, 3, 6, 7.
  1641. * B - 2, 5, 6, 7.
  1642. *
  1643. * CALLS DCM, RSC.
  1644. *
  1645. * MACROS MOVE, READC.
  1646.  
  1647.  
  1648. TLD7 SB7 B5+
  1649. SB2 6
  1650. TLD8 EQ B5,B6,TLD11 IF ALL WORDS CONVERTED
  1651. SA1 B5+ CONVERT FIRST 5 CHARACTERS
  1652. RJ RSC REMOVE SPECIAL CHARACTERS
  1653. LX7 30
  1654. SB5 B5+B1
  1655. ZR X4,TLD9 IF END OF LINE
  1656. EQ B5,B6,TLD10 IF END OF BUFFER
  1657. BX5 X7 SAVE FIRST 5 CHARACTERS
  1658. SA1 B5 CONVERT SECOND 5 CHARACTERS
  1659. RJ RSC REMOVE SPECIAL CHARACTERS
  1660. SB5 B5+1
  1661. BX7 X7+X5
  1662. NZ X4,TLD9 IF NOT END OF LINE
  1663. MX5 -12
  1664. BX5 -X5*X7
  1665. ZR X5,TLD9 IF 12-ZERO BIT LINE TERMINATOR
  1666. SA7 B7
  1667. SB7 B7+B1
  1668. SX7 2R
  1669. LX7 59-11
  1670. TLD9 SA7 B7
  1671. SB7 B7+B1
  1672. EQ TLD8 LOOP UNTIL ALL WORDS CONVERTED
  1673.  
  1674. TLD10 SA7 B7+
  1675. TLD11 SB6 B7+ LWA+1 OF DATA TO DISPLAY
  1676.  
  1677. TLD SUBR ENTRY/EXIT
  1678. SB6 WBUF
  1679. SX0 B6 SAVE FWA OF WORKING BUFFER
  1680. SX5 B0 INITIALIZE LINE COUNTER
  1681. RJ DCM DETERMINE WORD COUNT PER LINE
  1682. TLD1 READC X2,B6,A0
  1683. SX6 X1+SEOI+2 EOF OR EOI
  1684. NG X1,TLD4 IF EOF OR EOI
  1685. SX6 SEOR
  1686. BX3 X1-X0
  1687. ZR X3,TLD4 IF EOR WITHOUT DATA
  1688. NZ X1,TLD2 IF TRANSFER NOT COMPLETE
  1689. BX6 X4 RESET (LWA) OF DATA
  1690. SA6 B6-B1 RESTORE DATA BEFORE END OF LINE
  1691. TLD2 SA3 B6-B1
  1692. MX4 -12
  1693. NZ X3,TLD3 IF NOT ZERO WORD
  1694. SX6 2R SET NONZERO WORD
  1695. LX6 -12
  1696. SA6 A3
  1697. TLD3 BX3 -X4*X3
  1698. SX0 B6+ LWA+1
  1699. SX5 X5+B1 INCREMENT LINE COUNTER
  1700. SX6 B0+ CLEAR EOR/EOF/EOI
  1701. SX3 X5-MLLD
  1702. ZR X3,TLD5 IF MAXIMUM NUMBER OF LINES IN BUFFER
  1703. SX3 X0-WBUF-WBUFL
  1704. SX4 A0
  1705. IX3 X3+X4
  1706. NG X3,TLD1 IF BUFFER NOT FULL
  1707.  
  1708. * BLANK FILL UNUSED LINES IN *L* DISPLAY BUFFER.
  1709.  
  1710. TLD4 SX3 MLLD MAXIMUM NUMBER OF LINES ON *L* DISPLAY
  1711. IX3 X3-X5 NUMBER OF LINES NOT FILLED WITH DATA
  1712. ZR X3,TLD5 IF ALL LINES CONTAIN DATA
  1713. SB7 B6 ADDRESS TO MOVE BLANK LINES
  1714. SB6 B6+X3 RESET LWA+1 OF BUFFER
  1715. BX5 X6 SAVE EXIT CONDITION
  1716. MOVE X3,BLNS,B7 FILL BUFFER WITH BLANK LINES
  1717. BX6 X5 RESTORE EXIT CONDITION
  1718.  
  1719. * REMOVE ALL SPECIAL CHARACTERS FROM *L* DISPLAY BUFFER.
  1720.  
  1721. TLD5 SB5 WBUF
  1722. RJ DCM DETERMINE CHARACTER MODE
  1723. ZR B4,TLD7 IF ASCII MODE
  1724. TLD6 EQ B5,B6,TLDX IF ALL WORDS CONVERTED
  1725. SA1 B5+ CONVERT NEXT WORD
  1726. RJ RSC REMOVE SPECIAL CHARACTERS
  1727. SA7 B5
  1728. SB5 B5+B1
  1729. EQ TLD6 LOOP UNTIL ALL WORDS CONVERTED
  1730. SPACE 4,10
  1731. ** COMMON DECKS.
  1732.  
  1733.  
  1734. *CALL COMCCIO
  1735. *CALL COMCCOD
  1736. *CALL COMCCPM
  1737. *CALL COMCDXB
  1738. *CALL COMCFLD
  1739. *CALL COMCQFM
  1740. *CALL COMCMVE
  1741. *CALL COMCPOP
  1742. *CALL COMCRDC
  1743. *CALL COMCRDW
  1744. *CALL COMCSFN
  1745. *CALL COMCSNM
  1746. *CALL COMCSYS
  1747. *CALL COMCUSB
  1748. *CALL COMCWTC
  1749. *CALL COMCWTO
  1750. *CALL COMCWTW
  1751. *CALL COMCWOD
  1752. *CALL COMCZTB
  1753. TITLE BUFFER AREA.
  1754. USE BUFFERS
  1755.  
  1756.  
  1757. ** BUFFER DEFINITIONS.
  1758.  
  1759.  
  1760. IPW BSS 0 INPUT BUFFER FOR *L* DISPLAY
  1761. VFD 12/6,1/0,1/0,46/0
  1762. IBUF BSS LCOMU INPUT BUFFER
  1763. LFWA BSS 0 FWA OF *L* DISPLAY BUFFER
  1764. VFD 12/LDSY,1/0,1/0,46/0
  1765. LBUF BSS 0 FWA TO MOVE DATA
  1766. WBHR EQU LBUF+LBUFL WORKING BUFFER HEADER AREA
  1767. WBUF EQU WBHR+LBHRL WORKING BUFFER
  1768. OBUF EQU WBUF+WBUFL OCTAL DISPLAY BUILD BUFFER
  1769. QBUF EQU OBUF+MLLB QUEUED FILE BUFFER
  1770. SBUF EQU QBUF+QBUFL SYSTEM SECTOR BUFFER
  1771. RFL= EQU SBUF+SBUFL
  1772. TITLE PRESET.
  1773. PRS SPACE 4,15
  1774. ** PRS - PRESET ARGUMENT PROCESSING.
  1775. *
  1776. * *PRS* ANALYZES THE COMMAND. THE SPECIFIED QUEUED FILE
  1777. * IS ATTACHED. AN INITIAL READ ON THE QUEUED FILE IS
  1778. * PERFORMED. THE SYSTEM SECTOR IS READ.
  1779. *
  1780. * EXIT (B5) = ADDRESS OF *HELP* ROUTINE.
  1781. * (JSN) SET IN FETS AND ROUTE PARAMETER BLOCK.
  1782. * (DFLG) = RANDOM ADDRESS OF DAYFILE.
  1783. * = 0, IF DAYFILE DOES NOT EXIST.
  1784. * JSN AND *QFT* ORDINAL OF FILE SET INTO *L* DISPLAY
  1785. * HEADER.
  1786. *
  1787. * ERROR TO *ERR* IF A FATAL ERROR CONDITION IS DETECTED.
  1788.  
  1789.  
  1790. PRS SUBR ENTRY/EXIT
  1791. SA1 JOPR GET JOB ORIGIN TYPE
  1792. SB1 1
  1793. MX0 -6
  1794. LX1 0-24
  1795. SX5 ERIU * USER ACCESS NOT VALID.*
  1796. BX1 -X0*X1
  1797. SX1 X1-SYOT
  1798. MX4 24
  1799. NZ X1,ERR IF JOB NOT SYSTEM ORIGIN
  1800. GETACT PRSB CHECK LONG-TERM ACTIVITY FLAG
  1801. SA1 PRSB
  1802. LX1 59-47
  1803. PL X1,ERR IF *L* DISPLAY NOT ACTIVE ON THIS JOB
  1804.  
  1805. * CHECK JSN.
  1806.  
  1807. SA1 ACTR
  1808. SA3 ARGR
  1809. BX6 X4*X3
  1810. SB2 X1
  1811. SX5 ERAR * ARGUMENT ERROR.*
  1812. NE B2,B1,ERR IF NO ARGUMENTS OR TOO MANY
  1813. BX3 X0*X3
  1814. BX1 -X4*X3
  1815. SX5 ERIJ * INCORRECT JSN.*
  1816. NZ X1,ERR IF GREATER THAN 4 CHARACTERS
  1817. LX0 36-0 CHECK FOR 3 CHARACTER JSN
  1818. BX2 -X0*X3
  1819. NZ X2,PRS1 IF NOT 3 CHARACTER JSN
  1820. SX2 1R SPACE-FILL JSN
  1821. LX2 -24
  1822. BX6 X2+X6
  1823. PRS1 LX0 6
  1824. BX2 -X0*X3
  1825. ZR X2,ERR IF JSN .LT. 3 CHARACTERS
  1826. SA1 QACS+2 SET JSN IN *QAC* PARAMETER BLOCK
  1827. BX7 X1+X6
  1828. SA7 A1
  1829. SA6 PRSA SET JSN
  1830. SA6 ROPB SET JSN IN *ROUTE* PARAMETER BLOCK
  1831.  
  1832. * SEARCH *QFT* FOR FILE.
  1833.  
  1834. SA3 TQTG-1
  1835. PRS2 ACQUIRE QACPB,R ATTACH THE QUEUED FILE
  1836. SA1 QACPB
  1837. MX0 -9 SAVE FUNCTION FOR *QAC* CALL
  1838. LX0 B1
  1839. BX6 -X0*X1
  1840. MX2 -8 CHECK FOR ERROR
  1841. LX1 0-11
  1842. BX1 -X2*X1
  1843. ZR X1,PRS4 IF NO ERROR
  1844. SA6 A1
  1845. SA3 A3+B1 GET QUEUE TYPE FROM TABLE
  1846. SB2 B1+
  1847. ZR X3,PRS3 IF FILE NOT IN *QFT*
  1848. SA4 QACS+3 SET QUEUE TYPE IN *QAC* PARAMETER BLOCK
  1849. MX0 12
  1850. BX6 -X0*X4
  1851. BX6 X3+X6
  1852. SA6 A4
  1853. EQ PRS2 SEARCH *QFT* FOR FILE
  1854.  
  1855. PRS3 SA1 PRSA
  1856. SB2 1R$
  1857. SB5 ERNJ * JSN XXXX NOT FOUND.*
  1858. RJ SNM SET JSN IN MESSAGE
  1859. SX5 ERNJ
  1860. EQ ERR ISSUE ERROR MESSAGE AND ABORT
  1861.  
  1862. PRS4 REPRIEVE RPB,SET,277B SET *REPRIEVE* PROCESSING
  1863. SA1 PRSA GET JSN
  1864. SX6 3 SET JSN AS FILE NAME IN FETS
  1865. BX6 X1+X6
  1866. SA6 Q SET JSN IN QUEUED FILE FET
  1867. SA6 S SET JSN IN SYSTEM SECTOR FET
  1868. SX7 B1+ SET RANDOM READ IN FET TO BOI
  1869. SA7 Q+6
  1870. SX6 SHLP
  1871. RJ RNR READ QUEUED FILE INTO BUFFER
  1872. SA1 QACF SAVE DAYFILE ADDRESS
  1873. MX2 -30
  1874. LX1 29-59
  1875. BX6 -X2*X1
  1876. SA6 DFLG
  1877. QCALL QRSF,S READ SYSTEM SECTOR
  1878. SA2 PRSA SET EOR STATUS IN SYSTEM SECTOR FET
  1879. SX6 23B
  1880. BX6 X2+X6
  1881. SA6 S
  1882.  
  1883. * SET UP HEADER.
  1884.  
  1885. SA1 PRSA GET JSN
  1886. SB2 1R$
  1887. SB5 LBHR
  1888. RJ SNM SET JSN INTO HEADER
  1889. SA1 QACPB+4
  1890. MX0 -12 CONVERT *QFT* ORDINAL
  1891. LX1 0-36
  1892. BX1 -X0*X1
  1893. SX1 X1+10000B
  1894. MX0 24
  1895. RJ COD CONVERT TO OCTAL DISPLAY
  1896. LX4 6
  1897. BX1 X0*X4
  1898. SB2 1R+
  1899. SB5 LBHR
  1900. RJ SNM SET *QFT* ORDINAL INTO HEADER
  1901. SA1 SBUF+IOSS./5+SCLQ GET INTERNAL CHARACTERISTICS
  1902. MX3 -3
  1903. AX1 12
  1904. BX1 -X3*X1
  1905. SA1 PRSC+X1
  1906. SB2 1R-
  1907. SB5 LBHR
  1908. RJ SNM SET *IC* INTO HEADER
  1909.  
  1910. * SET BUFFER HEADER.
  1911.  
  1912. MOVE LBHRL,LBHR,WBHR SET WORKING BUFFER
  1913. SB5 HLP *HELP* FUNCTION PROCESSOR
  1914. SB2 B0+ INDICATE NO ERROR
  1915. EQ PRSX RETURN
  1916.  
  1917.  
  1918. PRSA CON 0 JSN
  1919. PRSB CON 0 JOB ACTIVITY
  1920. PRSC BSS 0 INTERNAL CHARACTERISTICS
  1921. LOC 0
  1922. DCIC DATA 2LDC DISPLAY CODE
  1923. ASIC DATA 2LAS ASCII
  1924. BNIC DATA 2LBN BINARY
  1925. A6IC DATA 2LA6 6/12 ASCII
  1926. LOC *O
  1927. ERR SPACE 4,10
  1928. ** ERR - ERROR PROCESSOR.
  1929. *
  1930. * *ERR* ABORTS AFTER ISSUING THE SPECIFIED MESSAGE.
  1931. *
  1932. * ENTRY (X5) = FWA OF ERROR MESSAGE.
  1933. *
  1934. * MACROS ABORT, MESSAGE.
  1935.  
  1936.  
  1937. ERR BSS 0 ENTRY
  1938. MESSAGE X5,0,R ISSUE ERROR MESSAGE
  1939. ABORT
  1940. SPACE 4,10
  1941. ** ERROR MESSAGES TO DAYFILE.
  1942.  
  1943.  
  1944. ERAR DATA C* ARGUMENT ERROR.*
  1945. ERIJ DATA C* INCORRECT JSN.*
  1946. ERIU DATA C* USER ACCESS NOT VALID.*
  1947. ERNJ DATA C* JSN $$$$ NOT FOUND.*
  1948. SPACE 4,10
  1949. ** TQTG - TABLE OF QUEUE TYPES FOR *GET* FUNCTION.
  1950. *
  1951. *T, 12/ *QUEUE TYPE*,48/ 0.
  1952. *
  1953. * BITS 59-48 IN WORD 8 IN THE SELECTION CRITERIA
  1954. * PORTION OF THE *QAC* PARAMETER BLOCK WILL BE SET
  1955. * TO QUEUE TYPE.
  1956.  
  1957.  
  1958. TQTG BSS 0
  1959. VFD 12/PRQQ,48/0 PRINT FILES
  1960. VFD 12/WTQQ,48/0 WAIT FILES
  1961. VFD 12/PHQQ,48/0 PUNCH FILES
  1962. VFD 12/PLQQ,48/0 PLOT FILES
  1963. CON 0 END OF TABLE
  1964.  
  1965.  
  1966. ERRNG QBUF-* QBUF AND SBUF CANNOT OVERLAY PRESET
  1967.  
  1968. END