software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape6 / CAMP.PA
CommitLineData
7af5ad59
PH
1/11 OS8 CAMP
2
3/
4/S.R.
5/
6/
7/CASSETTE & MAGTAPE POSITIONER (CAMP)
8/
9/
10/
11/
12/
13/
14/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE VITHOUT NOTICE
15/AND SHOULD NOT BE CONTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
16/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
17/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
18/
19/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
20/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
21/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
22/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
23/
24/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
25/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
26/DIGITAL.
27/
28/
29/ COPYRIGHT (C) 1973,1975,1977 BY DIGITAL EQUIPMENT CORPORATION.
30/
31/
32/
33/
34\f
35/ MUST SKIP LOCS 1000-1377
36
37 LINBUF=1000
38
39 XR1=11
40 XR2=12
41 XR3=13
42
43 *20
44
45TEMP, 0
46T, 0
47T2, 0
48LINPTR, 0
49T3, 0
50FLAG, 0
51SPKNT, 0
52DEVTYP, 0 /DEVICE TYPE (BITS 6-11)
53ENTRY, 0 /HANDLER ENTRY POINT
54NUM, 0
55TYP, 0 /0 MEANS 'F', 1 MEANS 'R'
56T4, 0
57DEVNUM, 0
58DCW, 0 /DEVICE CONTROL WORD
59DCWPTR, 0
60USR, 200 /POINTS TO USR ENTRY POINT
61ESCBIT, 0 /1 MEANS USER TYPED ALTMODE
62CNT, 0
63CTOFLG, 0 /-1 MEANS SAW ^O
64COUNT, 0
65PTR, 0
66DHIT, 0 /DEVICE HANDLER INFO TABLE - 1
67DHI, 0 /DEVICE HANDLER INFO
68DBLK, 0 /DEVICE HANDLER BLOCK
69VNOPTR, 0 /PTS TO VERSION # IN HANDLER
70VNO, 0 /CURRENT HANDLER VERSION NUMBER
71SAVPTR, 0
72NO, 0 /1 MEANS 'NO'
73FLG, 1 /1 MEANS SAW NO DIGITS
74P, 0
75RR, 0
76NUCODE, 0
77
78/ MAGTAPE SPECIAL CODES
79
80 REWKOD=1
81 SKFKOD=3 /SKIP FORWARD FILE
82 UNLKOD=4
83 EOFKOD=5
84 SKPKOD=2 /FORWARD RECORD
85 BAKKOD=SKPKOD+4000
86 BKFKOD=SKFKOD+4000
87
88 DTLA=6766
89
90/0000-0777 /CAMP
91/1000-1377 /OS/8 LINE BUFFER
92/1400-1777 /PS/8 LINE BUFFER
93/2000- /CAMP
94/7000-7177 /I/O BUFFER
95/7200-7577 /OS/8 HANDLER
96/7600-7777 /OS/8
97
98 DLDC=6746
99 DLAG=6743
100 PAGE
101\f *200
102
103START, SKP
104 JMP CHN
105 TAD ("#
106 JMS I [TYPE
107 JMS I [READ /READ A LINE INTO OS/8 LINE BUFFER
108CHN, TAD [LINBUF /CHAIN ENTRY ADDRESS
109 DCA LINPTR /INITIALIZE POINTER TO LINE BUFFER
110 STA
111 JMS I [SPACE /IGNORE LEADING SPACES
112 JMS GETTWO /GET TWO CHARS
113 DCA TEMP
114 JMS I [SCAN /SCAN PAST EXTRA LETTERS OR DIGITS
115 TAD TEMP
116 JMS I [BRANCH /GO TO APPROPRIATE ROUTINE
117 -2313;SKIP /SK
118 -0517;EOF /EO
119 -0201;BACK /BA
120 -2205;REWIND /RE
121 -2516;UNLOAD /UN
122 -2605;VERSION /VE
123 -1005;HELP /HE
124 -2664;V4 /V4
125 -2305;SYNTAX /SE
126 SETLOC=.-1
127 0
128 SNA CLA
129 JMP I [GOAWAY
130 JMP I [SYNTAX /NONE OF THESE
131
132/V1 FEATURES:
133/FIXES SINCE FIELD TEST RELEASE:
134
135/1. ADDED CASSETTE SUPPORT
136/2. FIXED BUG RE IMMEDIATE ALTMOD
137/3. CHANGED SPECIAL CODES TO AGREE WITH NEW MAGTAPE HANDLER
138/4. IGNORE NULLS ON INPUT
139/5. ALLOW UNLOADING AN RK8E
140
141/CHANGES MADE TO V3:
142
143/1. SET COMMAND IMPLEMENTED
144
145/MAINTENANCE RELEASE CHANGES:
146
147/1. TOOK OUT 'SET' SINCE WE DON'T WANT TO SUPPORT IT
148/ UNTIL OS/8 V4
149/2. FIXED BUG RE AT EOF AND BOF MESSAGES
150/3. CHANGED CAMP TO USE NEW TM8E HANDLER
151/ NOTE: CAMP WILL NOT WORK PROPERLY WITH
152/ TM8E HANDLERS PRIOR TO VERSION F
153/4. PROPERLY FIND EOT EVEN IF WE'RE JUST
154/ BEFORE A FILE MARK.
155/5. GIVE AT BOT OR EOT MESSAGE IF SEE REFLECTIVE SPOT
156/6. CHANGED VERSION NUMBER TO V4
157/7. ENSURE THAT USER CAN'T PASS OVER EOD
158
159/V3D CHANGES:
160
161/1. FIXED BUG WITH UNLOADING RKS
162\f/ GETTWO
163
164/GET TWO LETTERS OR DIGITS FROM INPUT LINE, PACK IN SIXBIT
165/ADVANCE PAST THEM. SUBSTITUTE NULL IF NOT FOUND.
166
167GETTWO, 0
168 JMS GETSIX
169 CLL RTL
170 RTL
171 RTL
172 DCA T2
173 JMS GETSIX
174 TAD T2 /COMBINE
175 JMP I GETTWO
176
177GETSIX, 0 /GET A SIXBIT LETTER OR DIGIT (OR NULL)
178 JMS ALPHA /IS IT ALPHANUMERIC?
179 JMP NOTALPH /NO
180 AND [77 /YES
181 JMP I GETSIX /TRUNCATE TO SIXBIT
182NOTALPH,CLA
183 JMS BACKC
184 JMP I GETSIX /RETURN NULL
185
186GETC, 0 /GET A CHARACTER, ADVANCE POINTER
187 TAD I LINPTR
188 AND [177 /ALWAYS RETURN 8-BIT
189 SZA
190 TAD [200 /WITH HIGH ORDER BIT ON
191 ISZ LINPTR /ADVANCE SCAN
192 JMP I GETC /RETURN
193
194BACKC, 0 /MOVE SCAN POINTER BACK ONE
195 STA
196 TAD LINPTR
197 DCA LINPTR
198 JMP I BACKC /RETURN
199\f/RETURN 1 NOT OF TYPE DESIRED
200/RETURN 2 DESIRED TYPE
201/IN BOTH CASES, CHAR IS LEFT IN AC
202
203ALPHA, 0 /LOOK FOR ALPHANUMERIC
204 JMS I [GETC
205 JMS LETTER /IS IT A LETTER?
206 JMP TRYDIG /NO, TRY DIGIT
207 JMP GOTAL /YES
208TRYDIG, JMS DIGIT /IS IT A DIGIT?
209 JMP I ALPHA /NO, AINT LETTER OR DIGIT
210GOTAL, ISZ ALPHA /YES, EITHER LETTER OR DIGIT
211 JMP I ALPHA /RETURN WITH IT IN AC
212
213LETTER, 0 /LOOK FOR LETTER
214 TAD (-"A
215 CLL
216 TAD ("A-"Z-1
217 SNL
218 ISZ LETTER
219 TAD ("Z+1 /RESTORE CHAR
220 JMP I LETTER
221
222DIGIT, 0 /LOOK FOR DIGIT
223 TAD (-"0
224 CLL
225 TAD ("0-"9-1 /(DECIMAL)
226 SNL
227 ISZ DIGIT
228 TAD ("9+1 /RESTORE DIGIT TO CHARACTER FORM
229 JMP I DIGIT /AND RETURN WITH IT IN AC
230 PAGE
231\fSYNTAX, CLA
232 JMS PRINT
233 TEXT /? SYNTAX ERROR/
234GOAWAY, TAD ESCBIT
235 SZA CLA
236 JMP I [7605 /LINE ENDED WITH ESCAPE
237 TAD I [READ /WAS 'READ' EVER CALLED?
238 SZA CLA
239 JMP I [START /YES, GET A NEW LINE
240 JMP I [7605 /NO, WE MUST'VE BEEN CHAINED TO, RECALL KBM
241
242PRINT, 0
243 TAD I PRINT
244 RTR
245 RTR
246 RTR
247 JMS PRIN
248 TAD I PRINT
249 JMS PRIN
250 ISZ PRINT
251 JMP PRINT+1
252LV, JMS I [CRLF
253 ISZ PRINT
254 JMP I PRINT
255
256PRIN, 0
257 AND [77
258 SNA
259 JMP LV
260 TAD [240
261 AND [77
262 TAD [240
263 DCA T3
264 TAD [200
265 KRS
266 TAD (-203
267 SNA
268 JMP CTRLC
269 TAD (203-217 /^O
270 SNA CLA
271 JMS CTRLO
272 TAD T3
273 JMS I [TYPE
274 JMP I PRIN
275\fCTRLC, TAD ["^
276 JMS I [TYPE
277 TAD ("C
278 JMS I [TYPE /ECHO "^C"
279 JMS I [DELAYY
280 JMP I [7600 /THEN GO AWAY
281CTRLO, 0
282 KCC /CLEAR OUT ^O
283 TAD ["^
284 JMS I [TYPE
285 TAD ("O
286 JMS I [TYPE
287 JMS I [CRLF
288 STA
289 DCA CTOFLG /STOP ECHOING
290 JMP I CTRLO
291
292VERSION,JMS PRINT
293 TEXT \OS/8 CAMP V5A\
294 JMP I [START
295NUMBIG, JMS PRINT
296 TEXT /? NUMBER TOO BIG/
297 JMP I [GOAWAY
298\fNONEX, JMS PRINT
299 TEXT /? CAN'T - DEVICE DOESN'T EXIST/
300 JMP I [GOAWAY
301
302SYSERR, JMS PRINT
303 TEXT \? I/O ERROR ON SYS:\
304 JMP I [GOAWAY
305 PAGE
306\fHELP, JMS I [PRINT
307 TEXT /BACKSPACE DEV: N FILES/
308 JMS I [PRINT
309 TEXT /BACKSPACE DEV: N RECORDS/
310 JMS I [PRINT
311 TEXT /EOF DEV:/
312H2, JMP H1 / JMS I [PRINT
313 TEXT /SET DEV: [NO] ATTRIB [N]/
314H1, JMS I [PRINT
315 TEXT /SKIP DEV: N FILES/
316 JMS I [PRINT
317 TEXT /SKIP DEV: N RECORDS/
318 JMS I [PRINT
319 TEXT /SKIP DEV: EOD/
320\f JMS I [PRINT
321 TEXT /REWIND DEV:/
322 JMS I [PRINT
323 TEXT /UNLOAD DEV:/
324 JMS I [PRINT
325 TEXT /VERSION/
326 JMS I [PRINT
327 TEXT /HELP/
328 JMP I [START
329\fBADEV, CLA
330 JMS I [PRINT
331 TEXT /? CAN'T FOR THIS DEVICE/
332 JMP I [GOAWAY
333
334V4, TAD (SET
335 DCA I (SETLOC
336 TAD H1
337 DCA H2
338 JMP I [START
339 PAGE
340\f *2000
341
342/ORIGIN PAST OS/8 LINE BUFFER AT 1000.
343/SKIP PAST PS/8 LINE BUFFER (AT 1400) JUST IN CASE
344/PS/8 USERS WISH TO PATCH THIS PROGRAM
345
346/SCAN PAST EXTRA LETTERS OR DIGITS
347
348SCAN, 0
349 JMS I [ALPHA
350 JMP NOPE
351 CLA
352 JMP SCAN+1
353NOPE, CLA
354 JMS I [BACKC
355 JMP I SCAN
356
357/SCAN PAST SPACES; GIVE ERROR IF NO SPACES FOUND UNLESS AC=-1
358
359SPACE, 0
360 DCA FLAG /SET AC=-1 TO PREVENT ERROR ON NO SPACES FOUND
361 DCA SPKNT /INITIALIZE SPACE COUNTER
362 SKP /JUMP INTO LOOP
363GOTSP, ISZ SPKNT
364 JMS I [GETC /GET NEXT CHAR
365 TAD (-240
366 SNA CLA /IS IT A SPACE?
367 JMP GOTSP /YES, COUNT IT
368 JMS I [BACKC /NO, PUT IT BACK
369 ISZ FLAG /CHECK FLAG
370 SKP /USER DIDN'T SPECIFY FLAG
371 JMP I SPACE /-0 MEANT DON'T CHECK IF FOUND SPACE
372 TAD SPKNT /HOW MANY SPACES DID WE FIND?
373 SZA CLA
374 JMP I SPACE /SOME. OK
375 JMP I [SYNTAX /NONE. TSK. TSK.
376\fBRANCH, 0
377 DCA T
378BR2, TAD I BRANCH
379 ISZ BRANCH
380 SNA
381 JMP NOTFND
382 TAD T
383 SNA CLA
384 JMP FOUND
385 ISZ BRANCH
386 JMP BR2
387
388FOUND, TAD I BRANCH
389 DCA T
390 JMP I T /FOUND ITEM IN COLUMN 1, JUMP TO ADDRESS IN COL 2
391
392NOTFND, TAD T
393 JMP I BRANCH /IF NOT FOUND IN COL 1, RETURN WITH AC INTACT
394CHECKR, 0
395 TAD DCW
396 RAL
397 SMA CLA
398 JMP I CHECKR
399RONLY, JMS I [PRINT
400 TEXT /? CAN'T - DEVICE IS READ-ONLY/
401 JMP I [GOAWAY
402\fCHECKW, 0
403 TAD DCW
404 RTL
405 SMA CLA
406 JMP I CHECKW
407WONLY, JMS I [PRINT
408 TEXT /? CAN'T - DEVICE IS WRITE-ONLY/
409 JMP I [GOAWAY
410\fONUM, 0
411 DCA NUM
412 CLA IAC
413 DCA FLG
414ONM1, JMS I [GETC
415 TAD (-"0-10 /CONVERT TO DIGIT
416 CLL
417 TAD (10
418 SNL
419 JMP OEON
420 DCA T4
421 DCA FLG
422 TAD NUM
423 AND [7000
424 SZA CLA
425 JMP I [NUMBIG
426 TAD NUM
427 CLL RTL
428 RAL
429 TAD T4
430 DCA NUM
431 JMP ONM1
432OEON, CLA
433 JMS I [BACKC
434 TAD NUM
435 JMP I ONUM
436 PAGE
437\f/READ A LINE INTO OS/8 LINE BUFFER
438
439READ, 0
440 DCA CTOFLG /ALLOW ECHOING
441RD1, TAD [LINBUF
442 DCA LINPTR
443 DCA ESCBIT
444GT, JMS GET
445LOOK, JMS I [BRANCH
446 -377;RUBOUT
447 -217;GT /^O
448 -203;CTRLC /^C
449 -212;LF /LINE FEED
450 -215;CR /CARRIAGE RETURN
451 -375;ESCAPE /ALTMODE
452 -376;ESCAPE /ALTMODE (2ND FLAVOR)
453 -233;ESCAPE /ESCAPE
454 -225;CTRLU /^U
455 -200;GT /IGNORE NULLS
456 0
457 DCA TEMP /NONE OF THESE
458 TAD LINPTR
459 TAD (-LINBUF-377
460 SNA CLA /AT END OF LINE BUFFER?
461 JMP GT /YES, DON'T ACCEPT CHAR
462 TAD TEMP /NO, RETRIEVE CHAR
463 JMS TYPE /ECHO IT
464 TAD TEMP /INSERT IN BUFFER
465 DCA I LINPTR
466 ISZ LINPTR /BUMP POINTER
467 JMP GT /NEXT
468
469CTRLU, TAD ["^
470 JMS TYPE
471 TAD ("U
472 JMS TYPE /ECHO "^U" <CR><LF>
473 JMS I [CRLF
474 JMP RD1
475\fRUBOUT, TAD LINPTR
476 TAD [-LINBUF
477 SNA
478 JMP BOL /AT BEGIN OF LINE
479 TAD [LINBUF-1
480 DCA LINPTR /MOVE POINTER BACK ONE
481 TAD ["\
482 JMS TYPE /ECHO "\"
483RUB3, TAD I LINPTR
484 JMS TYPE /ECHO RUBBED-OUT CHARACTER
485GT2, JMS GET
486 JMS I [BRANCH
487 -377;RUB2
488 -216;GT2 /IGNORE ^O
489 -203;CTRLC /^C
490 0
491 DCA TEMP /A NEW CHAR
492 TAD ["\
493 JMS TYPE /ENCLOSE RUBBED-OUT CHARS IN \'S
494 TAD TEMP
495 JMP LOOK
496
497RUB2, TAD LINPTR
498 TAD [-LINBUF
499 SNA
500 JMP BOL2
501 TAD [LINBUF-1
502 DCA LINPTR
503 JMP RUB3
504
505BOL2, TAD ["\
506 JMS TYPE
507BOL, JMS I [CRLF
508 JMP RD1
509
510ESCAPE, TAD ("$ /ECHO ESCAPE AS DOLLAR SIGN
511 JMS TYPE
512 ISZ ESCBIT /NOTE ESCAPE
513CR, DCA I LINPTR /INSERT 0 AT END
514 JMS I [CRLF
515 JMP I READ /RETURN, WE GOT LINE
516\fGET, 0
517 KSF
518 JMP .-1
519 KRB
520 AND [177
521 TAD [200 /FORCE TO 8-BIT
522 JMP I GET
523
524TYPE, 0
525 DCA TYPEM
526 JMS I [DELAYY
527 DCA .-1 /DELAY FIRST TIME THRU TO LET THINGS QUIET DOWN
528 TAD CTOFLG
529 SZA CLA
530 JMP I TYPE /NO ECHOING
531 TAD TYPEM
532 TLS
533 TSF
534 JMP .-1
535 CLA
536 JMP I TYPE
537
538TYPEM, 0
539
540LF, DCA I LINPTR /TEMPORARILY INSERT A 0 SENTINEL
541 TAD [LINBUF-1
542 DCA XR1
543 JMS I [CRLF
544 TAD ["#
545 JMS I [TYPE
546LFLP, TAD I XR1
547 SNA
548 JMP I [GT /FINHSHED, GET SOME MORE CHARS
549 JMS I [TYPE /ECHO CURRENT CHARS
550 JMP LFLP
551 PAGE
552\fEOF, JMS I [SPACE /SPAN OVER SPACES
553 JMS I [GETDEV /GET DEVICE
554 JMS I [CHECKR
555 TAD DEVTYP
556 JMS I [BRANCH
557 -20;MAGEOF
558 -27;CASEOF
559 ZBLOCK 2
560 0
561 JMP I [BADEV
562
563SKIP, JMS I [SPACE
564 JMS I [GETDEV
565 JMS I [CHECKW
566 JMS GETNUM
567 TAD DEVTYP
568 JMS I [BRANCH
569 -20;MAGSKP
570 -27;CASSKP
571 0
572 JMP I [BADEV
573
574REWIND, JMS I [SPACE
575 JMS I [GETDEV
576 JMS I [CHECKW
577 TAD DEVTYP
578 JMS I [BRANCH
579 -20;MAGREW
580 -27;CASREW
581 -16;TCREW
582/ -17;LTREW
583 ZBLOCK 4 /PATCH SPACE
584 0
585 TAD DCW
586 SMA CLA
587 JMP I [BADEV /NOT FILE STRUCTURED
588 CLA IAC /READ BLOCK 0 TO REWIND
589 DCA I [BLK
590 TAD (100
591 JMS I [GO
592 JMP I [GOAWAY
593\fUNLOAD, JMS I [SPACE
594 JMS I [GETDEV
595 JMS I [CHECKW
596 TAD DEVTYP
597 JMS I [BRANCH
598 -20;MAGUNL
599/ -27;CASUNL
600 -16;TCUNL
601 -21;TDUNL
602/ -17;LTUNL
603 -23;RKEUNL
604 ZBLOCK 2
605 0
606 JMP I [BADEV
607
608BACK, JMS I [SPACE
609 JMS I [GETDEV
610 JMS I [CHECKW
611 JMS GETNUM
612 TAD TYP
613 SPA CLA
614 JMP I [SYNTAX /CAN'T BACKSPACE TO EOD
615 TAD DEVTYP
616 JMS I [BRANCH
617 -20;MAGBAK
618 -27;CASBAK
619 0
620 JMP I [BADEV
621\fGETNUM, 0 /PARSE OFF :NNNN [F ! R] OR EOD
622 CLA IAC
623 DCA NUM
624 DCA TYP
625 JMS I [GETC
626 SNA
627 JMP I GETNUM /EOL
628 TAD (-":
629 SZA CLA
630 JMP I [SYNTAX
631 STA
632 JMS I [SPACE /OPTIONAL SPACES
633 TAD I LINPTR
634 SNA
635 JMP I GETNUM /EOL
636 TAD (-"E
637 SNA CLA
638 JMP EO
639 JMS I [NUMBER
640 DCA NUM
641 STA
642 JMS I [SPACE /MORE OPTIONAL SPACES
643 DCA TYP
644 JMS I [GETC
645 SNA
646 JMP I GETNUM /NO F OR R. F ASSUMED
647 TAD (-"F
648 SNA
649 JMP R /0 MEANS 'F'
650 TAD ("F-"R
651 SZA CLA
652 JMP I [SYNTAX
653 CLA IAC /1 MEANS 'R'
654R, DCA TYP
655 JMP I GETNUM
656EO, STA /-1 MEANS 'E'
657 JMP R
658 PAGE
659\f/GET A DECIMAL NUMBER, RETURN IT IN AC
660
661NUMBER, 0
662 DCA NUM
663 CLA IAC
664 DCA FLG
665NM1, JMS I [GETC
666 JMS I [DIGIT
667 JMP EON
668 TAD (-"0 /CONVERT TO DIGIT
669 DCA T4
670 DCA FLG /NOTE PASSAGE OF A DIGIT
671 TAD NUM
672 AND [7000
673 SZA CLA
674 JMP I [NUMBIG
675 TAD NUM
676 CLL RTL
677 TAD NUM
678 CLL RAL
679 TAD T4
680 SZL
681 JMP I [NUMBIG
682 DCA NUM
683 JMP NM1
684
685EON, CLA
686 JMS I [BACKC
687 TAD FLG
688 SZA
689 DCA NUM /IF NO DIGITS, RETURN A 1
690 TAD NUM
691 JMP I NUMBER
692\f/ GETDEV
693
694/PARSES OFF A DEVICE NAME (1-4 CHARS)
695/DETERMINES IF IT EXISTS
696/LOADS HANDLER INTO 7200-7577 IF NOT ALREADY IN CORE
697/SETS ENTRY POINT ADDRESS AT 'ENTRY'
698/SETS DEVICE NUMBER AT 'DEVNUM'
699/SETS DEVICE CONTROL WORD AT 'DCW'
700/SETS 'DEVTYP'
701
702GETDEV, 0
703 JMS I [GETTWO
704 DCA WD1
705 JMS I [GETTWO
706 DCA WD2
707 TAD WD1
708 TAD WD2
709 DCA WD1 /COMBINE TWO WORDS INTO 1 (IN WD1)
710 TAD WD2
711 SNA CLA
712 JMP INQ
713 TAD WD1 /OS/8 KLUDGE FOR UNIQUENESS
714 CLL RAL
715 STL RAR /FORCE BIT 0 ON IF 2ND WORD WAS NON-ZERO
716 DCA WD1
717INQ, DCA WD2
718 CIF 10
719 JMS I USR
720 12 /INQUIRE
721WD1, 0 /DEVICE NAME
722WD2, 0 /GETS DEVICE NUMBER
723WD3, 0 /GETS ENTRY POINT
724 JMP I [NONEX /DEVICE DOESN'T EXIST
725 TAD WD3
726 SZA /IS HANDLER ALREADY IN CORE?
727 JMP INCORE /YES
728 TAD WD1
729 DCA DW1
730 TAD (7201 /ALLOW TWO PAGE HANDLER IN 7200
731 DCA DW3
732 DCA DW2
733 CIF 10
734 JMS I USR
735 1 /FETCH
736DW1, 0 /DEVICE NAME
737DW2, 0 /GETS DEVICE NUMBER
738DW3, 0 /GETS ENTRY POINT
739 JMP I [NONEX /DOESN'T EXIST
740 TAD DW2
741 DCA DEVNUM
742 TAD DW3
743 DCA ENTRY
744 JMP GETYP
745\fINCORE, DCA ENTRY
746 TAD WD2
747 DCA DEVNUM
748GETYP, TAD DEVNUM
749 TAD (7757
750 DCA DCWPTR /POILT INTO DEVICE CONTROL WGRD TABLE
751 CDF 10
752 TAD I DCWPTR /GET DCW
753 DCA DCW
754 TAD DCW
755 RTR
756 RAR
757 AND [77
758 DCA DEVTYP
759 STA
760 TAD I (37 /GET ADDRESS OF DHIT
761 DCA DHIT
762 TAD DHIT
763 TAD DEVNUM
764 DCA DHI
765 TAD I DHI
766 CDF 0
767 DCA DHI
768 TAD DHI
769 RTL
770 RTL
771 RTL
772 AND (17
773 SZA
774 TAD (15
775 DCA DBLK
776 JMP I GETDEV
777
778DELAYY, 0
779 TAD (-10
780 DCA OUTER
781 ISZ ZER
782 JMP .-1
783 ISZ OUTER
784 JMP .-3
785 JMP I DELAYY
786ZER, 0
787OUTER, -10
788 PAGE
789\fLOADPT, TAD I (FUNCT
790 TAD (-REWKOD
791 SNA CLA
792 JMP I [GOAWAY /LOAD POINT ON A REWIND IS NOT AN ERROR
793READBT, JMS I [PRINT
794 TEXT /? CAN'T - AT BOT OR EOT/
795 JMP I [GOAWAY
796\fREADEOF,JMS I [PRINT
797 TEXT /% CAN'T - AT EOF/
798 JMP I [GOAWAY
799
800READBOF,JMS I [PRINT
801 TEXT /% CAN'T - AT BOF/
802 JMP I [GOAWAY
803
804\fCASSKP, DCA I (DIR
805 TAD TYP
806 SNA CLA
807 JMP CSKPF
808 JMP I (NOTIMPL
809
810CGO, 0
811 DCA CFUNCT
812 JMS I ENTRY
813CFUNCT, 0
814CBUFR, 7000
815CBLK, -1
816 SKP
817 JMP I CGO
818 DCA TEMP
819 TAD TEMP
820 SMA CLA
821 JMP I (END /SOFT ERROR
822 JMS I [PRINT
823 TEXT \? CAN'T - I/O ERROR\
824 JMP I [GOAWAY
825
826CASEOF, JMS CGO
827 JMP I [GOAWAY
828
829CASREW, TAD (REWKOD
830 JMS CGO
831 JMP I [GOAWAY
832\fCSKPF, TAD NUM
833 SNA
834 IAC
835 CIA
836 DCA COUNT
837 TAD (SKFKOD
838 JMS CGO
839 ISZ COUNT
840 JMP .-3
841 JMP I [GOAWAY
842
843CASBAK, CLA IAC
844 DCA I (DIR
845 TAD TYP
846 SZA CLA
847 JMP CBAKBLK
848 TAD NUM
849 CMA
850 DCA COUNT
851 TAD (BKFKOD
852 JMS CGO
853 ISZ COUNT
854 JMP .-3
855 JMP I [GOAWAY
856
857CBAKBLK,TAD NUM
858 SNA
859 IAC
860 CIA
861 DCA COUNT
862 TAD (BAKKOD
863 JMS CGO
864 ISZ COUNT
865 JMP .-3
866 JMP I [GOAWAY
867 PAGE
868\fTCREW, JMS TCR
869 JMP I [GOAWAY
870
871TCUNL, JMS TCR
872 TAD ENTRY
873 IAC
874 RTR
875 RTR
876 AND [7000
877 DTLA /SELECT ANOTHER UNIT
878 JMP I [GOAWAY
879
880TCR, 0
881 TAD ENTRY
882 TAD (-7607
883 SZA CLA /SYSTEM TC08 DECTAPE MUST BE UNIT 0
884 TAD ENTRY
885 RTR
886 RTR
887 AND [7000 /ISOLATE UNIT # IN BITS 0-2
888 TAD (600 /GO REVERSE
889 DTLA
890 JMP I TCR
891\fTDUNL, TAD (-7607
892 SZA CLA
893 TAD ENTRY
894 DCA TEMP
895 TAD TEMP
896 RTR
897 RAR
898 CLA RAR
899 DCA UNIT
900 TAD TEMP
901 AND [3
902 CIA
903 TAD [77 /GET DEV CODE
904 CLL RTL
905 RAL
906 TAD (6004 /BUILD 'SDLC'
907 DCA BSDLC
908 TAD UNIT
909 TAD (3000 /GO, REVERSE
910BSDLC, HLT
911 CLA
912 JMP I [GOAWAY
913UNIT, 0
914\fTTCODE, 0
915 TAD NO
916 SZA CLA
917 JMP I [SYNTAX
918 JMS I [ONUM
919 SNA
920 JMP I [SYNTAX
921 DCA NUCODE
922 TAD NUCODE
923 AND [7700
924 SZA CLA
925 JMP I [NUMBIG
926 JMS I [TTST1
927 TAD (7200
928 DCA RR
929 JMS GETIOT
930 JMP I [OLDERR
931 CIA
932 DCA T2
933TTLP, JMS GETIOT
934 JMP I [OLDERR
935 CIA
936 DCA T3
937 TAD T3
938 CIA
939 TAD T2
940 SNA
941 JMP TTLP
942 SMA CLA
943 JMP .+3
944 TAD T3
945 DCA T2 /T2 CONTAINS NEG OF SMALLER IOT
946 TAD (7200
947 DCA RR
948TTLP2, JMS GETIOT
949 JMP I TTCODE
950 TAD T2
951 SZA CLA
952 CLA IAC
953 TAD NUCODE
954 CLL RTL
955 RAL
956 DCA T3
957 TAD I RR
958 AND (7007
959 TAD T3
960 DCA I RR
961 JMP TTLP2
962\fGETIOT, 0
963 ISZ RR
964 TAD RR
965 TAD (-7600
966 SNA CLA
967 JMP I GETIOT
968 TAD I RR
969 AND [7000
970 TAD [-6000
971 SZA CLA
972 JMP GETIOT+1
973 TAD I RR
974 RTR
975 RAR
976 AND [77
977 TAD (-20
978 CLL RAR
979 SNA
980 JMP GETIOT+1
981 RAL
982 TAD (20
983 ISZ GETIOT
984 JMP I GETIOT
985 PAGE
986\fMAGSKP, DCA DIR
987 TAD TYP
988 SNA
989 JMP SKPF
990 SPA CLA
991 JMP SKPEOD
992 TAD NUM
993 SNA
994 CLA IAC
995 CIA
996 DCA WC
997 TAD (SKPKOD
998 JMS GO
999 JMP I [GOAWAY
1000
1001MAGEOF, TAD (EOFKOD
1002 JMS GO
1003 JMP I [GOAWAY
1004
1005SKPF, TAD NUM
1006 SNA
1007 JMP SKP0
1008 CIA
1009 DCA WC
1010 JMS I (FUDGE /DON'T LET GUY TRICK US INTO GOING PAST EOD
1011 TAD (SKFKOD
1012 JMS GO
1013 JMP I [GOAWAY
1014
1015SKPEOD, JMS I (FUDGE /DON'T LET GUY TRICK US INTO GOING PAST EOD
1016 JMS I ENTRY
1017 SKFKOD
1018 0
1019 0 /SKIP 4096 FILES
1020 SMA
1021 SKP CLA
1022 JMP CHKBOT
1023 JMP I [GOAWAY
1024
1025MAGBAK, CLA IAC
1026 DCA DIR
1027 TAD TYP
1028 SNA CLA
1029 JMP BAKF
1030 TAD NUM
1031 SNA
1032 CLA IAC
1033 CIA
1034 DCA WC
1035 TAD (BAKKOD
1036 JMS GO
1037 JMP I [GOAWAY
1038\fBAKF, TAD NUM
1039 CMA
1040 DCA WC2
1041 JMS I ENTRY
1042 BKFKOD
1043 0
1044WC2, -1 /
1045 SMA
1046 SKP CLA
1047 JMP CHKBOT
1048 TAD (SKPKOD /SKIP 1 RECORD FORWARD
1049 JMP SKY
1050
1051CHKBOT, DCA TEMP
1052 TAD TEMP
1053 AND (1000
1054 SNA CLA
1055 JMP IOE
1056 JMP I (READBT
1057\fMAGUNL, TAD (UNLKOD
1058 JMS GO
1059 JMP I [GOAWAY
1060
1061MAGREW, TAD (REWKOD
1062 JMS GO
1063 JMP I [GOAWAY
1064
1065GO, 0
1066 DCA FUNCT
1067 JMS I ENTRY
1068FUNCT, 0
1069BUFR, 7000
1070WC,
1071BLK, -1
1072 SKP /I/O ERROR
1073 JMP I GO
1074 DCA TEMP
1075 TAD TEMP
1076 SMA CLA
1077 JMP END /SOFT ERROR
1078 TAD TEMP
1079 AND (1000
1080 SZA CLA
1081 JMP I [LOADPT
1082IOE, TAD TEMP
1083 JMP I [IOERR
1084
1085DIR, 0 /0- FORWARD ; 1- BACKWARDS
1086
1087END, TAD TYP
1088 SNA CLA
1089 JMP I (EODERR /V3C NEW HANDLER CALL
1090 TAD DIR /SAW FILE MARK
1091 SNA CLA /V3C
1092 JMP I [READEOF /AT END OF FILE
1093 JMP I [READBOF /AT BEGIN OF FILE
1094\fSKP0, JMS I ENTRY
1095 SKFKOD
1096 0 /IRRELEVANT
1097 -1 /ADVANCE 1 FILE
1098 SMA
1099 SKP CLA
1100 JMP I [IOERR /HARD ERROR
1101 TAD (BAKKOD
1102SKY, DCA SKX /V3C
1103 JMS I ENTRY
1104SKX, BAKKOD
1105 0 /IRREL
1106 -1 /BACK OVER FILE MARK
1107 SMA
1108 SKP CLA
1109 JMP I [IOERR
1110 JMP I [GOAWAY
1111 PAGE
1112\fIOERR, AND (3777
1113 CLL RAL
1114 DCA TEMP
1115 JMS I [PRINT
1116 TEXT \? CAN'T - I/O ERROR\
1117 TAD (-13 /11 BITS TO LOOK AT
1118 DCA CNT
1119 TAD (JLIST
1120 DCA JM
1121IOLUP, TAD TEMP
1122 RAL
1123 DCA TEMP
1124 SZL
1125 JMP I JM
1126IOCONT, ISZ JM
1127 ISZ CNT
1128 JMP IOLUP
1129 JMP I [GOAWAY
1130
1131JM, 0
1132
1133JLIST, JMP BIT1
1134 JMP BIT2
1135 JMP BIT3
1136 JMP BIT4
1137 JMP BIT5
1138 JMP BIT6
1139 JMP BIT7
1140 JMP BIT8
1141 JMP I (BIT9
1142 JMP I (BIT10
1143 JMP I (BIT11
1144\fBIT1, JMS I [PRINT
1145 TEXT /(REWINDING)/
1146 JMP IOCONT
1147BIT2, JMS I [PRINT
1148 TEXT /(BOT)/
1149 JMP IOCONT
1150BIT3, JMS I [PRINT
1151 TEXT /(SELECT ERROR)/
1152 JMP IOCONT
1153BIT4, JMS I [PRINT
1154 TEXT /(PARITY ERROR)/
1155 JMP IOCONT
1156BIT5, JMS I [PRINT
1157 TEXT /(EOF)/
1158 JMP IOCONT
1159\fBIT6, JMS I [PRINT
1160 TEXT /(RECORD LENGTH INCORRECT)/
1161 JMP IOCONT
1162BIT7, JMS I [PRINT
1163 TEXT /(TIMING ERROR)/
1164 JMP IOCONT
1165BIT8, JMS I [PRINT
1166 TEXT /(EOT)/
1167 JMP IOCONT
1168\fRKEUNL, CLL
1169 TAD ENTRY
1170 TAD (200
1171 SNL CLA
1172 TAD ENTRY
1173 AND (6 /ISOLATE UNIT
1174 TAD (2000 /WRITE PROTECT DISK
1175 DLDC /LOAD COMMAND REGISTER
1176 DLAG
1177 JMP I [GOAWAY
1178 PAGE
1179\fBIT9, JMS I [PRINT
1180 TEXT /(WRITE LOCK-OUT)/
1181 JMP I (IOCONT
1182BIT10, JMS I [PRINT
1183 TEXT /(READ COMPARE ERROR)/
1184 JMP I (IOCONT
1185BIT11, JMS I [PRINT
1186 TEXT /(ILLEGAL FUNCTION)/
1187 JMP I (IOCONT
1188\fNOTIMPL,JMS I [PRINT
1189 TEXT /% OPERATION NOT YET IMPLEMENTED/
1190 JMP I [GOAWAY
1191EODERR, JMS I [PRINT
1192 TEXT /? CAN'T - AT EOD/
1193 JMP I [GOAWAY
1194\f/THIS ROUTINE PREVENTS US FROM GOING PAST EOD WHEN
1195/SKIPPING FORWARD FILES.
1196/IT DOES THIS BY THE FOLLOWING ALGORITHM:
1197/FIRST WE BACKSPACE A RECORD.
1198/IF WE SAW DATA, THEN OK, WE RETURN TO THE USER;
1199/THIS WILL NOT AFFECT HIS SKIP FILE COUNT.
1200/IF WE SAW A FILE MARK, THEN WE SKIP FORWARD
1201/BACK OVER THAT FILE, IGNORING THE FILE MARK ERROR.
1202/IF WE SAW BOT, THEN, OK NO ERROR.
1203
1204FUDGE, 0
1205 JMS I ENTRY /V3C ALL NEW
1206 BAKKOD
1207TM, 0
1208 -1
1209 SKP
1210 JMP I FUDGE
1211 SPA
1212 JMS BER
1213 SZA CLA
1214 JMS FRWD
1215 JMP I FUDGE
1216
1217/IF ERROR WAS BOT, OK
1218
1219BER, 0
1220 DCA TM
1221 TAD TM
1222 AND (1000
1223 SZA CLA
1224 JMP I BER /BOT OK, NO FRWD
1225 TAD TM
1226 JMP I [IOERR
1227
1228FRWD, 0
1229 JMS I ENTRY
1230 SKPKOD
1231 0
1232 -1
1233 SMA
1234 SKP CLA
1235 JMP I [IOERR
1236 JMP I FRWD
1237 PAGE
1238\fSET, JMS I [SPACE
1239 DCA VNO /V3C
1240 JMS I [GETDEV
1241 JMS I [GETC
1242 JMS I [BRANCH
1243 -":;COLN
1244 -" ;COLN
1245 -"-;HYPH
1246 0
1247 JMP I [SYNTAX /NO : OR BLANK AFTER NAME
1248COLN, STA
1249 JMS I [SPACE /IGNORE OPTIONAL SPACES
1250 JMS I [GETC
1251 SNA
1252 JMP I [SYNTAX
1253 TAD (-"-
1254 SNA CLA
1255 JMP HYPH
1256 JMS I [BACKC
1257COLN2, DCA NAM1
1258 DCA NAM2
1259 TAD (MAIN-1 /LOOK FOR DEVICE TYPE IN MAIN TABLE
1260MNLUP, DCA XR1
1261 TAD I XR1
1262 SMA SZA
1263 JMP NOTYP /NOT FOUND
1264 TAD DEVTYP
1265 SNA CLA
1266 JMP FNDTYP
1267 TAD XR1
1268 TAD (3 /POINT TO NEXT ENTRY
1269 JMP MNLUP
1270FNDTYP, TAD I XR1 /GET GENERIC NAME
1271 DCA NAM1
1272 TAD I XR1
1273 DCA NAM2
1274 DCA AUXFLG
1275 TAD I XR1 /GET PTR TO DEVICE TABLE
1276INTO, DCA PTR
1277 DCA NO
1278 TAD LINPTR
1279 DCA SAVPTR /SAVE SCAN POINTER
1280 JMS I [GETTWO
1281 TAD (-1617
1282 SNA CLA /ARE NEXT TWO CHARS 'NO'?
1283 JMS SAWNO /YES
1284 TAD SAVPTR /NO
1285 DCA LINPTR /RESTORE PTR
1286SCNLUP, TAD I PTR
1287 SNA /GET NEXT KEYWORD POINTER
1288 JMP NOKEY
1289 ISZ PTR /POINT TO PTR TO ROUTINE
1290 JMS I [KEYSRCH
1291 JMP NOF /NOT FOUND
1292 TAD I PTR /FOUND
1293 DCA PTR /GET PTR TO ROUTINE
1294 JMS I (HREAD /READ HANDLER
1295 JMS I PTR /CALL ROUTINE
1296 JMS I (HWRITE /REWRITE HANDLER
1297 JMP I [GOAWAY
1298\fHYPH, JMS I [ALPHA
1299 JMP I [BADV
1300 DCA VNO
1301 TAD VNO
1302 SNA
1303 JMP I [BADV
1304 AND [17
1305 DCA VNO
1306 JMS I [SPACE /IGNORE SPACE
1307 JMP COLN2
1308\fNOKEY, TAD AUXFLG
1309 SNA CLA
1310 JMP NOO
1311 JMS I [PRINT
1312 TEXT \? UNKNOWN ATTRIBUTE FOR DEVICE \
1313 *.-1
1314NAM1, 0
1315NAM2, 0
1316 0
1317 JMP I [GOAWAY
1318
1319SAWNO, 0
1320 ISZ NO
1321 STA
1322 JMS I [SPACE
1323 TAD LINPTR
1324 DCA SAVPTR
1325 JMP I SAWNO
1326
1327NOTYP, CLA
1328 ISZ AUXFLG
1329 TAD (AUX /SEARCH AUXILIARY TABLE
1330 JMP INTO
1331\fNOF, ISZ PTR
1332 TAD SAVPTR
1333 DCA LINPTR
1334 JMP SCNLUP
1335
1336AUXFLG, 0
1337
1338NOO, ISZ AUXFLG
1339 TAD (AUX
1340 DCA PTR
1341 JMP SCNLUP
1342 PAGE
1343\fHREAD, 0
1344 TAD DBLK
1345 SNA
1346 JMP RESERR
1347 DCA BLOCK
1348 JMS I (7607
1349 200 /READ 2 PAGES
1350L7200, 7200 /INTO 7200-7577
1351BLOCK, 0 /FROM THIS BLOCK ON SYSTEM DEVICE
1352 JMP I [SYSERR
1353 TAD DHI
1354 AND (177 /GET RELATIVE ENTRY PT
1355 TAD L7200
1356 DCA ENTRY
1357 TAD VNO
1358 SZA CLA /V3C
1359 JMP I HREAD /VNO ALREADY SET BY - COMMAND
1360 TAD ENTRY
1361VLOOP, DCA VNOPTR
1362 TAD I VNOPTR
1363 CLL
1364 TAD (-33
1365 SZL CLA
1366 JMP BACKV
1367 TAD I VNOPTR
1368 SNA
1369 JMP OLDERR
1370 DCA VNO
1371 JMP I HREAD
1372BACKV, STA
1373 TAD VNOPTR
1374 JMP VLOOP
1375
1376RESERR, JMS I [PRINT
1377 TEXT /? CAN'T - DEVICE IS RESIDENT/
1378 JMP I [GOAWAY
1379\fOLDERR, CLA
1380 JMS I [PRINT
1381 TEXT /? CAN'T - OBSOLETE HANDLER/
1382 JMP I [GOAWAY
1383
1384HWRITE, 0
1385 TAD BLOCK
1386 DCA BLKTWO
1387 JMS I (7607
1388 4200
1389 7200
1390BLKTWO, 0
1391 JMP I [SYSERR
1392 JMP I HWRITE
1393\fNEWERR, CLA
1394 JMS I [PRINT
1395 TEXT /? CAN'T - UNKNOWN VERSION OF THIS HANDLER/
1396 JMP I [GOAWAY
1397 PAGE
1398\fMAIN, -0; DEVICE TTY; TTYTBL
1399 -1; DEVICE PTR; PTRTBL
1400 -2; DEVICE PTP; PTPTBL
1401 -3; DEVICE CDR; CDRTBL
1402 -4; DEVICE LPT; LPTTBL
1403 -20; DEVICE MTA; MTATBL
1404 1
1405 ZBLOCK 20
1406/TABLE ENDS WITH A POSITIVE NON-ZERO NUMBER
1407\fCDRTBL, CODE;CDCODE
1408 ZBLOCK 4
1409 0
1410
1411LPTTBL, WIDTH;LPWDTH
1412 LC;LPLC
1413 LV8E;LPLV
1414 ZBLOCK 4
1415 0
1416
1417MTATBL, PARITY;MTAPAR
1418 DENSITY;MTADEN
1419 FILES;MTAFIL
1420 ZBLOCK 4
1421 0
1422\fTTYTBL, WIDTH;TTWIDTH
1423 CODE;TTCODE
1424 ALT;TTALT
1425 ECHO;TTECHO
1426 LC;TTLC
1427 PAYGE;TTPAGE
1428 TAB;TTTAB
1429 FILL;TTFILL
1430 FLAGG;TTFLAG
1431 CTRL;TTCTRL
1432 GAG;TTGAG
1433 DELAY;TTDELAY
1434 ZBLOCK 10
1435 0
1436
1437AUX, LOC;GENLOC
1438 FILES;GENFIL
1439 READO;GENREA
1440 VERS;GENVER
1441 ZBLOCK 10
1442 0
1443 PAGE
1444\fWIDTH, "W;"I;"D;"T;"H;0
1445LC, "L;"C;0
1446LV8E, "L;"V;4000+"8;4000+"E;0
1447CODE, "C;"O;"D;"E;0
1448ALT, "A;"L;"T;4000+"M;4000+"O;4000+"D;4000+"E;0
1449ECHO, "E;"C;"H;"O;0
1450PAYGE, "P;"A;"G;"E;0
1451TAB, "T;"A;"B;0
1452LOC, "L;"O;"C;4000+"A;4000+"T;4000+"I;4000+"O;4000+"N;0
1453FILES, "F;"I;"L;"E;4000+"S;0
1454READO, "R;"E;"A;"D;4000+"O;4000+"N;4000+"L;4000+"Y;0
1455VERS, "V;"E;"R;4000+"S;4000+"I;4000+"O;4000+"N;0
1456PARITY, "P;"A;"R;4000+"I;4000+"T;4000+"Y;0
1457DENSITY,"D;"E;"N;4000+"S;4000+"I;4000+"T;4000+"Y;0
1458FILL, "F;"I;"L;"L;0
1459FLAGG, "F;"L;"A;"G;0
1460CTRL, "C;"T;"R;"L;0
1461EVEN, "E;4000+"V;4000+"E;4000+"N;0
1462ODD, "O;4000+"D;4000+"D;0
1463DELAY, "D;"E;"L;"A;"Y;0
1464GAG, "G;"A;"G;0
1465 PAGE
1466\fLPWDTH, 0
1467 JMS I (GETWID
1468 JMS LPTST1
1469 TAD NUM
1470 CMA
1471 DCA I (7200
1472 JMP I LPWDTH
1473
1474LPTST1, 0
1475 TAD I (7201
1476 SPA CLA
1477 JMP L645
1478 TAD VNO
1479 JMS I [BRANCH
1480 -1;OLDERR
1481 -2;LPTOK
1482 ZBLOCK 4
1483 0
1484 JMP I [NEWERR
1485LPTOK, JMP I LPTST1
1486
1487L645, JMS I [PRINT
1488 TEXT /? CAN'T AFFECT ANNALEX LPT/
1489 JMP I [GOAWAY
1490\fASRTST, 0
1491 TAD DHI
1492 SPA CLA
1493 JMP I ASRTST
1494 JMS I [PRINT
1495 TEXT /? CAN'T - NOT KL8E HANDLER/
1496 JMP I [GOAWAY
1497\fGENVER, 0
1498 TAD NO
1499 SZA CLA
1500 JMP I [SYNTAX
1501 JMS I [ALPHA
1502 JMP BADV
1503 DCA NUM
1504 TAD NUM
1505 AND (40
1506 SZA CLA
1507 JMP BADV
1508 TAD NUM
1509 AND (37
1510 DCA I VNOPTR
1511 JMP I GENVER
1512
1513GENREA, 0
1514 CDF 10
1515 TAD I DCWPTR
1516 CLL RTL
1517 CLL RAL
1518 TAD NO
1519 RAR
1520 CML RAR
1521 RAR
1522 DCA I DCWPTR
1523 CDF 0
1524 JMP I GENREA
1525
1526GENFIL, 0
1527 CDF 10
1528 TAD I DCWPTR
1529 CLL RAL
1530 CLL RAL /ZERO LINK
1531 TAD NO
1532 RAR
1533 CML RAR
1534 DCA I DCWPTR
1535 CDF 0
1536 JMP I GENFIL
1537\fBADV, CLA
1538 JMS I [PRINT
1539 TEXT /? BAD VERSION LETTER/
1540 JMP I [GOAWAY
1541
1542CRLF, 0
1543 TAD [215
1544 JMS I (TYPE
1545 TAD [212
1546 JMS I (TYPE
1547 JMP I CRLF
1548 PAGE
1549\fLPLV, 0
1550 JMS I (LPTST1
1551 TAD NO
1552 CLL RTL
1553 RTL
1554 TAD (4
1555 DCA I (7201
1556 JMP I LPLV
1557
1558LPLC, 0
1559 JMS I (LPTST1
1560 TAD NO
1561 CLL RTL
1562 RTL
1563 RAL
1564 CIA
1565 DCA I (7202
1566 JMP I LPLC
1567
1568TTALT, 0
1569 JMS I [TTST1
1570 JMP I [NOTIMPL
1571 JMP I TTALT
1572
1573TTECHO, 0
1574 JMS I [TTST1
1575 TAD NO
1576 SZA CLA
1577 TAD (SKP CLA-SZA
1578 TAD (SZA
1579 DCA I (7200+120
1580 JMP I TTECHO
1581
1582TTPAGE, 0
1583 JMS I (ASRTST
1584 TAD VNO
1585 JMS I [BRANCH
1586 -1;OLDERR
1587 -2;OLDERR
1588 -3;OLDERR
1589 -4;PAGOK
1590 ZBLOCK 2
1591 0
1592 JMP I [NEWERR
1593\fPAGOK, TAD I (7200+216
1594 TAD (-SNA
1595 SZA CLA
1596 JMP I [REASEM
1597 TAD NO
1598 SNA CLA
1599 TAD (SZA CLA-CLA
1600 TAD (CLA
1601 DCA I (7200+216
1602 JMP I TTPAGE
1603\fTTTAB, 0
1604 JMS I [TTST1
1605 JMS I [GETC
1606 SNA
1607 JMP TTEO
1608 TAD (-"/
1609 SNA CLA
1610 JMS I [GETC
1611 TAD (-"N
1612 SZA CLA
1613 JMP I [SYNTAX
1614 JMP NOTEC
1615TTEO, TAD NO
1616 SNA CLA
1617 TAD (5000
1618 TAD L200
1619 JMS I (TECO
1620NOTEC, JMS I [SRCH
1621L200, 200;100;7
1622 JMP I [REASEM
1623 DCA TEMP
1624 STA CLL RAL /-2
1625 TAD TEMP
1626 DCA T2
1627 TAD TEMP
1628 TAD (3
1629 DCA T3
1630 TAD NO
1631 SNA CLA
1632 JMP SETAB
1633 TAD TEMP
1634 TAD (-4
1635 DCA T4
1636 TAD T4
1637 AND (77
1638 TAD (1200 /TAD TTY240
1639 DCA I T2
1640 TAD (SZA CLA
1641 DCA I T3
1642 JMP I TTTAB
1643SETAB, TAD TEMP
1644 TAD (-12
1645 DCA T4
1646 TAD I T4
1647 DCA I T2
1648 TAD (SKP CLA
1649 DCA I T3
1650 JMP I TTTAB
1651 PAGE
1652\fTTFILL, 0
1653 JMS I [TTST1
1654 JMS I [SRCH
1655 200;100;1377
1656 JMP I [REASEM
1657 TAD (-1
1658 DCA TEMP
1659 TAD NO
1660 CLL RAL
1661 TAD (2
1662 TAD TEMP
1663 DCA T2
1664 TAD I T2
1665 DCA I TEMP
1666 JMP I TTFILL
1667
1668REASEM, JMS I [PRINT
1669 TEXT /? CAN'T - MUST REASSEMBLE KL8E SOURCE/
1670 JMP I [GOAWAY
1671
1672TTDELAY,0
1673 JMS I [TTST1
1674 JMP I [NOTIMPL
1675 JMP I TTDELAY
1676\f/ENTER WITH PTR TO POSSIBLE KEYWORD IN AC
1677
1678KEYSRCH,0
1679 DCA KPTR
1680KL, TAD I KPTR
1681 ISZ KPTR
1682 SNA
1683 JMP GOTKEY
1684 CIA
1685 DCA TEMP
1686 JMS I [ALPHA /IS IT ALPHANUMERIC?
1687 JMP EOK /NO
1688 TAD TEMP /COMPARE
1689 CLL RAL /LOW ORDER 11 BITS
1690 SNA CLA
1691 JMP KL /MATCHED, KEEP LOOKING
1692 JMP I KEYSRCH /DIDN'T MATCH
1693EOK, JMS I [BACKC
1694 TAD TEMP
1695 CIA /INPUT STREAM RAN OUT OR HIT SPACE
1696 SPA CLA
1697 JMP GOTKEY /SPACE OR EOL MATCH FLAGGED CHARACTER
1698 JMP I KEYSRCH
1699
1700KPTR, 0
1701
1702GOTKEY, JMS I [SCAN
1703 STA /SKIP EXTRA STUFF
1704 JMS I [SPACE
1705 ISZ KEYSRCH /TAKE GOOD RETURN 2
1706 JMP I KEYSRCH
1707
1708PTRTBL, ZBLOCK 4
1709 0
1710
1711PTPTBL, ZBLOCK 4
1712 0
1713 PAGE
1714\fTTGAG, 0
1715 JMS TTST1
1716 JMP I [NOTIMPL
1717 JMP I TTGAG
1718
1719TTFLAG, 0
1720 JMS TTST1
1721 JMS I [SRCH
1722 200;200;247
1723 JMP I [REASEM
1724 TAD (-2
1725 DCA TEMP
1726 TAD NO
1727 SNA CLA
1728 TAD (SZA CLA-CLA
1729 TAD (CLA
1730 DCA I TEMP
1731 JMP I TTFLAG
1732
1733TTLC, 0
1734 JMS TTST1
1735 JMS I [SRCH
1736 200;200;377
1737 JMP I [REASEM
1738 TAD (5
1739 DCA TEMP
1740 TAD I TEMP
1741 CLL
1742 TAD [200
1743 SNL CLA
1744 JMP I [REASEM
1745 TAD NO
1746 SNA CLA
1747 TAD [40 /SNA CLA
1748 TAD (7610 /SKP CLA
1749 DCA I TEMP
1750 JMP I TTLC
1751
1752TTCTRL, 0
1753 JMS TTST1
1754 JMP I [NOTIMPL
1755 JMP I TTCTRL
1756\fTTWIDTH,0
1757 JMS GETWID
1758 JMS TTST1
1759 TAD NUM
1760 AND [7
1761 SZA CLA
1762 JMP I [BADWID
1763 TAD NUM
1764 TAD [-200
1765 SNA CLA
1766 JMP I [BADWID
1767 JMS I [SRCH
1768 200;200;7600
1769 JMP I [REASEM
1770 IAC
1771 DCA TEMP
1772 TAD I TEMP
1773 AND [177
1774 TAD (177+7200
1775 DCA T2
1776 TAD TEMP
1777 IAC
1778 DCA T3
1779 TAD NUM
1780 CIA
1781 DCA I T3
1782 TAD I T3
1783 DCA I T2
1784 JMP I TTWIDTH
1785\fGETWID, 0
1786 TAD NO
1787 SZA CLA
1788 JMP I [SYNTAX
1789 JMS OPTEQ
1790 JMS I [NUMBER
1791 SNA
1792 JMP I (BADWID
1793 DCA NUM
1794 TAD FLG
1795 SZA CLA
1796 JMP I [SYNTAX /NO DIGITS
1797 TAD NUM
1798 AND [7400
1799 SZA CLA
1800 JMP I [NUMBIG
1801 JMP I GETWID
1802
1803TTST1, 0
1804 JMS I (ASRTST
1805 TAD VNO
1806 JMS I [BRANCH
1807 -1;OLDERR
1808 -2;OLDERR
1809 -3;TTOK
1810 -4;TTOK /V3C
1811 ZBLOCK 4
1812 0
1813 JMP I [NEWERR
1814TTOK, JMP I TTST1
1815\fOPTEQ, 0
1816 JMS I [GETC
1817 TAD (-"=
1818 SZA CLA
1819 JMP NOE
1820 JMS I [SPACE
1821 JMP I OPTEQ
1822NOE, JMS I [BACKC
1823 JMP I OPTEQ
1824 PAGE
1825\fBADWID, JMS I [PRINT
1826 TEXT /? ILLEGAL WIDTH/
1827 JMP I [GOAWAY
1828
1829OPRIN, 0
1830 DCA N3
1831 TAD (-4
1832 DCA OKNT
1833OPLP, TAD N3
1834 JMS DGP
1835 TAD N3
1836 RTL
1837 RAL
1838 DCA N3
1839 ISZ OKNT
1840 JMP OPLP
1841 JMP I OPRIN
1842
1843DGP, 0
1844 RTL
1845 RTL
1846 AND [7
1847 TAD [60
1848 JMS I [TYPE
1849 JMP I DGP
1850
1851OKNT, 0
1852N3, 0
1853NUM2, 0
1854GTEM, 0
1855\fSRCH, 0
1856 TAD I SRCH
1857 ISZ SRCH
1858 TAD (7200-1
1859 DCA XR1
1860 TAD I SRCH
1861 ISZ SRCH
1862 CIA
1863 DCA CNT
1864 TAD I SRCH
1865 CIA
1866 DCA TEMP
1867 ISZ SRCH
1868SRLUP, TAD I XR1
1869 TAD TEMP
1870 SNA CLA
1871 JMP SRFND
1872 ISZ CNT
1873 JMP SRLUP
1874 JMP I SRCH
1875SRFND, ISZ SRCH
1876 TAD XR1
1877 JMP I SRCH
1878\fGENLOC, 0
1879 TAD NO
1880 SZA CLA
1881 JMP I [SYNTAX
1882 JMS I [ONUM
1883 DCA NUM2
1884 TAD FLG
1885 SZA CLA
1886 JMP I [SYNTAX
1887 JMS I [GETC
1888 DCA TEMP
1889 TAD TEMP
1890 SNA
1891 JMP ENOL
1892 TAD (-"=
1893 SZA CLA
1894 JMP I [SYNTAX
1895ENOL, TAD DHI
1896 SPA CLA
1897 TAD (-200
1898 TAD (-200
1899 CLL
1900 TAD NUM2
1901 SZL CLA
1902 JMP I [NUMBIG
1903 TAD NUM2
1904 TAD (7200 /BASE OF HANDLER
1905 DCA NUM2
1906 TAD TEMP
1907 SNA CLA
1908 JMP ODT
1909GETNEW, JMS I [ONUM
1910 DCA NUM
1911 TAD FLG
1912 SZA CLA
1913 JMP I GENLOC
1914 JMS I [GETC
1915 SZA CLA
1916 JMP I [SYNTAX
1917 TAD NUM
1918 DCA I NUM2
1919 JMP I GENLOC
1920\fODT, TAD I NUM2
1921 JMS OPRIN
1922 TAD ("/
1923 JMS I [TYPE
1924 TAD I [READ
1925 DCA GTEM /SAVE CHAIN STATUS
1926 JMS I [READ
1927 TAD [LINBUF
1928 DCA LINPTR
1929 TAD GTEM
1930 DCA I [READ
1931 JMP GETNEW
1932 PAGE
1933\fMTAPAR, 0
1934 TAD NO
1935 SZA CLA
1936 JMP I [SYNTAX
1937 JMS MTST1
1938 TAD LINPTR
1939 DCA SAVPTR
1940 TAD (EVEN
1941 JMS I [KEYSRCH
1942 SKP
1943 JMP SETE
1944 TAD SAVPTR
1945 DCA LINPTR
1946 TAD (ODD
1947 JMS I [KEYSRCH
1948 JMP I [SYNTAX
1949 TAD (400
1950SETE, TAD (2
1951 DCA I (7200
1952 JMP I MTAPAR
1953
1954MTST1, 0
1955 TAD VNO
1956 JMS I [BRANCH
1957 -1;OLDERR
1958 -2;OLDERR
1959 -3;OLDERR
1960 -4;MTOK
1961 -5;MTOK
1962 -6;MTOK
1963 ZBLOCK 4
1964 0
1965 JMP I [NEWERR
1966MTOK, JMP I MTST1
1967
1968MTADEN, 0
1969 JMS MTST1
1970 TAD NO
1971 SZA CLA
1972 JMP I [SYNTAX
1973 JMP I [NOTIMP
1974 JMP I MTADEN
1975\fMTAFIL, 0
1976 JMS MTST1
1977 TAD NO
1978 DCA I (7201
1979 JMP I MTAFIL
1980
1981BADCOD, JMS I [PRINT
1982 TEXT /? UNKNOWN CARD CODE/
1983 JMP I [GOAWAY
1984
1985/SUPPOSED TO WORK ON ALL VERSIONS
1986
1987CDCODE, 0
1988 TAD NO
1989 SZA CLA
1990 JMP I [SYNTAX
1991 JMS I (OPTEQ
1992 JMS I [NUMBER
1993 TAD (-32 /026
1994 SNA
1995 JMP C026
1996 TAD (32-35 /029
1997 SZA CLA
1998 JMP BADCOD
1999 JMS CHANGE
2000 LIST1;LIST2
2001 JMP I CDCODE
2002C026, JMS CHANGE
2003 LIST1;LIST3
2004 JMP I CDCODE
2005\fCHANGE, 0
2006 TAD I CHANGE
2007 DCA P1
2008 ISZ CHANGE
2009 TAD I CHANGE
2010 DCA P2
2011 ISZ CHANGE
2012CHLUP, TAD I P1
2013 SNA
2014 JMP I CHANGE
2015 TAD (7200 /BASE OF HANDLER
2016 DCA P3
2017 TAD I P2
2018 DCA I P3
2019 ISZ P1
2020 ISZ P2
2021 JMP CHLUP
2022
2023P1, 0
2024P2, 0
2025P3, 0
2026 PAGE
2027\fLIST1, 304;305;306
2028 314;315;316
2029 324;325;326;327
2030 334;335;336
2031 0
2032
2033LIST2, 3203;4007;3502
2034 7514;0577;3637
2035 0104;1211;3374;0641
2036 7316;3410;1376
2037
2038LIST3, 7735;4076;0774
2039 3314;1002;0305
2040 3204;1273;3606;1341
2041 3716;1175;3401
2042\fTECNAM, FILENAME TECO.SV
2043
2044TECO, 0
2045 DCA SA
2046 TAD (TECNAM
2047 DCA ARG1
2048 CLA IAC /LOOKUP ON SYS
2049 CIF 10
2050 JMS I USR
2051 2
2052ARG1, TECNAM /STARTING BLOCK
2053 0
2054 JMP I TECO /NOT FOUND
2055 TAD ARG1
2056 DCA BLKN
2057 JMS I (7607
2058 100 /READ 1 PAGE FROM TECO
2059 7000 /BUFFER
2060BLKN, 0
2061 JMP I [SYSERR
2062 TAD BLKN
2063 DCA BLKN2
2064 TAD SA
2065 DCA I (7002 /REL LOC 2 IS S.A.
2066 JMS I (7607
2067 4100
2068 7000
2069BLKN2, 0
2070 JMP I [SYSERR
2071 JMP I TECO
2072
2073SA, 0
2074 PAGE
2075
2076/7000-7177 BUFFER FOR TECO CCB
2077/7200-7577 BUFFER FOR HANDLER
2078\f FIELD 0
2079 *200
2080 $