Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /LIBSET - LIBRARY BUILDER PROGRAM |
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 | \f FIELD 1 | |
46 | HILOC=20 | |
47 | INFPTR=21 | |
48 | IFPTR=22 | |
49 | TEMP=23 | |
50 | NAMPTR=24 | |
51 | /VERSION=3 | |
52 | /PATCH="A | |
53 | ||
54 | *2600 | |
55 | START, SKP | |
56 | JMP .+4 | |
57 | CALLCD, JMS I (200 | |
58 | 5 | |
59 | RL, 2214 | |
60 | 0 /DON'T RESET OUTPUT FILES | |
61 | ISZ FIRST | |
62 | JMP NOTFST | |
63 | TAD I (7604 | |
64 | SNA | |
65 | TAD RL | |
66 | DCA I (7604 | |
67 | TAD I (7600 | |
68 | SZA CLA /IS THERE AN OUTPUT FILE? | |
69 | JMP OUTYES /YES | |
70 | CLA IAC | |
71 | DCA I (7600 /NO - MAKE SYS:LIB8.RL THE OUTPUT FILE | |
72 | TAD (1411 | |
73 | DCA I (7601 | |
74 | TAD (0270 | |
75 | DCA I (7602 | |
76 | TAD I (7617 | |
77 | SNA CLA /HOW ABOUT INPUT FILES? | |
78 | TAD I (MPARAM+1 | |
79 | AND (40 /IF NO INPUT FILES, | |
80 | SNA CLA /AND /S OPTION IS ON, | |
81 | JMP OUTYES | |
82 | DCA PTRCOD /USE PTR: FOR INPUT | |
83 | JMS I (200 | |
84 | 12 | |
85 | 4224 | |
86 | PTRCOD, 0 | |
87 | 0 | |
88 | JMP I PERROR /NO PTR - BAD | |
89 | TAD PTRCOD | |
90 | DCA I (7617 | |
91 | OUTYES, JMS I (XOPEN | |
92 | JMS I (OCHAR | |
93 | JMS I (DMPREC /PUT OUT NOTHIN IN FIRST RECORD | |
94 | TAD (7000 | |
95 | DCA NAMPTR | |
96 | TAD (7376 | |
97 | DCA INFPTR | |
98 | NOTFST, TAD (7617 | |
99 | DCA IFPTR | |
100 | FILELP, TAD I IFPTR | |
101 | SNA CLA | |
102 | JMP NEXTCD | |
103 | TAD IFPTR | |
104 | JMS I (IOPEN | |
105 | READLP, CLA CMA | |
106 | TAD I (OUCCNT | |
107 | DCA FLEN | |
108 | DCA HILOC | |
109 | JMS I (IREAD /READ AND COPY A RELOCATABLE PROGRAM | |
110 | SZA CLA /TEST CHECKSUM | |
111 | JMP I PERROR | |
112 | TAD HILOC | |
113 | AND (7600 | |
114 | TAD FLEN | |
115 | DCA I INFPTR | |
116 | JMS I (DMPREC | |
117 | ISZ INFPTR | |
118 | DCA I INFPTR | |
119 | CLA CLL CMA RTL | |
120 | TAD INFPTR | |
121 | DCA INFPTR | |
122 | TAD I (MPARAM+1 | |
123 | AND (40 | |
124 | SZA CLA | |
125 | JMP READLP /IF /S SWITCH ON , CONTINUE READING TAPES UNTIL A ^Z | |
126 | NXFIL, ISZ IFPTR | |
127 | ISZ IFPTR | |
128 | JMP FILELP | |
129 | NEXTCD, TAD I (MPARAM-1 | |
130 | SMA CLA | |
131 | JMP CALLCD | |
132 | DCA I NAMPTR | |
133 | ISZ NAMPTR | |
134 | ISZ NAMPTR | |
135 | ISZ NAMPTR | |
136 | DCA I NAMPTR | |
137 | TAD NAMPTR | |
138 | CMA IAC | |
139 | TAD INFPTR | |
140 | SMA CLA | |
141 | JMP I (FINISH | |
142 | JMP I .+1 | |
143 | TOOBIG | |
144 | ||
145 | FIRST, -1 | |
146 | FLEN, 0 | |
147 | ||
148 | JTABL, DATAWD | |
149 | DATAWD | |
150 | ERROR | |
151 | SYMDEF | |
152 | ORIGIN | |
153 | DATAWD | |
154 | DATAWD | |
155 | PERROR, ERROR | |
156 | ENDTAP | |
157 | ERROR | |
158 | COMMON | |
159 | ERROR | |
160 | ERROR | |
161 | ERROR | |
162 | ERROR | |
163 | TRANVC | |
164 | ||
165 | VERSON, 6301 /VERSION AND PATCH LEVEL | |
166 | \f *3000 | |
167 | IREAD, 0 | |
168 | TAD (200 | |
169 | DCA LOC | |
170 | ILEADR, JMS I (ICHAR | |
171 | DCA CKSM | |
172 | TAD CKSM | |
173 | AND (177 | |
174 | SNA CLA | |
175 | JMP ILEADR | |
176 | TAD CKSM | |
177 | TAD (-232 | |
178 | SNA CLA | |
179 | JMP I (NXFIL | |
180 | TAD (200 | |
181 | JMS I (OCHAR | |
182 | TAD CKSM | |
183 | JMS I (OCHAR | |
184 | TAD CKSM | |
185 | SKP | |
186 | NXTFRM, JMS RCHAR | |
187 | CLL RTR | |
188 | RTR | |
189 | RAR | |
190 | DCA CHAR1 | |
191 | TAD CHAR1 | |
192 | RAL | |
193 | AND (17 | |
194 | TAD JMPTAB | |
195 | DCA BTMP | |
196 | TAD I BTMP | |
197 | DCA BTMP | |
198 | JMP I BTMP | |
199 | JMPTAB, JTABL | |
200 | ||
201 | RCHAR, 0 | |
202 | JMS I (ICHAR | |
203 | DCA CHAR | |
204 | TAD CKSM | |
205 | TAD CHAR | |
206 | DCA CKSM | |
207 | TAD CHAR | |
208 | JMS I (OCHAR | |
209 | TAD CHAR | |
210 | JMP I RCHAR | |
211 | ||
212 | DATAWD, JMS RCHAR | |
213 | CLA CLL | |
214 | TAD LOC | |
215 | CMA | |
216 | TAD HILOC | |
217 | SZL CLA | |
218 | JMP .+3 | |
219 | TAD LOC | |
220 | DCA HILOC | |
221 | ISZ LOC | |
222 | JMP NXTFRM | |
223 | ||
224 | SYMDEF, JMS RCHAR | |
225 | CLA CLL CMA RTL | |
226 | DCA CHAR1 | |
227 | GTNMLP, JMS RCHAR | |
228 | AND (77 | |
229 | CLL RTL | |
230 | RTL | |
231 | RTL | |
232 | DCA BTMP | |
233 | JMS RCHAR | |
234 | AND (77 | |
235 | TAD BTMP | |
236 | DCA I NAMPTR | |
237 | ISZ NAMPTR | |
238 | ISZ CHAR1 | |
239 | JMP GTNMLP | |
240 | TAD INFPTR | |
241 | AND (377 | |
242 | DCA I NAMPTR | |
243 | ISZ NAMPTR | |
244 | TAD NAMPTR | |
245 | CIA | |
246 | TAD INFPTR | |
247 | SPA SNA CLA | |
248 | JMP I (TOOBIG | |
249 | JMP NXTFRM | |
250 | ||
251 | ORIGIN, JMS RCHAR | |
252 | CLA | |
253 | TAD CHAR1 | |
254 | AND (7400 | |
255 | TAD CHAR | |
256 | DCA LOC | |
257 | JMP NXTFRM | |
258 | ||
259 | COMMON, JMS RCHAR | |
260 | CLA | |
261 | JMP NXTFRM | |
262 | ||
263 | TRANVC, JMS RCHAR | |
264 | CLL RAL | |
265 | TAD CHAR | |
266 | CLL RAL | |
267 | CIA | |
268 | DCA BTMP | |
269 | JMS RCHAR | |
270 | CLA | |
271 | ISZ BTMP | |
272 | JMP .-3 | |
273 | JMP NXTFRM | |
274 | ||
275 | ENDTAP, TAD CKSM | |
276 | CIA | |
277 | TAD CHAR | |
278 | DCA BTMP | |
279 | JMS RCHAR | |
280 | CLA | |
281 | TAD CHAR1 | |
282 | AND (7400 | |
283 | TAD CHAR | |
284 | TAD BTMP | |
285 | JMP I IREAD | |
286 | ||
287 | LOC, 0 | |
288 | CHAR1, 0 | |
289 | CHAR, 0 | |
290 | BTMP, 0 | |
291 | CKSM, 0 | |
292 | ||
293 | \f *3200 | |
294 | XOPEN, 0 | |
295 | TAD (7577 | |
296 | DCA 10 | |
297 | TAD (FILENM-1 | |
298 | DCA 11 | |
299 | TAD (-5 | |
300 | DCA 12 | |
301 | TAD I 10 | |
302 | DCA I 11 | |
303 | ISZ 12 | |
304 | JMP .-3 | |
305 | JMS I (OOPEN | |
306 | TAD I (OUBLK | |
307 | DCA CTLWRI | |
308 | TAD I (OUHNDL | |
309 | DCA ODVH | |
310 | JMP I XOPEN | |
311 | ||
312 | DMPREC, 0 | |
313 | JMS I (OCHAR | |
314 | JMS I (OCHAR | |
315 | TAD I (OUDWCT | |
316 | TAD (200 | |
317 | SZA CLA | |
318 | JMP .-4 | |
319 | JMP I DMPREC | |
320 | ||
321 | FINISH, JMS I (OCLOSE | |
322 | CIF 0 | |
323 | JMS I ODVH | |
324 | 4210 | |
325 | 7000 | |
326 | CTLWRI, 0 | |
327 | JMP OUTERR | |
328 | CDF CIF 0 | |
329 | JMP I (7605 | |
330 | FILENM, ZBLOCK 5 | |
331 | ODVH, 0 | |
332 | ||
333 | TOOBIG, ISZ ERRNO | |
334 | ERROR, ISZ ERRNO | |
335 | OUTERR, ISZ ERRNO | |
336 | INERR, ISZ ERRNO | |
337 | ERR, TAD ERRNO | |
338 | TAD (ERR0 | |
339 | DCA EPCH | |
340 | DCA ERRNO | |
341 | TAD I EPCH | |
342 | DCA ODVH | |
343 | ERRLP, TAD I ODVH | |
344 | RTR | |
345 | RTR | |
346 | RTR | |
347 | JMS EPCH | |
348 | TAD I ODVH | |
349 | JMS EPCH | |
350 | ISZ ODVH | |
351 | JMP ERRLP | |
352 | ERXIT, CDF CIF 0 | |
353 | JMP I .+1 | |
354 | 7605 | |
355 | ||
356 | EPCH, 0 | |
357 | AND (77 | |
358 | SNA | |
359 | JMP ERXIT | |
360 | TAD (-40 | |
361 | SPA | |
362 | TAD (100 | |
363 | TAD (240 | |
364 | 6046 | |
365 | 6041 | |
366 | JMP .-1 | |
367 | CLA | |
368 | JMP I EPCH | |
369 | ||
370 | ERRNO, 0 | |
371 | \f *3400 | |
372 | /ERROR MESSAGES | |
373 | ERR0, HELP | |
374 | INPER | |
375 | OUPER | |
376 | RELER | |
377 | BIGER | |
378 | ||
379 | HELP, TEXT /HELP!/ /THIS ERROR CANNOT OCCUR | |
380 | INPER, TEXT /INPUT ERROR/ | |
381 | OUPER, TEXT /ERROR WHILE WRITING OUTPUT FILE/ | |
382 | RELER, TEXT /BAD FORMAT OR CHECKSUM - TRY AGAIN./ | |
383 | BIGER, TEXT /LIBRARY DIRECTORY OVERFLOW - TOUGH/ | |
384 | \f INBUF=0 | |
385 | INCTL=2400 | |
386 | OUBUF=6000 | |
387 | OUCTL=4200 | |
388 | INDEVH=6400 | |
389 | OUDEVH=7000 | |
390 | INRECS=12 | |
391 | MPARAM=7643 | |
392 | DCB=7760 | |
393 | INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER | |
394 | OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER | |
395 | *2000 | |
396 | IN7400, 7400 | |
397 | IOPEN, 0 | |
398 | DCA INXPTR | |
399 | CLA CMA | |
400 | DCA INCHCT /SET INCHCT TO FORCE A READ | |
401 | ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE | |
402 | RDF | |
403 | TAD INCDIF | |
404 | DCA .+1 | |
405 | INPTR, HLT /RESTORE CALLING FIELDS | |
406 | JMP I IOPEN | |
407 | ||
408 | ICHAR, 0 | |
409 | IN7600, 7600 | |
410 | RDF | |
411 | TAD INCDIF | |
412 | DCA INRTRN /SAVE CALLING FIELDS | |
413 | INCHAR, CDF INFLD | |
414 | ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH | |
415 | ISZ INCHCT | |
416 | INJMPP, JMP INJMP | |
417 | TAD INEOF | |
418 | SNA CLA /DID LAST READ YIELD END-OF-FILE? | |
419 | JMP INGBUF /NO - DO ANOTHER | |
420 | GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE | |
421 | JMP I (ERROR | |
422 | INGBUF, TAD INCTR | |
423 | CLL | |
424 | TAD (INRECS | |
425 | SNL | |
426 | DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED | |
427 | SZL /IS THIS THE LAST READ? | |
428 | ISZ INEOF /YES - SET END-OF-FILE FLAG | |
429 | CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ | |
430 | RTR /FROM THE AMOUNT OF THE OVERFLOW | |
431 | RTR /(IF ANY) AND THE STANDARD CONTROL WORD | |
432 | TAD (INCTL+1 | |
433 | DCA INCTLW | |
434 | INCDIF, CDF CIF 0 | |
435 | CDF 10 | |
436 | JMS I INHNDL /CALL THE DEVICE HANDLER | |
437 | INCTLW, 0 | |
438 | INBUFP, INBUF | |
439 | INREC, 0 | |
440 | JMP INERRX /SOME KIND OF HANDLER ERROR | |
441 | INBREC, TAD INREC | |
442 | TAD (INRECS | |
443 | DCA INREC /UPDATE THE RECORD NUMBER | |
444 | TAD INCTLW | |
445 | AND IN7600 | |
446 | CLL RAL | |
447 | TAD INCTLW | |
448 | AND IN7600 | |
449 | CMA | |
450 | DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT | |
451 | TAD INJMPP | |
452 | DCA INJMP /RESET THE CHARACTER SWITCH | |
453 | TAD INBUFP | |
454 | DCA INPTR /AND THE WORD POINTER | |
455 | JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED | |
456 | INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE | |
457 | SMA CLA /WHICH TYPE WAS IT? | |
458 | JMP INBREC /END OF FILE - RESUME THY PROCESSING | |
459 | JMP I (INERR | |
460 | INJMP, HLT /THIS IS THE THREE - WAY CHARACTER SWITCH | |
461 | JMP ICHAR1 | |
462 | JMP ICHAR2 | |
463 | ICHAR3, TAD INJMPP | |
464 | DCA INJMP | |
465 | TAD I INPTR | |
466 | IN200, AND IN7400 | |
467 | CLL RTR | |
468 | RTR /COMBINE THE HIGH-ORDER FOUR BITS OF | |
469 | TAD INCTLW | |
470 | RTR /THE TWO WORD TO FORM THE THIRD CHARACTER | |
471 | RTR | |
472 | ISZ INPTR | |
473 | JMP INCOMN | |
474 | ICHAR2, TAD I INPTR | |
475 | AND IN7400 | |
476 | DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR | |
477 | ISZ INPTR /BUMP THE WORD POINTER | |
478 | ICHAR1, TAD I INPTR | |
479 | INCOMN, AND (377 | |
480 | INRTRN, 0 /RESTORE CALLING FIELDS | |
481 | JMP I ICHAR /AND RETURN | |
482 | INXPTR, 0 | |
483 | INEOF, 1 /THESE PARAMETERS ARE SET UP SO THAT | |
484 | /IOPEN IS UNNECESSARY. | |
485 | INNEWF, -1 | |
486 | INCHCT=INNEWF | |
487 | CDF 10 | |
488 | TAD (INDEVH+1 | |
489 | DCA INHNDL /INITIALIZE HANDLER ADDRESS | |
490 | TAD I INXPTR | |
491 | SNA /ANY MORE? | |
492 | JMP I INNEWF /NO - OUT OF INPUT | |
493 | JMS I IN200 | |
494 | 1 /ASSIGN, FETCH HANDLER | |
495 | INHNDL, 0 | |
496 | HLT /HUH? | |
497 | TAD I INXPTR | |
498 | AND (7760 /GET LENGTH PART OF WORD | |
499 | SZA /LENGTH OF 0 MEANS LENGTH >=256 | |
500 | TAD (17 /ADD HIGH-ORDER BITS | |
501 | CLL CML RTR | |
502 | RTR | |
503 | DCA INCTR /STORE LENGTH OF FILE | |
504 | ISZ INXPTR | |
505 | TAD I INXPTR | |
506 | DCA INREC /STORE STARTING RECORD NUMBER OF FILE | |
507 | ISZ INXPTR | |
508 | DCA INEOF /ZERO END-OF-FILE FLAG | |
509 | ISZ INNEWF | |
510 | JMP I INNEWF | |
511 | INCTR=IOPEN | |
512 | \fPTP=20 | |
513 | *2200 | |
514 | OOPEN, 0 | |
515 | OU7600, 7600 | |
516 | RDF | |
517 | TAD OUCDIF | |
518 | DCA OORETN | |
519 | JMS OUASGN | |
520 | OUENTR, TAD I OU7600 | |
521 | JMS I (200 | |
522 | 3 /ENTER OUTPUT FILE | |
523 | OUBLK, FILENM+1 | |
524 | OUELEN, 0 /REPLACED WITH LENGTH OF HOLE | |
525 | JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH | |
526 | DCA OUCCNT | |
527 | JMS I (OUSETP | |
528 | OORETN, HLT /RESTORE CALLING FIELDS | |
529 | JMP I OOPEN | |
530 | OEFAIL, TAD I OU7600 | |
531 | AND (7760 /GET REQUESTED LENGTH | |
532 | SNA CLA /WAS IT AN INDEFINITE REQUEST | |
533 | JMP I (OUTERR | |
534 | TAD I OU7600 | |
535 | AND (17 /MAKE THE REQUESTED LENGTH ZERO | |
536 | DCA I OU7600 | |
537 | JMP OUENTR /TRY, TRY AGAIN | |
538 | OUASGN, 0 | |
539 | TAD (OUDEVH+1 | |
540 | DCA OUHNDL | |
541 | CDF 10 | |
542 | TAD I (FILENM | |
543 | AND (17 /STRIP OFF ANY LENGTH INFO | |
544 | SNA /IS THERE AN OUTPUT DEVICE? | |
545 | JMP I (OUTERR | |
546 | JMS I (200 | |
547 | 1 /ASSIGN, FETCH HANDLER | |
548 | OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY | |
549 | HLT /HUH? | |
550 | JMP I OUASGN | |
551 | OUTDMP, 0 | |
552 | DCA OUCTLW /STORE THE CONTROL WORD | |
553 | TAD OUCCNT | |
554 | SNA | |
555 | ISZ OUCTLW | |
556 | TAD OUBLK | |
557 | DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER | |
558 | TAD OUCTLW | |
559 | CLL RTL | |
560 | RTL | |
561 | RTL | |
562 | AND (17 /COMPUTE THE NUMBER OF RECORDS | |
563 | TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE | |
564 | DCA OUCCNT | |
565 | TAD OUCCNT | |
566 | CLL CML | |
567 | TAD OUELEN | |
568 | SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? | |
569 | JMP I (OUTERR | |
570 | OUCDIF, CDF CIF 0 | |
571 | CDF 10 | |
572 | JMS I OUHNDL | |
573 | OUCTLW, 0 | |
574 | OUBUF | |
575 | OUREC, 0 | |
576 | JMP I (OUTERR | |
577 | JMP I OUTDMP | |
578 | OCLOSE, 0 | |
579 | RDF | |
580 | TAD OUCDIF | |
581 | DCA OCRET | |
582 | JMS I (OCHAR | |
583 | JMS I (OCHAR | |
584 | FILLLP, JMS I (OCHAR | |
585 | JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE | |
586 | SPA CLA | |
587 | TAD (100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD | |
588 | TAD (77 /BOUNDARY - OTHERWISE A HALF-RECORD | |
589 | AND I (OUDWCT | |
590 | SZA CLA /UP TO THE BOUNDARY YET? | |
591 | JMP FILLLP /NO - FILL WITH ZEROS | |
592 | TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT | |
593 | TAD (OUCTL&3700 | |
594 | SNA /A FULL WRITE LEFT? | |
595 | JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT | |
596 | TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT | |
597 | JMS OUTDMP | |
598 | NODUMP, JMS OUASGN /REASSIGN OUTPUT HANDLER | |
599 | TAD I (FILENM | |
600 | JMS I (200 | |
601 | 4 /CLOSE THE OUTPUT FILE | |
602 | OU7601, FILENM+1 | |
603 | OUCCNT, 0 | |
604 | JMP I (OUTERR | |
605 | OCRET, HLT /RESTORE CALLING FIELDS | |
606 | JMP I OCLOSE | |
607 | \f *2400 | |
608 | OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS | |
609 | TAD (OUCTL&3700 /GET SIZE OF BUFFER IN DOUBLEWORDS | |
610 | CIA /NEGATE IT | |
611 | DCA OUDWCT | |
612 | TAD (OUBUF | |
613 | DCA OUPTR /INITIALIZE WORD POINTER | |
614 | TAD OUJMPE | |
615 | DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH | |
616 | JMP I OUSETP | |
617 | ||
618 | OCHAR, 0 | |
619 | AND (377 | |
620 | DCA OUTEMP | |
621 | RDF | |
622 | TAD (CDF CIF 0 | |
623 | DCA OUCRET | |
624 | OUCHAR, CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD | |
625 | ISZ OUJMP /BUMP THE CHARACTER SWITCH | |
626 | OUJMP, HLT /THREE WAY CHARACTER SWITCH | |
627 | JMP OCHAR1 | |
628 | JMP OCHAR2 | |
629 | OCHAR3, TAD OUTEMP | |
630 | CLL RTL | |
631 | RTL | |
632 | AND (7400 | |
633 | TAD I OUPOLD | |
634 | DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH | |
635 | /ORDER 4 BITS OF THIRD CHAR | |
636 | TAD OUTEMP | |
637 | CLL RTR | |
638 | RTR | |
639 | RAR | |
640 | AND (7400 | |
641 | TAD I OUPTR | |
642 | DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS | |
643 | TAD OUJMPE | |
644 | DCA OUJMP /RESET SWITCH | |
645 | ISZ OUPTR | |
646 | ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS | |
647 | JMP OUCOMN | |
648 | TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE | |
649 | JMS I (OUTDMP /DUMP THE BUFFER | |
650 | JMS OUSETP /RE-INITIALIZE THE POINTERS | |
651 | JMP OUCOMN | |
652 | OCHAR2, TAD OUPTR | |
653 | DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO | |
654 | ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD | |
655 | OCHAR1, TAD OUTEMP | |
656 | DCA I OUPTR | |
657 | OUCOMN, | |
658 | OUCRET, HLT /RESTORE CALLING FIELDS | |
659 | JMP I OCHAR | |
660 | OUTEMP, 0 | |
661 | OUPOLD, 0 | |
662 | OUPTR, 0 | |
663 | OUJMPE, JMP OUJMP | |
664 | OUDWCT, 0 | |
665 | OUTINH, 0 | |
666 | ||
667 | OTYPE, 0 | |
668 | RDF | |
669 | TAD (CDF CIF 0 | |
670 | DCA OTRTN | |
671 | CDF 10 | |
672 | TAD I (7600 | |
673 | AND (17 | |
674 | TAD (DCB-1 | |
675 | DCA OUTEMP | |
676 | TAD I OUTEMP | |
677 | OTRTN, HLT | |
678 | JMP I OTYPE | |
679 | CTCTST, 0 | |
680 | KRS | |
681 | TAD (-203 | |
682 | SNA CLA /IS THE TELETYPE BUFFER A ^C | |
683 | KSF /WITH THE TELETYPE FLAG ON? | |
684 | JMP I CTCTST /NO | |
685 | CDF CIF 0 /YES - GO TO MONITOR | |
686 | JMP I (7605 /THROUGH THE "DON'T SAVE CORE" RETURN | |
687 | $ | |
688 | \f |