added sh.s to build

fixed dsw.s typo
This commit is contained in:
Tom Everett
2019-10-18 18:13:08 -06:00
parent 1db45404d7
commit 0e9e447ada
5 changed files with 821 additions and 286 deletions
+384 -281
View File
@@ -1,282 +1,385 @@
010000: 600000 jmp start 010000: 610013 jmp shell
010001: 110003 jms initio 010001: 160010 dzm i 8
010002: 630003 jmp .+1 i 010002: 450000 isz clear
010003: 000000 initio: 0 010003: 110001 jms 1b
010004: 210007 lac inter-1 010004: 641002 lacq
010005: 040000 dac fetch 010005: 617771 jmp 017771
010006: 610001 jmp rinit 010006: 010005 zerop: .-1
010007: 110010 jms inter 010007: 210532 lac d1
010010: 000000 inter: 0 010010: 020005 sys write; errmes; 1
010011: 750004 las 010011: 010565
010012: 510311 and o17 010012: 000001
010013: 740200 sza 010013: 210532 lac d1
010014: 110047 jms trace 010014: 020005 sys write; ready; 1
010015: 220000 lac pc i 010015: 010567
010016: 050305 dac instr 010016: 000001
010017: 200000 lac pc 010017: 210570 lac delim
010020: 510314 and o10000 010020: 550553 sad newln
010021: 741200 sna 010021: 110421 jms rline
010022: 610342 jmp badpc 010022: 110217 jms getcom
010023: 200000 lac sp 010023: 211104 lac narg
010024: 510325 and o17700 010024: 741200 sna
010025: 550325 sad o17700 010025: 610051 jmp comretrn
010026: 610350 jmp badsp 010026: 211105 lac args
010027: 510314 and o10000 010027: 550566 sad chcom
010030: 741200 sna 010030: 741000 skp
010031: 610350 jmp badsp 010031: 610035 jmp 3f
010032: 210305 lac instr 010032: 211106 lac args+1
010033: 550310 sad insasg 010033: 550574 sad spsp
010034: 741000 skp 010034: 610475 jmp doch
010035: 630010 jmp inter i 010035: 020035 sys fork
010036: 777774 -4 010036: 741000 skp
010037: 340000 tad sp 010037: 610055 jmp loadcom
010040: 040000 dac t1 010040: 741100 spa
010041: 220000 lac t1 i 010041: 610007 jmp comerr
010042: 510314 and o10000 010042: 652000 lmq
010043: 741200 sna 010043: 210570 lac delim
010044: 610356 jmp badasgn 010044: 550546 sad amper
010045: 210305 lac instr 010045: 610017 jmp shell1
010046: 630010 jmp inter i 010046: 641002 lacq " hand written
010047: 000000 trace: 0 010047: 650000 clq " send mesg to child
010050: 500000 and d1 010050: 020033 sys smes
010051: 740200 sza 010051: 210570 lac delim
010052: 110070 jms dtrace 010052: 550553 sad newln
010053: 750004 las 010053: 610013 jmp shell
010054: 510326 and d2 010054: 610017 jmp shell1
010055: 740200 sza 010055: 020003 sys open; args; 0
010056: 110133 jms ddisp 010056: 011105
010057: 750004 las 010057: 000000
010060: 500000 and d4 010060: 740100 sma
010061: 740200 sza 010061: 610111 jmp 1f
010062: 110246 jms histog 010062: 020012 sys link; system; args; args
010063: 750004 las 010063: 010571
010064: 510312 and d8 010064: 011105
010065: 740200 sza 010065: 011105
010066: 600000 jmp stop 010066: 741100 spa
010067: 630047 jmp trace i 010067: 610073 jmp 2f
010070: 000000 dtrace: 0 010070: 777777 -1
010071: 200000 lac pc 010071: 051103 dac lnkflg
010072: 040010 dac 8 010072: 610055 jmp loadcom
010073: 220010 lac 8 i 010073: 211103 lac lnkflg
010074: 050305 dac instr 010074: 741200 sna
010075: 200010 lac 8 010075: 610100 jmp 3f
010076: 110375 jms octal; -4 010076: 020013 sys unlink; args
010077: 777774 010077: 011105
010100: 760040 law 040 010100: 210532 lac d1
010101: 100000 jms putc 010101: 020005 sys write; args; 4
010102: 210305 lac instr 010102: 011105
010103: 744000 cll; lrs 14 010103: 000004
010104: 640516 010104: 210532 lac d1
010105: 350327 tad lacop 010105: 020005 sys write; errmes; 1
010106: 050107 dac .+1 010106: 010565
010107: 210000 lac .. 010107: 000001
010110: 100000 jms putc 010110: 020016 sys exit
010111: 760040 law 040 010111: 211103 lac lnkflg
010112: 100000 jms putc 010112: 741200 sna
010113: 210305 lac instr 010113: 610116 jmp 1f
010114: 110375 jms octal; -4 010114: 020013 sys unlink; args
010115: 777774 010115: 011105
010116: 210305 lac instr 010116: 210555 lac in
010117: 550307 sad inslitr 010117: 741200 sna
010120: 741000 skp 010120: 610140 jmp 2f
010121: 610127 jmp 1f 010121: 750000 cla
010122: 760040 law 040 010122: 020011 sys close
010123: 100000 jms putc 010123: 020003 sys open; in; 0
010124: 220010 lac 8 i 010124: 010555
010125: 110375 jms octal; -6 010125: 000000
010126: 777772 010126: 740100 sma
010127: 760012 law 012 010127: 610140 jmp 2f
010130: 100000 jms putc 010130: 210532 lac d1
010131: 100000 jms flush 010131: 020005 sys write; in; 4
010132: 630070 jmp dtrace i 010132: 010555
010133: 000000 ddisp: 0 010133: 000004
010134: 110224 jms dspinit 010134: 020005 sys write; errmes; 1
010135: 210304 lac dspbp 010135: 010565
010136: 040010 dac 8 010136: 000001
010137: 200000 lac dp 010137: 020016 sys exit
010140: 550302 sad olddp 010140: 210561 lac out
010141: 741000 skp 010141: 741200 sna
010142: 110157 jms dspblk 010142: 610152 jmp 1f
010143: 200000 lac pc 010143: 210532 lac d1
010144: 110214 jms dspnt 010144: 020011 sys close
010145: 200000 lac sp 010145: 210540 lac o17
010146: 110214 jms dspnt 010146: 020006 sys creat; out
010147: 200000 lac lastv 010147: 010561
010150: 110214 jms dspnt 010150: 741100 spa
010151: 777777 -1 010151: 020016 sys exit
010152: 060000 dac B i 010152: 211104 lac narg
010153: 220000 lac pbs i 010153: 740001 cma
010154: 740200 sza 010154: 051102 dac t1
010155: 610153 jmp .-2 010155: 350541 tad o17771
010156: 630133 jmp ddisp i 010156: 057777 dac 017777
010157: 000000 dspblk: 0 010157: 350533 tad dm1
010160: 210303 lac dspbuf 010160: 040010 dac 8
010161: 040010 dac 8 010161: 510542 and o7777
010162: 200000 lac dp 010162: 050213 dac boot+2
010163: 040000 dac t1 010163: 740001 cma
010164: 140000 dzm t2 010164: 350537 tad d7
010165: 200000 lac t1 010165: 040011 dac close
010166: 741200 sna 010166: 210575 lac nargp
010167: 610205 jmp 1f 010167: 040011 dac 9
010170: 210320 lac o216000 " dx -20 010170: 220011 lac i 9
010171: 060010 dac 8 i 010171: 060010 dac i 8
010172: 200000 lac t2 010172: 451102 isz t1
010173: 350322 tad o20 010173: 610170 jmp 2b
010174: 040000 dac t2 010174: 210576 lac bootp
010175: 200000 lac t1 010175: 040011 dac 9
010176: 340000 tad d1 010176: 777772 -6
010177: 040000 dac t3 010177: 051102 dac t1
010200: 220000 lac t3 i 010200: 220011 lac i 9
010201: 110214 jms dspnt 010201: 060010 dac i 8
010202: 220000 lac t1 i 010202: 451102 isz t1
010203: 040000 dac t1 010203: 610200 jmp 2b
010204: 610165 jmp 1b 010204: 210536 lac d2
010205: 210321 lac o160020 " sx 20 010205: 652000 lmq
010206: 340000 tad t2 010206: 210006 lac zerop
010207: 070303 dac dspbuf i 010207: 040010 dac 8
010210: 060010 dac 8 i 010210: 610001 jmp clear+1
010211: 200010 lac 8 010211: 020004 sys read; 4096; ..
010212: 050304 dac dspbp 010212: 010000
010213: 630157 jmp dspblk i 010213: 010000
010214: 000000 dspnt: 0 010214: 641002 lacq
010215: 510317 and o7777 010215: 020011 sys close
010216: 660502 lrss 2 010216: 610000 jmp 4096
010217: 250323 xor o164000 " sy 0 010217: 000000 getcom: 0
010220: 060010 dac 8 i 010220: 771104 law args-1
010221: 210324 lac o17010 010221: 040012 dac 10
010222: 060010 dac 8 i 010222: 150555 dzm in
010223: 630214 jmp dspnt i 010223: 150561 dzm out
010224: 000000 dspinit: 0 010224: 151104 dzm narg
010225: 777777 -1 010225: 151103 dzm lnkflg
010226: 350224 tad dspinit 010226: 110400 jms get
010227: 050224 dac dspinit 010227: 550544 sad gr
010230: 777324 -300 010230: 610261 jmp cgr
010231: 340000 tad lastv 010231: 550545 sad ls
010232: 040000 dac lastv 010232: 610254 jmp cls
010233: 050303 dac dspbuf 010233: 550546 sad amper
010234: 777777 -1 010234: 610252 jmp endcom
010235: 070224 dac dspinit i 010235: 550547 sad semic
010236: 070303 dac dspbuf i 010236: 610252 jmp endcom
010237: 150302 dzm olddp 010237: 550553 sad newln
010240: 210303 lac dspbuf 010240: 610252 jmp endcom
010241: 020027 sys capt 010241: 550550 sad space
010242: 760015 law 13 010242: 610226 jmp nparm-1
010243: 020025 sys sysloc 010243: 652000 lmq
010244: 040000 dac pbs 010244: 211104 lac narg
010245: 630224 jmp dspinit i 010245: 350534 tad d4
010246: 000000 histog: 0 010246: 051104 dac narg
010247: 110260 jms hisinit 010247: 641002 lacq
010250: 200000 lac pc 010250: 110304 jms getparm
010251: 640506 lrs 6 010251: 610227 jmp nparm
010252: 510313 and o77 010252: 050570 dac delim
010253: 350301 tad histbuf 010253: 630217 jmp getcom i
010254: 040000 dac t1 010254: 110400 jms get
010255: 460000 isz t1 i 010255: 110304 jms getparm
010256: 630246 jmp histog i 010256: 051102 dac t1
010257: 610257 jmp . 010257: 770554 law in-1
010260: 000000 hisinit: 0 010260: 610265 jmp cpio
010261: 777777 -1 010261: 110400 jms get
010262: 350260 tad hisinit 010262: 110304 jms getparm
010263: 050260 dac hisinit 010263: 051102 dac t1
010264: 777777 -1 010264: 770560 law out-1
010265: 070260 dac hisinit i 010265: 040013 dac 11
010266: 777700 -64 010266: 200012 lac 10
010267: 040000 dac t1 010267: 350535 tad dm4
010270: 340000 tad lastv 010270: 040012 dac 10
010271: 040000 dac lastv 010271: 652000 lmq
010272: 050301 dac histbuf 010272: 777774 -4
010273: 340000 tad dm1 010273: 051101 dac c1
010274: 040010 dac 8 010274: 220012 lac i 10
010275: 020010 dsm 8 i 010275: 060013 dac i 11
010276: 440000 isz t1 010276: 451101 isz c1
010277: 610275 jmp 1b 010277: 610274 jmp 1b
010300: 630260 jmp hisinit i 010300: 641002 lacq
010301: 000000 histbuf: 0 010301: 040012 dac 10
010302: 000000 olddp: 0 010302: 211102 lac t1
010303: 000000 dspbuf: 0 010303: 610227 jmp nparm
010304: 000000 dspbp: 0 010304: 000000 getparm:0
010305: 000000 instr: 0 010305: 652000 lmq
010306: 000000 obs: 0 010306: 777770 -8
010307: 000005 inslitr: n 5 010307: 051101 dac c1
010310: 000001 insasg: b 1 010310: 641002 lacq
010311: 000017 o17: 017 010311: 741000 skp
010312: 000010 d8: 8 010312: 110400 jms get
010313: 000077 o77: 077 010313: 550550 sad space
010314: 010000 o10000: 010000 010314: 610312 jmp 1b
010315: 000005 d5: 5 010315: 110365 jms checkdlm
010316: 000060 o60: 060 010316: 610007 jmp comerr
010317: 007777 o7777: 07777 010317: 610323 jmp 2f
010320: 216000 o216000: 0216000 010320: 610400 jmp get
010321: 160020 o160020: 0160020 010321: 110365 jms checkdlm
010322: 000020 o20: 020 010322: 610350 jmp fill1
010323: 164000 o164000: 0164000 010323: 660711 alss 9
010324: 017010 o17010: 017010 010324: 451101 isz c1
010325: 017700 o17700: 017700 010325: 652000 lmq
010326: 000002 d2: 2 010326: 110400 jms get
010327: 210327 lacop: lac . 010327: 110365 jms checkdlm
010330: 000141 a>;b>;c>;f>;n>;s>;t>;u>;x>;y> 010330: 610341 jmp fill
010331: 000142 010331: 640002 omq
010332: 000143 010332: 060012 dac i 10
010333: 000146 010333: 451101 isz c1
010334: 000156 010334: 610320 jmp 1b
010335: 000163 010335: 110400 jms get
010336: 000164 010336: 110365 jms checkdlm
010337: 000165 010337: 630304 jmp i getparm
010340: 000170 010340: 610335 jmp 1b
010341: 000171 010341: 051102 dac t1
010342: 100000 jms flush 010342: 210550 lac space
010343: 200000 lac d1 010343: 640002 omq
010344: 020005 sys write; mpc; mpcs 010344: 060012 dac i 10
010345: 010364 010345: 451101 isz c1
010346: 000003 010346: 740000 nop
010347: 600000 jmp stop 010347: 211102 lac t1
010350: 100000 jms flush 010350: 652000 lmq
010351: 200000 lac d1 010351: 211101 lac c1
010352: 020005 sys write; msp; msps 010352: 741100 spa
010353: 010367 010353: 610356 jmp 1f
010354: 000003 010354: 641002 lacq
010355: 600000 jmp stop 010355: 630304 jmp i getparm
010356: 100000 jms flush 010356: 210574 lac spsp
010357: 200000 lac d1 010357: 060012 dac i 10
010360: 020005 sys write; mas; mass 010360: 451101 isz c1
010361: 010372 010361: 451101 isz c1
010362: 000003 010362: 610356 jmp 1b
010363: 600000 jmp stop 010363: 641002 lacq
010364: 000012 012;<pc>;012 010364: 630304 jmp i getparm
010365: 160143 010365: 000000 checkdlm: 0
010366: 000012 010366: 550550 sad space
010367: 000012 012;<sp>;012 010367: 630365 jmp i checkdlm
010370: 163160 010370: 550553 sad newln
010371: 000012 010371: 630365 jmp i checkdlm
010372: 000012 012;<as>;012 010372: 550546 sad amper
010373: 141163 010373: 630365 jmp i checkdlm
010374: 000012 010374: 550547 sad semic
010375: 000000 octal: 0 010375: 630365 jmp i checkdlm
010376: 652000 lmq 010376: 450365 isz checkdlm
010377: 210315 lac d5 010377: 630365 jmp i checkdlm
010400: 370375 tad octal i 010400: 000000 get: 0
010401: 740001 cma 010401: 220010 lac i 8
010402: 050430 dac 2f 010402: 550554 sad slash
010403: 741200 sna 010403: 741000 skp
010404: 610410 jmp 3f 010404: 630400 jmp i get
010405: 660603 llss 3 010405: 220010 lac i 8
010406: 450430 isz 2f 010406: 550553 sad newln
010407: 610405 jmp 1b 010407: 741000 skp
010410: 230375 lac octal i 010410: 610007 jmp comerr
010411: 050430 dac 2f 010411: 641002 lacq
010412: 641002 lacq 010412: 050420 dac 1f
010413: 050431 dac 2f+1 010413: 110421 jms rline
010414: 210431 lac 2f+1 010414: 210420 lac 1f
010415: 652000 lmq 010415: 652000 lmq
010416: 660603 ecla llss 3 010416: 210550 lac space
010417: 350316 tad o60 010417: 630400 jmp i get
010420: 100000 jms putc 010420: 000000 1: 0
010421: 210431 lac 2f+1 010421: 000000 rline:0
010422: 660703 alss 3 010422: 770600 law lineb-1
010423: 050431 dac 2f+1 010423: 040017 dac 15
010424: 450430 isz 2f 010424: 040010 dac 8
010425: 610414 jmp 1b 010425: 110445 jms getcha
010426: 450375 isz octal 010426: 060017 dac i 15
010427: 630375 jmp octal i 010427: 550553 sad newln
010430: 000000 2: 0;0 010430: 630421 jmp i rline
010431: 000000 010431: 550551 sad sharp
010432: 610436 jmp psharp
010433: 550552 sad atsign
010434: 610422 jmp 2b
010435: 610425 jmp 1b
010436: 777777 -1
010437: 340017 tad 15
010440: 550422 sad 2b
010441: 610422 jmp 2b
010442: 350533 tad dm1
010443: 040017 dac 15
010444: 610425 jmp 1b
010445: 000000 getcha: 0
010446: 210577 lac char
010447: 150577 dzm char
010450: 740200 sza
010451: 630445 jmp i getcha
010452: 450600 isz nread
010453: 610467 jmp 1f
010454: 750000 cla
010455: 020004 sys read; inbuf; 64
010456: 011001
010457: 000100
010460: 741300 spa sna
010461: 610526 jmp lgout
010462: 740001 cma
010463: 350532 tad d1
010464: 050600 dac nread
010465: 771000 law inbuf-1
010466: 040016 dac 14
010467: 220016 lac i 14
010470: 652000 lmq
010471: 510543 and o777
010472: 050577 dac char
010473: 661611 ecla llss 9
010474: 630445 jmp i getcha
010475: 211104 lac narg
010476: 660502 lrss 2
010477: 740001 cma
010500: 350532 tad d1
010501: 051104 dac narg
010502: 771111 law args+4
010503: 050510 dac 1f
010504: 451104 isz narg
010505: 741000 skp
010506: 610051 jmp comretrn
010507: 020021 sys chdir; 1:0
010510: 000000
010511: 741100 spa
010512: 610517 jmp cherr
010513: 210510 lac 1b
010514: 350534 tad d4
010515: 050510 dac 1b
010516: 610504 jmp 2b
010517: 210510 lac 1b
010520: 050523 dac .+3
010521: 210532 lac d1
010522: 020005 sys write; ..; 4
010523: 010000
010524: 000004
010525: 610007 jmp comerr
010526: 650000 clq
010527: 210532 lac d1
010530: 020033 sys smes
010531: 020016 sys exit
010532: 000001 d1: 1
010533: 777777 dm1: -1
010534: 000004 d4: 4
010535: 777773 dm4: -5
010536: 000002 d2: 2
010537: 000007 d7: 7
010540: 000017 o17: 017
010541: 017771 o17771: 017771
010542: 007777 o7777: 07777
010543: 000777 o777: 0777
010544: 000076 gr: 076
010545: 000074 ls: 074
010546: 000046 amper: &>
010547: 000073 semic: 073
010550: 000040 space: 040
010551: 000043 sharp: 043
010552: 000100 atsign: 0100
010553: 000012 newln: 012
010554: 000057 slash: 057
010555: 000000 in: 0;0;0;0
010556: 000000
010557: 000000
010560: 000000
010561: 000000 out: 0;0;0;0
010562: 000000
010563: 000000
010564: 000000
010565: 077012 errmes: 077012
010566: 143150 chcom: <ch>
010567: 100040 ready: 0100040
010570: 000012 delim: 012
010571: 163171 system: <sy>; <st>; <em>; spsp: 040040
010572: 163164
010573: 145155
010574: 040040
010575: 011103 nargp: narg-1
010576: 010210 bootp: boot-1
010577: 000000 char: 0
010600: 777777 nread: -1
+5 -3
View File
@@ -85,7 +85,7 @@ alt/image.fs: altcmd altothers
clean: clean:
rm -f boot.rim image.fs a.lst n.out a.out rm -f boot.rim image.fs a.lst n.out a.out
rm -f alt/image.fs alt/a.out alt/a.lst rm -f alt/image.fs alt/a.out alt/a.lst
rm -rf $(BINDIR) $(TESTDIR) rm -rf $(BINDIR) $(TESTDIR)
rm -rf $(BINARIES) rm -rf $(BINARIES)
dirs: dirs:
@@ -95,7 +95,7 @@ dirs:
cmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \ cmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \
$(BINDIR)/chown $(BINDIR)/chrm $(BINDIR)/cp $(BINDIR)/ds \ $(BINDIR)/chown $(BINDIR)/chrm $(BINDIR)/cp $(BINDIR)/ds \
$(BINDIR)/dskres $(BINDIR)/dsksav $(BINDIR)/ed $(BINDIR)/init \ $(BINDIR)/dskres $(BINDIR)/dsksav $(BINDIR)/ed $(BINDIR)/init \
$(BINDIR)/db $(BINDIR)/stat $(BINDIR)/tm #$(BINDIR)/dmabs #$(BINDIR)/st $(BINDIR)/db $(BINDIR)/stat $(BINDIR)/tm $(BINDIR)/dsw
# Alternate commands: no dd, but . and .. # Alternate commands: no dd, but . and ..
altcmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \ altcmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \
@@ -162,7 +162,6 @@ $(BINDIR)/st: $(GAMESRC)/st/st1.s $(GAMESRC)/st/st2.s $(GAMESRC)/st/st3.s $(GA
$(BINDIR)/bc: $(CMDSRC)/bc/bc.s $(BINDIR)/bc: $(CMDSRC)/bc/bc.s
$(AS) $(ASARGS) -o $(BINDIR)/bc $(CMDSRC)/bc/bc.s $(AS) $(ASARGS) -o $(BINDIR)/bc $(CMDSRC)/bc/bc.s
# -- compile errors
$(BINDIR)/dsw: $(CMDSRC)/dsw/dsw.s $(BINDIR)/dsw: $(CMDSRC)/dsw/dsw.s
$(AS) $(ASARGS) -o $(BINDIR)/dsw $(CMDSRC)/dsw/dsw.s $(AS) $(ASARGS) -o $(BINDIR)/dsw $(CMDSRC)/dsw/dsw.s
@@ -174,6 +173,9 @@ $(BINDIR)/apr: $(CMDSRC)/apr/apr.s
$(BINDIR)/adm: $(CMDSRC)/adm/adm.s $(BINDIR)/adm: $(CMDSRC)/adm/adm.s
$(AS) $(ASARGS) -o $(BINDIR)/adm $(CMDSRC)/adm/adm.s $(AS) $(ASARGS) -o $(BINDIR)/adm $(CMDSRC)/adm/adm.s
$(BINDIR)/sh: $(CMDSRC)/sh/sh.s
$(AS) $(ASARGS) -o $(BINDIR)/sh $(CMDSRC)/sh/sh.s
# Alternative init: no dd directory # Alternative init: no dd directory
$(BINDIR)/altinit: $(ALTSRC)/init/init.s $(BINDIR)/altinit: $(ALTSRC)/init/init.s
$(AS) $(ASARGS) -o $(BINDIR)/altinit $(ALTSRC)/init/init.s $(AS) $(ASARGS) -o $(BINDIR)/altinit $(ALTSRC)/init/init.s
+1 -1
View File
@@ -24,7 +24,7 @@ wr:
lac d1 lac d1
sys write; o12; 1 sys write; o12; 1
sys save sys save
io: do:
sys unlink; dir+1 sys unlink; dir+1
sys exit sys exit
+1 -1
View File
@@ -24,7 +24,7 @@ wr:
lac d1 lac d1
sys write; o12; 1 sys write; o12; 1
sys save sys save
io: do:
sys unlink; dir+1 sys unlink; dir+1
sys exit sys exit
+430
View File
@@ -0,0 +1,430 @@
" ** 11-45-91.pdf page 30
" sh
clear:
jmp shell
1:
dzm i 8
isz clear
jms 1b
lacq
jmp 017771
zerop: .-1
comerr:
lac d1
sys write; errmes; 1
shell:
lac d1
sys write; ready; 1
shell1:
lac delim
sad newln
jms rline
jms getcom
lac narg
sna
jmp comretrn
lac args
sad chcom
skp
jmp 3f
lac args+1
sad spsp
jmp doch
3:
sys fork
skp
jmp loadcom
spa
jmp comerr
lmq
lac delim
sad amper
jmp shell1
lacq " hand written
clq " send mesg to child
sys smes
comretrn:
lac delim
sad newln
jmp shell
jmp shell1
loadcom:
sys open; args; 0
sma
jmp 1f
sys link; system; args; args
spa
" ** 11-45-91.pdf page 30
jmp 2f
-1
dac lnkflg
jmp loadcom
2:
lac lnkflg
sna
jmp 3f
sys unlink; args
3:
lac d1
sys write; args; 4
lac d1
sys write; errmes; 1
sys exit
1:
lac lnkflg
sna
jmp 1f
sys unlink; args
1:
lac in
sna
jmp 2f
cla
sys close
sys open; in; 0
sma
jmp 2f
lac d1
sys write; in; 4
sys write; errmes; 1
sys exit
2:
lac out
sna
jmp 1f
lac d1
sys close
lac o17
sys creat; out
spa
sys exit
1:
lac narg
cma
dac t1
tad o17771
dac 017777
tad dm1
dac 8
and o7777
dac boot+2
cma
tad d7
dac close
lac nargp
dac 9
" ** 11-45-91.pdf page 32
2:
lac i 9
dac i 8
isz t1
jmp 2b
lac bootp
dac 9
-6
dac t1
2:
lac i 9
dac i 8
isz t1
jmp 2b
lac d2
lmq
lac zerop
dac 8
jmp clear+1
boot:
sys read; 4096; ..
lacq
sys close
jmp 4096
getcom: 0
law args-1
dac 10
dzm in
dzm out
dzm narg
dzm lnkflg
jms get
nparm:
sad gr
jmp cgr
sad ls
jmp cls
sad amper
jmp endcom
sad semic
jmp endcom
sad newln
jmp endcom
sad space
jmp nparm-1
lmq
lac narg
tad d4
dac narg
lacq
jms getparm
jmp nparm
endcom:
dac delim
jmp getcom i
cls:
" ** 11-45-91.pdf page 33
jms get
jms getparm
dac t1
law in-1
jmp cpio
cgr:
jms get
jms getparm
dac t1
law out-1
cpio:
dac 11
lac 10
tad dm4
dac 10
lmq
-4
dac c1
1:
lac i 10
dac i 11
isz c1
jmp 1b
lacq
dac 10
lac t1
jmp nparm
getparm:0
lmq
-8
dac c1
lacq
skp
1:
jms get
sad space
jmp 1b
jms checkdlm
jmp comerr
jmp 2f
1:
jmp get
jms checkdlm
jmp fill1
2:
alss 9
isz c1
lmq
jms get
jms checkdlm
jmp fill
omq
dac i 10
isz c1
jmp 1b
1:
jms get
jms checkdlm
jmp i getparm
jmp 1b
" ** 11-45-91.pdf page 34
fill:
dac t1
lac space
omq
dac i 10
isz c1
nop
lac t1
fill1:
lmq
lac c1
spa
jmp 1f
lacq
jmp i getparm
1:
lac spsp
dac i 10
isz c1
isz c1
jmp 1b
lacq
jmp i getparm
checkdlm: 0
sad space
jmp i checkdlm
sad newln
jmp i checkdlm
sad amper
jmp i checkdlm
sad semic
jmp i checkdlm
isz checkdlm
jmp i checkdlm
get: 0
lac i 8
sad slash
skp
jmp i get
lac i 8
sad newln
skp
jmp comerr
lacq
dac 1f
jms rline
lac 1f
lmq
lac space
jmp i get
1: 0
rline:0
2:
law lineb-1
dac 15
dac 8
1:
jms getcha
" ** 11-45-91.pdf page 35
dac i 15
sad newln
jmp i rline
sad sharp
jmp psharp
sad atsign
jmp 2b
jmp 1b
psharp:
-1
tad 15
sad 2b
jmp 2b
tad dm1
dac 15
jmp 1b
getcha: 0
lac char
dzm char
sza
jmp i getcha
isz nread
jmp 1f
cla
sys read; inbuf; 64
spa sna
jmp lgout
cma
tad d1
dac nread
law inbuf-1
dac 14
1:
lac i 14
lmq
and o777
dac char
ecla llss 9
jmp i getcha
doch:
lac narg
lrss 2
cma
tad d1
dac narg
law args+4
dac 1f
2:
isz narg
skp
jmp comretrn
sys chdir; 1:0
spa
jmp cherr
lac 1b
tad d4
dac 1b
jmp 2b
cherr:
" ** 11-45-91.pdf page 36
lac 1b
dac .+3
lac d1
sys write; ..; 4
jmp comerr
lgout:
clq
lac d1
sys smes
sys exit
d1: 1
dm1: -1
d4: 4
dm4: -5
d2: 2
d7: 7
o17: 017
o17771: 017771
o7777: 07777
o777: 0777
gr: 076
ls: 074
amper: &>
semic: 073
space: 040
sharp: 043
atsign: 0100
newln: 012
slash: 057
in: 0;0;0;0
out: 0;0;0;0
errmes: 077012
chcom: <ch>
ready: 0100040
delim: 012
system: <sy>; <st>; <em>; spsp: 040040
nargp: narg-1
bootp: boot-1
char: 0
nread: -1
lineb: .=.+128
inbuf: .=.+64
c1: .=.+1
t1: .=.+1
lnkflg: .=.+1
narg: .=.+1
args: