software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / UTILTY.SB
CommitLineData
7af5ad59
PH
1/UTILITY SUBROUTINE PACKAGE OS8 FORTRAN II LIBRARY
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 MANUAL.
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/UTILITY SUBROUTINE PACKAGE OS8 FORTRAN II LIBRARY
46\f/ VERSION 10A (APRIL 28, 1977)
47/ VERSION NUMBER IS AVAILABLE AT ENTRY POINTS
48/
49 ENTRY OPEN /INITIALIZING AND FLAG SETTING ROUTINE
50 ENTRY GENIO
51 ENTRY EXIT /EXIT TO DISK MONITOR SYSTEM
52 ENTRY ERROR
53 ENTRY CKIO /USELESS ROUTINE
54 OPDEF KRS 6034
55 OPDEF KCC 6032
56 OPDEF TADI 1400
57 OPDEF DCAI 3400
58 OPDEF JMSI 4400
59 OPDEF JMPI 5400
60/ CARD READER IOT'S
61 OPDEF RCSE 6672
62 OPDEF RCSP 6671
63 OPDEF RCSF 6631
64 OPDEF RCRA 6632
65/LINE PRINTER IOT'S
66 OPDEF LLB 6666
67 OPDEF LSF 6661
68
69 LAP
70
71U17, 17 /*** MUST BE FIRST LOC IN PAGE ***
72
73IOER, 1117
74 0522 /"IOER" ERROR
75GENIO, BLOCK 1
76 10 /GENERAL INPUT/OUTPUT ROUTINE
77 DCA 7 /SAVE ENTRY AC
78GENLP, TAD 7
79 RTL
80 RTL
81 RAL
82U200, AND U17
83 TAD JMPITB
84 DCA DSPACH /INDEX JUMP TABLE BY DEVICE NUMBER
85 TAD U200
86 KRS
87 TAD UM203
88 SNA CLA
89 KSF /CHECK FOR ^C ON TELETYPE
90DSPACH, NOP /NO ^C - DISPATCH TO I/O ROUTINE
91 CALL 0,EXIT
92
93JMPITB, JMPI DEVTAB
94DEVTAB, TTYOUT
95 HSPOUT
96 LPTOUT
97 GENOUT
98 TTYIN
99 HSRIN
100 CDRIN
101 GENIN
102 TTYFUJ /FUDGE - SEE TELETYPE INPUT ROUTINE
103 IOERR
104 IOERR
105 IOERR
106 IOERR
107 IOERR
108 IOERR
109 IOERR
110
111HSPOUT, PSF
112 JMP GENLP
113 TAD 7
114 PLS
115GENRTN, CLA
116 RETRN GENIO
117
118TTYIN, KSF
119 JMP GENLP
120 CLA CLL CML RTR /****DEPENDS ON NUMBER OF DEVICES ****
121 JMP GENLP /TEST FOR ^C ONE LAST TIME
122
123HSRIN, ISZ T1
124 JMP HSRSF
125 TAD U336 /TIME OUT-PRINT '^'
126 TLS
127HLP, KSF
128 JMP HLP
129 AND U200 /GET 200 INTO AC
130 KRS /READ THE CHAR.
131 TAD UM203
132 SZA CLA /IS IT CONTROL C?
133 KCC /NO-CLEAR FLAG
134 RFC /USER TYPED-TICKLE RDR-FALL THRU RFC
135HSRSF, RSF
136 JMP GENLP
137 DCA T1
138 RRB RFC
139 JMP GENRTN#
140U336, 336
141T1, 0
142
143UM203, -203
144PCDRGC, CDRGCH /USED TO FORCE DF=CURRENT WHEN NECESSARY
145CDR215, 215
146CDR100, 100
147CDR240, 240
148PCDRTB, CDRTBL /CONVERSION FROM CARD CODE TO ASCII-240
149CDRCT, 0
150CDRLEN, 0
151CDRIN, TAD CDRCT
152 SNA CLA
153 JMP CDRNXT /NEW CARD NECESSARY
154 ISZ CDRCT /ADVANCE TO NEXT COLUMN
155 JMP CDRGET
156 TAD CDR215 /NO MORE - SEND A CARRIAGE RETURN
157 JMP GENRTN#
158
159CDREST, KSF
160 JMP CDRTST
161 KCC
162CDRNXT, RCSE
163 JMP GENLP /CHECK FOR ^C WHILE WAITING FOR NEXT CARD
164CDRTST, RCSP
165 JMP CDRCOL /NOT END OF CARD YET
166 TAD CDRCT /END OF CARD - SET UP FOR EXTRACTION OF CHARS
167 CIA
168 DCA CDRLEN
169CDRGET, TAD CDRCT
170 TAD CDRLEN /FORM CHAR POINTER INTO TABLE AT 10100
171 CLL RAR
172 TAD CDR100
173 6211
174 JMSI PCDRGCH /INDEX TABLE AND PULL OUT CHAR (DF=10)
175 TAD CDR240 /CHANGE TO ASCII
176 JMP GENRTN# /RETURN
177CDRCOL, RCSF /ANYTHING YET?
178 JMP CDREST /KEEP LOOKING
179 RCRA /READ IT
180 CLL RAR
181 TAD PCDRTB
182 JMS I PCDRGC /GET TABLE ENTRY, FORCING DATA FIELD CURRENT
183 DCA CDRLEN /SAVE IT TEMPORARILY
184 TAD CDRCT
185 CIA
186 CLL RAR
187 TAD CDR100 /INDEX TABLE AT LOC 10100
188 DCA DSPACH
189 6211 /CDF 10
190 TAD CDRLEN
191 SZL /WHICH HALF?
192 JMP CDNORT /RIGHT HALF
193 RTL
194 RTL
195 RTL
196 SKP
197CDNORT, TADI DSPACH /ADD EXISTING LEFT HALF
198 DCAI DSPACH /SAVE UPDATED ENTRY
199 CLA CMA
200 TAD CDRCT
201 DCA CDRCT /UPDATE COLUMN POINTER
202 JMP CDRCOL
203
204
205 PAGE
206\fU377, 377 /MUST BE FIRST LOC IN THIS PAGE
207GENIN, 6201
208 TADI IHNDLR
209 SNA CLA /OPEN INPUT FILE?
210 JMP IOERR /NO
211 6202
212 JMS I FICHAR /GET A CHAR
213 JMP IOERR /INPUT ERROR
214UU200, AND U377
215GRTN2, RETRN GENIO
216
217GENOUT, 6201
218 TADI OHNDLR
219 SNA CLA /OPEN OUTPUT FILE?
220 JMP IOERR /NO
221 6202
222 TAD 7 /GET CHAR TO BE OUTPUT
223 AND U377
224 JMS I FOCHAR /PUT A CHARACTER
225 JMP IOERR /OUTPUT ERROR
226 JMP GRTN2
227
228IHNDLR, 122 /***ALL THESE LOCATIONS ARE VERY VOLATILE!! ***
229FICHAR, 606 /*******
230OHNDLR, 121 /*******
231FOCHAR, 651 /******************
232
233/
234/ INITIALIZING SUBROUTINE CALLED BY FORTRAN
235/ CLEARS FLOATING AC AND SETS FLAGS
236/
237OPEN, BLOCK 1
238 10
239 TAD (212
240 TLS /PUT LINE-FEED ON TTY
241 LLB /INITIALIZE LPT
242 KCC /CLEAR KEYBOARD FLAG (AND AC)
243 PLS
244 RFC
245 CALL 0,CLEAR
246 6201
247 DCAI IHNDLR
248 DCAI OHNDLR /ZERO DEVICE-INDEPENDENT IO FLAGS
249 RETRN OPEN
250
251
252LPTOUT, LSF
253 JMP GENLP
254 TAD 7
255 ISZ PFSTCH
256 JMP NOFST
257 TAD (-1262 /LOOK FOR CONTROL CHARS IN PRINT POSITION 1
258 CLL IAC
259 IAC
260 SNL
261 JMP DCACH
262 CLL RAL
263 TAD (212
264NOFST, LLB
265 TAD (-1212
266DCACH, SNA CLA /IF LINE FEED
267 CMA /SET "FIRST CHAR" SWITCH ON
268 DCA PFSTCH
269 JMP GRTN2
270PFSTCH, -1
271
272TTYFUJ, TAD UU200
273 KRS
274 DCA 7 /SAVE KEYBOARD CHAR
275 KCC /CLEAR FLAG
276 TAD 7
277 TAD (-212
278 SZA CLA
279 JMS TYPE
280 TAD 7
281 TAD (-215
282 SZA CLA
283 JMP TYRTN
284 CLA CLL CMA RTL
285 JMS TYPE
286TYRTN, TAD 7
287 JMP GRTN2 /RETURN WITH CHAR IN AC
288
289TYPE, 0
290 TAD 7
291TYPELP, TSF
292 JMP TYPELP
293 TLS
294 CLA
295 JMPI TYPE
296
297TTYOUT, JMS TYPE
298 JMP GRTN2
299
300IOERR, CALL 1,ERROR
301 ARG IOER
302
303CDRTBL, 0021;2223;2425;2627
304 3031;3203;4007;3502
305 2017;6364;6566;6770
306 7172;7514;0577;3637
307 1552;5354;5556;5760
308 6162;0104;1211;3374
309 0641;4243;4445;4647
310 5051;7316;3410;1376
311
312 PAGE
313\f
314PMESG, MESG
315MESG, 7777
316 7777
317 4005
318 2222
319 1722
320 4001
321 2440
322 1417
323 0340
324LIT7, 0007
325
326ERROR, BLOCK 1
327 10 /ERROR PROCESSOR
328U7600, 7600
329 TAD ERROR
330 DCA TEM1
331TEM1, NOP /SET DATA FIELD OF "CALL ERROR"
332 TADI ERROR#
333 DCA TEM3
334 INC ERROR#
335E60, CLA CMA CML /CML IS WINDOW DRESSING
336 TADI ERROR#
337 DCA 10
338 INC ERROR#
339TEM3, NOP /DATA FIELD OF MESSAGE&ENTRY POINT
340 DCA CKIO /ZERO "FATAL ERROR" FLAG
341 TADI 10
342 RAL
343 SZL /NON-FATAL BIT ON?
344 ISZ CKIO /YES - SET "FATAL FLAG" TO NON-FATAL
345 CLL RAR /STRIP NON-FATAL BIT FROM MESSAGE
346 DCA MESG
347 TADI 10 /SECOND WORD OF MESSAGE
348 DCA MESG#
349 TADI 10
350 DCA TEM1
351 TADI 10
352 DCA TEM3 /CALLING ADDRESS
353 TAD PMESG
354 DCA TEM2
355
356ERLP, TAD I TEM2
357 RTR
358 RTR
359 RTR
360 JMS PR6BIT
361 TAD I TEM2
362 JMS PR6BIT
363 INC TEM2
364 JMP ERLP
365
366PRLOC, TAD TEM1
367 RTR
368 RTR
369 JMS ERTTY /PRINT CALLING FIELD
370 TAD (-4
371 DCA TEM2
372NUMLP, TAD TEM3
373 RTL
374 RAL
375 DCA TEM3
376 TAD TEM3
377 JMS ERTTY
378 ISZ TEM2
379 JMP NUMLP
380 TAD (215
381 DCA 7
382 JMS TYPE
383 CLA CLL CMA RTL
384 JMS TYPE
385 TAD CKIO /GET THE FATAL ERROR FLAG
386 SNA CLA /WHADDOWEDO??
387 JMP EXITX
388 RETRN ERROR /HE SAYS ITS NON-FATAL - LET HIM HANDLE IT
389
390ERTTY, 0 /DIGIT PRINTING ROUTINE
391 RAL
392 AND LIT7
393 TAD E60
394 JMS PR6BIT
395 JMP I ERTTY
396
397PR6BIT, 0 /6BIT TO 8BIT CONVERTOR
398 AND (77
399 SNA
400 JMP PRLOC /MESSAGE OVER
401 TAD (7740
402 SPA
403 TAD (100
404 TAD (240
405 CALL 0,GENIO /LOOK FOR ^C WHILE TYPING
406 JMP I PR6BIT
407
408/
409/EXIT TO DISK MONITOR SYSTEM
410/
411EXIT, BLOCK 1
412 10
413EXITX, CALL 0,CKIO
414 6203
415 JMPI U7600 /RETURN TO MONITOR
416
417CKIO, 0
418TEM2, 10 /DUMMY SUBROUTINE TO WAIT FOR I/O COMPLETE
419CKWAIT, 6041
420 JMP CKWAIT
421 RETRN CKIO
422
423CDRGCH, 0 /GET A CHAR FROM A PACKED TABLE
424 DCA TEM2 /WORD PTR IN AC, LEFT/RIGHT SW IN LINK
425 TADI TEM2 /PRESERVE ENTRY FIELD
426 SZL
427 JMP CDRAND /RIGHT HALF
428 RTR
429 RTR
430 RTR
431CDRAND, AND CDR77
432 JMP I CDRGCH /RESTORE CURRENT FIELD AND GET OUT
433CDR77, 77
434
435 END
436\f