From d6cef57b849d10015d28d3ddfa6e371085da99b0 Mon Sep 17 00:00:00 2001 From: Tom Everett Date: Fri, 18 Oct 2019 21:06:44 -0600 Subject: [PATCH] include pd, rn, rm into build and image --- build/Makefile | 11 ++++++++- build/proto | 3 +++ src/cmd/pd/pd.s | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ src/cmd/rm/rm.s | 33 +++++++++++++++++++++++++++ src/cmd/rn/rn.s | 54 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 src/cmd/pd/pd.s create mode 100644 src/cmd/rm/rm.s create mode 100644 src/cmd/rn/rn.s diff --git a/build/Makefile b/build/Makefile index 66c54da..901608b 100644 --- a/build/Makefile +++ b/build/Makefile @@ -96,7 +96,7 @@ cmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \ $(BINDIR)/chown $(BINDIR)/chrm $(BINDIR)/cp $(BINDIR)/ds \ $(BINDIR)/dskres $(BINDIR)/dsksav $(BINDIR)/ed $(BINDIR)/init \ $(BINDIR)/db $(BINDIR)/stat $(BINDIR)/tm $(BINDIR)/dsw $(BINDIR)/apr \ - $(BINDIR)/cas + $(BINDIR)/cas $(BINDIR)/rm $(BINDIR)/rn $(BINDIR)/pd # Alternate commands: no dd, but . and .. altcmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \ @@ -179,6 +179,15 @@ $(BINDIR)/adm: $(CMDSRC)/adm/adm.s $(BINDIR)/sh: $(CMDSRC)/sh/sh.s $(AS) $(ASARGS) -o $(BINDIR)/sh $(CMDSRC)/sh/sh.s +$(BINDIR)/rn: $(CMDSRC)/rn/rn.s + $(AS) $(ASARGS) -o $(BINDIR)/rn $(CMDSRC)/rn/rn.s + +$(BINDIR)/rm: $(CMDSRC)/rm/rm.s + $(AS) $(ASARGS) -o $(BINDIR)/rm $(CMDSRC)/rm/rm.s + +$(BINDIR)/pd: $(CMDSRC)/pd/pd.s + $(AS) $(ASARGS) -o $(BINDIR)/pd $(CMDSRC)/pd/pd.s + # Alternative init: no dd directory $(BINDIR)/altinit: $(ALTSRC)/init/init.s $(AS) $(ASARGS) -o $(BINDIR)/altinit $(ALTSRC)/init/init.s diff --git a/build/proto b/build/proto index 76319f0..97b1abb 100644 --- a/build/proto +++ b/build/proto @@ -43,8 +43,11 @@ dd drwr- -1 4 lsd frwr- -1 bin/lsd lsl frwr- -1 bin/lsd od frwr- -1 bin/od + pd frwr- -1 bin/pd mv frwr- -1 bin/mv password frw-- -1 fs/password + rn frwr- -1 bin/rn + rm frwr- -1 bin/rm sh frwr- -1 bin/sh stat frwr- -1 bin/stat tm frwr- -1 bin/tm diff --git a/src/cmd/pd/pd.s b/src/cmd/pd/pd.s new file mode 100644 index 0000000..6196348 --- /dev/null +++ b/src/cmd/pd/pd.s @@ -0,0 +1,59 @@ +" ** 11-45-91.pdf page 1 +" pd + + sys open; dotdot; 0 + spa; jms error + dac df + law dir-1 + dac 8 +1: + lac df + sys read; tbuf; 8 + spa; jms error + sna + jmp 1f + lac tbuf + sna + jmp 1b + -8 + dac c1 + law tbuf-1 + dac 9 +2: + lac 9 i + dac 8 i + isz c1 + jmp 2b + jmp 1b + +1: + lac df + sys close + law 017 + sys creat; dotdot + spa; jms error + dac df + law dir-2 + cma + tad 8 + dac .+4 + lac df + sys write; dir; .. + spa; jms error + lac df + sys close + sys exit + +error: 0 + -1 + tad error + hlt + sys save + +dotdot: + 056056; 040040; 040040; 040040 + +c1: .=.+1 +df: .=.+1 +tbuf: .=.+8 +dir: diff --git a/src/cmd/rm/rm.s b/src/cmd/rm/rm.s new file mode 100644 index 0000000..5ba7238 --- /dev/null +++ b/src/cmd/rm/rm.s @@ -0,0 +1,33 @@ +" ** 11-45-91.pdf page 7 +" rm + + lac 017777 + tad d1 + dac 2f +1: + lac 017777 i + sad d4 + sys exit + tad dm4 + dac 017777 i + lac 2f + tad d4 + dac 2f + sys unlink; 2: 0 + sma + jmp 1b + lac 2b + dac 2f + lac d1 + sys write; 2: 0; 4 + lac d1 + sys write; 1f; 2f-1f + jmp 1b +1: + 040077;012000 +2: + +d1: 1 +d4: 4 +dm4: -4 + diff --git a/src/cmd/rn/rn.s b/src/cmd/rn/rn.s new file mode 100644 index 0000000..6f5e9ed --- /dev/null +++ b/src/cmd/rn/rn.s @@ -0,0 +1,54 @@ +" ** 11-45-91.pdf page 8 +" rn + + lac 017777 + tad d1 + dac name2 +loop: + lac 017777 i + sad d4 + sys exit + sad d8 + jmp unbal + tad dm8 + dac 017777 i + lac name2 + tad d4 + dac name1 + tad d4 + dac name2 + sys unlink; name2: 0 + lac name2 + dac 1f + sys rename; name1: 0; 1: 0 + sma + jmp loop + lac name1 + dac 1f + lac d1 + sys write; 1: 0; 4 + lac d1 + sys write; mes; 1 + lac name2 + dac 1f + lac d1 + sys write; 1: 0; 4 + lac d1 + sys write; mes; 2 + jmp loop +mes: + 040000;077012 +unbal: + lac name2 + tad d4 + dac 1f + lac d1 + sys write; 1: 0; 4 + lac d1 + sys write; mes; 2 + sys exit + +d1: 1 +d4: 4 +d8: 8 +dm8: -8