Research PDP7 development
[unix-history] / cas.s
CommitLineData
69f28986
KT
1" cas
2
3 narg = i 017777
4
5 lac 017777
6 tad d5
7 dac name1
8 tad d4
9 dac name 2
10 lac narg
11 sad d4
12 jmp 1f
13 sad d8
14 jmp 2f
15 jmp 3f
161:
17 law ttyout
18 dac name1
192:
20 law ttyin
21 dac name2
223:
23 sys open; name2: 0; 0
24 sma
25 jmp 1f
26 lac name2
27 dac 2f
28 lac d1
29 sys write; 2: 0; 4
30 lac d1
31 sys write; mes; 2
32 sys exit
331:
34 sys open; name1: 0; 1
35 sma
36 jmp 1f
37 lac name1
38 dac 2f
39 lac o17
40 sys creat; 2: 0
41 sma
42 jmp 1f
43 lac name1
44 dac 2f
45 lac d1
46 sys write; 2: 0; 4
47 lac d1
48 sys write; mes; 2
49 sys exit
50mes:
51 040077;012
521:
53 dzm nchar
54 dzm x
55 dzm y
56 dzm parflg
57 dzm nins
58 dzm nwds
59 lac bufp
60 dac 10
61
62advanc:
63 lac nchar
64 dzm nchar
65 sza
66 jmp adv1
67 lac d2
68 sys read; char; 1
69 sna
70 jmp done
71 lac char
72 and o777
73 dac nchar
74 lac char
75 lrss 9
76
77adv1:
78 sna
79 jmp advanc
80 dac char
81 lac labflg
82 sna
83 jmp 2f
84 lac char
85 sad o12
86 skp
87 jmp 1f
88 dzm labflg
89 dac i 11
90 jmp advanc
911:
92 dac i 11
93 jmp advanc
942:
95 lac parflg
96 sza
97 jmp atoz
98 lac char
99 sad o12
100 jmp advanc
101 sad o72
102 skp
103 jmp 1f
104 -4
105 dac labflg
106 dac mod3
107 jms wbuf "???
108 lac lbufp
109 dac 11
110 lac o170072
111 dac i 10
112 lac o12
113 dac i 10
114 lac o60
115 dac i 10
116 isz nwds
117 isz nwds
118 isz nwds
119 jmp advanc
1201:
121 sad o170
122 skp
123 jmp 1f
124 dzm vis
125 jmp advanc
1261:
127 sad o166
128 skp
129 jmp 1f
130 lac visbit
131 dac vis
132 jmp advanc
1331:
134 sad 0162
135 skp
136 jmp letr
137 isz mod3
138 skp
139 jmp 2f
140 lac o60060
1411:
142 dac i 10
143 isz nwds
144 isz mod3
145 jmp 1b
1462:
147 lac o12
148 dac i 10
149 isz nwds
150 lac lbufp
151 dac 11
152 1: "???
153 lac i 11
154 sad o12
155 jmp 1f
156 dac i 10
157 isz nwds
158 jmp 1b
1591:
160 lac o75170
161 dac i 10
162 isz nwds
163 lac ob1
164 dac i 10
165 isz nwds
166 lac sp
167 dac i 10
168 isz nwds
169 lac nins
170 dzm nins
171 tad o100
172 lmq
173 llss 10
174 cla
175 llss 3
176 alss 6
177 llss 3
178 tad o60060
179 dac i 10
180 cla
181 llss 3
182 alss 6
183 llss 3
184 tad o60060
185 dac i 10
186 cla
187 llss 3
188 alss 6
189 llss 3
190 tad o60060
191 dac i 10
192 lac nwds
193 tad d4
194 dac nwds
195 lac o12012
196 dac i 10
197 dzm x
198 dzm y
199 jmp advanc
200letr:
201 tad om141 "???
202 spa
203 jmp error
204 tad dm16
205 sma "???
206 jmp error
207 cma "???
208 tad dm3
209 dac ny
210 -1
211 dac parflg
212 jmp advanc
213
214atoz:
215 lac char
216 tad om141
217 spa
218 jmp error
219 tad dm14
220 sma
221 jmp error
222 tad d14
223 dac nx
224
225loop:
226 -1
227 tad x
228 cma
229 tad nx
230 dac delx
231 -1
232 tad y
233 cma
234 tad ny
235 dac dely
236 " generate direction
237
238 lac delx
239 sna
240 jmp c1
241 spa
242 jmp c2
243 lac dely ;"dx ,gr, 0
244 sna
245 jmp c3
246 spa
247 jmp c4
248 lac d1
249 jmp b
250c3:
251 lac d2
252 jmp a
253c4:
254 lac d3
255 jmp b
256
257c1:
258 lac dely
259 sna
260 jmp out
261 spa
262 jmp c5
263 cla
264 jmp a
265c5:
266 lac d4
267 jmp a
268c2:
269 lac dely
270 sna
271 jmp c6
272 spa
273 jmp c7
274 lac d7
275 jmp b
276c6:
277 lac d6
278 jmp a
279c7:
280 lac d5
281 jmp b
282 "
283 "
284a:
285 dac direc
286 lac delx
287 sma
288 jmp 1f
289 cma
290 tad d1
291 dac delx
2921:
293 lac dely
294 sma
295 jmp 1f
296 cma
297 tad d1
2981:
299 tad dlex
300 tad dm4
301 sma
302 cla
303 tad d3
304 dac dist
305 tad incxp
306 dac tmp
307 lac i tmp
308 dac incx
309 lac dist
310 tad incyp
311 dac tmp
312 lac i tmp
313 dac incy
314 jmp com
315 "
316b:
317 dzm dist
318 dac direc
319 lac incxt
320 dac incx
321 lac incyt
322 dac incy
323 "
324com:
325 isz nins
326 lac dist
327 alss 4
328 xor vis
329 xor direc
330 isz mod3
331 skp
332 jmp 1f
3332:
334 lmq
335 llss 12
336 cla
337 llss 3
338 alss 6
339 llss 3
340 tad o60060
341 dac i 10
342 isz nwds
343 jmp 3f
3441:
345 dac tmp
346 lac o12060
347 dac i 10
348 isz nwds
349 -3
350 dac mod3
351 lac tmp
352 jmp 2b
3533:
354 lac direc
355 tad incx
356 dac tmp
357 lac i tmp
358 tad x
359 dac x
360 lac direc
361 tad incy
362 dac tmp
363 lac i tmp
364 tad y
365 dac y
366 jmp loop
367out:
368 lac nx
369 dac x
370 lac ny
371 dac y
372 dzm parflg
373 jmp advanc
374
375done:
376 lac d2
377 sys close
378 jms wbuf
379 lac d3
380 sys close
381 sys exit
382
383error:
384 lac d1
385 sys write; char; 1
386 lac d1
387 sys write; mes; 2
388 dzm parflg
389 dzm labflg
390 jmp advanc
391
392wbuf: 0
393 lac nwds
394 dac 1f
395 lac d3
396 sys write; buf; 1f: 0; "???
397 dzm nwds
398 lac bufp
399 dac 10
400 jmp i wbuf
401
402d1: 1
403d2: 2
404d3: 3
405d4: 4
406d5: 5
407d6: 6
408d7: 7
409d8: 8
410o12: 012
411o75170: 075170
412ob1: 055142
413
414sp: 053060
415o60: 060
416o60060: 060060
417o73: 073
418d6: 6 "seems like a dupe
419d14: 14
420dm14: -14
421dm16: -16
422om141: -0141 "???
423dm3: -3
424dm4: -4
425o162: 0162
426o166: 0166
427o17: 017
428o777: 0777
429o72: 072
430o170: 0170
431o10000: 010000
432o20000: 020000
433o200000: 0200000
434o41: 041
435ttyin:
436 0164164;0171151;0156040;040040
437ttyout:
438 0164164;0171157;0165164;040040
439
440char: .=.+1
441parflg: .=.+1
442labflg: .=.+1
443obuf: .=.+8
444x: .=.+1
445y: .=.+1
446nx: .=.+1
447ny: .=.+1
448vis: .=.+1
449nchar: .=.+1
450 "
451incxp:incxt
452incyp:incyt
453incxt: x1;x2;x3;x4
454incyt: y1;y2;y3;y4
455 "
456x1: 0;1;1;1;0;-1;-1;-1
457x2: 0;2;2;2;0;-2;-2;-2
458x3: 0;3;3;3;0;-3;-3;-3
459x4: 0;4;4;4;0;-4;-4;-4
460y1: 1;1;0;-1;-1;-1;0;1
461y2: 2;2;0;-2;-2;-2;0;2
462y3: 3;3;0;-3;-3;-3;0;3
463y4: 4;4;0;-4;-4;-4;0;4
464delx: .=.+1
465dely: .=.+1
466incx: .=.+1
467incy: .=.+1
468direc: .=.+1
469dist: .=.+1
470visbit: 010
471mod3: .=.+1
472tmp: .=.+1
473buf: .=.+500
474bufp: buf-1
475lbuf: .=.+10
476lpbufp: lbuf-1
477nwds: .=.+1
478o1770072: 0170072
479nins: .=.+1
480o100: 0100
481o12012: 012012
482o12060: 012060
483
484
485
486
487
488:ca
489v
490af
491nl "???
492x
493hd
494v
495hi
496x
497mn
498r
499
500:cb
501x
502ga
503v
504gi
505ik
506kk
507mi "???
508ma
509aa
510ai
511ck
512ek
513gi
514x
515mn
516r
517
518:cc
519x
520kk
521v
522mi "???
523mc
524ka
525ca
526ac
527ai
528dl
529x
530mn
531r
532
533:cd
534v
535aa
536ai
537ck
538kk
539mi
540ma
541x
542mn
543r
544
545:ce
546x
547mk
548v
549ma
550aa
551ak
552x
553gh
554v
555ga
556x
557mn
558r
559
560:cf
561v
562aa
563ak
564x
565gh
566v
567ga
568x
569mn
570r
571
572:cg
573x
574gf
575v
576gk
577nk
578x
579kk
580v
581mi
582mc
583ka
584ca
585ac
586ai
587dl
588x
589mn
590r
591
592:ch
593x
594aa
595v
596na
597x
598gb "???
599v
600gk
601x
602ak
603v
604nk
605x
606mn
607r
608
609:ci
610x
611md
612v
613mi
614x
615lf
616v
617af
618x
619ad
620v
621ai
622x
623mn
624r
625
626:cj
627x
628ka
629v
630mc
631mg
632ki
633ai "???
634x
635ag
636v
637al "???
638x
639mn
640r
641
642:ck
643x
644aa
645v
646na
647x
648ak
649v
650ia
651x
652mk
653v
654fe
655x
656mn
657r
658
659:cl
660x
661aa
662v
663ma
664mk
665x
666mn
667r
668
669:cm
670v
671aa
672hf
673ak
674nk
675x
676mn
677r
678
679:cn
680x
681ak
682v
683mk
684aa
685na
686x
687mn
688r
689
690:co
691x "???
692ai
693v
694ch
695ei
696ck
697ai
698ac
699ca
700ka
701mc "???
702mi
703kk
704ck
705x
706mn
707r
708
709:cp
710v
711aa
712ai
713ck
714ek
715gi
716ga
717x
718mn
719r
720
721:cq
722x
723mc
724v
725ka
726ca
727ac
728ai
729ck
730kk
731mi
732mc
733x
734jh
735v
736nl
737x
738mn
739r
740
741:cr
742v
743aa
744ai
745ck
746ek
747gi
748ga
749x
750mk
751v
752gf
753x
754mn
755r
756
757:cs
758x
759ka
760v
761mc
762mi
763kk
764ik
765gi
766gc
767ea
768ca
769ac
770ai
771dl
772x
773mn
774r
775
776:ct
777x
778aa
779v
780al
781x
782mf
783v
784af
785x
786mn
787r
788
789:cu
790x
791aa
792v
793ka
794mc
795ml "???
796kk
797x
798ak
799v
800lk
801x
802mn
803r
804
805:cv
806x
807aa
808v
809mf
810x
811ak
812v
813mf
814x
815mn
816r
817
818:cw
819x
820aa
821v
822mc
823af
824x
825ak
826v
827mi
828af
829x
830mn
831r
832
833:cx
834v
835gf
836x
837ak
838v
839gf
840x
841aa
842v
843nl
844x
845mn
846r
847
848:cy
849x
850aa
851v
852if
853x
854ak
855v
856if
857nf
858x
859mn
860r
861
862:cz
863x
864aa
865v
866ak
867ma
868ml
869x
870mn
871r
872
873:c0
874x
875ck
876v
877ai
878ac
879ca
880ka
881mc
882mi
883kk
884ck
885x
886mn
887r
888
889:c1
890x
891ce
892v
893af
894mf
895x
896md
897v
898mi
899x
900mn
901r
902
903:c2
904x
905ca
906v
907ac
908ai
909ck
910ek
911gi
912gc
913ia
914ma
915ml "???
916mc
917mi
918kk
919hk
920fi
921fc
922ha
923x
924mn
925r
926
927:c7
928x
929aa
930v
931ak
932nb
933x
934mn
935r
936
937:c8
938x
939gc
940v
941ea
942ca
943ac
944ai
945ck
946ek
947gi
948gc
949ia
950ka
951mc
952mi
953kk
954ik
955gi
956x
957mn
958r
959
960:c9
961x
962ka
963v
964mc
965mi
966kk
967ck
968ai
969ac
970ca
971fa
972hc
973hi
974fk
975x
976mn
977x
978mn
979r
980
981:c3
982x
983aa
984v
985ak
986fe
987fi
988hk
989kk
990mi
991mc
992x
993ka
994v
995nd
996x
997mn
998r
999
1000:c4
1001x
1002mh
1003v
1004ah
1005ia
1006ll
1007x
1008mn
1009r
1010
1011:c5
1012x
1013ak
1014v
1015aa
1016fa
1017fi
1018hk
1019kk
1020mi
1021mc
1022x
1023ka
1024v
1025nd
1026x
1027mn
1028r
1029
1030:c6
1031x
1032ck
1033v
1034ai
1035ac
1036ca
1037ka
1038
1039" The end of file seems abrupt, every other :cX section ends with:
1040" x
1041" mn
1042" r