Add README.md
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / LPSV.PA
CommitLineData
7af5ad59
PH
1/5 LP08/LS8E/LA180/LV8E HANDLER
2/
3/
4/
5/
6/
7/
8/
9/
10/
11/COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION
12/
13/
14/
15/
16/
17/
18/
19/
20/
21/
22/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
23/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
24/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
25/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
26/
27/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
28/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
29/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
30/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
31/
32/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
33/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
34/DIGITAL.
35/
36/
37/
38/
39/
40/
41/
42/
43/
44/
45\f LPVERSION="C&77
46
47 *0
48
49 -1
50 DEVICE LPSV;DEVICE LPT;1040;LPT&177;ZBLOCK 2
51
52/LPT HANDLER FOR EITHER LP08 OR LS8E LINE PRINTER.
53/HANDLES TABS, PASSES EVERYTHING ELSE ON TO THE HARDWARE.
54
55 LSF=6661 /SKIP ON FLAG
56 LSR=6663 /SKIP ON ERROR
57 LLS=6666 /LOAD LPT BUFFER
58
59 DBST= 6570 /SKIP IF DEMAND SET AND CLEAR IT
60 DBTD= 6574 /LOAD COMPLEMENT OF AC0-11 TO TRANSMIT BUFFER
61 DBSE= 6575 /SET INTERRUPT ENABLE
62 DBCE= 6575 /CLEAR INTERRUPT ENABLE
63
64 LA180=0 /SET TO 1 TO USE LA180
65
66/V3D CHANGES:
67
68/ADDED IN LA180 SUPPORT
69\f *200
70
71LPWDTH, -205 /-(WIDTH+1) [USE -121 FOR 80 COLUMNS]
72LTERMC, 14 /4 FOR LV8
73LVCCNV, -40 /0 IF PRINTER PRINTS LC
74LP7770, 7770
75LP0007, 0007
76LPT, LPVERSION /NORMAL ENTRY POINT
77 CLA STL RAR
78 TAD I LPT / R/W BIT TO LINK L
79 AND LP7700 / I
80 CMA /TREAT 0 PG CNT AS 0 WD CNT N
81 DCA LPTWC /SAVE -(DBLWD COUNT+1) K
82LPT214, RDF /
83 TAD LPTCIF / M
84 DCA LPTXIT /SAVE CIF CDF RETRN FIELD U
85 TAD I LPT / S
86 AND (70 / T
87 TAD (CDF 0 /
88 DCA LPTCDF / N
89 ISZ LPT /PT TO BUFFER O
90 TAD I LPT /GET BUFFER ADDRESS T
91 DCA LPTCA /SAVE BUFFER PTR
92 ISZ LPT /PT TO BLOCK # C
93 TAD I LPT /GET IT H
94 ISZ LPT /POINT TO ERROR RETURN G
95LPTCDF, HLT / !
96 SNL
97 JMP LPTERR /CAN'T READ FROM LPT
98 SNA CLA
99 TAD LPT214 /OUTPUT FORM FEED IF BLOCK 0
100LPTELP, JMS LPTPCH /PRINT 3RD CHAR OF DOUBLEWORD
101 ISZ LPTWC
102 JMP LPTLP /GET 3 MORE CHARS
103 SKP
104LPTCTZ, TAD LTERMC
105 JMS LPTPCH /OUTPUT FORM FEED IF ^Z SEEN (EOT OF LV8)
106 ISZ LPT /BUMP TO NORMAL RETURN
107LPTXIT, HLT /RESTORE FIELDS
108 JMP I LPT /EXIT
109\f/UNPACKING LOOP - USES A SHIFT REGISTER METHOD TO GET THE
110/THIRD CHARACTER IN EACH DOUBLEWORD.
111
112LPTLP, STL /GUARD BIT OF SHIFT REGISTER
113LPROTL, RTL
114 RTL
115 SPA /DO WE HAVE 8 BITS SHIFTED IN?
116 JMP LPTELP
117 DCA LPTCDF /SAVE SHIFT REGISTER
118 TAD I LPTCA
119 JMS LPTPCH /PRINT A CHAR
120 TAD I LPTCA
121 ISZ LPTCA /BUMP INPUT POINTER
122LP7400, 7400 /PROTECT ISZ
123 AND LP7400
124 CLL RAL
125 TAD LPTCDF /SHIFT HIGH 4 BITS INTO
126 JMP LPROTL /SHIFT REGISTER
127
128LPTERR, STL CLA RAR /PUT 4000 IN AC
129 JMP LPTXIT /AND TAKE ERROR RETURN
130
131LPTWC, 0
132LPTCA, 0
133\f/CHAR PRINT ROUTINE
134
135LPTPCH, 0
136 AND (177
137 TAD (-175
138 SMA
139 JMP LPFLSH /FLUSH CODES 175-177
140 TAD (175-140
141 SMA
142 TAD LVCCNV /CONVERT LC TO UC IF DESIRED
143 TAD (140-33
144 SNA
145 TAD (11 /CHANGE ALTMODE TO $
146 IAC
147 SNA
148 JMP LPTCTZ /^Z - END OF FILE
149 TAD (32-11
150 SNA
151 JMP LPTTAB /TABS MUST BE SIMULATED
152LPLFHK, TAD (11 /RESTORE CHAR
153 SZA /FLUSH NULLS
154 JMS LPCHAR /
155 TAD LPLPTR /IF COL. CTR GT 0
156 SMA /WE HIT A CONTROL CHAR
157 TAD LPWDTH /OR EOL- SET TO FULL
158 DCA LPLPTR /WIDTH (NOTE LPLPTR=1 !)
159LP7700,
160LPFLSH, SMA CLA /NEVER SKIPS
161 JMP I LPTPCH /RETURN
162
163LPCHAR, 0 /LOW LEVEL PRINT ROUTINE
164 IFZERO LA180 <
165 NOP /NOP'S NEEDED FOR SET
166 LLS /PUT CHAR IN LPT BUFFER
167 NOP
168 >
169 IFNZRO LA180 <
170 CMA
171 DBTD /PUT CHAR IN LP BUFFER
172 CMA
173 >
174 AND LP7770 /KLUDGE - CLEARS COLUMN CTR
175 TAD LP7770 /ON CR, LF, VT, FF BUT ALSO
176 SNA CLA /ON ^H,^N, AND ^O. BIG DEAL
177 DCA LPLPTR /?SR RICHIE SAID 'LPCRFG'
178LP7600, 7600 /CLEAR AC
179LPCTCL, TAD LP7600
180 KRS
181 TAD (-7603 /CHECK FOR ^C FROM CONSOLE
182 SNA CLA
183 KSF /WITH FLAG UP
184 JMP .+3
185LPTCIF, CDF CIF 0 /YES, RETURN TO OS/8
186 JMP I LP7600
187 IFNZRO LA180 <DBST> /NO MUST BE HERE
188 IFZERO LA180 <LSF> /NO FOR SET
189 JMP LPCTCL /WAIT FOR FLAG
190 ISZ LPLPTR /CHECK LINE OVERFLOW
191 JMP I LPCHAR
192 TAD (15
193 JMS LPCHAR
194 CLA IAC
195 JMP LPLFHK
196\fLPTTAB, TAD LPBLNK /GET PSEUDO BLANK
197 JMS LPCHAR /PRINT IT
198 TAD LPWDTH
199 CMA
200 TAD LPLPTR /GET # CHARS IN LINE
201 AND LP0007
202LPBLNK, SZA CLA /LOOP 'TILL MULTIPLE OF 8
203 JMP LPTTAB
204 JMP I LPTPCH
205
206LPLPTR, 0
207 $
208\f