This commit is contained in:
ceriel 1995-12-06 13:28:04 +00:00
parent 6576498776
commit e5894e0f5a
5 changed files with 0 additions and 3545 deletions

View file

@ -1,7 +0,0 @@
Makefile
move.c
pem.p
pem22.m
pem24.m
pem44.m
em_pem.6

View file

@ -1,61 +0,0 @@
# $Header$
d=../../..
h=$d/h
# Use apc -m.... for cross-compilation.
APC=apc
# The call to acc has to produce an executable file
# Add an -m parameter if needed.
ACC=acc
PEM=$d/lib/pc_pem
PEM_OUT=$d/lib/pc_pem.out
MAN=$d/man/em_pem.6
HEAD=$h/em_spec.h $h/em_pseu.h $h/em_mnem.h $h/em_mes.h $h/pc_size.h
LDFLAG=-i
all: pem pem.out
pem.out: pem.m
apc -mint --t -o pem.out pem.m
pem: pem.m
$(APC) $(LDFLAG) -O -o pem pem.m
# pem.m is system dependent and may NOT be distributed
pem.m: pem.p $(HEAD)
-rm -f pem.m
-if $(APC) -I$h -O -c.m pem.p ; then :; else \
$(ACC) -o move move.c ; move ; rm -f move move.[oskm] ; \
fi
cmp: pem
-cmp pem $(PEM)
-cmp em_pem.6 $(MAN)
install: pem
rm -f $(PEM)
cp pem $(PEM)
rm -f $(MAN)
cp em_pem.6 $(MAN)
distr:
rm -f pem22.[mp] ; ln pem.p pem22.p
apc -mpdp -c.m -I$h pem22.p ; rm -f pem22.p
rm -f pem24.[mp] ; ln pem.p pem24.p
apc -mm68k2 -c.m -I$h pem24.p ; rm -f pem24.p
rm -f pem44.[mp] ; ln pem.p pem44.p
apc -mm68k4 -c.m -I$h pem44.p ; rm -f pem44.p
clean:
-rm -f pem pem.out *.[os] *.old
pr:
@pr pem.p
xref:
xref pem.p^pr -h "XREF PEM.P"
opr:
make pr ^ opr

View file

@ -1,51 +0,0 @@
.TH PC_PEM 6ACK
.ad
.SH NAME
pc_pem \- Pascal to EM compiler
.SH SYNOPSIS
~em/lib/pc_pem compact errors
.SH DESCRIPTION
Pem is a Pascal compiler producing compact EM assembly code.
The EM machine is described in [1].
The language Pascal is developed by N. Wirth and is described
in the "Pascal User Manual and Report" [2].
The compiler complies as much as possible with the ISO standard proposal [3].
The language features as processed by this compiler are described in
the Pascal reference manual [4].
Normally the compiler is called by means of the user interface program
\fIack\fP(I).
.PP
The first argument is the name of the file on which the produced
compact EM code is written.
The file is also used to pass the options to the compiler.
These options include the -{xxx} flags given to \fIack\fP(I)
and the size of Pascal objects, like pointers.
.PP
The second argument is the name of the error file.
For each error found by the compiler a record is appended to this file.
An error record contains several fields like error number, line number,
column number and error parameter (identifier name or label number etc.).
.SH "SEE ALSO"
.IP [1]
A.S. Tanenbaum, Hans van Staveren, Ed Keizer and Johan
Stevenson "Description of a machine architecture for use with
block structured languages" Informatica report IR-81.
.IP [2]
K.Jensen & N.Wirth
"PASCAL, User Manual and Report" Springer-Verlag.
.IP [3]
An improved version of the ISO standard proposal for the language Pascal,
ISO/TC97/SC5-N462, received November 1979.
.IP [4]
J.W.Stevenson "The Amsterdam Compiler Kit Pascal reference manual".
.br
(try \fInroff ~em/doc/pcref.doc\fP)
.IP [5]
\fIack\fP(I)
.SH DIAGNOSTICS
Compilation errors are written to the error file.
Positive error numbers are used for irrecoverable errors, negative ones for warnings.
\fIAck\fP searches the file ~em/etc/pc_errors to find
the corresponding messages.
.SH AUTHOR
Johan Stevenson, Vrije Universiteit.

View file

@ -1,25 +0,0 @@
/* $Header$ */
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
/* A program to move the file pem??.m to pem.m */
/* Called when "apc pem.p" fails. It is assumed that the binary
file is incorrect in that case and has to be created from the compact
code file.
This program selects the correct compact code file for each combination
of word and pointer size.
It will return an error code if the move failed
*/
main(argc) {
char copy[100] ;
if ( argc!=1 ) {
printf("No arguments allowed\n") ;
exit(1) ;
}
sprintf(copy,"cp pem%d%d.m pem.m", EM_WSIZE, EM_PSIZE) ;
printf("%s\n",copy) ;
exit(system(copy)) ;
}

File diff suppressed because it is too large Load diff