Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /8 DUMP LPT HANDLER FOR OS/8 |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,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 | ||
46 | / DEC-S8-UCASA-A-LA | |
47 | ||
48 | / COPYRIGHT 1972 | |
49 | ||
50 | / DIGITAL EQUIPMENT CORPORATION | |
51 | ||
52 | / MAYNARD MASSACHUSETTS 01754 | |
53 | ||
54 | / MOUTH/DORP | |
55 | ||
56 | IFNDEF CODE <CODE=0> | |
57 | ||
58 | KCLR=CODE^10+6700 /CLEAR ALL | |
59 | KSDR=CODE^10+6701 /SKIP ON DATA FLAG | |
60 | KSEN=CODE^10+6702 /SKIP ON ERROR | |
61 | KSBF=CODE^10+6703 /SKIP ON READY FLAG | |
62 | KLSA=CODE^10+6704 /LOAD STATUS A | |
63 | KSAF=CODE^10+6705 /SKIP ON ANY FLAG OR ERROR | |
64 | KGOA=CODE^10+6706 /ASSERT CONTENTS OF STATUS A AND XFER | |
65 | KRSB=CODE^10+6707 /READ STATUS B | |
66 | ||
67 | BSW=7002 /BYTE SWAP [8/E,F ONLY] | |
68 | ||
69 | /REWIND=10 | |
70 | /BACKFIL=30 | |
71 | /WRGAP=40 | |
72 | /BACKBLOCK=50 | |
73 | /SKPFIL=70 | |
74 | ||
75 | /SPECIAL CODES | |
76 | ||
77 | / 0 WRITE EOF | |
78 | / 1 REWIND | |
79 | / 2 BACKBLOCK | |
80 | / 3 SKIPFILE/BACKFILE | |
81 | ||
82 | / 4-7 UNUSED (TAKES LOW ORDER 2 BITS ONLY CURRENTLY) | |
83 | ||
84 | \f/ EDIT HISTORY: | |
85 | ||
86 | / 1976 S.R. ORIGINALLY WRITTEN | |
87 | / 19-MAR-77 S.R. FIXED BUG WITH BUFFER ENDING AT 7777 | |
88 | ||
89 | *0 | |
90 | ||
91 | -1 | |
92 | DEVICE DUMP;DEVICE DUMP;1360;DUMP&177+4000;ZBLOCK 2 | |
93 | ||
94 | DMPVER="C&77 | |
95 | \f *200 | |
96 | ||
97 | LINK, 0 /POINTS TO 'LINC' ON NEXT PAGE | |
98 | TAD I DUMP /GET FUNCTION CONTROL WORD | |
99 | DCA FNWD | |
100 | ISZ DUMP /POINT TO BUFFER STARTING ADDRESS | |
101 | TAD I DUMP /GET BUFFER STARTING ADDRESS | |
102 | DCA BUFFER | |
103 | ISZ DUMP /POINT TO STARTING BLOCK # | |
104 | TAD I DUMP /GET STARTING BLOCK NUMBER | |
105 | DCA BLOCK /SAVE IT IN 'BLOCK' | |
106 | ISZ DUMP /POINT TO USER'S ERROR RETURN | |
107 | RDF | |
108 | TAD KCIDF /FOR 'CIF CDF' TO USER'S FIELD | |
109 | DCA DMPRET /NEED IT TO RETURN TO HIM LATER | |
110 | TAD FNWD /LOOK AT FUNCTION WORD | |
111 | SMA /BIT 0 IS READ/WRITE BIT | |
112 | JMP ERRET /TAKE FATAL ERROR IF GUY TRIED TO | |
113 | /READ FROM 'DUMP' | |
114 | AND L3700 | |
115 | CLL RTR | |
116 | SNA | |
117 | JMP CLOSE /0 PAGES MEANS PERFORM CLOSE | |
118 | /OPERATION, GO AWAY | |
119 | CIA /STORE AWAY NEGATIVE OF | |
120 | /NUMBER OF LINES TO DUMP | |
121 | DCA KNT | |
122 | TAD FNWD /LOOK SOME MORE AT ALL-IMPORTANT | |
123 | /FUNCTION WORD | |
124 | L374, AND L70 /ISOLATE FIELD OF BUFFER | |
125 | TAD KCDF /FORM 'CDF' TO FLD OF BUFFER | |
126 | DCA .+1 /STORE IT IN NEXT LOCATION | |
127 | FNWD, | |
128 | BPTR, HLT /CHANGE DATA FIELD TO FLD OF BUFFER | |
129 | B, TAD M40 | |
130 | DCA RKNT | |
131 | JMS I LINK | |
132 | TAD LOW-200 | |
133 | CIA CLL | |
134 | TAD BLOCK | |
135 | SZL CLA | |
136 | TAD KLLS | |
137 | JMS I LINK | |
138 | DCA LPUT+1-200 | |
139 | TAD BLOCK | |
140 | JMS I LINK | |
141 | JMP BLK-200 | |
142 | JMS I LINK | |
143 | JMP CRLF-200 | |
144 | A, JMS INIT | |
145 | TAD RKNT | |
146 | TAD L40 /MUST BE REAL 40 | |
147 | JMS I LINK | |
148 | JMS PRINT-200 | |
149 | TAD KSLASH | |
150 | JMS I LINK | |
151 | JMP SPACE-200 | |
152 | C, TAD I BPTR /GET WORD FROM BUFFER | |
153 | JMS I LINK | |
154 | JMS PRINT-200 /PRINT IT IN OCTAL ON LIST DEVICE | |
155 | ISZ BPTR /POINT TO NEXT WORD IN BUFFER | |
156 | NOP /V3D | |
157 | ISZ CKNT /DONE WITH THIS ROW? | |
158 | JMP C /NO, GO PRINT NEXT WORD | |
159 | JMS I LINK | |
160 | JMP SPACE-200 | |
161 | JMS INIT | |
162 | D, TAD I BPTR | |
163 | RTR | |
164 | RTR | |
165 | RTR | |
166 | JMS I LINK | |
167 | JMP PUT6-200 | |
168 | TAD I BPTR | |
169 | JMS I LINK | |
170 | JMP PUT6-200 | |
171 | ISZ BPTR /POINT TO NEXT WORD IN BUFFER | |
172 | NOP /V3D | |
173 | ISZ CKNT /DONE WITH THIS ROW? | |
174 | JMP D /NO, GO ON TO NEXT WORD | |
175 | JMS I LINK | |
176 | JMP SPACE-200 | |
177 | JMS INIT | |
178 | E, TAD I BUFFER /GET WORD 1 OF PAIR | |
179 | JMS I LINK | |
180 | JMP PUTSAV-200 /PUT OUT THE CHAR AND SAVE THE WORD | |
181 | ISZ BUFFER /POINT TO WORD 2 OF PAIR | |
182 | TAD I BUFFER /GET WORD 2 OF PAIR | |
183 | JMS I LINK | |
184 | JMP PUTSAV-200 | |
185 | ISZ BUFFER /POINT TO BEGIN OF NEXT PAIR | |
186 | JMS I LINK | |
187 | JMP THIRD-200 /PRINT THIRD CHAR FROM | |
188 | /REMEMBRANCES OF LAST TWO | |
189 | ISZ CKNT | |
190 | ISZ CKNT /DONE WITH THIS ROW? | |
191 | JMP E /NO, GO ON TO NEXT PAIR | |
192 | JMS I LINK /YES | |
193 | JMP CRLF-200 /PRINT CARRIAGE RETURN/LINE FEED | |
194 | ISZ KNT /DONE WITH BUFFER YET? | |
195 | SKP /NO | |
196 | JMP OKRET /YES | |
197 | ISZ RKNT /DONE WITH LAST ROW OF PAGE? | |
198 | JMP A /NO, GO ON TO NEXT ROW IN SAME PAGE | |
199 | ISZ BLOCK /BUMP BLOCK NUMBER BY 1 | |
200 | JMP B /GO DUMP THE NEXT PAGE | |
201 | \fCLOSE, STA /-1 CHANGES CR TO FORM FEED | |
202 | JMS I LINK | |
203 | JMP CRLF-200 | |
204 | OKRET, ISZ DUMP /POINT TO NORMAL RETURN | |
205 | M40, SMA SZA CLA /AC 0 SO ALWAYS SKIPS | |
206 | ERRET, STL CLA RAR /FATAL ERROR HAS AC NEGATIVE | |
207 | DMPRET, HLT /PERFORM 'CIF CDF' TO USER'S FIELD | |
208 | JMP I DUMP /RETURN | |
209 | ||
210 | INIT, 0 | |
211 | TAD M10 | |
212 | DCA CKNT | |
213 | TAD BUFFER | |
214 | DCA BPTR | |
215 | JMP I INIT | |
216 | ||
217 | KSLASH, 57-40 | |
218 | KCIDF, CIF CDF 0 | |
219 | KCDF, CDF 0 | |
220 | M10, -10 | |
221 | L40, 40 /MUST BE REAL 40 | |
222 | L3700, 3700 | |
223 | BUFFER, 0 | |
224 | RKNT, 0 /ROW COUNT | |
225 | CKNT, 0 /COLUMN COUNT | |
226 | BLOCK, 0 /CURRENT BLOCK NUMBER | |
227 | KLLS, LLS | |
228 | IFZERO .-375&4000 <ERROR> | |
229 | *374 | |
230 | L70, 70 /MUST BE AT REL LOC 174 | |
231 | KNT, 0 /- NUMBER OF PAGES LEFT TO DUMP | |
232 | IFNZRO L70-374 <ERROR> | |
233 | DUMP, DMPVER | |
234 | JMS LINK /GET ADDRESS OF NEXT PAGE INTO LINK | |
235 | IFNZRO .-400 <ERROR> | |
236 | PAGE | |
237 | \f LSF=6661 /SLIP ON LPT FLAG | |
238 | LLS=6666 /LOAD LPT BUFFER | |
239 | ||
240 | IFDEF DMPTTY < | |
241 | LSF=TSF | |
242 | LLS=TLS | |
243 | > | |
244 | ||
245 | LINC, 0 | |
246 | DCA ARG | |
247 | RDF | |
248 | TAD HCDF | |
249 | TTY12, DCA TEMP | |
250 | HCDF, CDF 0 | |
251 | TAD I LINC | |
252 | DCA DOIT | |
253 | ISZ LINC | |
254 | L77, 77 | |
255 | TEMP, 0 | |
256 | TAD ARG | |
257 | CNT, | |
258 | DOIT, HLT | |
259 | POP, JMP I LINC /RETURN | |
260 | L177, 177 | |
261 | IFNZRO POP&177-15 <ERROR> /MUST BE AT 15 IN PG | |
262 | IFNZRO DOIT&177-14 <ERROR> | |
263 | IFNZRO TEMP&177-12 <ERROR> | |
264 | ||
265 | THIRD, TAD SAVE | |
266 | DCA ARG | |
267 | TAD ARG | |
268 | PUTSAV, AND L7600 | |
269 | CLL RAL | |
270 | TAD SAVE | |
271 | RTL | |
272 | RTL | |
273 | AND L177 | |
274 | DCA SAVE | |
275 | TAD ARG | |
276 | AND L177 /FORCE 7-BIT | |
277 | TAD M140 /DO RANGE CHECK | |
278 | CLL | |
279 | TAD (100 /FOR BETWEEN 40 AND 137 | |
280 | SNL /SKIP ON SUCCESS | |
281 | TTY40, | |
282 | M140, SZA CLA /NEVER SKIPS | |
283 | PUTSPC, TAD TTY40 /RESTORE CHAR OR BLANK | |
284 | PUTPOP, JMS LPUT | |
285 | TTY215, JMP POP | |
286 | \fLPUT, 0 | |
287 | NOP /THIS MAY BE AN 'LLS' OR 0 | |
288 | L7600, 7600 /CLA | |
289 | KBD, KSF | |
290 | JMP CHECKL | |
291 | TAD L7600 | |
292 | KRS | |
293 | TAD (-7603 | |
294 | SNA CLA | |
295 | JMP CTRLC | |
296 | KRB | |
297 | TLS | |
298 | AND L177 | |
299 | TAD (-15 | |
300 | SNA | |
301 | JMP CR | |
302 | TAD (15-70 | |
303 | CLL | |
304 | TAD (10 | |
305 | DCA TEMP | |
306 | SNL | |
307 | JMP NOT /NOT A DIGIT | |
308 | TAD NUM | |
309 | CLL RAL | |
310 | CLL RAL | |
311 | CLL RAL | |
312 | TAD TEMP | |
313 | DCA NUM | |
314 | JMP CHECKL | |
315 | CTRLC, CIF CDF 0 | |
316 | JMP I L7600 | |
317 | CR, TAD NUM | |
318 | DCA LOW | |
319 | TAD (12-77 | |
320 | NOT, TAD L77 | |
321 | TSF | |
322 | JMP .-1 | |
323 | XTRA, TLS | |
324 | CLA | |
325 | DCA NUM | |
326 | CHECKL, LSF | |
327 | JMP KBD | |
328 | JMP I LPUT /YES, RETURN | |
329 | NUM, 0 | |
330 | LOW, 0 | |
331 | \fPUT6, TAD TTY40 | |
332 | AND L77 | |
333 | JMP PUTSPC | |
334 | ||
335 | PRINT, 0 | |
336 | DCA ARG | |
337 | TAD TTY40 | |
338 | JMS LPUT | |
339 | TAD (-4 | |
340 | DCA CNT | |
341 | PRLUP, TAD ARG | |
342 | AND L7600 | |
343 | CLL RTL | |
344 | TAD L214 /14 SHIFTS TO 60 | |
345 | /AND L214 HAS AC0 = 0 | |
346 | RTL | |
347 | JMS LPUT | |
348 | TAD ARG | |
349 | RTL | |
350 | RAL | |
351 | DCA ARG | |
352 | ISZ CNT /BUG IF TRY TO USE AS L214 | |
353 | JMP PRLUP | |
354 | JMP I PRINT | |
355 | L214, 214 /COULD BE 'AND CNT' | |
356 | ||
357 | SAVE, 0 /MUST BE DEDICATED. USED AS SHIFT | |
358 | /REG AND MUST BE ALMOST 0 ON ENTRY | |
359 | \fARG, 0 | |
360 | ||
361 | SPACE, TAD TTY40 | |
362 | JMS LPUT | |
363 | JMP PUTSPC | |
364 | ||
365 | BLK, SNA CLA | |
366 | DCA LOW /BLOCK 0 INITIALIZATION | |
367 | TAD L214 /FORM FEED | |
368 | JMS LPUT | |
369 | TAD ARG | |
370 | JMS PRINT | |
371 | / TAD (-10 | |
372 | / DCA TEMP | |
373 | / TAD TTY3 | |
374 | / JMS SPACE | |
375 | /LUP, TAD TEMP | |
376 | / TAD (10 /MUST BE REAL 10 | |
377 | / JMS PRINT | |
378 | / ISZ TEMP | |
379 | / JMP LUP | |
380 | CRLF, TAD TTY215 | |
381 | JMS LPUT | |
382 | TAD TTY12 | |
383 | JMP PUTPOP | |
384 | PAGE | |
385 | \f |