software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape6 / DIRECT.PA
CommitLineData
7af5ad59
PH
1/DIRECT V3D FOR OS/78 V1A AND OS/8 V3D
2/
3/
4/
5/
6/
7/
8/
9/
10/
11/COPYRIGHT (C) 1974,1975,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\f/JANUARY 17, 1974 H.J.
46/
47/5-AUGUST-1975 MAINT. RELEASE CHANGES S.R.
48/1. UPDATED COPYRIGHT DATE
49/2. CHANGED VERSION NUMBER TO V4
50/3. INCORPORATED PATCH (SEQ #2) OF FEB 1975 DSN
51/ (FIXES BUG RE: DEFAULTING TO TTY: AND DSK:)
52/
53/ 5-APR-77 MH OS/78 FIXES (V5A)
54/ 18-MAY-77 MH SPR 2286 (V6A)
55/
56/DIRECTORY LISTING PROGRAM
57/
58/ START ADDRESS 14600; JSW 6403
59/
60
61 PTR=20
62 CNT=21
63 INFPTR=22
64 OUHAND=23
65 INHAND=24
66 EPTR=26
67 INSCNT=27
68 TEMP=30
69 OKFLAG=31
70 IFCNT=32
71 OSWTCH=33
72 INFWDS=34
73 BDPTR=35
74 GPTR1=36
75
76
77 XR=10
78 XR1=11
79 XR2=12
80
81
82 AC2=CLA CLL CML RTL
83 AC4000=CLA CLL CML RAR
84 ACM2=CLA CLL CMA RAL
85 ACM3=CLA CLL CMA RTL
86
87
88 ALTOPT=7642
89 OPT1=7643
90 OPT2=7644
91 EQLS=7646 /EQUALS OPTION
92 DATE=7666
93 BIPCCL=7777 /CONTAINS DATE EXTENSION IN BITS 3 AND 4 (MH)
94 BUF=5200 /THE FILE OUTPUT BUFFER
95 /5 BLOCKS LONG, TO 7577
96
97\f
98 FIELD 1
99 *2000
100 SKP CLA /NORMAL ENTRY
101 JMP MSTRT /CHAIN ENTRY
102CDCALL, JMS I (200 /SEE WHAT THE PERSON WANTS
103 5
104STAR, 5200 /IN SPECIAL MODE
105
106MSTRT, TAD I (OPT2 /GET OPTION /W
107 RTR
108 SNL CLA /SKIP FOR VESION NUMBER
109 JMP EQUALT
110 JMS I (ERROR /PRINT VERSION NUMBER
111 VERNO+40
112 TAD (215
113 JMS I (TYPE
114
115/SET UP FOR MULTIPLE ENTRIES ON A LINE
116
117EQUALT, TAD I (EQLS /EQUALS OPTION WORD
118 SPA /MUST BE POSITIVE
119 CLA CLL CML RTR /SET AC LARGE POSITIVE
120 TAD (-10 /CHECK LEGALITY OF OPTION
121 SMA SZA CLA /SKIP IF GOOD
122 JMP BADEQ
123
124/SUBSTITUTE .DI IF NULL EXTENSION
125
126 TAD I (7604 /GET EXTENSION
127 SNA /SKIP IF GIVEN
128 TAD (0411 /.DI
129 DCA I (7604 /PUT EXTENSION BACK
130
131/ GET THE DATE INCREMENT BITS
132
133 CDF 0 /GET GET WORD FORM FIELD 0(MH)
134 TAD I (BIPCCL /THE BITS WITH DATE EXT. ARE 3 AND 4 (MH)
135 CDF 10 /BACK TO FIELD 1 (MH)
136 RTR /SHIFT THOSE BITS SO THEY CREATE A 0,10,20, OR 30(MH)
137 RTR /AFTER MASKING (MH)
138 AND (0030 /MASK (MH)
139 DCA DATINC /SAVE THE DATE EXTENSION (MH)
140
141/ CHECK FOR ? IN OUTPUT SPECIFICATION
142 TAD (-10
143 DCA CNT /CNT HAVING -10 PUTS US AT FIRST CHAR
144S1C, TAD (7605
145 JMS I (GTSXBT /GET A CHAR
146 TAD (-"?!7700 /CHECK FOR ?
147 SNA
148 JMP QINO
149 TAD ("?-"*
150 SNA CLA
151 JMP AINO
152 ISZ CNT
153 JMP S1C
154
155
156/ CHECK FOR EMBEDDED * IN ANY SPECIFICATION
157 TAD (7605
158S4L, DCA PTR
159 TAD (-10
160 DCA CNT
161ACK, TAD PTR
162 JMS I (GTSXBT
163 TAD (-"*!7700
164 SZA CLA
165 JMP CNTUP
166 AC2
167 TAD CNT
168 SZA
169 TAD (6
170 SNA CLA
171 ISZ CNT
172 TAD PTR
173 JMS I (GTSXBT
174 SZA CLA
175 JMP AINO
176CNTUP, ISZ CNT
177 JMP ACK
178 TAD I PTR
179 SNA CLA
180 JMP I (NULLCK
181 TAD (5
182 TAD PTR
183 JMP S4L
184
185/THIS IS THE END OF OPERATION CODE
186/IT CLOSES THE FILE AND HANDLES RETURNS
187
188ENDCHK, ISZ I (ECHO
189 TAD (232
190OLOOP, JMS I (OUTCHR
191 TAD I (OUWDCT /GET -WORDS LEFT IN BUFFER
192 AND (177 /CHECK AGAINST NEW BUFFER #
193 SNA /SPR 2286, CHECK CAREFULLY (MH)
194 TAD RPOS /TO SEE IF ANY TRAILING (MH)
195 CIA /OR DANGLING CHARS (MH)
196 TAD (RPOS-1 /ARE LEFT OVER (MH)
197 SZA!CLA /(MH)
198 JMP OLOOP /KEEP GOING TO DUMP ONE
199 TAD I (OUWDCT
200 TAD (1200 /DONT DUMP IF AT END
201 SZA CLA
202 JMS DUMP /DUMP BUFFER
203 TAD I (7600
204 JMS I (200
205 4
206 7601
207CLEN, 0
208 JMP CLOERR
209 JMP ABORT /CODE MOVED TO ANOTHER PAGE (MH)
210
211 PAGE
212\f
213NULLCK, TAD (7201
214 DCA AO2
215 TAD (7201
216 DCA AO1
217 TAD I (7600
218 SNA
219 JMP TTYHND
220 JMS I (200
221 1
222AO1, 7201
223 HLT
224 TAD AO1
225 JMP CMN
226TTYHND, TAD (2424
227 DCA TTY1
228 TAD (3100
229 DCA TTY2
230 JMS I (200
231 1
232TTY1, 0
233TTY2, 0
234AO2, 7201
235 JMP I (IDBLVT
236 TAD TTY2
237 DCA I (7600
238 TAD AO2
239CMN, DCA OUHAND
240 TAD (7601
241 DCA BLCK
242 TAD I (7600
243 JMS I (200
244 3
245BLCK, 7601
246LENGTH, 0
247 JMP I (NOROOM
248 TAD BLCK
249 DCA I (BLCKN
250 TAD (BUF
251 DCA I (OCPTR
252 TAD (RPOS-1 /SPR 2286 (MH)
253 DCA I (RPOS
254 TAD (-1200 /NUMBER OF WORDS IN BUFFER
255 DCA I (OUWDCT
256 DCA I (CLEN
257 TAD I (7605
258 SNA
259 JMP FINDSK /V3C IF NO DEVICE SPECIFIED, LOOKUP 'DSK'
260SETDEV, DCA I (7605
261 TAD (7605
262DOMOIN, DCA INFPTR
263 TAD (6601
264 DCA AI1
265 TAD I INFPTR
266 SNA
267 JMP I (ENDCHK
268 JMS I (200
269 1
270AI1, 6601
271 HLT
272 TAD AI1
273 DCA INHAND
274 TAD (OUTCHR
275 DCA OSWTCH
276 JMS I (CRLF
277 TAD I (DATE
278 DCA I (DATNOW /SAVE CURRENT DATE (MH)
279 TAD I (DATE /GET DATE BACK INTO AC (MH)
280 JMS I (PDATE
281 JMS I (CRLF
282 JMS I (CRLF
283 DCA I (ECOUNT
284 CMA
285 TAD I (EQLS
286 SMA /SET UP NEGATIVE COUNT
287 CMA
288 DCA I (ALNCNT /SAVE FOR LATER
289 TAD I (ALNCNT /SAVE FOR LATER
290 DCA I (LNCNT /SAVE FOR LATER
291 JMP I (PG1
292
293AINO, JMS I (ERROR
294 ILLA+40
295 JMP EOLIN
296QINO, JMS I (ERROR
297 ILLQ+40
298EOLIN, TAD (215 /COME HERE TO ABORT DIRECTORY
299 JMS I (TYPE /AND PRINT CRLF
300 JMP I (ABORT /ABORT OPERATION AND GOTO ENDUP
301
302FINDSK, DCA XX /V3C
303 JMS I (200 /CALL USR
304 12 /TO DO AN INQUIRE
305 5723 /TO LOCATE 'DSK'
306XX, 0
307 0
308 JMP I (IDBLVT /NO 'DSK' IMPOSSIBLE (SO SAY NO 'TTY')
309 TAD XX /RETURN DEVICE NUMBER OF DSK
310 JMP SETDEV
311 PAGE
312\f DIRCTY=0 /LOCATION OF INPUT DIRECTORY
313
314PG1, TAD I INFPTR
315 TAD (7757
316 DCA TEMP
317 TAD I TEMP
318 SMA CLA
319 JMP NFIN
320 CIF 0
321 JMS I INHAND
322 1400
323 DIRCTY
324 1
325 JMP INDERR
326 CDF 0 /CODE TO CHECK FOR
327 TAD I (DIRCTY /LEGALITY OF DIRECTORY
328 CMA CLL
329 TAD I (DIRCTY+2
330 CDF 10
331 SNL
332 TAD (7700
333 SZL CLA
334 JMP BIDIR /DIRECTORY IS BAD
335
336/ COUNT NUMBER OF INPUTS FROM SAME DEVICE
337 TAD INFPTR
338 SKP
339GETCNT, TAD PTR
340 IAC
341 DCA PTR
342 TAD I PTR
343 SZA CLA
344 JMP NOSUB
345 TAD (5200
346 DCA I PTR
347 TAD (3
348 TAD PTR
349 DCA TEMP
350 TAD (5200
351 DCA I TEMP
352NOSUB, TAD PTR
353 TAD (4
354 DCA PTR
355 ISZ CNT
356 TAD I (OPT2
357 AND (10
358 SZA CLA
359 JMP NOPTIM
360 TAD I PTR
361 CIA
362 TAD I INFPTR
363 SNA CLA
364 JMP GETCNT
365NOPTIM, TAD CNT
366 CIA
367 DCA INSCNT
368 TAD PTR
369 DCA I (MOIN
370 DCA BDPTR
371 JMP I (NBLOCK
372
373BIDIR, JMS I (ERROR
374 BADDIR+40
375 JMP I (EOLIN
376NFIN, JMS I (ERROR
377 NFLEIN+40
378 JMP I (EOLIN
379INDERR, JMS I (ERROR
380 BADIRD+40
381 JMP I (EOLIN
382
383/THIS IS THE ERROR MESSAGE PRINTER
384
385ERROR, 0
386 ISZ I (ECHO
387 CLA CLL
388 TAD (TYPE
389 DCA OSWTCH
390 TAD (-100
391 DCA CNT
392PLOOP, TAD I ERROR
393 JMS I (GTSXBT
394 DCA DFLAG
395 TAD DFLAG
396 JMS I (CONVTP
397 ISZ CNT
398 TAD DFLAG
399 SZA CLA
400 JMP PLOOP
401 ISZ ERROR
402 JMP I ERROR
403
404DFLAG, 0
405ABORT, TAD I (ALTOPT /MOVED (MH)
406 SMA CLA
407 JMP I (CDCALL
408 CIF CDF 0
409 JMP I (7605
410BADEQ, JMS I (ERROR
411 BIGEQ+40
412 JMP I (EOLIN
413
414 PAGE
415\f
416/THIS IS THE SUPERQUASIFACETED DIRECTORY PATTERN MATCHING ROUTINE
417
418/THE INPUT DIRECTORY IS SEARCHED HERE, IF A MATCH
419/IS FOUND USING THE INPUT GROUPING
420/GOT1 GETS CONTROL WITH -BLOCKS IN THE AC
421
422NBLOCK, TAD BDPTR /POINTER TO START OF DIR BLOCK
423 DCA XR
424 CDF 0
425 TAD I XR /GET BLOCK NUMBER FIRST FILE
426 DCA BLOCK
427 TAD I XR /NEXT SEGMENT NUMBER
428 DCA LFLAG /IF IT 0 WE AT END
429 ISZ XR /SKIP TENTATIVE FILE WORD
430 TAD I XR /GET -NUMBER OF INFO WORDS
431 CIA /MAKE POSITVE
432 DCA INFWDS
433 TAD XR /POINT TO FIRST
434 IAC /ENTRY
435 DCA EPTR
436
437BLOOP, TAD I EPTR /GET FILENAME WORD
438 CDF 10
439 SNA CLA /SKIP IF FILE HERE
440 JMP EMPTY /NO... ITS REALLY AN EMPTY
441 TAD INSCNT /SET NUMBER OF INPUT TO LOOK
442 DCA NCNT /AT ALL AT ONCE
443 DCA MATFLG /CLEAR MATCH FLAG
444 TAD INFPTR /ADDRESS OF FIRST INPUT
445 SKP
446MN1, TAD GPTR2 /ADDRESS OF CURRENT INPUT
447 TAD (5 /GTSXBT SUBR REQUIRES US TO
448 DCA GPTR2 /POINT TO END OF FIELD
449 TAD EPTR /POINT DIRECTORY POINTER TO
450 TAD (4 /END OF ENTRY FOR SAME REASON
451 DCA GPTR1
452 TAD GPTR1 /SET EPNEXT TO POINT TO
453 TAD INFWDS /MINUS NUMBER OF BLOCKS IN
454 DCA EPNEXT /FILE WORD
455 TAD (-10 /NUMBER OF CHARS TO LOOK AT
456WILDNM, DCA CNT
457\f
458MLP, TAD GPTR2 /OK - GET A CHARACTER FROM
459 JMS I (GTSXBT /STRING
460 TAD (-"*!7700 /IS IT AN *
461 SNA /SKIP IF NOT *
462 JMP WILDA /YEP... ITS A WILD CARD
463 TAD ("*-"? /IS IT A ?
464 SNA /SKIP IF NOT
465 JMP WILD /YES... FORCE MATCH ON THIS CHAR
466 TAD ("?&77 /RESTORE VALUE
467 CIA /NEGATE
468 DCA CHAR /AND SAVE
469 TAD GPTR1 /NOW GET CHAR FROM DIRECTORY
470 CDF 0
471 JMS I (GTSXBT
472 CDF 10
473 TAD CHAR /DO CHARS MATCH
474 SZA CLA /SKIP IF THEY DO
475 JMP NM1 /NO MATCH ON THIS INPUT
476WILD, ISZ CNT /BUMP COUNT OF CHARS & POINTER
477 JMP MLP /COMPARE ALL 8
478MEXT, ISZ MATFLG /A MATCH!!!!!!!
479NM1, CLA /WILD CARD COMES HERE WITH ICHY AC
480 ISZ NCNT /HAVE WE CHECKED GROUP OF INPUTS
481 JMP MN1 /NO CHECK WHOLE GROUP
482 TAD MATFLG /HAVE THERE BEEN ANY MATCHES
483 SZA CLA /SKIP IF NOT
484 TAD (4 /WILL INVERT /V SWITCH
485 TAD I (OPT2 /ADD SWITCH
486 AND (4 /ISOLATE IT
487 CDF 0
488/SKIPS IF INPUT DIRECTORY ENTRY IS NOT CANDIDATE
489/THAT IS - IF A MATCH WAS NOT FOUND BETWEEN ANY
490/OF THE INPUTS AND /V WAS NOT SPECIFIED OR
491/A MATCH WAS FOUND AND /V WAS SPECIFIED
492
493/THIS ALLOWS /V TO MEAN EVERYTHING BUT...
494
495 SZA CLA
496 TAD I EPNEXT /GET -NUMBER OF BLOCKS
497 CDF 10
498 SZA /SKIPS IF TENTATIVE OR NOT CANDIDATE
499 JMP I (GOT1 /PROCESS FILE
500NENT, TAD EPNEXT /POINT EPTR TO BLOCK
501 DCA EPTR /COUNT OF FILE
502 JMP NEMPTY
503EMPTY, ISZ EPTR /ON EMPTY MAKE EPTR POINT TO BLOCK COUNT
504 JMS I (HEMPTY /HANDLE EMPTY SLOTS
505NEMPTY, CDF 0
506 TAD I EPTR /GET BLOCK COUNT
507 CIA /MAKE POSITIVE
508 TAD BLOCK
509 DCA BLOCK /KEEP SUM
510 ISZ EPTR /POINT TO NEXT ENTRY
511 ISZ I BDPTR /POINTS TO -NUMBER OF ENTRIES
512 JMP BLOOP /NOT DONE WITH SEGMENT
513 CDF 10
514 TAD (400 /BUMP TO NEXT SEGMENT
515 TAD BDPTR
516 DCA BDPTR
517 TAD LFLAG /DID WE PROCESS LAST SEGMENT
518 SZA CLA /SKIP IF WE DID
519 JMP NBLOCK /PROCESS NEW SEGNENT
520 JMP I (SAYNON
521\f
522/HANDLE WILD CARDS
523
524WILDA, TAD CNT /GET CURRENT CHAR POSITION
525 TAD (6 /ADD SIZE OF FILENAME
526 SPA /SKIP IF IN EXTENSION FIELD
527 JMP WILDNM /THIS BUMPS TO EXTENSION
528 JMP MEXT /THIS MEANS IT HAS TO BE A MATCH
529
530
531CHAR, 0
532EPNEXT, 0
533GPTR2, 0
534LFLAG, 0
535NCNT, 0
536BLOCK, 0
537MATFLG, 0
538
539
540 PAGE
541\fGOT1, DCA IFCNT /-# OF BLOCKS IN AC
542 JMS I (DATCHK /VERIFY /C AND /O SWITCHES
543 TAD (OUTCHR
544 DCA OSWTCH
545 TAD I (OPT2
546 SPA CLA
547 JMP I (NENT
548 JMS I (ADDINF /SEE IF ADDITIONAL INFO WORDS
549 TAD I (OPT2
550 AND (100 /IS /R USED
551 SNA CLA
552 JMP NOR
553 TAD INFPTR /FILL IN *.* FOR FILENAME
554 IAC
555 DCA TEMP
556 TAD (5200 /*
557 DCA I TEMP
558 ISZ TEMP
559 ISZ TEMP
560 ISZ TEMP /POINT TO EXTENSION
561 TAD (5200 /.*
562 DCA I TEMP /SUBSTITUTE IT
563NOR, TAD GPTR1
564 CDF
565 JMS I (PNMSUB
566 TAD I (OPT1
567 RTL
568 SNL CLA
569 JMP SKPBLK
570 JMS I (CONVTP
571 TAD I (BLOCK
572 JMS BSPACE /(MH) PATCH FOR /B/E
573SKPBLK, TAD I (OPT1
574 AND (100
575 SZA CLA
576 JMP NODATE
577 TAD IFCNT
578 CIA
579 JMS I (PRNUM
580 TAD INFWDS
581 SNA CLA
582 JMP NODATE
583 CDF
584 TAD I GPTR1
585 CDF 10
586 JMS I (PDATE
587NODATE, ISZ LNCNT /IS LINE FILLED?
588 JMP MOROLN /NO
589 JMS CRLF
590 TAD ALNCNT /RESET COUNT
591 DCA LNCNT
592 JMP I (NENT
593MOROLN, TAD (5 /OUTPUT 5 BLANKS
594 JMS I (BLANK
595 JMP I (NENT
596
597/BLANKS ROUTINE
598BLANK, 0
599 CIA
600 DCA BLTMP
601 JMS I (CONVTP
602 ISZ BLTMP
603 JMP .-2
604 JMP I BLANK
605BLTMP, 0
606
607
608ALNCNT, 0
609LNCNT, 0
610
611OUTCHR, 0
612 JMP I RPOS
613RPOS1, DCA I OCPTR
614 JMS RPOS
615RPOS2, DCA HOLD
616 JMS RPOS
617RPOS3, RTL
618 RTL
619 DCA HOLD2
620 TAD HOLD2
621 AND (7400
622 TAD I OCPTR
623 DCA I OCPTR
624 ISZ OCPTR
625 TAD HOLD2
626 RTL
627 RTL
628 AND (7400
629 TAD HOLD
630 DCA I OCPTR
631 ISZ OCPTR
632 ISZ OUWDCT
633 SKP
634 JMS DUMP
635 JMS RPOS
636 JMP RPOS1
637RPOS, RPOS1
638 JMP I OUTCHR
639
640OUWDCT, 0
641OCPTR, 0
642HOLD, 0
643HOLD2, 0
644BSPACE, 0 /(MH) PATCH FOR /B/E
645 JMS I (OPRNT
646 CLA!IAC
647 JMS I (BLANK
648 JMP I BSPACE
649
650 PAGE
651\f
652GTSXBT, HLT
653 CLL RAL
654 TAD CNT
655 CML RAR
656 DCA TEMP
657 TAD I TEMP
658 SNL
659 JMS ROTR6
660 AND (77
661 JMP I GTSXBT
662
663
664ROTR6, 0
665 RTR
666 RTR
667 RTR
668 JMP I ROTR6
669
670CONVTP, HLT
671 SZA
672 TAD (240
673 AND (77
674 TAD (240
675 JMS I OSWTCH
676 JMP I CONVTP
677
678TYPE, HLT
679 DCA HOLD1
680 TAD (217
681 JMS I (CTYPE
682 SKP
683 DCA ECHO
684 TAD ECHO
685 SNA CLA
686 JMP I TYPE
687 JMS I (CINTER
688 SKP
689 JMP I (ABORT
690 TAD HOLD1
691 JMS TTY
692 JMP I TYPE
693
694HOLD1, 0
695
696TTY, 0
697 TLS
698 TSF
699 JMP .-1
700 TAD (-215
701 SZA CLA
702 JMP I TTY
703 TAD (12
704 JMP TTY+1
705
706ECHO, 1
707
708OPRNT, 0
709 DCA GTSXBT
710 TAD (-4
711 DCA CNT
712OPLP, TAD GTSXBT
713 RTL CLL
714 RAL
715 DCA GTSXBT
716 TAD GTSXBT
717 RAL
718 AND (7
719 TAD (260
720 JMS I (CONVTP
721 ISZ CNT
722 JMP OPLP
723 JMP I OPRNT
724
725
726/ROUTINE TO MAKE SURE USER SPECIFIED
727//C AND /O SWITCHES CAUSE CORRECT MATCH WITH DATE
728
729DATCHK, 0
730 TAD I (OPT1 /CHECK /C
731 JMS MDATE
732 NOP /RETURN HERE WITH AC=0 IF NO /C
733 SZA CLA /RETURN HERE WITH AC=0 IF DATES MATCH
734 JMP I (NENT /DATES DONT MATCH AND /C GIVEN
735 TAD I (OPT2 /CHECK /V
736 JMS MDATE
737 CMA CLA /SET AC=-1 IF NO /V
738 SNA CLA /RETURN HERE AC=0 IF DATES SAME
739 JMP I (NENT /DATES SAME WITH /V-IGNORE FILE
740 JMP I DATCHK /CONTINUE
741
742MDATE, 0 //O AND /V ARE AC2
743 RTL /IS IT OPTION ON?
744 SMA CLA /SKIP IF IT IS
745 JMP I MDATE /NO- RETURN WITH 0 AC
746 ISZ MDATE /SKIP RETURN
747 CDF 0
748 TAD I GPTR1 /GET DATE WORD
749 CIA
750 CDF 10
751 TAD I (DATE /COMPARE WITH MONITORS, 0 IF =
752 JMP I MDATE
753
754 PAGE
755\f
756PRNUM, 0
757 DCA NUM
758 TAD (PWRTEN
759 DCA PTR
760PRNTLP, ISZ MPNTCNT
761 SKP
762 AC4000
763 DCA PNTFLG
764 DCA DIG
765DIVLPY, TAD I PTR
766 SNA
767 JMP I PRNUM
768 CLL
769 TAD NUM
770 SNL
771 JMP PRTDIG
772 DCA NUM
773 ISZ DIG
774 JMP DIVLPY
775PRTDIG, CLA
776 TAD DIG
777 TAD PNTFLG
778 SNA
779STPBLK, JMP PRBLNK
780 TAD (260
781 JMS I (CONVTP
782 CLA CLL CML RAR
783NXTPWR, ISZ PTR
784 JMP PRNTLP
785PRBLNK, JMS I (CONVTP
786 JMP NXTPWR
787
788NUM, 0
789PNTFLG, 0
790DIG, 0
791MPNTCNT,0
792
793PWRTEN, -1750;-144;-12;-1;0
794
795PDATE, 0
796 SNA
797 JMP FDATE
798 DCA DATEY
799 TAD DATNOW /WAS A DATE ENTERED AT BOOT TIME?(MH)
800 SNA /SKIP IF SO(MH)
801 JMP FDATE /NO -- DON'T PRINT DATE IF NOT ENTERED(MH)
802 AND (7 /YES -- SAVE YR NEGATED(MH)
803 CMA!IAC /(MH)
804 DCA DATTMP /SAVE THIS RESULT TEMP(MH)
805 ISZ I (STPBLK
806 JMS I (CONVTP
807 ACM3
808 DCA I (MPNTCNT
809 TAD DATEY
810 RTR
811 RAR
812 AND (37
813 JMS I (PRNUM
814 TAD ("-
815 JMS I (CONVTP
816 TAD DATEY
817 CLL RTL
818 RTL
819 RAL
820 AND (17
821 DCA PRNUM
822 TAD PRNUM
823 TAD PRNUM
824 TAD PRNUM
825 TAD (DATTAB-4
826 DCA XR
827 ACM3
828 DCA CNT
829 TAD I XR
830 JMS I OSWTCH
831 ISZ CNT
832 JMP .-3
833 TAD ("-
834 JMS I OSWTCH
835 TAD DATEY
836 AND (7
837 TAD DATTMP /ADD -ENTERED YR(MH)
838 CLL /CLEAR LINK FOR FLAG USE(MH)
839 SZA!SMA!CLA /SKIP AND CLEAR IF ENTERED YR BIGGER,SAME(MH)
840 CML /SET LINK IF DIR YR BIGGER THAN ENETERED YR (MH)
841 TAD DATEY /GET DATE BACK(MH)
842 AND (7 /GET THE YR(MH)
843 SZL /SKIP IF ENTERED YR WAS BIG OR SAME(MH)
844 TAD (-10 /SUBTRACT 10 OCTAL IF DIR YR WAS BIGGER(MH)
845 TAD DATINC /ADD DATE INCREMENT(MH)
846 TAD (106
847 JMS I (PRNUM
848 CLA CMA
849 TAD I (STPBLK
850 DCA I (STPBLK
851 JMP I PDATE
852FDATE, TAD I (LNCNT /SEE IF AT END OF LINE?
853 IAC /AC=0 NOW IF YES
854 SNA CLA /OUT PUT SPACES TO FILL DATE SLOT
855 JMP I PDATE /NO NEED FOR SPACES IF AT END OF LINE
856 TAD (12 /10 SPACES IS WHATS NEEDED
857 JMS I (BLANK
858 JMP I PDATE /LEAVE
859
860DATEY, 0
861DATNOW, 0 /CURRENT DATE IF ONE WAS ENTERED(MH)
862DATINC, 0 /DATE ENXTENSION TO 1970 (0,10,20, OR 30) (MH)
863DATTMP, 0 /TEMP STORE (MH)
864
865 PAGE
866\f
867CTYPE, 0
868 DCA T2
869 TAD (200
870 KRS
871 CIA
872 TAD T2
873 SNA CLA
874 KSF
875 JMP I CTYPE
876 KCC
877 TAD ("^
878 JMS I (TTY
879 TAD T2
880 TAD (100
881 JMS I (TTY
882 TAD (215
883 JMS I (TTY
884 ISZ CTYPE
885 JMP I CTYPE
886
887T2, 0
888
889CINTER, 0
890 TAD (203
891 JMS CTYPE
892 JMP UPPCK
893 JMP SPURGE
894UPPCK, TAD (220
895 JMS CTYPE
896 JMP I CINTER
897 SKP
898SPURGE, CMA
899 DCA I (ALTOPT
900 ISZ CINTER
901 JMP I CINTER
902
903HEMPTY, 0
904 CDF 0
905 TAD I EPTR
906 CDF 10
907 CIA
908 TAD ECOUNT
909 DCA ECOUNT
910 TAD I (OPT1
911 AND (200
912 SZA CLA
913 JMP LISTEM
914 TAD I (OPT2
915 SMA CLA
916 JMP I HEMPTY
917LISTEM, TAD I (OPT1
918 AND (10 /IS /I GIVEN
919 SNA CLA /IF YES PAD BY ADDIDTIONAL INFO WORDS
920 JMP EMSG
921 CLA CMA
922 TAD INFWDS /NUMBER OF SPACES=5*(INFWDS-1)
923 DCA DFLAG
924 TAD DFLAG
925 RTL CLL
926 TAD DFLAG
927 SZA /DONT OUTPUT 4096 BLANKS
928 JMS I (BLANK
929EMSG, TAD (EMPTYM-1
930 DCA XR1
931 TAD (-11
932 DCA CNT
933EOLP, TAD I XR1
934 JMS I (OUTCHR
935 ISZ CNT
936 JMP EOLP
937 TAD I (OPT1
938 RTL
939 SNL CLA
940 JMP SKIPES
941 JMS I (CONVTP
942 TAD I (BLOCK
943 JMS I (BSPACE /(MH) PATCH FOR /B/E
944SKIPES, CDF 0
945 TAD I EPTR
946 CDF 10
947 CIA
948 JMS I (PRNUM
949 ISZ I (LNCNT /AT END OF LINE
950 JMP WORK /NO. HAVE TO DO BLANK PADDING
951 JMS I (CRLF
952 TAD I (ALNCNT /RESET COUNT
953 DCA I (LNCNT
954 JMP I HEMPTY
955WORK, TAD (5 /FORCES 5 BLANKS
956 JMS I (BLANK
957 TAD I (OPT1
958 AND (100 /CHECK FOR /F
959 SZA CLA /ADD 10 SPACES TO COVER DATE
960 JMP I HEMPTY
961 TAD (12
962 JMS I (BLANK
963 JMP I HEMPTY
964
965ECOUNT, 0
966
967 PAGE
968\f
969PNMSUB, 0
970 DCA NMEPLC
971 RDF
972 TAD (CDF
973 DCA FLDFUD
974 TAD (-10
975 DCA CNT
976PNLOOP, TAD NMEPLC
977FLDFUD, HLT
978 JMS I (GTSXBT
979 CDF 10
980 JMS I (CONVTP
981 TAD (3
982 TAD CNT
983 SZA CLA
984 JMP .+3
985 TAD (".
986 JMS I OSWTCH
987 ISZ CNT
988 JMP PNLOOP
989 JMP I PNMSUB
990
991NMEPLC, 0
992
993WRTERR, JMS I (ERROR
994 OUERR+40
995 JMP I (EOLIN
996CLOERR, JMS I (ERROR
997 CLERR+40
998 JMP I (EOLIN
999NOROOM, JMS I (ERROR
1000 SPRBLM+40
1001 JMP I (EOLIN
1002IDBLVT, JMS I (ERROR
1003 NOTTY+40
1004 JMP I (EOLIN
1005
1006SAYNON, TAD (OUTCHR
1007 DCA OSWTCH
1008 JMS I (CRLF
1009 JMS I (CRLF
1010 TAD (-4 /FORCE PRINTING OF ONLY 1 DIGIT
1011 DCA I (MPNTCNT /FOR 0 FREE BLOCKS
1012 TAD I (ECOUNT
1013 JMS I (PRNUM
1014 JMS I (CONVTP
1015 TAD (FRBLM-1
1016 DCA XR1
1017 TAD (-13
1018 DCA CNT
1019FRBLP, TAD I XR1
1020 JMS I (OUTCHR
1021 ISZ CNT
1022 JMP FRBLP
1023 JMS I (CRLF
1024 TAD (14 /FORM FEED
1025 JMS I (OUTCHR
1026 TAD MOIN
1027 JMP I (DOMOIN
1028
1029MOIN, 0
1030
1031CRLF, 0
1032 TAD (215
1033 JMS OUTCHR
1034 TAD (212
1035 JMS OUTCHR
1036 JMP I CRLF
1037
1038/ROUTINE TO DUMP ADDITIONAL INFO WORDS IF WANTED
1039
1040ADDINF, 0
1041 TAD I (OPT1
1042 AND (10 /CHECK /I SWITCH
1043 SNA CLA
1044 JMP I ADDINF
1045 CLA CMA
1046 TAD INFWDS /GET NUMBER
1047 SPA SNA /MUST BE 2 OR MORE TO PRINT
1048 JMP CLARET /RETURN
1049 CIA
1050 DCA CNTX
1051 TAD GPTR1
1052 IAC /BUMP TO FIRST ONE
1053 DCA PGPTR1
1054ADDLP, CDF 0
1055 TAD I PGPTR1 /GET WORD
1056 CDF 10
1057 JMS I (OPRNT /PRINT IT IN OCTAL
1058 JMS I (CONVTP /OUTPUT A BLANK
1059 ISZ PGPTR1 /BUMP
1060 ISZ CNTX /COUNT NUMBER
1061 JMP ADDLP
1062CLARET, CLA /RETRN
1063 JMP I ADDINF
1064
1065PGPTR1, 0
1066CNTX, 0
1067
1068 PAGE
1069\f
1070VERNO, TEXT /DIRECT V6A /
1071BADIRD, TEXT /ERROR READING INPUT DIRECTORY/
1072SPRBLM, TEXT /NO ROOM FOR OUTPUT FILE/
1073OUERR, TEXT /ERROR WRITING FILE/
1074CLERR, TEXT /ERROR CLOSING FILE/
1075NFLEIN, TEXT /DEVICE DOES NOT HAVE DIRECTORY/
1076BIGEQ, TEXT /EQUALS OPTION BAD/
1077ILLQ, TEXT /ILLEGAL ?/
1078ILLA, TEXT /ILLEGAL */
1079BADDIR, TEXT /BAD INPUT DIRECTORY/
1080NOTTY, TEXT /THERE IS NO HOPE-THERE IS NO TTY HANDLER IN YOUR SYSTEM/
1081EMPTYM, "<;"E;"M;"P;"T;"Y;">;240;240
1082FRBLM, "F;"R;"E;"E;240;"B;"L;"O;"C;"K;"S
1083
1084 "B;"A;"D /PROTECTION AGAINST BAD DATE
1085DATTAB, "J;"A;"N
1086 "F;"E;"B
1087 "M;"A;"R
1088 "A;"P;"R
1089 "M;"A;"Y
1090 "J;"U;"N
1091 "J;"U;"L
1092 "A;"U;"G
1093 "S;"E;"P
1094 "O;"C;"T
1095 "N;"O;"V
1096 "D;"E;"C
1097 "B;"A;"D /PROTECTION AGAINST BAD DATE
1098 "B;"A;"D /PROTECTION AGAINST BAD DATE
1099 "B;"A;"D /PROTECTION AGAINST BAD DATE
1100
1101DUMP, 0
1102 TAD I (LENGTH /GET LENGTH AVAILABLE
1103 SNA /IF ZERO ITS NON FILE STRUCTURE
1104 JMP NOMATR /IF ZERO DOESNT MATTER
1105 CLL
1106 TAD I (CLEN /ADD CURRENT SIZE
1107 TAD (5 /ADD # OF BLOCKS
1108 SZL CLA /WE ARE OK IF SKIPS
1109 JMP I (NOROOM
1110 TAD I (CLEN /UPDATE CLOSING LENGTH
1111 TAD (5 /BY NUMBER OF BLOCKS
1112 DCA I (CLEN /SAVE FOR CLOSE
1113NOMATR, TAD OUWDCT
1114 TAD (5210
1115 DCA CTLWD
1116 CIF 0
1117 JMS I OUHAND
1118CTLWD, 5210
1119BUFAD, BUF
1120BLCKN, 0
1121 JMP WRTERR
1122 TAD (5
1123 TAD BLCKN /UPDATE BLOCK # BY 5
1124 DCA BLCKN
1125 TAD (-1200
1126 DCA OUWDCT
1127 TAD BUFAD
1128 DCA OCPTR
1129 JMP I DUMP
1130/
1131\f
1132 *4600
1133
1134 JMS INIT
1135 JMS INIT
1136 JMP I (2000
1137 JMP I (2001
1138INIT, 0
1139 ISZ INIT
1140 CLA CLL
1141 TAD (2000
1142 CDF 0
1143 DCA I (7745
1144 TAD (6403
1145 DCA I (7746
1146 CDF 10
1147 JMP I INIT
1148 $