A large commit.
[pdp8.git] / sw / os8 / v3d / sources / extensions / dectapes / dectape2 / geniox.sb
CommitLineData
81e70d48
PH
1/
2/ COPYRIGHT 1971, DIGITAL EQUIPMENT CORPORATION,
3/ MAYNARD, MASSACHUSETTS 01754
4/ UTILITY SUBROUTINE PACKAGE
5/ VERSION UTILTY.V7A (OCTOBER 26,1971)
6/ (VERS. CHG. V07 TO V7A 4/25/77 MH)
7/
8 ENTRY OPEN /INITIALIZING AND FLAG SETTING ROUTINE
9 ENTRY GENIO
10 ENTRY EXIT /EXIT TO DISK MONITOR SYSTEM
11 ENTRY ERROR
12 ENTRY CKIO /USELESS ROUTINE
13 OPDEF KRS 6034
14 OPDEF KCC 6032
15 OPDEF RIF 6224
16 OPDEF TADI 1400
17 OPDEF DCAI 3400
18 OPDEF JMSI 4400
19 OPDEF JMPI 5400
20/ CARD READER IOT'S
21 OPDEF RCSE 6672
22 OPDEF RCSP 6671
23 OPDEF RCSF 6631
24 OPDEF RCRA 6632
25/LINE PRINTER IOT'S
26 OPDEF LLB 6666
27 OPDEF LSF 6661
28
29 LAP
30
31U17, 17 /*** MUST BE FIRST LOC IN PAGE ***
32
33IOER, 1117
34 0522 /"IOER" ERROR
35GENIO, BLOCK 2 /GENERAL INPUT/OUTPUT ROUTINE
36 DCA 7 /SAVE ENTRY AC
37GENLP, TAD 7
38 RTL
39 RTL
40 RAL
41U200, AND U17
42 TAD JMPITB
43 DCA DSPACH /INDEX JUMP TABLE BY DEVICE NUMBER
44 TAD U200
45 KRS
46 TAD UM203
47 SNA CLA
48 KSF /CHECK FOR ^C ON TELETYPE
49DSPACH, NOP /NO ^C - DISPATCH TO I/O ROUTINE
50 CALL 0,EXIT
51
52JMPITB, JMPI DEVTAB
53DEVTAB, TTYOUT
54 HSPOUT
55 IOERR
56 GENOUT
57 TTYIN
58 HSRIN
59 IOERR
60 GENIN
61 IOERR
62 IOERR
63 IOERR
64 IOERR
65 IOERR
66 IOERR
67 IOERR
68 IOERR
69
70HSPOUT, PSF
71 JMP GENLP
72 TAD 7
73 PLS
74GENRTN, CLA
75 RETRN GENIO
76
77HSRIN, ISZ T1
78 JMP HSRSF
79 TAD U336 /TIME OUT-PRINT '^'
80 TLS
81HLP, KSF
82 JMP HLP
83 AND U200 /GET 200 INTO AC
84 KRS /READ THE CHAR.
85 TAD UM203
86 SZA CLA /IS IT CONTROL C?
87 KCC /NO-CLEAR FLAG
88 RFC /USER TYPED-TICKLE RDR-FALL THRU RFC
89HSRSF, RSF
90 JMP GENLP
91 DCA T1
92 RRB RFC
93 JMP GENRTN#
94U336, 336
95T1, 0
96
97UM203, -203
98
99
100 PAGE
101\fU377, 377 /MUST BE FIRST LOC IN THIS PAGE
102GENIN, 6201
103 TADI IHNDLR
104 SNA CLA /OPEN INPUT FILE?
105 JMP IOERR /NO
106 6202
107 JMS I FICHAR /GET A CHAR
108 JMP IOERR /INPUT ERROR
109UU200, AND U377
110GRTN2, RETRN GENIO
111
112GENOUT, 6201
113 TADI OHNDLR
114 SNA CLA /OPEN OUTPUT FILE?
115 JMP IOERR /NO
116 6202
117 TAD 7 /GET CHAR TO BE OUTPUT
118 AND U377
119 JMS I FOCHAR /PUT A CHARACTER
120 JMP IOERR /OUTPUT ERROR
121 JMP GRTN2
122
123IHNDLR, 122 /***ALL THESE LOCATIONS ARE VERY VOLATILE!! ***
124FICHAR, 606 /*******
125OHNDLR, 121 /*******
126FOCHAR, 651 /******************
127BATIN, 5400 /**************************
128BATOUT, 7400 /**************************
129BATVFY, 5600 /**************************
130BATVAL, -2214 /**************************
131
132/
133/ INITIALIZING SUBROUTINE CALLED BY FORTRAN
134/ CLEARS FLOATING AC AND SETS FLAGS
135/
136OPEN, BLOCK 2
137 PLS
138 RFC
139 CALL 0,CLEAR
140CDFX, 6201
141 DCAI IHNDLR
142 DCAI OHNDLR /ZERO DEVICE-INDEPENDENT IO FLAGS
143 DCA TTFLAG /BEGINNING OF LINE
144 TADI (7777 /GET BATCH FIELD
145 AND (70
146 TAD CDFX /MAKE A CDF
147 DCA CDFB
148 TADI (7777 /GET BATCH RUNNING BIT
149 RAL
150 SMA CLA
151 JMP IOERR /BATCH NOT RUNNING
152CDFB, HLT
153 TADI BATVFY /CHECK CRUCIAL LOCATION
154 TAD BATVAL /FOR RL'S INITIALS
155 SZA CLA
156 JMP IOERR
157 TAD CDFB
158 IAC /MAKE A CIF
159 DCA CIFB1
160 TAD CIFB1
161 DCA CIFB2
162 RIF /MAKE A CDF TO HERE
163 TAD CDFX
164 DCA CDFH
165 RETRN OPEN
166
167
168TTYIN,
169CIFB1, 0 /CIF BATCH
170 JMSI BATIN /GET A CHAR
171 JMP TTEOF1 /EOF
172 DCA 7 /SAVE KEYBOARD CHAR
173 TAD 7
174 TAD (-"$ /IS IT A "$"?
175 SZA CLA
176 JMP TTFUJ1 /NO
177 ISZ TTFLAG /WAS LAST CHAR <CR>?
178 JMP TTYEOF /YES - EOF
179TTFUJ1, CLA CMA
180 DCA TTFLAG /RESET FLAG FOR NON <CR>
181 TAD 7
182 TAD (-215
183 SNA CLA
184 DCA TTFLAG /CLEAR FLAG TO INDICATE <CR>
185TYRTN, TAD 7
186 JMP GRTN2 /RETURN WITH CHAR IN AC
187
188TTFLAG, 0 /INITIALLY AT BEGINNING OF LINE
189
190TTYEOF, 6201 /CDF
191 TADI (7777 /GET WORD FROM FIELD 0
192 RTR
193 CLL CML RTL /SET BIT 10
194 DCAI (7777 /REPLACE IT
195CDFH, 0 /CDF HERE
196TTEOF1, JMP IOERR /WHAT TO DO?
197
198
199TYPE, 0
200 TAD 7
201CIFB2, 0 /CIF BATCH
202 JMSI BATOUT /SEND A CHAR TO THE BATCH OUTPUT STREAM
203 JMPI TYPE
204
205TTYOUT, JMS TYPE
206 JMP GRTN2
207
208IOERR, CALL 1,ERROR
209 ARG IOER
210
211
212 PAGE
213\f
214PMESG, MESG
215MESG, 7777
216 7777
217 4005
218 2222
219 1722
220 4001
221 2440
222 1417
223 0340
224LIT7, 0007
225
226ERROR, BLOCK 2 /ERROR PROCESSOR
227U7600, 7600
228 TAD ERROR
229 DCA TEM1
230TEM1, NOP /SET DATA FIELD OF "CALL ERROR"
231 TADI ERROR#
232 DCA TEM3
233 INC ERROR#
234E60, CLA CMA CML /CML IS WINDOW DRESSING
235 TADI ERROR#
236 DCA 10
237 INC ERROR#
238TEM3, NOP /DATA FIELD OF MESSAGE&ENTRY POINT
239 DCA CKIO /ZERO "FATAL ERROR" FLAG
240 TADI 10
241 RAL
242 SZL /NON-FATAL BIT ON?
243 ISZ CKIO /YES - SET "FATAL FLAG" TO NON-FATAL
244 CLL RAR /STRIP NON-FATAL BIT FROM MESSAGE
245 DCA MESG
246 TADI 10 /SECOND WORD OF MESSAGE
247 DCA MESG#
248 TADI 10
249 DCA TEM1
250 TADI 10
251 DCA TEM3 /CALLING ADDRESS
252 TAD PMESG
253 DCA TEM2
254
255ERLP, TAD I TEM2
256 RTR
257 RTR
258 RTR
259 JMS PR6BIT
260 TAD I TEM2
261 JMS PR6BIT
262 INC TEM2
263 JMP ERLP
264
265PRLOC, TAD TEM1
266 RTR
267 RTR
268 JMS ERTTY /PRINT CALLING FIELD
269 TAD (-4
270 DCA TEM2
271NUMLP, TAD TEM3
272 RTL
273 RAL
274 DCA TEM3
275 TAD TEM3
276 JMS ERTTY
277 ISZ TEM2
278 JMP NUMLP
279 TAD (215
280 DCA 7
281 JMS TYPE
282 CLA CLL CMA RTL
283 JMS TYPE
284 TAD CKIO /GET THE FATAL ERROR FLAG
285 SNA CLA /WHADDOWEDO??
286 JMP EXITX
287 RETRN ERROR /HE SAYS ITS NON-FATAL - LET HIM HANDLE IT
288
289ERTTY, 0 /DIGIT PRINTING ROUTINE
290 RAL
291 AND LIT7
292 TAD E60
293 JMS PR6BIT
294 JMP I ERTTY
295
296PR6BIT, 0 /6BIT TO 8BIT CONVERTOR
297 AND (77
298 SNA
299 JMP PRLOC /MESSAGE OVER
300 TAD (7740
301 SPA
302 TAD (100
303 TAD (240
304 CALL 0,GENIO /LOOK FOR ^C WHILE TYPING
305 JMP I PR6BIT
306
307/
308/EXIT TO DISK MONITOR SYSTEM
309/
310EXIT, BLOCK 2
311EXITX, CALL 0,CKIO
312 6203
313 JMPI U7600 /RETURN TO MONITOR
314
315CKIO, 0
316TEM2, 0 /DUMMY SUBROUTINE TO WAIT FOR I/O COMPLETE
317 RETRN CKIO
318
319
320 END
321\f