From 80c6a9c77138f75ddb70b88a301ba6bb7605a505 Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:09:15 +0000 Subject: [PATCH 1/9] Initial revision --- util/ack/.distr | 23 +++++++++++++++++++++++ util/ack/pc/.distr | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 util/ack/.distr create mode 100644 util/ack/pc/.distr diff --git a/util/ack/.distr b/util/ack/.distr new file mode 100644 index 00000000..83d135be --- /dev/null +++ b/util/ack/.distr @@ -0,0 +1,23 @@ +Makefile +ack.h +data.c +data.h +dmach.c +dmach.h +files.c +grows.c +grows.h +intable.c +list.c +list.h +main.c +malloc.c +mktables.c +pc +rmach.c +run.c +scan.c +svars.c +trans.c +trans.h +util.c diff --git a/util/ack/pc/.distr b/util/ack/pc/.distr new file mode 100644 index 00000000..df8c6bb9 --- /dev/null +++ b/util/ack/pc/.distr @@ -0,0 +1,2 @@ +Makefile +em_pc.c From 05aa585c9a12abbf8956f638a0d1f1de2e4d8958 Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:09:51 +0000 Subject: [PATCH 2/9] Also remove the program, it should be installed by now. --- util/ack/pc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/ack/pc/Makefile b/util/ack/pc/Makefile index 9089e908..4d4f340f 100644 --- a/util/ack/pc/Makefile +++ b/util/ack/pc/Makefile @@ -16,7 +16,7 @@ lint: lint -hpxc -I$h em_pc.c clean: - rm -f *.o *.old + rm -f *.o *.old em_pc opr: make pr ^ opr From 1568cd2dbc82114b7ca922b9c7b8acde3fa4d23f Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:10:16 +0000 Subject: [PATCH 3/9] The slightly altered error message format greatly enhances use of the pascal compiler under emacs. --- util/ack/pc/em_pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/ack/pc/em_pc.c b/util/ack/pc/em_pc.c index 16a13829..8187abed 100644 --- a/util/ack/pc/em_pc.c +++ b/util/ack/pc/em_pc.c @@ -428,7 +428,7 @@ listshort() { while (nexterror()) { while (listlino < curr.lino) nextline(0); - printf("%s, %d: ",listfnam,listrela); + printf("%s, line %d: ",listfnam,listrela); string(&curr); } } From 580b5f5d7f661006aa27df118f6bf18852ea318e Mon Sep 17 00:00:00 2001 From: em Date: Thu, 21 Jun 1984 11:13:28 +0000 Subject: [PATCH 4/9] Added warning about forthcoming shift/reduce conflict --- util/cgg/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/util/cgg/Makefile b/util/cgg/Makefile index 43d8a1b2..4b47a6da 100644 --- a/util/cgg/Makefile +++ b/util/cgg/Makefile @@ -11,6 +11,11 @@ LEXLIB=-lln cgg: bootgram.o cc $(LDFLAGS) bootgram.o $(LIBS) $(LEXLIB) -o cgg +bootgram.c: bootgram.y + @echo expect 1 shift/reduce conflict + yacc bootgram.y + mv y.tab.c bootgram.c + install: cgg cp cgg ../../lib/cgg From 0c1ac8e7dd1bdc865e19964ca0096b912e603be5 Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:24:08 +0000 Subject: [PATCH 5/9] Initial revision --- lib/descr/ibm.nosid | 35 +++++++++++++++++++++++++++++++++++ lib/descr/m68k2.macs | 34 ++++++++++++++++++++++++++++++++++ lib/descr/net86 | 32 ++++++++++++++++++++++++++++++++ lib/descr/sat86 | 33 +++++++++++++++++++++++++++++++++ lib/pmds/descr | 32 ++++++++++++++++++++++++++++++++ lib/z8000/descr | 31 +++++++++++++++++++++++++++++++ 6 files changed, 197 insertions(+) create mode 100644 lib/descr/ibm.nosid create mode 100644 lib/descr/m68k2.macs create mode 100644 lib/descr/net86 create mode 100644 lib/descr/sat86 create mode 100644 lib/pmds/descr create mode 100644 lib/z8000/descr diff --git a/lib/descr/ibm.nosid b/lib/descr/ibm.nosid new file mode 100644 index 00000000..c3db4db0 --- /dev/null +++ b/lib/descr/ibm.nosid @@ -0,0 +1,35 @@ +var w=2 +var p=2 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=i8086 +var M=i86 +var LIB=mach/i86/lib/tail_ +var LIBIBM=mach/ibm/lib/tail_ +var RT=mach/i86/lib/head_ +var RTIBM=mach/ibm/lib/head_ +var INCLUDES=-I{EM}/include -I{EM}/mach/ibm/include +name be + from .m + to .s + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + mapflag -i IFILE={EM}/{RT}i + args {IFILE?} (.e:{HEAD}={EM}/{RTIBM}em) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.e:{TAIL}={EM}/{LIBIBM}em) \ +(.c.p:{TAIL}={EM}/{LIBIBM}mon) \ +(.e:{TAIL}={EM}/{LIBIBM}em.vend) + prop C +end diff --git a/lib/descr/m68k2.macs b/lib/descr/m68k2.macs new file mode 100644 index 00000000..58bdc46e --- /dev/null +++ b/lib/descr/m68k2.macs @@ -0,0 +1,34 @@ +var w=2 +var p=4 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=m68k2 +var M=m68k2 +var LIBDIR=mach/m68k2/lib +var LIB=mach/m68k2/lib/tail_ +var RT=mach/m68k2/lib/head_ +var INCLUDES=-I{EM}/include -I/usr/include +name be + from .m + to .s + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + args (.e:{HEAD}={EM}/{RT}em) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p.c:{TAIL}={EM}/{LIBDIR}/sys1.s) (.p:{TAIL}={EM}/{LIBDIR}/sys2.s) \ +(.c:{TAIL}={EM}/{LIBDIR}/write.s) \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.c:{TAIL}={EM}/{LIB}mon {EM}/{LIB}fake) \ +(.e:{TAIL}={EM}/{LIB}em.rt {EM}/{LIB}em.vend) + prop Cm +end diff --git a/lib/descr/net86 b/lib/descr/net86 new file mode 100644 index 00000000..27097aed --- /dev/null +++ b/lib/descr/net86 @@ -0,0 +1,32 @@ +var w=2 +var p=2 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=i8086 +var M=i86 +var LIB=mach/i86/lib/tail_ +var RT=mach/i86/lib/head_ +var INCLUDES=-I{EM}/include -I/usr/include +name be + from .m + to .s + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + mapflag -i IFILE={EM}/{RT}i + args {IFILE?} (.e:{HEAD}={EM}/{RT}em) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.c.p.e:{TAIL}={EM}/{LIB}netio) (.c.p.e:{TAIL}={EM}/{LIB}alo) \ +(.c.p:{TAIL}={EM}/{LIB}mon) (.e:{TAIL}={EM}/{LIB}em) + prop C +end diff --git a/lib/descr/sat86 b/lib/descr/sat86 new file mode 100644 index 00000000..0e3a8e57 --- /dev/null +++ b/lib/descr/sat86 @@ -0,0 +1,33 @@ +var w=2 +var p=2 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=i8086 +var M=i86 +var LIB=mach/i86/lib/tail_ +var ALIB=mach/i86/lib/sat_tail_ +var RT=mach/i86/lib/head_ +var ART=mach/i86/lib/sat_head_ +var INCLUDES=-I{EM}/include -I/usr/include +name be + from .m + to .s + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + args (.e:{HEAD}={EM}/{ART}em) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.c.p:{TAIL}={EM}/{ALIB}mon) (.c.p.e:{TAIL}={EM}/{LIB}alo) \ +(.e:{TAIL}={EM}/{LIB}em) + prop C +end diff --git a/lib/pmds/descr b/lib/pmds/descr new file mode 100644 index 00000000..d602a1d6 --- /dev/null +++ b/lib/pmds/descr @@ -0,0 +1,32 @@ +var w=2 +var p=4 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=m68k2 +var M=m68k2 +var LIB=mach/m68k2/lib/tail_ +var RT=mach/m68k2/lib/head_ +var INCLUDES=-I{EM}/include -I/usr/include +name be + from .m + to .o + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .o.s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + mapflag -i + mapflag -n + args (.e:{HEAD}={EM}/{RT}em.pmds) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.e:{TAIL}={EM}/{LIB}em.rt {EM}/{LIB}mon.pmds {EM}/{LIB}em.vend) + prop Cm +end diff --git a/lib/z8000/descr b/lib/z8000/descr new file mode 100644 index 00000000..823c4638 --- /dev/null +++ b/lib/z8000/descr @@ -0,0 +1,31 @@ +var w=2 +var p=2 +var s=2 +var l=4 +var f=4 +var d=8 +var NAME=z8000 +var M=z8000 +var LIB=mach/z8000/lib/tail_ +var RT=mach/z8000/lib/head_ +var INCLUDES=-I{EM}/include -I/usr/include +name be + from .m + to .s + program {EM}/lib/{M}_cg + args < + prop > + need .e +end +name asld + from .s.a + to a.out + program {EM}/lib/{M}_as + mapflag -l* LNAME={EM}/{LIB}* + mapflag -i IFILE={EM}/{RT}i + args {IFILE?} (.e:{HEAD}={EM}/{RT}em) \ +({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ +(.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ +(.p.c:{TAIL}={EM}/{LIB}mon) (.e:{TAIL}={EM}/{LIB}em) + prop C +end From f13d0d6c3e7b18746d355036b9a3363da3d0b96d Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:25:05 +0000 Subject: [PATCH 6/9] Adapted to the new C preprocessor that does NOT have ANY default include directories like /usr/include. --- lib/6500/descr | 2 +- lib/6809/descr | 2 +- lib/descr/cpm | 2 +- lib/descr/fe.src | 2 +- lib/descr/nascom | 2 +- lib/em22/descr | 2 +- lib/i80/descr | 2 +- lib/i86/descr | 2 +- lib/m68k2/descr | 2 +- lib/m68k4/descr | 2 +- lib/pdp/descr | 2 +- lib/vax4/descr.src | 2 +- lib/z80/descr | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/6500/descr b/lib/6500/descr index 41738ccd..1e50c6ee 100644 --- a/lib/6500/descr +++ b/lib/6500/descr @@ -8,7 +8,7 @@ var NAME=m6500 var M=6500 var LIB=mach/6500/lib/tail_ var RT=mach/6500/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/6809/descr b/lib/6809/descr index c08ac85a..683a21ec 100644 --- a/lib/6809/descr +++ b/lib/6809/descr @@ -9,7 +9,7 @@ var NAME=m6809 var M=6809 var LIB=mach/6809/lib/tail_ var RT=mach/6809/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/descr/cpm b/lib/descr/cpm index 262b1244..afa4cc9d 100644 --- a/lib/descr/cpm +++ b/lib/descr/cpm @@ -9,7 +9,7 @@ var NAME=CPM var LIB=mach/z80/int/lib/tail_ var RT=mach/z80/int/lib/head_ var SIZE_F=-sm -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name asld from .k.m.a to e.out diff --git a/lib/descr/fe.src b/lib/descr/fe.src index 288d5219..a72a363c 100644 --- a/lib/descr/fe.src +++ b/lib/descr/fe.src @@ -2,7 +2,7 @@ name cpp # no from, it's governed by the P property to .i - program {EM}/lib/cpp + program {EM}/lib/cpp.new mapflag -I* CPP_F={CPP_F?} -I* mapflag -U* CPP_F={CPP_F?} -U* mapflag -D* CPP_F={CPP_F?} -D* diff --git a/lib/descr/nascom b/lib/descr/nascom index c9a560a6..117911d7 100644 --- a/lib/descr/nascom +++ b/lib/descr/nascom @@ -8,7 +8,7 @@ var NAME=nascom var M=z80a var LIB=mach/z80a/lib/tail_ var RT=mach/z80a/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/em22/descr b/lib/em22/descr index 6d897fb1..dd468fba 100644 --- a/lib/em22/descr +++ b/lib/em22/descr @@ -9,7 +9,7 @@ var NAME=int22 var LIB=mach/int/lib/tail_ var RT=mach/int/lib/head_ var SIZE_FLAG=-sm -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name asld from .k.m.a to e.out diff --git a/lib/i80/descr b/lib/i80/descr index 2b31a593..3c0ea492 100644 --- a/lib/i80/descr +++ b/lib/i80/descr @@ -8,7 +8,7 @@ var NAME=i8080 var M=8080 var LIB=mach/8080/lib/tail_ var RT=mach/8080/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/i86/descr b/lib/i86/descr index 7135e9f7..4bea559d 100644 --- a/lib/i86/descr +++ b/lib/i86/descr @@ -8,7 +8,7 @@ var NAME=i8086 var M=i86 var LIB=mach/i86/lib/tail_ var RT=mach/i86/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/m68k2/descr b/lib/m68k2/descr index 7cd66069..bafd025e 100644 --- a/lib/m68k2/descr +++ b/lib/m68k2/descr @@ -8,7 +8,7 @@ var NAME=m68k2 var M=m68k2 var LIB=mach/m68k2/lib/tail_ var RT=mach/m68k2/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/m68k4/descr b/lib/m68k4/descr index 16f1f490..db0b1c0d 100644 --- a/lib/m68k4/descr +++ b/lib/m68k4/descr @@ -9,7 +9,7 @@ var M=m68k4 var LIBDIR=mach/m68k4/lib var LIB=mach/m68k4/lib/tail_ var RT=mach/m68k4/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/pdp/descr b/lib/pdp/descr index 3a90a8b9..eb99a54a 100644 --- a/lib/pdp/descr +++ b/lib/pdp/descr @@ -8,7 +8,7 @@ var M=pdp var NAME=pdp var LIB=mach/pdp/lib/tail_ var RT=mach/pdp/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/vax4/descr.src b/lib/vax4/descr.src index f9c1e5e3..f6910229 100644 --- a/lib/vax4/descr.src +++ b/lib/vax4/descr.src @@ -8,7 +8,7 @@ var M=vax4 var NAME=vax4 var LIB=mach/vax4/lib/tail_ var RT=mach/vax4/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s diff --git a/lib/z80/descr b/lib/z80/descr index f201f983..69006456 100644 --- a/lib/z80/descr +++ b/lib/z80/descr @@ -8,7 +8,7 @@ var NAME=z80 var M=z80 var LIB=mach/z80/lib/tail_ var RT=mach/z80/lib/head_ -var INCLUDES=-I{EM}/include +var INCLUDES=-I{EM}/include -I/usr/include name be from .m to .s From c74da38c3dca14c9293210765aa93a962f83ed62 Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:26:10 +0000 Subject: [PATCH 7/9] Adapted to use the new backend. --- lib/z80/descr | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/z80/descr b/lib/z80/descr index 69006456..37a362e9 100644 --- a/lib/z80/descr +++ b/lib/z80/descr @@ -22,10 +22,10 @@ name asld to a.out program {EM}/lib/{M}_as mapflag -l* LNAME={EM}/{LIB}* - args (.e:{HEAD}={EM}/{RT}em) \ + mapflag -i IFILE={EM}/{RT}i + args {IFILE?} (.e:{HEAD}={EM}/{RT}em) \ ({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ (.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ -(.c.p.e:{TAIL}={EM}/{LIB}alo) (.c.p:{TAIL}={EM}/{LIB}mon) \ -(.e:{TAIL}={EM}/{LIB}em.vend) +(.p.c:{TAIL}={EM}/{LIB}mon) (.e:{TAIL}={EM}/{LIB}em) prop C end From dc3874ad9d840e3d5b51d7ccf0f93033b32c9b4f Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 21 Jun 1984 11:29:22 +0000 Subject: [PATCH 8/9] Ack assumed that files resulting from transformations would not need to be fed through a pre-processor. This assumption proved false. Ack was altered and allows use of a pre-processor on files produced by other passes. --- util/ack/main.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/util/ack/main.c b/util/ack/main.c index 46292ceb..bc0abf96 100644 --- a/util/ack/main.c +++ b/util/ack/main.c @@ -226,7 +226,7 @@ process(arg) char *arg ; { /* Try to find a path through the transformations */ switch( setpath() ) { case F_NOPATH : - error("Incomplete internal specification for %s",arg) ; + error("Cannot produce the desired file from %s",arg) ; l_add(&c_arguments,keeps(arg)) ; return 1 ; case F_NOMATCH : @@ -245,18 +245,18 @@ process(arg) char *arg ; { if ( !nill_flag ) { printf("%s\n",arg) ; } - switch ( phase->t_prep ) { - default : if ( !mayprep() ) break ; - case YES: if ( !transform(cpp_trafo) ) { - n_error++ ; + } + switch ( phase->t_prep ) { + default : if ( !mayprep() ) break ; + case YES: if ( !transform(cpp_trafo) ) { + n_error++ ; #ifdef DEBUG - vprint("Pre-processor failed\n") ; + vprint("Pre-processor failed\n") ; #endif - return 0 ; - } + return 0 ; + } case NO : - break ; - } + break ; } if ( cpp_trafo && stopsuffix && strcmp(cpp_trafo->t_out,stopsuffix)==0 ) { From a8ee95440511316633d4856b0aec811501c386f6 Mon Sep 17 00:00:00 2001 From: em Date: Thu, 21 Jun 1984 13:09:51 +0000 Subject: [PATCH 9/9] Assembler peephole optimizer added. --- lib/vax4/descr.src | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/vax4/descr.src b/lib/vax4/descr.src index f6910229..bd5f77d0 100644 --- a/lib/vax4/descr.src +++ b/lib/vax4/descr.src @@ -17,8 +17,15 @@ name be prop > need .e end -name as +name asopt from .s + to .so + program /bin/sed + args -f {EM}/mach/vax4/cg/sedf + prop O<> +end +name as + from .s.so to .o program /bin/as args - -o > < @@ -32,6 +39,6 @@ name ld args (.e:{HEAD}={EM}/{RT}em) \ ({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \ (.p:{TAIL}={EM}/{LIB}pc) (.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \ -(.e:{TAIL}={EM}/{LIB}em) (.c.p:{TAIL}={EM}/{LIB}mon) +(.c.p:{TAIL}={EM}/{LIB}mon) (.e:{TAIL}={EM}/{LIB}em) prop C end