User Tools

Site Tools


cdc:nos2.source:opl871:lpt

Table of Contents

LPT

Table Of Contents

  • [00007] LPT - LINE PRINTER TEST.
  • [00049] CBS - CHECK BUSY STATUS.
  • [00059] INT - CHECK INTERRUPTS.
  • [00076] FMC - FORMAT CHANNELS.
  • [00080] MEM - MEMORY TEST.
  • [00097] MRP - MAXIMUM RATE PRINTOUT.
  • [00133] OEC - ODD/EVEN COLUMNS.
  • [00169] SCP - SHIFTING CHARACTER PATTERN.
  • [00201] SPC - SPACE CHECK.
  • [00218] VAR - VARIABLE BUFFER.
  • [00260] GCS - GENERATE CHARACTER SEQUENCE.
  • [00356] GDL - GENERATE DATA LINE.
  • [00382] STL - SET TITLE LINE.

Source Code

LPT.txt
  1. IDENT LPT,FET,LPT
  2. ABS
  3. ENTRY LPT
  4. ENTRY RFL=
  5. *COMMENT LPT - LINE PRINTER TEST.
  6. SYSCOM B1 DEFINE (B1) = 1
  7. TITLE LPT - LINE PRINTER TEST.
  8.  
  9. OBUFL EQU 2001B
  10. ORG 103B
  11. FET BSS 0
  12. O BSS 0
  13. OUTPUT FILEC OBUF,OBUFL
  14.  
  15. T1 CON 0 TEMPORARY STORAGE
  16. TS CON 0 TEST SECTION INDEX
  17. LPT TITLE MAIN PROGRAM.
  18.  
  19.  
  20. LPT SB1 1
  21. REWIND O,R
  22. BX6 X6-X6 PRESET COLON FOR 64 CHARACTER SET
  23. SA1 CSMR CHECK SYSTEM CHARACTER SET MODE
  24. MI X1,LPT0 IF 64 CHARACTER SET
  25. SX6 63B
  26. LPT0 SA6 GCSB SET COLON FOR 63 CHARACTER SET SYSTEM
  27.  
  28. LPT1 SA1 TS
  29. SA2 LPTA+X1
  30. SX6 X1+B1
  31. SA6 A1
  32. ZR X2,LPT2
  33. SB2 X2
  34. JP B2
  35. LPT2 WRITER O,R
  36. ENDRUN
  37.  
  38. LPTA BSS 0
  39. CON CBS
  40. CON INT
  41. CON SPC
  42. CON SCP
  43. CON OEC
  44. CON MRP
  45. CON VAR
  46. CON MEM
  47. CON 0
  48. CBS SPACE 4
  49. ** CBS - CHECK BUSY STATUS.
  50.  
  51.  
  52. CBS SX0 50
  53. CBS1 WRITEC O,(=C* CHECKING BUSY STATUS*)
  54. SX0 X0-1
  55. NZ X0,CBS1
  56. WRITEC O,(=C*2 *)
  57. EQ LPT1
  58. INT SPACE 4
  59. ** INT - CHECK INTERRUPTS.
  60.  
  61.  
  62. INT SX0 50
  63. INT1 WRITEC O,(=C* CHECKING READY NOT BUSY INTERRUPT*)
  64. SX0 X0-1
  65. NZ X0,INT1
  66. WRITEC O,(=C*1CHECKED TOP END OF OPERATION INTERRUPT*)
  67. WRITEC O,(=C*2CHECKED LAST LINE OF FORM END OF OPERATION INTER
  68. ,RUPT*)
  69. SX0 50
  70. INT2 WRITEC O,(=C* CHECKING END OF OPERATION INTERRUPT*)
  71. SX0 X0-1
  72. NZ X0,INT2
  73. WRITEC O,(=C*2 *)
  74. EQ LPT1
  75. FMC SPACE 4
  76. ** FMC - FORMAT CHANNELS.
  77.  
  78.  
  79. MEM SPACE 4
  80. ** MEM - MEMORY TEST.
  81.  
  82.  
  83. MEM SX2 =C*MEMORY TEST*
  84. RJ STL
  85. SX0 136
  86. SA5 MEMA
  87. MEM1 BX1 X5
  88. RJ GDL
  89. WRITEW O,BUF,14
  90. LX5 6
  91. SX0 X0-1
  92. NZ X0,MEM1
  93. EQ LPT1
  94.  
  95. MEMA DATA 2A0
  96. MRP SPACE 4
  97. ** MRP - MAXIMUM RATE PRINTOUT.
  98.  
  99.  
  100. MRP SX2 =C*MAX RATE PRINTOUT*
  101. RJ STL
  102. SX0 50
  103. SA5 MRPA
  104. MRP1 BX1 X5
  105. RJ GDL
  106. WRITEW O,BUF,14
  107. SX0 X0-1
  108. ZR X0,LPT1
  109. SA5 A5+B1
  110. NZ X5,MRP1
  111. SA5 MRPA
  112. EQ MRP1
  113.  
  114. MRPA BSS 0
  115. DATA 10H0000000000
  116. DATA 10H,,,,,,,,,,
  117. DATA 10HOOOOOOOOOO
  118. DATA 10H4444444444
  119. DATA 10H@@@@@@@@@@
  120. DATA 10HSSSSSSSSSS
  121. DATA 10H8888888888
  122. DATA 65656565656565656565B
  123. DATA 10HWWWWWWWWWW
  124. DATA 10HCCCCCCCCCC
  125. DATA 10H^^^^^^^^^^
  126. DATA 10H..........
  127. DATA 10HGGGGGGGGGG
  128. DATA 10H<<<<<<<<<<
  129. DATA 10H((((((((((
  130. DATA 10HKKKKKKKKKK
  131. DATA 0
  132. OEC SPACE 4
  133. ** OEC - ODD/EVEN COLUMNS.
  134.  
  135.  
  136. OEC SX6 B0
  137. SA6 OECA
  138. OEC1 SA1 OECA
  139. SA5 OECB+X1
  140. SX6 X1+B1
  141. SA6 A1
  142. ZR X5,LPT1
  143. SX2 =C*ODD COLUMNS*
  144. RJ STL
  145. SX0 50
  146. SA0 B1
  147. OEC2 BX1 X5 LIST DATA LINE
  148. RJ GDL
  149. WRITEW O,BUF,14
  150. SX0 X0-1
  151. NZ X0,OEC2
  152. SB2 A0
  153. LX5 -6
  154. ZR B2,OEC1
  155. SA0 A0-B1
  156. SX0 50
  157. SX2 =C*EVEN COLUMNS*
  158. RJ STL
  159. EQ OEC2
  160.  
  161. OECA CON 0
  162.  
  163. OECB BSS 0
  164. DATA 10H - - - - -
  165. DATA 10H 0 0 0 0 0
  166. DATA 10H M M M M M
  167. CON 0
  168. SCP SPACE 4
  169. ** SCP - SHIFTING CHARACTER PATTERN.
  170.  
  171.  
  172. SCP SX2 =C*INT. BCD CONVERTED*
  173. RJ STL
  174. SX0 100
  175. SA0 B0
  176. SCP1 SB2 A0
  177. MX3 6*6
  178. SB3 14
  179. SA0 A0+B1
  180. SB4 A0-100B
  181. NG B4,SCP2
  182. SA0 B0
  183. SCP2 RJ GCS
  184. WRITEW O,BUF,14
  185. SX0 X0-1
  186. NZ X0,SCP1
  187. SX2 =C*NEGATE BCD CONVERSION*
  188. RJ STL
  189. SX0 50
  190. SA0 101B
  191. SCP3 SA0 A0-B1
  192. MX3 6*6
  193. SB3 14
  194. SB2 A0
  195. RJ GCS
  196. WRITEW O,BUF,14
  197. SX0 X0-1
  198. NZ X0,SCP3
  199. EQ LPT1
  200. SPC SPACE 4
  201. ** SPC - SPACE CHECK.
  202.  
  203.  
  204. SPC SX0 25
  205. SPC1 WRITEC O,(=C* SINGLE SPACE*)
  206. SX0 X0-1
  207. NZ X0,SPC1
  208. WRITEC O,(=C*2LAST LINE OF FORM*)
  209. WRITEC O,(=C* TOP OF FORM*)
  210. SX0 24
  211. WRITEC O,(=C* DOUBLE SPACE*)
  212. SPC2 WRITEC O,(=C*0DOUBLE SPACE*)
  213. SX0 X0-1
  214. NZ X0,SPC2
  215. WRITEC O,(=C*2LAST LINE OF FORM*)
  216. EQ LPT1
  217. VAR SPACE 4
  218. ** VAR - VARIABLE BUFFER.
  219.  
  220.  
  221. VAR WRITEC O,(=C*Q *)
  222. SX6 B0
  223. SA6 VARA
  224. SX2 =C*VARIABLE BUFFER*
  225. RJ STL
  226. SX0 136/2
  227. MX5 12
  228. SA0 B1
  229. VAR1 SA4 VARA
  230. SB3 A0
  231. BX3 X5
  232. SB2 X4
  233. RJ GCS
  234. MX6 0
  235. SA6 A6+B1
  236. ZR X4,VAR2
  237. WRITEC O,VARB
  238. VAR2 WRITEC O,BUF
  239. SX0 X0-1
  240. ZR X0,VAR3
  241. BX1 X5
  242. AX5 12
  243. NZ X1,VAR1
  244. MX5 12
  245. SA0 A0+B1
  246. EQ VAR1
  247. VAR3 SA1 VARA
  248. NZ X1,LPT1
  249. MOVE 14,BUF,VARB
  250. SX6 8
  251. SA6 VARA
  252. SX0 136/2
  253. MX5 12
  254. SA0 B1
  255. EQ VAR1
  256.  
  257. VARA CON 0
  258. VARB BSS 14
  259. GCS TITLE SUBROUTINES.
  260. ** GCS - GENERATE CHARACTER SEQUENCE.
  261. * ENTRY (B2) = STARTING CHARACTER NUMBER.
  262. * (X3) = FINAL WORD MASK.
  263. * (B3) = WORD COUNT.
  264.  
  265.  
  266. GCS PS ENTRY/EXIT
  267. SA1 GCSA-1+B2
  268. SB2 B0
  269. BX6 X6-X6
  270. MX2 1
  271. SX1 1R
  272. GCS1 LX6 6
  273. BX6 X6+X1
  274. SA1 A1+B1
  275. LX2 6
  276. PL X1,GCS2
  277. SA1 GCSA
  278. GCS2 PL X2,GCS1
  279. SA6 BUF+B2
  280. SB2 B2+B1
  281. BX6 X6-X6
  282. NE B2,B3,GCS1
  283. SA1 A6
  284. BX6 X3*X1
  285. SA6 A6
  286. EQ GCS
  287.  
  288. GCSA BSS 0
  289. CON 1R1
  290. CON 1R2
  291. CON 1R3
  292. CON 1R4
  293. CON 1R5
  294. CON 1R6
  295. CON 1R7
  296. CON 1R8
  297. CON 1R9
  298. CON 1RA
  299. CON 1RB
  300. CON 1RC
  301. CON 1RD
  302. CON 1RE
  303. CON 1RF
  304. CON 1RG
  305. CON 1RH
  306. CON 1RI
  307. CON 1RJ
  308. CON 1RK
  309. CON 1RL
  310. CON 1RM
  311. CON 1RN
  312. CON 1RO
  313. CON 1RP
  314. CON 1RQ
  315. CON 1RR
  316. CON 1RS
  317. CON 1RT
  318. CON 1RU
  319. CON 1RV
  320. CON 1RW
  321. CON 1RX
  322. CON 1RY
  323. CON 1RZ
  324. CON 1R.
  325. CON 1R-
  326. CON 1R+
  327. CON 1R=
  328. CON 1R(
  329. CON 1R)
  330. CON 1R/
  331. CON 1R*
  332. CON 1R,
  333. CON 64B
  334. CON 1R$
  335. GCSB CON 00 COLON
  336. CON 1R@
  337. CON 1R
  338. CON 1R[
  339. CON 1R]
  340. CON 65B
  341. CON 1R#
  342. CON 1R&
  343. CON 1R!
  344. CON 1R^
  345. CON 1R'
  346. CON 1R?
  347. CON 1R>
  348. CON 1R<
  349. CON 1R\
  350. CON 1R;
  351. CON 1R
  352. CON 1R0
  353.  
  354. CON -1
  355. GDL SPACE 4
  356. ** GDL - GENERATE DATA LINE.
  357. * ENTRY (X1) = DATA WORD.
  358. * USES X - 2, 6.
  359. * B - 2, 3.
  360. * A - 6.
  361.  
  362.  
  363. GDL PS ENTRY/EXIT
  364. MX2 -54
  365. SB2 B1
  366. SB3 13
  367. SX3 1R SET BLANK IN COLUMN 1
  368. BX2 -X2*X1
  369. LX3 -6
  370. BX6 X3+X2
  371. BX2 X2-X2
  372. SA6 BUF
  373. GDL2 BX6 -X2*X1
  374. SA6 BUF+B2
  375. SB2 B2+B1
  376. NE B2,B3,GDL2
  377. MX2 6*6
  378. BX6 X2*X1
  379. SA6 A6+B1
  380. EQ GDL
  381. STL SPACE 4
  382. ** STL - SET TITLE LINE.
  383. * ENTRY (X2) = TITLE.
  384. * EXIT NONE.
  385. * CALLS GDL.
  386.  
  387.  
  388. STL PS ENTRY/EXIT
  389. MOVE 3,X2,STLB
  390. WRITEC O,STLA
  391. WRITEC O,(=C* *)
  392. SA1 =10H
  393. BX6 X1 FILL BUFFER WITH BLANKS
  394. SB6 B1
  395. SB7 14
  396. SA6 BUF
  397. STL1 SX1 B6
  398. RJ CDD
  399. BX6 X4 CONVERTED LEFT JUSTIFIED NUMBER
  400. SA6 BUF+B6
  401. SB6 B6+B1
  402. NE B6,B7,STL1
  403. MX1 36 INSURE END-OF-LINE
  404. BX6 X6*X1
  405. SA6 A6
  406. WRITEW O,BUF,B7
  407. SA1 =10H0123456789
  408. RJ GDL
  409. WRITEW O,BUF,14
  410. WRITEC O,(=C* *)
  411. WRITEC O,(=C* *)
  412. EQ STL
  413.  
  414. STLA BSS 0
  415. DATA 1H1
  416. DUP 5,1
  417. DATA 1H
  418. STLB BSSZ 4
  419. SPACE 4
  420. ** COMMON DECKS.
  421.  
  422.  
  423. *CALL COMCCDD
  424. *CALL COMCCIO
  425. *CALL COMCMVE
  426. *CALL COMCSYS
  427. *CALL COMCWTC
  428. *CALL COMCWTW
  429. BUFFERS SPACE 4
  430. ** BUFFERS.
  431.  
  432.  
  433. USE //
  434. SEG
  435. BUFFERS BSS 0
  436.  
  437. BUF BSS 15D SCRATCH BUFFER
  438.  
  439. OBUF BSS OBUFL
  440.  
  441. RFL= BSS 0 SET FIELD LENGTH
  442. SPACE 4
  443. END
cdc/nos2.source/opl871/lpt.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator