fixup commit for tag 'release-5-6'

This commit is contained in:
cvs2hg 2005-06-24 23:20:42 +00:00
parent e8b47b4745
commit cf1a80ecb6
366 changed files with 0 additions and 13719 deletions

View file

@ -1,3 +0,0 @@
p=/proj/em/Work
sh TakeAction 'make distr' $p/distr/Action
sh TakeAction 'make distr' $p/distr/Action1

View file

@ -1,35 +0,0 @@
cmp: # compile everything and compare
(cd etc ; make cmp )
(cd util ; make cmp )
(cd lang ; make cmp )
(cd mach ; make cmp )
install: # compile everything to machine code
(cd etc ; make install )
(cd util ; make install )
(cd lang/cem ; make install )
(cd mach ; make install )
(cd lang/pc ; make install )
clean: # remove all non-sources, except boot-files
(cd doc ; make clean )
(cd man ; make clean )
(cd h ; make clean )
(cd etc ; make clean )
(cd util ; make clean )
(cd lang ; make clean )
(cd mach ; make clean )
opr: # print all sources
make pr | opr
pr: # print all sources
@( pr Makefile ; \
(cd doc ; make pr ) ; \
(cd man ; make pr ) ; \
(cd h ; make pr ) ; \
(cd etc ; make pr ) ; \
(cd lang ; make pr ) ; \
(cd util ; make pr ) ; \
(cd mach ; make pr ) \
)

View file

@ -1,225 +0,0 @@
# (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
# $Header$
#
# Don't generate line updating code by default (i.e.: -L flag provided to cem).
# To put it on again: use -NL
var LFLAG=-L
var C_INCLUDES=-I{EM}/include/_tail_cc
var ANSI_C_INCLUDES=-I{EM}/include/tail_ac
callname ack
name cpp
# no from, this is a preprocessor
to .i
program {EM}/lib/cpp{ANSI_C?}
mapflag -I* CPP_F={CPP_F?} -I*
mapflag -U* CPP_F={CPP_F?} -U*
mapflag -D* CPP_F={CPP_F?} -D*
mapflag -P CPP_F={CPP_F?} -P
mapflag -C CPP_F={CPP_F?} -C
mapflag -wo CPP_F={CPP_F?} -o
mapflag -ansi ANSI_C=.ansi
args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
({ANSI_C?}:.ansi={SYSINCLUDES?} {ANSI_C_INCLUDES} {INCLUDES?}) \
({ANSI_C?.c}:{SUFFIX}={SYSINCLUDES?} {C_INCLUDES} {INCLUDES?}) \
-D{NAME} \
({ANSI_C?.xx}:.xx=-DEM_WSIZE={w} -DEM_PSIZE={p} \
-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
-D_EM_WSIZE={w} -D_EM_PSIZE={p} \
-D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
<
stdout
prep is
end
name cem
from .c
to .k
program {EM}/lib/em_cemcom{ANSI_C?}
mapflag -ansi ANSI=ansi
# mapflag -I* CPP_F={CPP_F?} -I*
# mapflag -U* CPP_F={CPP_F?} -U*
# mapflag -D* CPP_F={CPP_F?} -D*
mapflag -M* CEM_F={CEM_F?} -M*
mapflag -L CEM_F={CEM_F?} -L
mapflag -A CEM_F={CEM_F?} -A
mapflag -NL LFLAG=
mapflag -KR CEM_F={CEM_F?} -R
mapflag -w CEM_F={CEM_F?} -w
mapflag -wa CEM_F={CEM_F?} -a
mapflag -wo CEM_F={CEM_F?} -o
mapflag -ws CEM_F={CEM_F?} -s
mapflag -g CEM_F={CEM_F?} -g
mapflag -p CEM_F={CEM_F?} -p
mapflag -V* CEM_F={CEM_F?} -V*
rts .c
need .c
args \
{CPP_F?} \
{SYSINCLUDES?} \
({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
({ANSI_C?.c}:.c={C_INCLUDES}) \
{INCLUDES?} \
-D{NAME} \
-D_EM_WSIZE={w} -D_EM_PSIZE={p} \
-D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
-Vw{w}.{w}i{w}.{w}p{p}.{w}f{f}.{w}s{s}.{s}l{l}.{w}d{d}.{w} \
{CC_ALIGN?} \
{CEM_F?} {LFLAG?} < >
callname acc
callname cc
end
name pc
from .p
to .k
program {EM}/lib/em_pc
mapflag -L PC_F={PC_F?} -L
# mapflag -s PC_F={PC_F?} -s
mapflag -_ PC_F={PC_F?} -U
mapflag -w PC_F={PC_F?} -w
mapflag -V* PC_F={PC_F?} -V*
mapflag -M* PC_F={PC_F?} -M*
# mapflag -i* PC_F={PC_F?} -i*
mapflag -A PC_F={PC_F?} -A
# mapflag -R PC_F={PC_F?} -R
mapflag --* PC_F={PC_F?} -*
#range checks can only be disabled through comments
args \
-Vw{w}.{w}i{w}.{w}l{l}.{w}p{p}.{w}f{d}.{w}S{w}.{w} \
{PC_F?} < > {SOURCE}
prep cond
rts .p
need .p
callname apc
callname pc
end
name m2
from .mod.def
to .k
program {EM}/lib/em_m2
mapflag -I* M2_INCL={M2_INCL?} -I*
mapflag -L M2_F={M2_F?} -L
mapflag -g M2_F={M2_F?} -g
mapflag -w* M2_F={M2_F?} -w*
mapflag -W* M2_F={M2_F?} -W*
mapflag -_ M2_F={M2_F?} -U
mapflag -M* M2_F={M2_F?} -M*
mapflag -x M2_F={M2_F?} -x
mapflag -Xs M2_F={M2_F?} -s
mapflag -V* M2_F={M2_F?} -V*
mapflag --* M2_F={M2_F?} -*
args \
{M2_INCL?} -I{EM}/lib/m2 {M2SYSLIB?} \
-Vw{w}.{w}i{w}.{w}p{p}.{w}l{l}.{w}f{f}.{w}d{d}.{w} \
{M2_ALIGN?} {M2_F?} < >
prep cond
rts .mod
need .mod
callname m2
end
name ocm
from .ocm
to .k
program {EM}/lib/em_occam
mapflag -L OCM_F={OCM_F?} -L
mapflag -V* OCM_F={OCM_F?} -V*
args -Vw{w}p{p}l{l} {OCM_F?}
stdin
stdout
rts .ocm
need .ocm
prep cond
callname ocm
end
name abc
from .b
to .k
program {EM}/lib/em_bem
mapflag -h ABC_F={ABC_F?} -h
mapflag -w ABC_F={ABC_F?} -w
mapflag -L ABC_F={ABC_F?} -L
mapflag -E ABC_F={ABC_F?} -E
# mapflag -d ABC_F={ABC_F?} -d
args -Vw{w}p{p}f{d} {ABC_F?} < > {SOURCE}
prep cond
rts .b
need .b
callname abc
end
var A68INIT={EM}/lib/em_a68s_init
name a68s
from .8.a68
to .k
program {EM}/lib/em_a68s{w}{p}
mapflag -PA* A68INIT=*
args < > {SOURCE}.lst {A68INIT}{w}{p} /dev/null
prep cond
rts .8
need .8
callname a68s
end
name encode
from .e
to .k
program {EM}/lib/em_encode
args <
prep cond
stdout
end
name opt
from .k
to .m
program {EM}/lib/em_opt
mapflag -LIB OPT_F={OPT_F?} -L
args {OPT_F?} <
stdout
optimizer
end
name ego
from .m.ma
to .gk
program {EM}/lib/em_ego
mapflag -EGO-* EGO_F={EGO_F?} -*
# The following lines are obsolete, but here for backwards compatibility.
# They should be removed some day.
mapflag -IL* EGO_F={EGO_F?} -IL*
mapflag -CS* EGO_F={EGO_F?} -CS*
mapflag -SR* EGO_F={EGO_F?} -SR*
mapflag -UD* EGO_F={EGO_F?} -UD*
mapflag -LV* EGO_F={EGO_F?} -LV*
mapflag -SA* EGO_F={EGO_F?} -RA*
mapflag -SP* EGO_F={EGO_F?} -SP*
mapflag -BO* EGO_F={EGO_F?} -BO*
mapflag -CJ* EGO_F={EGO_F?} -CJ*
mapflag -EV EGO_F={EGO_F?} -V
# End of obsolete lines
mapflag -Q* EGO_F={EGO_F?} -Q*
mapflag -T* EGO_F={EGO_F?} -T*
mapflag -S* EGO_F={EGO_F?} -S*
mapflag -s* EGO_F={EGO_F?} -s*
mapflag -a EGO_F={EGO_F?} -a
mapflag -O* EGO_F={EGO_F?} -O*
args \
{EGO_F?} -P {EM}/lib/ego \
-M{EM}/lib/ego/{M}descr <
optimizer 2
stdout
combiner
end
name opt2
# output of the global optimizer is processed by a stripped version
# of the em peephole optimizer
from .gk
to .g
program {EM}/lib/em_opt2
# mapflag -LIB OPT_F={OPT_F?} -L
args {OPT_F?} <
optimizer
stdout
end
name decode
from .k.m.g.gk
to .e
program {EM}/lib/em_decode
args <
stdout
end

View file

@ -1,40 +0,0 @@
# $Revision$
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=lib/i86/tail_
var LIBIBM=lib/ibm/tail_
var RT=lib/i86/head_
var RTIBM=lib/ibm/head_
var CPP_F=-Dunix
var INCLUDES=-I{EM}/include -I{EM}/lib/ibm/include
name be
from .m.g
to .s
program {EM}/lib/{M}/cg
args <
stdout
need .e
end
name asld
from .s.a
to .out
outfile 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}:.b.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \
(.p:{TAIL}={EM}/{LIB}pc) \
(.b:{TAIL}={EM}/{LIB}bc) \
(.b.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
(.e:{TAIL}={EM}/{LIBIBM}em) \
(.b.c.p:{TAIL}={EM}/{LIBIBM}mon) \
(.e:{TAIL}={EM}/{LIBIBM}em.vend)
linker
end

View file

@ -1,35 +0,0 @@
# $Revision$
var w=2
var p=2
var s=2
var l=4
var f=4
var d=8
var M=int
var NAME=int22
var LIB=lib/int22/tail_
var RT=lib/int22/head_
var SIZE_FLAG=-sm
var CPP_F=-Dunix=unix
var INCLUDES=-I{EM}/include/_tail_cc -I{EM}/include/_tail_mon
name asld
from .k.m.a.g
to .out
outfile e.out
program {EM}/lib/em_ass
mapflag -l* LNAME={EM}/{LIB}*
mapflag -+* ASS_F={ASS_F?} -+*
mapflag --* ASS_F={ASS_F?} --*
mapflag -s* SIZE_FLAG=-s*
args {SIZE_FLAG} \
({RTS}:.ocm.b.c={EM}/{RT}cc) \
({RTS}:.mod={EM}/{RT}m2) \
({RTS}:.p={EM}/{RT}pc) -o > < \
(.p:{TAIL}={EM}/{LIB}pc) \
(.b:{TAIL}={EM}/{LIB}bc) \
(.ocm:{TAIL}={EM}/{LIB}ocm) \
(.mod:{TAIL}={EM}/{LIB}m2) \
(.ocm.b.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
(.mod.ocm.b.c.p:{TAIL}={EM}/{LIB}mon)
linker
end

View file

@ -1,39 +0,0 @@
# $Revision$
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=/lib/{M}
var LIB=lib/{M}/tail_
var RT=lib/{M}/head_
var INCLUDES=-I{EM}/include -I/usr/include
name be
from .m.g
to .s
program {EM}/lib/{M}/cg
args <
stdout
need .e
end
name asld
from .s.a
to .out
outfile a.out
program {EM}/lib/{M}/as
mapflag -l* LNAME={EM}/{LIB}*
args (.e:{HEAD}={EM}/{RT}em) \
({RTS}:.b.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \
(.p.c.b:{TAIL}={EM}/{LIBDIR}/sys1.s) (.p:{TAIL}={EM}/{LIBDIR}/sys2.s) \
(.c:{TAIL}={EM}/{LIBDIR}/write.s) \
(.p:{TAIL}={EM}/{LIB}pc) \
(.b:{TAIL}={EM}/{LIB}bc) \
(.b.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
(.b.c:{TAIL}={EM}/{LIB}mon {EM}/{LIB}fake) \
(.e:{TAIL}={EM}/{LIB}em.rt {EM}/{LIB}em.vend)
prep cond
linker
end

View file

@ -1,30 +0,0 @@
# $Revision$
var w=1
var p=2
var s=1
var l=2
var f=4
var d=8
var NAME=nascom
var M=z80a
var LIB=lib/{M}/tail_
var RT=lib/{M}/head_
var INCLUDES=-I{EM}/include -I/usr/include
name be
from .m.g
to .s
program {EM}/lib/{M}/be
args <
stdout
need .e
end
name asld
from .s.a
to .out
outfile a.out
program {EM}/lib/z80/as
mapflag -l* LNAME={EM}/{LIB}*
args (.e:{HEAD}={EM}/{RT}em) ({RTS}:.b.c={EM}/{RT}cc) -o > \
(.e:{TAIL}={EM}/{LIB}em.1 {EM}/{LIB}em.2)
linker
end

View file

@ -1,32 +0,0 @@
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

View file

@ -1,34 +0,0 @@
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 CCP_F=-Dunix
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

View file

@ -1,59 +0,0 @@
/* Error codes. They are negative since a few system calls, such as READ, can
* either return a positive number indicating success, or an error code.
*/
#define NERROR 34
#define OK 0
#define ERROR -1
#define EPERM -1
#define ENOENT -2
#define ESRCH -3
#define EINTR -4
#define EIO -5
#define ENXIO -6
#define E2BIG -7
#define ENOEXEC -8
#define EBADF -9
#define ECHILD -10
#define EAGAIN -11
#define ENOMEM -12
#define EACCES -13
#define EFAULT -14
#define ENOTBLK -15
#define EBUSY -16
#define EEXIST -17
#define EXDEV -18
#define ENODEV -19
#define ENOTDIR -20
#define EISDIR -21
#define EINVAL -22
#define ENFILE -23
#define EMFILE -24
#define ENOTTY -25
#define ETXTBSY -26
#define EFBIG -27
#define ENOSPC -28
#define ESPIPE -29
#define EROFS -30
#define EMLINK -31
#define EPIPE -32
#define EDOM -33
#define ERANGE -34
#define E_LOCKED -101
#define E_BAD_CALL -102
#define E_LONG_STRING -103
#define EOF -104 /* End Of File - used by drivers */
/* The following error codes are generated by the kernel itself. */
#define E_BAD_DEST -1 /* destination address illegal */
#define E_BAD_SRC -2 /* source address illegal */
#define E_TRY_AGAIN -3 /* can't send-- tables full */
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
#define E_TASK -6 /* can't send to task */
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
#define E_BAD_ADDR -10 /* bad address given to utility routine */
#define E_BAD_PROC -11 /* bad proc number given to utility */

View file

@ -1,59 +0,0 @@
/* Error codes. They are negative since a few system calls, such as READ, can
* either return a positive number indicating success, or an error code.
*/
#define NERROR 34
#define OK 0
#define ERROR -1
#define EPERM -1
#define ENOENT -2
#define ESRCH -3
#define EINTR -4
#define EIO -5
#define ENXIO -6
#define E2BIG -7
#define ENOEXEC -8
#define EBADF -9
#define ECHILD -10
#define EAGAIN -11
#define ENOMEM -12
#define EACCES -13
#define EFAULT -14
#define ENOTBLK -15
#define EBUSY -16
#define EEXIST -17
#define EXDEV -18
#define ENODEV -19
#define ENOTDIR -20
#define EISDIR -21
#define EINVAL -22
#define ENFILE -23
#define EMFILE -24
#define ENOTTY -25
#define ETXTBSY -26
#define EFBIG -27
#define ENOSPC -28
#define ESPIPE -29
#define EROFS -30
#define EMLINK -31
#define EPIPE -32
#define EDOM -33
#define ERANGE -34
#define E_LOCKED -101
#define E_BAD_CALL -102
#define E_LONG_STRING -103
#define EOF -104 /* End Of File - used by drivers */
/* The following error codes are generated by the kernel itself. */
#define E_BAD_DEST -1 /* destination address illegal */
#define E_BAD_SRC -2 /* source address illegal */
#define E_TRY_AGAIN -3 /* can't send-- tables full */
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
#define E_TASK -6 /* can't send to task */
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
#define E_BAD_ADDR -10 /* bad address given to utility routine */
#define E_BAD_PROC -11 /* bad proc number given to utility */

View file

@ -1,26 +0,0 @@
struct stat {
short int st_dev;
unsigned short st_ino;
unsigned short st_mode;
short int st_nlink;
short int st_uid;
short int st_gid;
short int st_rdev;
long st_size;
long st_atime;
long st_mtime;
long st_ctime;
};
/* Some common definitions. */
#define S_IFMT 0170000 /* type of file */
#define S_IFDIR 0040000 /* directory */
#define S_IFCHR 0020000 /* character special */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
#define S_ISUID 04000 /* set user id on execution */
#define S_ISGID 02000 /* set group id on execution */
#define S_ISVTX 01000 /* save swapped text even after use */
#define S_IREAD 00400 /* read permission, owner */
#define S_IWRITE 00200 /* write permission, owner */
#define S_IEXEC 00100 /* execute/search permission, owner */

View file

@ -1,17 +0,0 @@
/* The <dir.h> header gives the layout of a directory. */
#ifndef _DIR_H
#define _DIR_H
#define DIRBLKSIZ 512 /* size of directory block */
#ifndef DIRSIZ
#define DIRSIZ 14
#endif
struct direct {
ino_t d_ino;
char d_name[DIRSIZ];
};
#endif /* _DIR_H */

View file

@ -1,58 +0,0 @@
#define NCALLS 70 /* number of system calls allowed */
#define EXIT 1
#define FORK 2
#define READ 3
#define WRITE 4
#define OPEN 5
#define CLOSE 6
#define WAIT 7
#define CREAT 8
#define LINK 9
#define UNLINK 10
#define CHDIR 12
#define TIME 13
#define MKNOD 14
#define CHMOD 15
#define CHOWN 16
#define BRK 17
#define STAT 18
#define LSEEK 19
#define GETPID 20
#define MOUNT 21
#define UMOUNT 22
#define SETUID 23
#define GETUID 24
#define STIME 25
#define PTRACE 26
#define ALARM 27
#define FSTAT 28
#define PAUSE 29
#define UTIME 30
#define ACCESS 33
#define SYNC 36
#define KILL 37
#define RENAME 38
#define MKDIR 39
#define RMDIR 40
#define DUP 41
#define PIPE 42
#define TIMES 43
#define SETGID 46
#define GETGID 47
#define SIGNAL 48
#define IOCTL 54
#define FCNTL 55
#define EXEC 59
#define UMASK 60
#define CHROOT 61
/* The following are not system calls, but are processed like them. */
#define KSIG 64 /* kernel detected a signal */
#define UNPAUSE 65 /* to MM or FS: check for EINTR */
#define BRK2 66 /* to MM: used to say how big FS & INIT are */
#define REVIVE 67 /* to FS: revive a sleeping process */
#define TASK_REPLY 68 /* to FS: reply code from tty task */
/* The following IS a system call for amoeba transactions */
#define AM_SYSCALL 69

View file

@ -1,166 +0,0 @@
/* System calls. */
#define SEND 1 /* function code for sending messages */
#define RECEIVE 2 /* function code for receiving messages */
#define BOTH 3 /* function code for SEND + RECEIVE */
#define ANY (NR_PROCS+100) /* receive(ANY, buf) accepts from any source */
/* Task numbers, function codes and reply codes. */
#define TTY -NR_TASKS /* terminal I/O class */
# define TTY_READ 3 /* fcn code for reading from tty */
# define TTY_WRITE 4 /* fcn code for writing to tty */
# define TTY_IOCTL 5 /* fcn code for ioctl */
# define TTY_SETPGRP 6 /* fcn code for setpgrp */
# define TTY_OPEN 7 /* fcn code for opening tty */
# define TTY_CLOSE 8 /* fcn code for closing tty */
# define SUSPEND -998 /* used in interrupts when tty has no data */
#ifdef AM_KERNEL
#define AMOEBA
#endif
#ifdef AMOEBA
/* There are AM_NTASK copies of the amoeba kernel task.
* If you change AM_NTASKS be sure to adjust kernel/table.c and fs/table.c
*/
#define AM_NTASKS 4 /* number of kernel tasks of this class */
#define AMINT_CLASS (TTY+1) /* Amoeba event handler */
#define AMOEBA_CLASS (AMINT_CLASS+AM_NTASKS) /* transaction handlers */
# define ETHER_ARRIV 1 /* fcn code for packet arrival */
# define AM_TRANS 2 /* amoeba transaction */
# define AM_GETREQ 3 /* amoeba getrequest */
# define AM_PUTREP 4 /* amoeba putrep */
# define AM_REVIVE 6 /* used by kernel task to revive luser task */
# define AM_TIMEOUT 8 /* used to talk to clock task */
# define AM_PUTSIG 9 /* when the luser hits the DEL ! */
# define AM_TASK_DIED 10 /* sent if task died during a transaction */
#else /* if AMOEBA not defined */
#define AMOEBA_CLASS TTY
#endif /* AMOEBA */
/*
* New class definitions should go here and should be defined relative
* to AMOEBA_CLASS (ie. as AMOEBA_CLASS+n, for the nth task added).
*/
#define IDLE (AMOEBA_CLASS+1) /* task to run when there's nothing to run */
#define PRINTER -7 /* printer I/O class */
/* The printer uses the same commands as TTY. */
#define WINCHESTER -6 /* winchester (hard) disk class */
#define FLOPPY -5 /* floppy disk class */
# define DISK_READ 3 /* fcn code to DISK (must equal TTY_READ) */
# define DISK_WRITE 4 /* fcn code to DISK (must equal TTY_WRITE) */
# define DISK_IOCTL 5 /* fcn code for setting up RAM disk */
# define SCATTERED_IO 6 /* fcn code for multiple reads/writes */
# define OPTIONAL_IO 16 /* modifier to DISK_* codes within vector */
#define MEM -4 /* /dev/ram, /dev/(k)mem and /dev/null class */
# define RAM_DEV 0 /* minor device for /dev/ram */
# define MEM_DEV 1 /* minor device for /dev/mem */
# define KMEM_DEV 2 /* minor device for /dev/kmem */
# define NULL_DEV 3 /* minor device for /dev/null */
#if (CHIP == INTEL)
# define PORT_DEV 4 /* minor device for /dev/port */
#endif
#define CLOCK -3 /* clock class */
# define SET_ALARM 1 /* fcn code to CLOCK, set up alarm */
# define GET_TIME 3 /* fcn code to CLOCK, get real time */
# define SET_TIME 4 /* fcn code to CLOCK, set real time */
# define REAL_TIME 1 /* reply from CLOCK: here is real time */
#define SYSTASK -2 /* internal functions */
# define SYS_XIT 1 /* fcn code for sys_xit(parent, proc) */
# define SYS_GETSP 2 /* fcn code for sys_sp(proc, &new_sp) */
# define SYS_SIG 3 /* fcn code for sys_sig(proc, sig) */
# define SYS_FORK 4 /* fcn code for sys_fork(parent, child) */
# define SYS_NEWMAP 5 /* fcn code for sys_newmap(procno, map_ptr) */
# define SYS_COPY 6 /* fcn code for sys_copy(ptr) */
# define SYS_EXEC 7 /* fcn code for sys_exec(procno, new_sp) */
# define SYS_TIMES 8 /* fcn code for sys_times(procno, bufptr) */
# define SYS_ABORT 9 /* fcn code for sys_abort() */
# define SYS_FRESH 10 /* fcn code for sys_fresh() (Atari only) */
# define SYS_KILL 11 /* fcn code for sys_kill(proc, sig) */
# define SYS_GBOOT 12 /* fcn code for sys_gboot(procno, bootptr) */
# define SYS_UMAP 13 /* fcn code for sys_umap(procno, etc) */
# define SYS_MEM 14 /* fcn code for sys_mem() */
# define SYS_TRACE 15 /* fcn code for sys_trace(req,pid,addr,data) */
#define HARDWARE -1 /* used as source on interrupt generated msgs*/
/* Names of message fields for messages to CLOCK task. */
#define DELTA_TICKS m6_l1 /* alarm interval in clock ticks */
#define FUNC_TO_CALL m6_f1 /* pointer to function to call */
#define NEW_TIME m6_l1 /* value to set clock to (SET_TIME) */
#define CLOCK_PROC_NR m6_i1 /* which proc (or task) wants the alarm? */
#define SECONDS_LEFT m6_l1 /* how many seconds were remaining */
/* Names of message fields used for messages to block and character tasks. */
#define DEVICE m2_i1 /* major-minor device */
#define PROC_NR m2_i2 /* which (proc) wants I/O? */
#define COUNT m2_i3 /* how many bytes to transfer */
#define POSITION m2_l1 /* file offset */
#define ADDRESS m2_p1 /* core buffer address */
/* Names of message fields for messages to TTY task. */
#define TTY_LINE m2_i1 /* message parameter: terminal line */
#define TTY_REQUEST m2_i3 /* message parameter: ioctl request code */
#define TTY_SPEK m2_l1 /* message parameter: ioctl speed, erasing */
#define TTY_FLAGS m2_l2 /* message parameter: ioctl tty mode */
#define TTY_PGRP m2_i3 /* message parameter: process group */
/* Names of messages fields used in reply messages from tasks. */
#define REP_PROC_NR m2_i1 /* # of proc on whose behalf I/O was done */
#define REP_STATUS m2_i2 /* bytes transferred or error number */
/* Names of fields for copy message to SYSTASK. */
#define SRC_SPACE m5_c1 /* T or D space (stack is also D) */
#define SRC_PROC_NR m5_i1 /* process to copy from */
#define SRC_BUFFER m5_l1 /* virtual address where data come from */
#define DST_SPACE m5_c2 /* T or D space (stack is also D) */
#define DST_PROC_NR m5_i2 /* process to copy to */
#define DST_BUFFER m5_l2 /* virtual address where data go to */
#define COPY_BYTES m5_l3 /* number of bytes to copy */
/* Field names for accounting, SYSTASK and miscellaneous. */
#define USER_TIME m4_l1 /* user time consumed by process */
#define SYSTEM_TIME m4_l2 /* system time consumed by process */
#define CHILD_UTIME m4_l3 /* user time consumed by process' children */
#define CHILD_STIME m4_l4 /* sys time consumed by process' children */
#define PROC1 m1_i1 /* indicates a process */
#define PROC2 m1_i2 /* indicates a process */
#define PID m1_i3 /* process id passed from MM to kernel */
#define STACK_PTR m1_p1 /* used for stack ptr in sys_exec, sys_getsp */
#define PR m6_i1 /* process number for sys_sig */
#define SIGNUM m6_i2 /* signal number for sys_sig */
#define FUNC m6_f1 /* function pointer for sys_sig */
#define MEM_PTR m1_p1 /* tells where memory map is for sys_newmap */
#define CANCEL 0 /* general request to force a task to cancel */
#define SIG_MAP m1_i2 /* used by kernel for passing signal bit map */
#ifdef AMOEBA
/* Names of message fields for amoeba tasks */
#define AM_OP m2_i1 /* one of the above operators */
#define AM_PROC_NR m2_i2 /* process # of proc doing operation */
#define AM_COUNT m2_i3 /* size of buffer for operation */
#define AM_ADDRESS m2_p1 /* address of buffer for operation */
/* For communication between MM and AMOEBA_CLASS kernel tasks */
#define AM_STATUS m2_i3 /* same use as REP_STATUS but for amoeba */
#define AM_FREE_IT m2_l1 /* 1=not a getreq, 0=is a getreq */
/* Special for passing a physical address from the ethernet driver */
#define AM_PADDR m2_l1 /* to the transaction layer */
#endif /* AMOEBA */
#define HARD_INT 2 /* fcn code for all hardware interrupts */

View file

@ -1,88 +0,0 @@
/* Copyright (C) 1990 by Prentice-Hall, Inc. Permission is hereby granted
* to redistribute the binary and source programs of this system for
* educational or research purposes. For other use, written permission from
* Prentice-Hall is required.
*/
#define EXTERN extern /* used in *.h files */
#define PRIVATE static /* PRIVATE x limits the scope of x */
#define PUBLIC /* PUBLIC is the opposite of PRIVATE */
#define FORWARD static /* some compilers require this to be 'static'*/
#define TRUE 1 /* used for turning integers into Booleans */
#define FALSE 0 /* used for turning integers into Booleans */
#define HZ 60 /* clock freq (software settable on IBM-PC) */
#define BLOCK_SIZE 1024 /* # bytes in a disk block */
#define SUPER_USER (uid_t) 0 /* uid_t of superuser */
#define MAJOR 8 /* major device = (dev>>MAJOR) & 0377 */
#define MINOR 0 /* minor device = (dev>>MINOR) & 0377 */
#ifdef AM_KERNEL
#define NR_TASKS 14 /* must be 5 more than without amoeba */
#else
#define NR_TASKS 9 /* number of tasks in the transfer vector */
#endif
#define NR_PROCS 32 /* number of slots in proc table */
#define NR_SEGS 3 /* # segments per process */
#define T 0 /* proc[i].mem_map[T] is for text */
#define D 1 /* proc[i].mem_map[D] is for data */
#define S 2 /* proc[i].mem_map[S] is for stack */
#define MAX_P_LONG 2147483647 /* maximum positive long, i.e. 2**31 - 1 */
/* Memory is allocated in clicks. */
#if (CHIP == INTEL) || (CHIP == M68000)
#define CLICK_SIZE 256 /* unit in which memory is allocated */
#define CLICK_SHIFT 8 /* log2 of CLICK_SIZE */
#endif
#define click_to_round_k(n) \
((unsigned) ((((unsigned long) (n) << CLICK_SHIFT) + 512) / 1024))
#if CLICK_SIZE < 1024
#define k_to_click(n) ((n) * (1024 / CLICK_SIZE))
#else
#define k_to_click(n) ((n) / (CLICK_SIZE / 1024))
#endif
/* Process numbers of some important processes */
#define MM_PROC_NR 0 /* process number of memory manager */
#define FS_PROC_NR 1 /* process number of file system */
#define INIT_PROC_NR 2 /* init -- the process that goes multiuser */
#define LOW_USER 2 /* first user not part of operating system */
/* Miscellaneous */
#define BYTE 0377 /* mask for 8 bits */
#define TO_USER 0 /* flag telling to copy from fs to user */
#define FROM_USER 1 /* flag telling to copy from user to fs */
#define READING 0 /* copy data to user */
#define WRITING 1 /* copy data from user */
#if (MACHINE != ATARI)
#define ABS -999 /* this process means absolute memory */
#endif
#define WORD_SIZE 2 /* number of bytes per word */
#define NIL_PTR (char *) 0 /* generally useful expression */
#define NO_NUM 0x8000 /* used as numerical argument to panic() */
#define SIG_PUSH_BYTES (4*sizeof(int)) /* how many bytes pushed by signal */
/* Flag bits for i_mode in the inode. */
#define I_TYPE 0170000 /* this field gives inode type */
#define I_REGULAR 0100000 /* regular file, not dir or special */
#define I_BLOCK_SPECIAL 0060000 /* block special file */
#define I_DIRECTORY 0040000 /* file is a directory */
#define I_CHAR_SPECIAL 0020000 /* character special file */
#define I_NAMED_PIPE 0010000 /* named pipe (FIFO) */
#define I_SET_UID_BIT 0004000 /* set effective uid_t on exec */
#define I_SET_GID_BIT 0002000 /* set effective gid_t on exec */
#define ALL_MODES 0006777 /* all bits for user, group and others */
#define RWX_MODES 0000777 /* mode bits for RWX only */
#define R_BIT 0000004 /* Rwx protection bit */
#define W_BIT 0000002 /* rWx protection bit */
#define X_BIT 0000001 /* rwX protection bit */
#define I_NOT_ALLOC 0000000 /* this inode is free */

View file

@ -1,59 +0,0 @@
/* Error codes. They are negative since a few system calls, such as READ, can
* either return a positive number indicating success, or an error code.
*/
#define NERROR 34
#define OK 0
#define ERROR -1
#define EPERM -1
#define ENOENT -2
#define ESRCH -3
#define EINTR -4
#define EIO -5
#define ENXIO -6
#define E2BIG -7
#define ENOEXEC -8
#define EBADF -9
#define ECHILD -10
#define EAGAIN -11
#define ENOMEM -12
#define EACCES -13
#define EFAULT -14
#define ENOTBLK -15
#define EBUSY -16
#define EEXIST -17
#define EXDEV -18
#define ENODEV -19
#define ENOTDIR -20
#define EISDIR -21
#define EINVAL -22
#define ENFILE -23
#define EMFILE -24
#define ENOTTY -25
#define ETXTBSY -26
#define EFBIG -27
#define ENOSPC -28
#define ESPIPE -29
#define EROFS -30
#define EMLINK -31
#define EPIPE -32
#define EDOM -33
#define ERANGE -34
#define E_LOCKED -101
#define E_BAD_CALL -102
#define E_LONG_STRING -103
#define EOF -104 /* End Of File - used by drivers */
/* The following error codes are generated by the kernel itself. */
#define E_BAD_DEST -1 /* destination address illegal */
#define E_BAD_SRC -2 /* source address illegal */
#define E_TRY_AGAIN -3 /* can't send-- tables full */
#define E_OVERRUN -4 /* interrupt for task that is not waiting */
#define E_BAD_BUF -5 /* message buf outside caller's addr space */
#define E_TASK -6 /* can't send to task */
#define E_NO_MESSAGE -7 /* RECEIVE failed: no message present */
#define E_NO_PERM -8 /* ordinary users can't send to tasks */
#define E_BAD_FCN -9 /* only valid fcns are SEND, RECEIVE, BOTH */
#define E_BAD_ADDR -10 /* bad address given to utility routine */
#define E_BAD_PROC -11 /* bad proc number given to utility */

View file

@ -1,26 +0,0 @@
struct stat {
short int st_dev;
unsigned short st_ino;
unsigned short st_mode;
short int st_nlink;
short int st_uid;
short int st_gid;
short int st_rdev;
long st_size;
long st_atime;
long st_mtime;
long st_ctime;
};
/* Some common definitions. */
#define S_IFMT 0170000 /* type of file */
#define S_IFDIR 0040000 /* directory */
#define S_IFCHR 0020000 /* character special */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
#define S_ISUID 04000 /* set user id on execution */
#define S_ISGID 02000 /* set group id on execution */
#define S_ISVTX 01000 /* save swapped text even after use */
#define S_IREAD 00400 /* read permission, owner */
#define S_IWRITE 00200 /* write permission, owner */
#define S_IEXEC 00100 /* execute/search permission, owner */

View file

@ -1,134 +0,0 @@
#ifndef _TYPE_H
#define _TYPE_H
/* Macros */
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MIN(a,b) ((a) < (b) ? (a) : (b))
/* Type definitions */
typedef unsigned short unshort; /* must be 16-bit unsigned */
typedef unshort block_nr; /* block number */
typedef unshort zone_nr; /* zone number */
#define MAX_BLOCK_NR ((block_nr) 0177777) /* largest block number */
#define HIGHEST_ZONE ((zone_nr) 0177777) /* largest zone number */
#define MAX_INODE_NR ((ino_t 0177777) /* largest inode number */
#define MAX_FILE_POS 017777777777L /* largest legal file offset */
#define NO_BLOCK ((block_nr) 0) /* absence of a block number */
#define NO_ENTRY ((ino_t) 0) /* absence of a dir entry */
#define NO_ZONE ((zone_nr) 0) /* absence of a zone number */
#define NO_DEV ((dev_t) ~0) /* absence of a device numb */
typedef unshort bit_nr; /* if ino_t & zone_nr both unshort,
then also unshort, else long */
typedef long zone_type; /* zone size */
#if (CHIP == INTEL)
typedef unsigned vir_bytes; /* virtual addresses and lengths in bytes */
#endif
#if (CHIP == M68000)
typedef long vir_bytes; /* virtual addresses and lengths in bytes */
#endif
typedef unsigned vir_clicks; /* virtual addresses and lengths in clicks */
typedef long phys_bytes; /* physical addresses and lengths in bytes */
typedef unsigned phys_clicks; /* physical addresses and lengths in clicks */
typedef int signed_clicks; /* same length as phys_clicks, but signed */
/* Types relating to messages. */
#define M1 1
#define M3 3
#define M4 4
#define M3_STRING 14
typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
typedef struct {long m4l1, m4l2, m4l3, m4l4;} mess_4;
typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;} mess_5;
#if _ANSI
typedef struct {int m6i1, m6i2, m6i3; long m6l1; void (*m6f1)(int);} mess_6;
#else
typedef struct {int m6i1, m6i2, m6i3; long m6l1; void (*m6f1)();} mess_6;
#endif
typedef struct {
int m_source; /* who sent the message */
int m_type; /* what kind of message is it */
union {
mess_1 m_m1;
mess_2 m_m2;
mess_3 m_m3;
mess_4 m_m4;
mess_5 m_m5;
mess_6 m_m6;
} m_u;
} message;
#define MESS_SIZE (sizeof(message))
#define NIL_MESS (message *) 0
/* The following defines provide names for useful members. */
#define m1_i1 m_u.m_m1.m1i1
#define m1_i2 m_u.m_m1.m1i2
#define m1_i3 m_u.m_m1.m1i3
#define m1_p1 m_u.m_m1.m1p1
#define m1_p2 m_u.m_m1.m1p2
#define m1_p3 m_u.m_m1.m1p3
#define m2_i1 m_u.m_m2.m2i1
#define m2_i2 m_u.m_m2.m2i2
#define m2_i3 m_u.m_m2.m2i3
#define m2_l1 m_u.m_m2.m2l1
#define m2_l2 m_u.m_m2.m2l2
#define m2_p1 m_u.m_m2.m2p1
#define m3_i1 m_u.m_m3.m3i1
#define m3_i2 m_u.m_m3.m3i2
#define m3_p1 m_u.m_m3.m3p1
#define m3_ca1 m_u.m_m3.m3ca1
#define m4_l1 m_u.m_m4.m4l1
#define m4_l2 m_u.m_m4.m4l2
#define m4_l3 m_u.m_m4.m4l3
#define m4_l4 m_u.m_m4.m4l4
#define m5_c1 m_u.m_m5.m5c1
#define m5_c2 m_u.m_m5.m5c2
#define m5_i1 m_u.m_m5.m5i1
#define m5_i2 m_u.m_m5.m5i2
#define m5_l1 m_u.m_m5.m5l1
#define m5_l2 m_u.m_m5.m5l2
#define m5_l3 m_u.m_m5.m5l3
#define m6_i1 m_u.m_m6.m6i1
#define m6_i2 m_u.m_m6.m6i2
#define m6_i3 m_u.m_m6.m6i3
#define m6_l1 m_u.m_m6.m6l1
#define m6_f1 m_u.m_m6.m6f1
struct mem_map {
vir_clicks mem_vir; /* virtual address */
phys_clicks mem_phys; /* physical address */
vir_clicks mem_len; /* length */
};
struct copy_info { /* used by sys_copy(src, dst, bytes) */
int cp_src_proc;
int cp_src_space;
vir_bytes cp_src_vir;
int cp_dst_proc;
int cp_dst_space;
vir_bytes cp_dst_vir;
vir_bytes cp_bytes;
};
struct iorequest_s {
long io_position; /* position in device file (really off_t) */
char *io_buf; /* buffer in user space */
unsigned short io_nbytes; /* size of request */
unsigned short io_request; /* read, write (optionally) */
};
#endif /* _TYPE_H */

View file

@ -1,74 +0,0 @@
# $Revision$
var w=4
var p=4
var s=2
var l=4
var f=4
var d=8
var NAME=vax4
var M=vax4
var LIB=lib/{M}/tail_
var RT=lib/{M}/head_
var CPP_F=-Dunix -Dvax
var CC_ALIGN=-Vw4.1
# 413 align is the default, rom in text
var ALIGN=-a0:4 -a1:4 -a2:0x400 -a3:4
var C_LIB={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g
var OLD_C_LIB={C_LIB}
name be
from .m.g
to .s
program {EM}/lib/{M}/cg
args <
stdout
need .e
end
name asopt
from .s
to .so
program {EM}/lib/{M}/top
args
optimizer
stdin
stdout
end
name as
from .s.so
to .o
program {EM}/lib/{M}/as
args - -o > <
prep cond
end
name led
from .o.a
to .out
program {EM}/lib/em_led
mapflag -l* LNAME={EM}/{LIB}*
mapflag -N ALIGN=-a0:4 -a1:4 -a2:4 -a3:4
mapflag -r ALIGN=-a0:4 -a1:0x400 -a2:4 -a3:4
mapflag -ansi C_LIB={EM}/{LIB}ac
args {ALIGN} (.e:{HEAD}= {EM}/{RT}em) \
({RTS}:.ocm.b={EM}/{RT}cc) \
({RTS}{ANSI?}:.c={EM}/{RT}cc) \
({RTS}{ANSI?}:.cansi={EM}/{RT}ac) \
({RTS}:.mod={EM}/{RT}m2) \
({RTS}:.p.8={EM}/{RT}pc) \
-o > < \
(.8:{TAIL}={EM}/{LIB}a68s) \
(.p.8:{TAIL}={EM}/{LIB}pc) \
(.b:{TAIL}={EM}/{LIB}bc) \
(.ocm:{TAIL}={EM}/{LIB}ocm) \
(.mod:{TAIL}={EM}/{LIB}m2) \
(.ocm.b:{TAIL}={OLD_C_LIB}) \
(.c:{TAIL}={C_LIB}) \
(.e:{TAIL}={EM}/{LIB}em {EM}/{LIB}mon {EM}/lib/{M}/end_em)
linker
end
name cv
from .out
to .cv
program {EM}/lib/{M}/cv
mapflag -n CV_ARG=-n
args {CV_ARG?} < >
outfile a.out
end

View file

@ -1,104 +0,0 @@
# $Header$
/movab/ {
s/movab 1(\(.*\)),\1$/incl \1/
s/movab -1(\(.*\)),\1$/decl \1/
s/movab \([0-9]*\)(\(.*\)),\2$/addl2 $\1,\2/
s/movab -\([0-9]*\)(\(.*\)),\2$/subl2 $\1,\2/
s/movab 0(\(.*\)) \[\(.*\)\],\1$/addl2 \2,\1/
s/movab 0(\(.*\)) \[\(.*\)\],\2$/addl2 \1,\2/
}
/$0/ {
s/movz[bw]\([wl]\) $0,/clr\1 /
s/mov\([bwl]\) $0,/clr\1 /
s/cvt[bw]\([wl]\) $0,/clr\1 /
}
/add/ {
s/\(add[fdlw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
s/\(add[fdlw]\)3 \(.*\),\(.*\),\2$/\12 \3,\2/
s/add\([wl]\)2 \$-\([0-9]*\),/sub\12 $\2,/
s/add\([wl]\)3 \$-\([0-9]*\),/sub\13 $\2,/
s/add\([wl]\)3 \(.*\),\$-\([0-9]*\),/sub\13 $\3,\2,/
}
/mul/ {
s/\(mul[fdlw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
s/\(mul[fdlw]\)3 \(.*\),\(.*\),\2$/\12 \3,\2/
}
/sub/ {
s/\(sub[fdlw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
s/sub\([wl]\)2 \$-\([0-9]*\),/add\12 $\2,/
s/sub\([wl]\)3 \$-\([0-9]*\),/add\13 $\2,/
}
/div/s/\(div[fdlw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
/bi/s/\(bi[cs][lw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
/bis/s/\(bis[lw]\)3 \(.*\),\(.*\),\2$/\12 \3,\2/
/xor/ {
s/\(xor[lw]\)3 \(.*\),\(.*\),\3$/\12 \2,\3/
s/\(xor[lw]\)3 \(.*\),\(.*\),\2$/\12 \3,\2/
}
/$1/ {
s/add\([wl]\)2 \$1,/inc\1 /
s/sub\([wl]\)2 \$1,/dec\1 /
}
/$-1/ {
s/add\([wl]\)2 \$-1,/dec\1 /
s/sub\([wl]\)2 \$-1,/inc\1 /
}
/cmp[bwl].*$0/ {
N
s/cmp\([bwl]\) \(.*\),$0$/tst\1 \2/
s/cmp\([bwl]\) $0,\(.*\)\njneq/tst\1 \2\
jneq/
s/cmp\([bwl]\) $0,\(.*\)\njeql/tst\1 \2\
jeql/
s/cmp\([bwl]\) $0,\(.*\)\njgtr/tst\1 \2\
jlss/
s/cmp\([bwl]\) $0,\(.*\)\njlss/tst\1 \2\
jgtr/
s/cmp\([bwl]\) $0,\(.*\)\njgeq/tst\1 \2\
jleq/
s/cmp\([bwl]\) $0,\(.*\)\njleq/tst\1 \2\
jgeq/
P
D
}
/(sp)+/ {
N
s/movl (sp)+,\(.*\)\npushl \1$/movl (sp),\1/
s/tst[wl] (sp)+\nmovl fp,sp$/movl fp,sp/
s/tst\([wl]\) (sp)+\nmov\1 \(.*\),-(sp)/mov\1 \2,(sp)/
s/tst\([wl]\) (sp)+\nclr\1 -(sp)/clr\1 (sp)/
s/tst\([wl]\) (sp)+\nmovzb\1 \(.*\),-(sp)/movzb\1 \2,(sp)/
s/tst\([wl]\) (sp)+\ncvtb\1 \(.*\),-(sp)/cvtb\1 \2,(sp)/
s/tst\([wl]\) (sp)+\ntst\1 \(.*\)$/mov\1 \2,(sp)+/
s/tstl (sp)+\npushl \(.*\)$/movl \1,(sp)/
s/tstl (sp)+\npusha\([bwlq]\) \(.*\)$/mova\1 \2,(sp)/
P
D
}
/^addl2 .*,sp/ {
N
s/addl2 .*,sp\nmovl fp,sp$/movl fp,sp/
s/^addl2 $6,sp\nmovw \(.*\),-(sp)/tstl (sp)+\
movw \1,(sp)/
s/^addl2 $6,sp\nclrw -(sp)/tstl (sp)+\
clrw (sp)/
s/^addl2 $8,sp\nmovq \(.*\),-(sp)/movq \1,(sp)/
P
D
}
/clrw -(sp)/ {
N
s/clrw -(sp)\nmovw \($[0-9]*\),-(sp)/pushl \1/
s/clrw -(sp)\nmnegw $\([0-9]*\),-(sp)/movzwl $-\1,-(sp)/
s/clrw -(sp)\nmovw \(.*\),-(sp)/movzwl \1,-(sp)/
s/clrw -(sp)\ncvtbw \(\$[0-9]*\),-(sp)/pushl \1/
s/clrw -(sp)\ncvtbw \(\$.*\),-(sp)/movzwl \1,-(sp)/
P
D
}
/mov/ {
N
s/mov\([wl]\) \(.*\),\(.*\)\ntst\1 \3$/mov\1 \2,\3/
P
D
}

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,184 +0,0 @@
# $Header$
EMHOME=../../..
PREFLAGS=-I$(EMHOME)/h -I. -I$(EMHOME)/mach -I$(EMHOME)/modules/h -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=$(PFLAGS)
LINTOPTS=-hbxac
LIBS=$(EMHOME)/lib/em_data.a $(EMHOME)/modules/lib/libflt.a
CDIR=$(EMHOME)/mach/proto/cg
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
$(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/main.c $(CDIR)/move.c \
$(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c $(CDIR)/salloc.c \
$(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o main.o\
move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
cg: tables.o $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) tables.o $(LIBS) -o cg
tables.o: tables.c
$(CC) -c $(PREFLAGS) -I$(CDIR) tables.c
codegen.o: $(CDIR)/codegen.c
$(CC) -c $(CFLAGS) $(CDIR)/codegen.c
compute.o: $(CDIR)/compute.c
$(CC) -c $(CFLAGS) $(CDIR)/compute.c
equiv.o: $(CDIR)/equiv.c
$(CC) -c $(CFLAGS) $(CDIR)/equiv.c
fillem.o: $(CDIR)/fillem.c
$(CC) -c $(CFLAGS) $(CDIR)/fillem.c
gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
$(CC) -c $(CFLAGS) $(CDIR)/move.c
nextem.o: $(CDIR)/nextem.c
$(CC) -c $(CFLAGS) $(CDIR)/nextem.c
reg.o: $(CDIR)/reg.c
$(CC) -c $(CFLAGS) $(CDIR)/reg.c
regvar.o: $(CDIR)/regvar.c
$(CC) -c $(CFLAGS) $(CDIR)/regvar.c
salloc.o: $(CDIR)/salloc.c
$(CC) -c $(CFLAGS) $(CDIR)/salloc.c
state.o: $(CDIR)/state.c
$(CC) -c $(CFLAGS) $(CDIR)/state.c
subr.o: $(CDIR)/subr.c
$(CC) -c $(CFLAGS) $(CDIR)/subr.c
var.o: $(CDIR)/var.c
$(CC) -c $(CFLAGS) $(CDIR)/var.c
install: all
../../install cg
cmp: all
-../../compare cg
distr: tables.c
rm -f tables1.[ch]
cp tables.c tables1.c
cp tables.h tables1.h
chmod -w tables1.[ch]
tables.c: table
-mv tables.h tables.h.save
$(EMHOME)/lib/cpp -P table | $(EMHOME)/lib/cgg > debug.out
-if cmp -s tables.h.save tables.h; then mv tables.h.save tables.h; else exit 0; fi
-if cmp -s /dev/null tables.h; then mv tables.h.save tables.h; else exit 0; fi
lint: $(CFILES)
lint $(LINTOPTS) $(PREFLAGS) $(CFILES)
clean:
rm -f *.o tables.c tables.h debug.out cg tables.h.save
codegen.o: $(CDIR)/assert.h
codegen.o: $(CDIR)/data.h
codegen.o: $(CDIR)/equiv.h
codegen.o: $(CDIR)/extern.h
codegen.o: $(CDIR)/param.h
codegen.o: $(CDIR)/result.h
codegen.o: $(CDIR)/state.h
codegen.o: tables.h
codegen.o: $(CDIR)/types.h
compute.o: $(CDIR)/assert.h
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
compute.o: $(CDIR)/types.h
equiv.o: $(CDIR)/assert.h
equiv.o: $(CDIR)/data.h
equiv.o: $(CDIR)/equiv.h
equiv.o: $(CDIR)/extern.h
equiv.o: $(CDIR)/param.h
equiv.o: $(CDIR)/result.h
equiv.o: tables.h
equiv.o: $(CDIR)/types.h
fillem.o: $(CDIR)/assert.h
fillem.o: $(CDIR)/data.h
fillem.o: $(CDIR)/extern.h
fillem.o: mach.c
fillem.o: mach.h
fillem.o: $(CDIR)/param.h
fillem.o: $(CDIR)/regvar.h
fillem.o: $(CDIR)/result.h
fillem.o: tables.h
fillem.o: $(CDIR)/types.h
gencode.o: $(CDIR)/assert.h
gencode.o: $(CDIR)/data.h
gencode.o: $(CDIR)/extern.h
gencode.o: $(CDIR)/param.h
gencode.o: $(CDIR)/result.h
gencode.o: tables.h
gencode.o: $(CDIR)/types.h
glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
move.o: $(CDIR)/assert.h
move.o: $(CDIR)/data.h
move.o: $(CDIR)/extern.h
move.o: $(CDIR)/param.h
move.o: $(CDIR)/result.h
move.o: tables.h
move.o: $(CDIR)/types.h
nextem.o: $(CDIR)/assert.h
nextem.o: $(CDIR)/data.h
nextem.o: $(CDIR)/extern.h
nextem.o: $(CDIR)/param.h
nextem.o: $(CDIR)/result.h
nextem.o: tables.h
nextem.o: $(CDIR)/types.h
reg.o: $(CDIR)/assert.h
reg.o: $(CDIR)/data.h
reg.o: $(CDIR)/extern.h
reg.o: $(CDIR)/param.h
reg.o: $(CDIR)/result.h
reg.o: tables.h
reg.o: $(CDIR)/types.h
regvar.o: $(CDIR)/assert.h
regvar.o: $(CDIR)/data.h
regvar.o: $(CDIR)/extern.h
regvar.o: $(CDIR)/param.h
regvar.o: $(CDIR)/regvar.h
regvar.o: $(CDIR)/result.h
regvar.o: tables.h
regvar.o: $(CDIR)/types.h
salloc.o: $(CDIR)/assert.h
salloc.o: $(CDIR)/data.h
salloc.o: $(CDIR)/extern.h
salloc.o: $(CDIR)/param.h
salloc.o: $(CDIR)/result.h
salloc.o: tables.h
salloc.o: $(CDIR)/types.h
state.o: $(CDIR)/assert.h
state.o: $(CDIR)/data.h
state.o: $(CDIR)/extern.h
state.o: $(CDIR)/param.h
state.o: $(CDIR)/result.h
state.o: $(CDIR)/state.h
state.o: tables.h
state.o: $(CDIR)/types.h
subr.o: $(CDIR)/assert.h
subr.o: $(CDIR)/data.h
subr.o: $(CDIR)/extern.h
subr.o: $(CDIR)/param.h
subr.o: $(CDIR)/result.h
subr.o: tables.h
subr.o: $(CDIR)/types.h
var.o: $(CDIR)/data.h
var.o: $(CDIR)/param.h
var.o: $(CDIR)/result.h
var.o: tables.h
var.o: $(CDIR)/types.h

View file

@ -1,20 +0,0 @@
EMHOME=../../..
CFLAGS=-O -I$(EMHOME)/h
dl: dl.o
$(CC) -o dl dl.o $(EMHOME)/modules/lib/libobject.a
install: dl
../../install dl
cmp: dl
-../../compare dl
opr:
make pr | opr
pr:
@pr `pwd`/dl.c
clean:
-rm -f *.o *.old dl

View file

@ -1,21 +0,0 @@
all:
install:
../../install head_em.s head_em
../../install libem_s.a tail_em
../../install end.s end_em
cmp:
-../../compare head_em.s head_em
-../../compare libem_s.a tail_em
-../../compare end.s end_em
opr:
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libem_s.a | pr -h `pwd`/libem_s.a
@pr `pwd`/end.s
clean:

View file

@ -1,17 +0,0 @@
.define endtext, enddata, endbss, end
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
.sect .text
endtext:
.align 2
.sect .data
.align 2
enddata:
.sect .bss
.align 2
endbss:
end:

View file

@ -1,233 +0,0 @@
.define WRCH, RDCH, Earray, Erange, Eset
.define Eiovfl, Eidivz, Eiund, Econv
.define Estack, Eheap, Eillins, Eoddz
.define Ecase , Ebadmon, OSBYTE, MON
.define Ebadlin, Ebadgto, BASE, NBYTES
.define hol0, IGNMASK, ADDR, PROGNAME
.define LB, LBl, SP, HP, ERRPROC, UNSIGN
.define Ytmp, EXG, ARTH, RETURN, SIGN
.define RETSIZE, TRAPVAL, STACK, BRANCH
.define start, Push, Pop, STACKTh, STACKTl
.define F_DUM
.sect .zero
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! DEFINITIONS
! The next three definitions are special for the
! BBC microcomputer
WRCH = 0x0FFEE ! This subroutine writes the character in
! register A to the screen
RDCH = 0x0FFE0 ! This subroutine returns a character in
! register A from the current input stream
OSBYTE = 0x0FFF4 ! This subroutine performs miscelaneous
! operating system calls
F_DUM = 0 ! Dummy floating point constant
! Here are the error numbers
Earray = 0
Erange = 1
Eset = 2
Eiovfl = 3
Eidivz = 6
Eiund = 8
Econv = 10
Estack = 16
Eheap = 17
Eillins = 18
Eoddz = 19
Ecase = 20
Ebadmon = 25
Ebadlin = 26
Ebadgto = 27
MON = 0x78D0
BASE = 240 ! This is the offset from the localbase
! for the second localbase
STACKTh = 0x78 ! This is the top of the stack
STACKTl = 0x0D0
! Some zeropage declarations
.sect .zero
RES: .space 76 ! special for the operating system
hol0: .space 16 ! the hol0 block
IGNMASK: .space 2 ! can hold the ingnore mask
ADDR: .space 4 ! used for indirect addressing
LB: .space 2 ! the localbase
LBl: .space 2 ! the second localbase (localbase-BASE)
SP: .space 3 ! the stackpointer (real_stack)
HP: .space 2 ! the heap pointer
BRANCH: .space 2 ! used for branch instructions
ERRPROC: .space 2 ! can hold the address of the error handler
Ytmp: .space 1 ! used for intermediate storage in Y
EXG: .space 2 ! used by the exchange subroutine Exg
ARTH: .space 16 ! used for arithmetic
NBYTES: .space 2 ! containes the number of bytes for a block move
RETURN: .space 4 ! the return area
RETSIZE: .space 1 ! the size of the object returned
SIGN: .space 1 ! the sign of the calculation
UNSIGN : .space 1 ! is it signed or unsigned arithmetic
TRAPVAL: .space 1 ! intermediate storage of the error number
STACK: .space 1 ! contains the hardware stackpointer on
! entering _m_a_i_n for a neat return
RESERVED: .space 112 ! used by the operating system
.sect .text
.base 0x0E02 ! where to start in the BBC micro
! GENERAL PURPOSE ROUTINES
start:
tsx
stx STACK ! save stackpointer for exit and error
! The following three operating system calls are only
! for the BBC microcomputer
lda #2
ldx #0
ldy #0
jsr OSBYTE ! return control to the keyboard
lda #15
ldx #0
ldy #0
jsr OSBYTE ! clear all internal buffers
lda #3
ldx #5
ldy #0
jsr OSBYTE ! output to screen and RS423
lda #STACKTl
sta LB ! set localbase (lowbyte)
sta SP+2
lda #0
sta SP ! set stackpointer (lowbyte)
sta ERRPROC ! set start address for error handler (lowbyte)
sta ERRPROC+1 ! set start address for error handler (highbyte)
sta hol0 ! set the line number (lowbyte)
sta hol0+1 ! set the line number (highbyte)
lda #STACKTh
sta SP+1 ! set the stacpointer (highbyte)
sta LB+1 ! set the localbase (highbyte)
lda #[endbss].l
sta HP ! set the heap pointer (lowbyte)
lda #[endbss].h
sta HP+1 ! set the heap pointer (highbyte)
lda #[PROGNAME].l
sta hol0+4 ! set fake programname pointer (lowbyte)
lda #[PROGNAME].h
sta hol0+5 ! set fake programname pointer (highbyte)
lda #[beginbss].l
sta ADDR ! start address of bss block (lowbyte)
lda #[beginbss].h
sta ADDR+1 ! start address of bss block (highbyte)
ldy #0
lda #0
4: ldx #[endbss].h ! clear bss block
cpx ADDR+1
bcc 1f ! end of bss block reached
bne 2f
ldx #[endbss].l
cpx ADDR
bcc 1f ! end of bss block reached
2: sta (ADDR),y
inc ADDR
bne 3f
inc ADDR+1
3: jmp 4b
1: lda #0
tax
jsr Push ! push fake envelope pointer
lda #[PROGNAME].h
ldx #[PROGNAME].l
jsr Push ! push argv[0]
lda #0
ldx #1
jsr Push ! push argc
jsr __m_a_i_n ! start the real program
lda #0x0FF
jsr WRCH ! send end of program to R423
lda #3
ldx #0
jsr OSBYTE ! send output to screen only
lda #2
ldx #1
jsr OSBYTE ! input only from R423
rts
! The subroutine Push pushes the registerpair AX onto the stack.
Push:
sty Ytmp ! save Y
ldy SP+2
bne 1f ! lowbyte of stackpointer <> 0
dec SP+1 ! decrement highbyte of stackpointer
1: dey
dey ! decrement lowbyte of stackpointer
sty SP+2 ! save lowbyte of stackpointer
pha ! save A
txa
sta (SP),y ! push X onto the stack
iny
pla ! get A
sta (SP),y ! push A onto the stack
ldy Ytmp ! restore Y
rts
! The subroutine Pop pops the registerpair AX from the stack.
Pop:
sty Ytmp ! save Y
ldy SP+2
lda (SP),y ! pop X from the stack
tax
iny
lda (SP),y ! pop A from the stack
iny
bne 1f ! lowbyte of stackpointer <> 0
inc SP+1 ! increment highbyte of stackpointer
1: sty SP+2 ! store lowbyte of stackpointer
pha ! save A
pla ! get A
ldy Ytmp ! restore Y
rts
.sect .data
PROGNAME: ! for initialising the programname pointer
.asciz "program"
.sect .bss
beginbss:

View file

@ -1,40 +0,0 @@
.define Mon
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This subroutine performs some monitor calls.
! The exit call just resets the hardware_stackpointer so
! this routine will return to the operating system.
! The close call just returns a zero.
! The ioctl call just pops its arguments and returns a zero.
! The write routine is a real one.
Mon:
cpx #1
bne 1f ! exit
ldx STACK ! load stackpointer
dex
dex ! adjust stackpointer
txs ! set stackpointer
rts
1: cpx #4
bne 1f
jmp Mwrite
1: cpx #6 ! facked
bne 1f ! close
lda #0
tax ! return zero
rts
1: cpx #54
jsr Pop ! pop first argument (fildes)
jsr Pop ! pop second argument (request)
jsr Pop ! pop third argument (argp)
lda #0
tax ! return zero
rts

View file

@ -1,27 +0,0 @@
.define Mprint
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This subroutine prints a zero terminated ascii string.
! The registerpair AX contains the start of the string.
! The subroutine WRCH is a special routine on the BBC microcomputer
! which prints the character in A to the screen.
! The subroutine WRCH is a special one provided by the BBC
! microcomputer.
Mprint:
stx ADDR ! start address of string (lowbyte)
sta ADDR+1 ! start address of string (highbyte)
ldy #0
1: lda (ADDR),y ! get ascii character
beq 2f
jsr WRCH ! put it on the screen
iny
bne 1b
2: rts

View file

@ -1,32 +0,0 @@
.define Printhex
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This subroutine print the contents of register A to the screen
! in hexadecimal form.
! The subroutine WRCH is a special one provided by the BBC
! microcomputer.
Printhex:
pha ! save A
lsr a
lsr a
lsr a
lsr a ! get four high bits
jsr 1f
pla ! restore A
and #0x0F ! get four low bits
jsr 1f
rts
1: sed ! print in hex
clc
adc #0x90
adc #0x40
cld
jmp WRCH

View file

@ -1,49 +0,0 @@
.define Printstack
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This a special subroutine which prints some things to the
! monitorscreen for debugging.
Printstack:
ldy #0
2: lda (hol0+4),y
beq 1f
jsr WRCH ! print filename
iny
jmp 2b
1: lda #32
jsr WRCH ! print a space
lda hol0+1
jsr Printhex ! print line number (highbyte)
lda hol0
jsr Printhex ! print line number (lowbyte)
lda #32
jsr WRCH ! print a space
lda SP+1
jsr Printhex ! print stackpointer (highbyte)
lda SP+2
jsr Printhex ! print stackpointer (lowbyte)
lda #32
jsr WRCH ! print a space
lda LB+1
jsr Printhex ! print real localbase (highbyte)
lda LB
jsr Printhex ! print real localbase (lowbyte)
lda #32
jsr WRCH ! print a space
lda LBl+1
jsr Printhex ! print second lowerbase (highbyte)
lda LBl
jsr Printhex ! print second lowerbase (lowbyte)
lda #10
jsr WRCH ! print a newline
lda #13
jsr WRCH ! print a carriagereturn
rts

View file

@ -1,37 +0,0 @@
.define Mread
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This subroutine reads characters from the standard input.
! It ignores the filedes.
! It reads atmost 255 characters. So the runtime system must
! provide a way of dealing with this.
! The subroutine RDCH is a special one provided by the BBC
! microcomputer.
Mread:
jsr Pop ! ignore filedescriptor
jsr Pop ! bufptr
stx ADDR ! address of character buffer (lowbyte)
sta ADDR+1 ! address of character buffer (highbyte)
jsr Pop ! number of characters
ldy #0 ! <= 255
inx
1: jsr RDCH ! read a character from the current inputstream
bcs 8f
sta (ADDR),y
iny
dex
bne 1b
8: tya
tax
lda #0
jsr Push ! number of characters red.
tax ! report a succesfull read.
rts

View file

@ -1,39 +0,0 @@
.define Mwrite
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! This subroutine performs the monitor call write.
! Writing is always done to standardoutput.
! A zero is returned on exit.
! The subroutine WRCH is a special routine of the BBC
! microcomputer.
Mwrite:
jsr Pop ! get fildes
jsr Pop ! get address of characterbuffer
stx ADDR ! bufferaddress (lowbyte)
sta ADDR+1 ! bufferaddress (highbyte)
jsr Pop ! number of characters to be writen.
ldy #0
1: lda (ADDR),y
cmp #10
bne 2f
pha
lda #13
jsr WRCH
pla
2: jsr WRCH
iny
dex
bne 1b
tya
tax
lda #0
jsr Push
tax
rts

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,22 +0,0 @@
EMHOME=../../..
OBJLIB=$(EMHOME)/modules/lib/libobject.a
head: cv
cv: cv.c
$(CC) $(CFLAGS) $(LDFLAGS) -I$(EMHOME)/h -o cv cv.c $(OBJLIB)
install: head
../../install cv
cmp: head
../../compare cv
clean:
rm -f *.o
pr:
@pr `pwd`/Makefile `pwd`/cv.c
opr:
make pr | opr

View file

@ -1,21 +0,0 @@
all:
install:
../../install head_em.s head_em
../../install libem_s.a tail_em
../../install end.s end_em
cmp:
-../../compare head_em.s head_em
-../../compare libem_s.a tail_em
-../../compare end.s end_em
clean:
opr :
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libem_s.a | pr -h `pwd`/libem_s.a
@pr `pwd`/end.s

View file

@ -1,16 +0,0 @@
.define _endtext,_enddata,_endbss
.sect .text
.align 4
.sect .rom
.align 4
.sect .data
.align 4
.sect .bss
.align 4
.sect .text
_endtext:
.sect .data
_enddata:
.sect .bss
_endbss:

View file

@ -1,178 +0,0 @@
! head_em.s
.define begdat,begbss,hol0,argv,envp,_RegHp,_incptflag
.define _Lineno,_Filna,_IgnoreMask,_TrpReg
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
.base 0x8000
ADR R0,begbss
ADR R1,_endbss
MOV R2,#0
ADR R3,_incptflag
STR R2,[R3]
1:
STR R2,[R0],#4
CMP R0,R1
BLT 1B
! the next 2 lines are OS specific:
SWI 16 ! OS_Getenv
SUB R12, R1, #8 ! Get end of ram
! R0 points to command string
! (argv,argc) code for C
! or Pascal file names
MOV R9,R0 ! save pt in R0
MOV R8,#0 ! string length
len:
LDR.B R7,[R9],#1
CMP R7,#0
ADD.NE R8,R8,#1
BNE len
MOV R7,R8 ! save len in R7
! round up to multiple of 4
ADD R8,R8,#4
MVN R6, #3 !FFFFFFFC
AND R8,R8,R6
! make room on stack
SUB R12,R12,R8 ! word aligned
! now determine argc
! OS intercepts blank lines, so
! there must be at least one arg
MOV R9,R0
MOV R6,#0 ! holds argc
MOV R5,#0 ! char count
loop1:
CMP R5,R7
BGT next1
LDR.B R4,[R9],#1
ADD R5,R5,#1
CMP R4,#32
BEQ loop1 !skip spaces
ADD R6,R6,#1 ! new arg
nospace1:
CMP R5,R7
BGT next1
LDR.B R4,[R9],#1
ADD R5,R5,#1
CMP R4,#32
BNE nospace1
CMP R5,R7
BCC loop1
! BEQ loop1
next1:
! store argc
ADR R5,argc
STR R6,[R5]
! copy the string
! onto the stack
MOV R9,R0 !source
MOV R2,R12 !dest
MOV R3,R7 !#chars
loop2:
LDR.B R4,[R9],#1
STR.B R4,[R2],#1
SUB.S R3,R3,#1
BNE loop2
MOV R4, #0 ! zero terminator
STR.B R4,[R2]
! create space on the stack for
! the pointers to individual args
MOV R11, R12 ! string pt
MOV R8,R6,LSL #2
SUB R12,R12,R8
! save pointer to argv[0]
ADR R1,argv
STR R12,[R1]
! determine argv[0] .. argv[argc-1]
! and store on stack
! R11 = start of string
! R7 = string lenth
! R12 = stack pointer
! R6 = argc
MOV R9, #0 !char count
MOV R8, #0 !arg count
MOV R5,R11
loop3:
CMP R9,R7
BGT next2
LDR.B R4,[R5],#1
ADD R9,R9,#1
CMP R4,#32
BEQ loop3
CMP R9,R7
BGT next2
SUB R4,R5,#1 !compensate for incr
STR R4,[R12,R8,LSL #2]
ADD R8,R8,#1
nospace2:
CMP R9,R7
BGT next2
LDR.B R4,[R5],#1
ADD R9,R9,#1
CMP R4,#32
BNE nospace2
CMP R9,R7
BCC loop3
! BEQ loop3
! finally, replace spaces by 0
next2:
MOV R5,R11 !string ptr
MOV R6,R7 !string length
MOV R3,#0
loop4:
CMP R6,#0
BEQ next3
LDR.B R4,[R5]
CMP R4,#32
STR.EQ.B R3,[R5]
ADD R5,R5,#1
SUB R6,R6,#1
BAL loop4
next3:
ADR R11, envp
STMFD R12<,{R11}
ADR R11,argv
LDR R11,[R11]
STMFD R12<,{R11}
ADR R11, argc
LDR R11,[R11]
STMFD R12<,{R11}
BAL.L __m_a_i_n
MOV R11,#0
STMFD R12<,{R11}
MOV R11,#1
STMFD R12<,{R11}
BAL.L _EmMon
.sect .bss
begbss:
.sect .data
begdat:
hol0:
.data4 0
.data4 0
argv:
.data4 0
envp:
.data4 0
argc:
.data4 0
2:
.asciz 'PROGRAM'
.align
_RegHp:
.data4 _endbss
_Lineno:
.data4 0
_Filna:
.data4 0
_IgnoreMask:
.data4 0
_TrpReg:
.data4 0
_incptflag:
.data4 0

View file

@ -1,22 +0,0 @@
EMHOME=../../..
SUF=so
MAKEFILE=$(EMHOME)/mach/proto/fp/Makefile
MACHDEF="MACH=arm" "CFLAGS=-DUSE_DIVIDE" "SUF=$(SUF)" "ASAR=arch"
all:
make -f $(MAKEFILE) $(MACHDEF) all
install:
make -f $(MAKEFILE) $(MACHDEF) install
cmp: all
-../../compare FP_$(MACH).a tail_fp
clean:
make -f $(MAKEFILE) $(MACHDEF) clean
opr:
make pr | opr
pr:
@pr Makefile

View file

@ -1,15 +0,0 @@
all:
install:
../../install libros_s.a tail_ros
cmp:
-../../compare libros_s.a tail_ros
clean:
opr :
make pr | opr
pr:
@arch pv libros_s.a | pr -h `pwd`/libros_s.a

View file

@ -1,197 +0,0 @@
# $Header$
EMHOME=../../..
#preprocessor flags for table
TABLEFLAGS=
#cgg options
CGGFLAGS=
PREFLAGS=-I$(EMHOME)/h -I. -I$(EMHOME)/mach -I$(EMHOME)/modules/h -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=$(PFLAGS)
LINTOPTS=-bx
LIBS=$(EMHOME)/lib/em_data.a $(EMHOME)/modules/lib/libflt.a
CDIR=$(EMHOME)/mach/proto/ncg
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
$(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
cg: tables.o $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) tables.o $(LIBS) -o cg
tables.o: tables.c
$(CC) -c $(PREFLAGS) -I$(CDIR) tables.c
codegen.o: $(CDIR)/codegen.c
$(CC) -c $(CFLAGS) $(CDIR)/codegen.c
compute.o: $(CDIR)/compute.c
$(CC) -c $(CFLAGS) $(CDIR)/compute.c
equiv.o: $(CDIR)/equiv.c
$(CC) -c $(CFLAGS) $(CDIR)/equiv.c
fillem.o: $(CDIR)/fillem.c
$(CC) -c $(CFLAGS) $(CDIR)/fillem.c
gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
label.o: $(CDIR)/label.c
$(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
$(CC) -c $(CFLAGS) $(CDIR)/move.c
nextem.o: $(CDIR)/nextem.c
$(CC) -c $(CFLAGS) $(CDIR)/nextem.c
reg.o: $(CDIR)/reg.c
$(CC) -c $(CFLAGS) $(CDIR)/reg.c
regvar.o: $(CDIR)/regvar.c
$(CC) -c $(CFLAGS) $(CDIR)/regvar.c
salloc.o: $(CDIR)/salloc.c
$(CC) -c $(CFLAGS) $(CDIR)/salloc.c
state.o: $(CDIR)/state.c
$(CC) -c $(CFLAGS) $(CDIR)/state.c
subr.o: $(CDIR)/subr.c
$(CC) -c $(CFLAGS) $(CDIR)/subr.c
var.o: $(CDIR)/var.c
$(CC) -c $(CFLAGS) $(CDIR)/var.c
install: all
$(EMHOME)/mach/install cg
cmp: all
-$(EMHOME)/mach/compare cg
tables.c: table $(CGG)
$(CPP) $(TABLEFLAGS) table | $(CGG) $(CGGFLAGS)
-cmp tables.h tables.H || cp tables.H tables.h
lint: $(CFILES) tables.c
lint $(LINTOPTS) $(PREFLAGS) -I$(CDIR) $(CFILES) tables.c
clean:
rm -f *.o tables.c tables.h debug.out cg tables.H
distr: tables.c
rm -f tables1.c tables1.h
cp tables.c tables1.c
cp tables.h tables1.h
chmod -w tables1.[ch]
codegen.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
codegen.o: $(CDIR)/data.h
codegen.o: $(CDIR)/equiv.h
codegen.o: $(CDIR)/extern.h
codegen.o: $(CDIR)/param.h
codegen.o: $(CDIR)/result.h
codegen.o: $(CDIR)/state.h
codegen.o: tables.h
codegen.o: $(CDIR)/types.h
compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
compute.o: $(CDIR)/types.h
equiv.o: $(CDIR)/assert.h
equiv.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
equiv.o: $(CDIR)/equiv.h
equiv.o: $(CDIR)/extern.h
equiv.o: $(CDIR)/param.h
equiv.o: $(CDIR)/result.h
equiv.o: tables.h
equiv.o: $(CDIR)/types.h
fillem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
fillem.o: $(CDIR)/data.h
fillem.o: $(CDIR)/extern.h
fillem.o: mach.c
fillem.o: mach.h
fillem.o: $(CDIR)/param.h
fillem.o: $(CDIR)/regvar.h
fillem.o: $(CDIR)/result.h
fillem.o: tables.h
fillem.o: $(CDIR)/types.h
gencode.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
gencode.o: $(CDIR)/data.h
gencode.o: $(CDIR)/extern.h
gencode.o: $(CDIR)/param.h
gencode.o: $(CDIR)/result.h
gencode.o: tables.h
gencode.o: $(CDIR)/types.h
glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
label.o: $(CDIR)/label.h
label.o: $(CDIR)/param.h
label.o: tables.h
label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
move.o: $(CDIR)/data.h
move.o: $(CDIR)/extern.h
move.o: $(CDIR)/param.h
move.o: $(CDIR)/result.h
move.o: tables.h
move.o: $(CDIR)/types.h
nextem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
nextem.o: $(CDIR)/data.h
nextem.o: $(CDIR)/extern.h
nextem.o: $(CDIR)/param.h
nextem.o: $(CDIR)/result.h
nextem.o: tables.h
nextem.o: $(CDIR)/types.h
reg.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
reg.o: $(CDIR)/data.h
reg.o: $(CDIR)/extern.h
reg.o: $(CDIR)/param.h
reg.o: $(CDIR)/result.h
reg.o: tables.h
reg.o: $(CDIR)/types.h
regvar.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
regvar.o: $(CDIR)/data.h
regvar.o: $(CDIR)/extern.h
regvar.o: $(CDIR)/param.h
regvar.o: $(CDIR)/regvar.h
regvar.o: $(CDIR)/result.h
regvar.o: tables.h
regvar.o: $(CDIR)/types.h
salloc.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
salloc.o: $(CDIR)/data.h
salloc.o: $(CDIR)/extern.h
salloc.o: $(CDIR)/param.h
salloc.o: $(CDIR)/result.h
salloc.o: tables.h
salloc.o: $(CDIR)/types.h
state.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
state.o: $(CDIR)/data.h
state.o: $(CDIR)/extern.h
state.o: $(CDIR)/param.h
state.o: $(CDIR)/result.h
state.o: $(CDIR)/state.h
state.o: tables.h
state.o: $(CDIR)/types.h
subr.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
subr.o: $(CDIR)/data.h
subr.o: $(CDIR)/extern.h
subr.o: $(CDIR)/param.h
subr.o: $(CDIR)/result.h
subr.o: tables.h
subr.o: $(CDIR)/types.h
var.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
var.o: $(CDIR)/param.h
var.o: $(CDIR)/result.h
var.o: tables.h
var.o: $(CDIR)/types.h

View file

@ -1,42 +0,0 @@
EMHOME=../../..
LIBS=$(EMHOME)/modules/lib/libstring.a
PREFLAGS=-I.
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O -DNDEBUG
LDFLAGS=$(PFLAGS)
LINTOPTS=-bx
CDIR=$(EMHOME)/mach/proto/top
CFILES=$(CDIR)/top.c $(CDIR)/queue.c
OFILES=top.o queue.o
all: gen.c
make top
top: $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) $(LIBS) -o top
top.o: $(CDIR)/top.c gen.c
$(CC) -c $(CFLAGS) $(CDIR)/top.c
queue.o: $(CDIR)/queue.c
$(CC) -c $(CFLAGS) $(CDIR)/queue.c
install: all
$(EMHOME)/mach/install top
cmp: all
-$(EMHOME)/mach/compare top
gen.c: table
$(EMHOME)/lib/topgen table
lint: $(CFILES)
lint $(LINTOPTS) $(PREFLAGS) $(CFILES)
clean:
rm -f *.o gen.c gen.h top
top.o: gen.h
top.o: $(CDIR)/top.h
top.o: $(CDIR)/queue.h
queue.o: $(CDIR)/queue.h

View file

@ -1,7 +0,0 @@
case $# in
1) DEST="$1" ;;
2) DEST="$2" ;;
*) echo $0 [source] destination ;;
esac
MACH=`(cd .. ; basename \`pwd\`)`
cmp "$1" ../../../lib/${MACH}/$DEST

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,26 +0,0 @@
EMHOME = ../../..
CEG = $(EMHOME)/lib/ceg/util
OBJ = obj
all:
make -f $(CEG)/make_asobj "OBJ="$(OBJ)
install:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) install
cmp:
-make -f $(CEG)/make_asobj "OBJ="$(OBJ) cmp
pr:
@pr Makefile EM_table mach.h mach.c as_table as.h as.c
opr:
make pr | opr
# total cleanup
clean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) clean
# only remove ce, ceg, and back directories
dclean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) dclean

View file

@ -1,25 +0,0 @@
EMHOME = ../../..
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
INCLUDE = $(EMHOME)/h
CFLAGS = -I. -I$(INCLUDE) -O
TARGETS = cv
all: $(TARGETS)
install: all
../../install cv
cmp: all
-../../compare cv
cv: cv.o
$(CC) $(LDFLAGS) -o cv cv.o $(LIBOBJ)
clean:
rm -f $(TARGETS) *.o nohup.out Out
pr:
@pr Makefile cv.c
opr:
make pr | opr

View file

@ -1,30 +0,0 @@
# $Header$
MACH=i386
all: libem_o.a end.o
install: all
../../install libem_o.a tail_em
../../install end.o end_em
cmp: all
-../../compare libem_o.a tail_em
-../../compare end.o end_em
end.o: end.s
$(MACH) -I../../../h -O -c end.s
libem_o.a: libem_s.a
ASAR=aal ; export ASAR ;\
march . libem_o.a
clean:
rm -f *.o libem_o.a
opr :
make pr | opr
pr:
@arch pv libem_s.a | pr -h `pwd`/libem_s.a
@pr `pwd`/end.s

View file

@ -1,4 +0,0 @@
if i386 -c $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,17 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define endtext,enddata,endbss
.define _end,_etext,_edata
! $Header$
.sect .text
endtext:
_etext:
.align 4
.sect .data
enddata:
_edata:
.align 4
.sect .endsect
_end:
endbss:
.align 4

View file

@ -1,38 +0,0 @@
.define .adf4, .adf8, .sbf4, .sbf8, .mlf4, .mlf8, .dvf4, .dvf8
.define .ngf4, .ngf8, .fif4, .fif8, .fef4, .fef8
.define .cif4, .cif8, .cuf4, .cuf8, .cfi, .cfu, .cff4, .cff8
.define .cmf4, .cmf8
.sect .text
.sect .rom
.sect .data
.sect .bss
! $Header$
.sect .text
.adf4:
.adf8:
.sbf4:
.sbf8:
.mlf4:
.mlf8:
.dvf4:
.dvf8:
.ngf4:
.ngf8:
.fif4:
.fif8:
.fef4:
.fef8:
.cif4:
.cif8:
.cuf4:
.cuf8:
.cfi:
.cfu:
.cff4:
.cff8:
.cmf4:
.cmf8:
mov eax,18 ! illegal instruction EILLINS
jmp .trp

View file

@ -1,17 +0,0 @@
.define .sdret, .dsret, .sret, .dret, .cret
.sect .text
.dsret:
pop edi
.sret:
pop esi
.cret:
mov esp,ebp
pop ebp
ret
.sdret:
pop esi
.dret:
pop edi
jmp .cret

View file

@ -1,5 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define .stop
.stop:
jmp __exit

View file

@ -1,22 +0,0 @@
EMHOME=../../..
SUF=o
MAKEFILE=$(EMHOME)/mach/proto/fp/Makefile
MACHDEF="MACH=i386" "CFLAGS=-DUSE_DIVIDE" "SUF=$(SUF)" "ASAR=aal"
all:
make -f $(MAKEFILE) $(MACHDEF) all
install:
make -f $(MAKEFILE) $(MACHDEF) install
cmp: all
-../../compare FP_$(MACH).a tail_fp
clean:
make -f $(MAKEFILE) $(MACHDEF) clean
opr:
make pr | opr
pr:
@pr Makefile

View file

@ -1,28 +0,0 @@
# $Header$
MACH=i386
all: libmon_o.a head_em.o
install: all
../../install libmon_o.a tail_mon
../../install head_em.o head_em
cmp: all
-../../compare libmon_o.a tail_mon
-../../compare head_em.o head_em
libmon_o.a: libmon_s.a
ASAR=aal ; export ASAR ;\
march . libmon_o.a
head_em.o: head_em.s
$(MACH) -O -c head_em.s
clean:
rm -f *.o libmon_o.a
opr :
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libmon_s.a | pr -h `pwd`/libmon_s.a

View file

@ -1,12 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define __pipe
.sect .text
__pipe:
mov ax,42
callf 0x7:0x0
jae 1f
jmp cerror
1:
shl dx,0x10
or eax,edx
ret

View file

@ -1,6 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define __profil
.sect .text
__profil:
mov ax,44
jmp syscal

View file

@ -1,6 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define __stime
.sect .text
__stime:
mov ax,25
jmp sysx

View file

@ -1,6 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define __time
.sect .text
__time:
mov ax,13
jmp syscal

View file

@ -1,12 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define __wait
.sect .text
__wait:
mov ax,7
callf 0x7:0x0
jb 1f
shl dx,0x10
or eax,edx
ret
1:
jmp cerror

View file

@ -1,4 +0,0 @@
if i386 -c -L $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,197 +0,0 @@
# $Header$
EMHOME=../../..
#preprocessor flags for table
TABLEFLAGS=
#cgg options
CGGFLAGS=
PREFLAGS=-I$(EMHOME)/h -I. -I$(EMHOME)/mach -I$(EMHOME)/modules/h -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=$(PFLAGS)
LINTOPTS=-bx
LIBS=$(EMHOME)/lib/em_data.a $(EMHOME)/modules/lib/libflt.a
CDIR=$(EMHOME)/mach/proto/ncg
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
$(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
cg: tables.o $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) tables.o $(LIBS) -o cg
tables.o: tables.c
$(CC) -c $(PREFLAGS) -I$(CDIR) tables.c
codegen.o: $(CDIR)/codegen.c
$(CC) -c $(CFLAGS) $(CDIR)/codegen.c
compute.o: $(CDIR)/compute.c
$(CC) -c $(CFLAGS) $(CDIR)/compute.c
equiv.o: $(CDIR)/equiv.c
$(CC) -c $(CFLAGS) $(CDIR)/equiv.c
fillem.o: $(CDIR)/fillem.c
$(CC) -c $(CFLAGS) $(CDIR)/fillem.c
gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
label.o: $(CDIR)/label.c
$(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
$(CC) -c $(CFLAGS) $(CDIR)/move.c
nextem.o: $(CDIR)/nextem.c
$(CC) -c $(CFLAGS) $(CDIR)/nextem.c
reg.o: $(CDIR)/reg.c
$(CC) -c $(CFLAGS) $(CDIR)/reg.c
regvar.o: $(CDIR)/regvar.c
$(CC) -c $(CFLAGS) $(CDIR)/regvar.c
salloc.o: $(CDIR)/salloc.c
$(CC) -c $(CFLAGS) $(CDIR)/salloc.c
state.o: $(CDIR)/state.c
$(CC) -c $(CFLAGS) $(CDIR)/state.c
subr.o: $(CDIR)/subr.c
$(CC) -c $(CFLAGS) $(CDIR)/subr.c
var.o: $(CDIR)/var.c
$(CC) -c $(CFLAGS) $(CDIR)/var.c
install: all
$(EMHOME)/mach/install cg
cmp: all
-$(EMHOME)/mach/compare cg
tables.c: table $(CGG)
$(CPP) $(TABLEFLAGS) table | $(CGG) $(CGGFLAGS)
-cmp tables.h tables.H || cp tables.H tables.h
lint: $(CFILES) tables.c
lint $(LINTOPTS) $(PREFLAGS) -I$(CDIR) $(CFILES) tables.c
clean:
rm -f *.o tables.c tables.h debug.out cg tables.H
distr: tables.c
rm -f tables1.c tables1.h
cp tables.c tables1.c
cp tables.h tables1.h
chmod -w tables1.[ch]
codegen.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
codegen.o: $(CDIR)/data.h
codegen.o: $(CDIR)/equiv.h
codegen.o: $(CDIR)/extern.h
codegen.o: $(CDIR)/param.h
codegen.o: $(CDIR)/result.h
codegen.o: $(CDIR)/state.h
codegen.o: tables.h
codegen.o: $(CDIR)/types.h
compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
compute.o: $(CDIR)/types.h
equiv.o: $(CDIR)/assert.h
equiv.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
equiv.o: $(CDIR)/equiv.h
equiv.o: $(CDIR)/extern.h
equiv.o: $(CDIR)/param.h
equiv.o: $(CDIR)/result.h
equiv.o: tables.h
equiv.o: $(CDIR)/types.h
fillem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
fillem.o: $(CDIR)/data.h
fillem.o: $(CDIR)/extern.h
fillem.o: mach.c
fillem.o: mach.h
fillem.o: $(CDIR)/param.h
fillem.o: $(CDIR)/regvar.h
fillem.o: $(CDIR)/result.h
fillem.o: tables.h
fillem.o: $(CDIR)/types.h
gencode.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
gencode.o: $(CDIR)/data.h
gencode.o: $(CDIR)/extern.h
gencode.o: $(CDIR)/param.h
gencode.o: $(CDIR)/result.h
gencode.o: tables.h
gencode.o: $(CDIR)/types.h
glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
label.o: $(CDIR)/label.h
label.o: $(CDIR)/param.h
label.o: tables.h
label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
move.o: $(CDIR)/data.h
move.o: $(CDIR)/extern.h
move.o: $(CDIR)/param.h
move.o: $(CDIR)/result.h
move.o: tables.h
move.o: $(CDIR)/types.h
nextem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
nextem.o: $(CDIR)/data.h
nextem.o: $(CDIR)/extern.h
nextem.o: $(CDIR)/param.h
nextem.o: $(CDIR)/result.h
nextem.o: tables.h
nextem.o: $(CDIR)/types.h
reg.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
reg.o: $(CDIR)/data.h
reg.o: $(CDIR)/extern.h
reg.o: $(CDIR)/param.h
reg.o: $(CDIR)/result.h
reg.o: tables.h
reg.o: $(CDIR)/types.h
regvar.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
regvar.o: $(CDIR)/data.h
regvar.o: $(CDIR)/extern.h
regvar.o: $(CDIR)/param.h
regvar.o: $(CDIR)/regvar.h
regvar.o: $(CDIR)/result.h
regvar.o: tables.h
regvar.o: $(CDIR)/types.h
salloc.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
salloc.o: $(CDIR)/data.h
salloc.o: $(CDIR)/extern.h
salloc.o: $(CDIR)/param.h
salloc.o: $(CDIR)/result.h
salloc.o: tables.h
salloc.o: $(CDIR)/types.h
state.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
state.o: $(CDIR)/data.h
state.o: $(CDIR)/extern.h
state.o: $(CDIR)/param.h
state.o: $(CDIR)/result.h
state.o: $(CDIR)/state.h
state.o: tables.h
state.o: $(CDIR)/types.h
subr.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
subr.o: $(CDIR)/data.h
subr.o: $(CDIR)/extern.h
subr.o: $(CDIR)/param.h
subr.o: $(CDIR)/result.h
subr.o: tables.h
subr.o: $(CDIR)/types.h
var.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
var.o: $(CDIR)/param.h
var.o: $(CDIR)/result.h
var.o: tables.h
var.o: $(CDIR)/types.h

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,25 +0,0 @@
EMHOME=../../..
OBJLIB=$(EMHOME)/modules/lib/libobject.a
head: mccpm nascom
mccpm: mccpm.c
$(CC) -I$(EMHOME)/h -o mccpm mccpm.c $(OBJLIB)
nascom: nascom.c
$(CC) -I$(EMHOME)/h -o nascom nascom.c $(OBJLIB)
install: head
@echo Nothing is installed
cmp: head
@echo Nothing is compared
clean:
rm -f *.o
pr:
@pr `pwd`/Makefile `pwd`/mccpm.c `pwd`/nascom.c
opr:
make pr | opr

View file

@ -1,29 +0,0 @@
# $Header$
MACH=i80
all: libem_o.a end.o
install: all
../../install end.o end_em
../../install libem_o.a tail_em
cmp: all
-../../compare end.o end_em
-../../compare libem_o.a tail_em
libem_o.a: libem_s.a
ASAR=aal ; export ASAR ;\
march . libem_o.a
end.o: end.s
$(MACH) -I../../../h -c end.s
clean:
rm -f *.o libem_o.a
opr :
make pr | opr
pr:
@pr `pwd`/end.s
@arch pv libem_s.a | pr -h `pwd`/libem_s.a

View file

@ -1,4 +0,0 @@
if i80 -c $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,17 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define endtext,enddata,endbss
.define _end,_etext,_edata
! $Header$
.sect .text
endtext:
_etext:
.align 2
.sect .data
enddata:
_edata:
.align 2
.sect .endsect
_end:
endbss:
.align 2

View file

@ -1,29 +0,0 @@
# $Header$
MACH=i80
all: libsys_o.a head_em.o
install: all
../../install head_em.o head_em
../../install libsys_o.a tail_sys
cmp: all
-../../compare head_em.o head_em
-../../compare libsys_o.a tail_sys
libsys_o.a: libsys_s.a
ASAR=aal ; export ASAR ;\
march . libsys_o.a
head_em.o: head_em.s
$(MACH) -I../../../h -c head_em.s
clean:
rm -f *.o libsys_o.a
opr :
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libsys_s.a | pr -h `pwd`/libsys_s.a

View file

@ -1,4 +0,0 @@
if i80 -c -L $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,49 +0,0 @@
.define hol0, argv, envp, begbss
.define .ignmask,.reghp,.trapproc,.fra
.define .retadr,.retadr1,.areg,.bcreg,.tmp1
.define block1, block2, block3
.define .stop
.base 0x1000
.text
lxi h,0x1000 ! stack will grow from 0x1000 downwards
sphl
lxi h,begbss ! clear bss
lxi d,endbss-begbss
mvi c,0
2: mov m,c
inx h
dcx d
mov a,e
ora d
jnz 2b
lxi h,envp ! call main
push h
lxi h,argv
push h
lxi h,0
push h
call _m_a_i_n
.stop: jmp 0xfb52
.bss
begbss:
.trapproc: .space 2
.ignmask: .space 2
.data
hol0: .space 8
.reghp: .word endbss
argv: .word 0
envp: .word 0
.retadr: .space 2 ! used to save return address
.retadr1: .space 2 ! reserve
.bcreg: .space 2 ! used to save localbase
.areg: .space 1
.tmp1: .space 2
.fra: .space 8 ! 8 bytes function return area
block1: .space 4 ! used by 32 bits divide and
block2: .space 4 ! multiply routines
block3: .space 4

View file

@ -1,7 +0,0 @@
.define endtext, enddata, endbss
.text
endtext: .align 2
.data
enddata: .align 2
.bss
endbss: .align 2

View file

@ -1,197 +0,0 @@
# $Header$
EMHOME=../../..
#preprocessor flags for table
TABLEFLAGS=
#cgg options
CGGFLAGS=
PREFLAGS=-I$(EMHOME)/h -I. -I$(EMHOME)/mach -I$(EMHOME)/modules/h -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=$(PFLAGS)
LINTOPTS=-bx
LIBS=$(EMHOME)/lib/em_data.a $(EMHOME)/modules/lib/libflt.a
CDIR=$(EMHOME)/mach/proto/ncg
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
$(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
cg: tables.o $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) tables.o $(LIBS) -o cg
tables.o: tables.c
$(CC) -c $(PREFLAGS) -I$(CDIR) tables.c
codegen.o: $(CDIR)/codegen.c
$(CC) -c $(CFLAGS) $(CDIR)/codegen.c
compute.o: $(CDIR)/compute.c
$(CC) -c $(CFLAGS) $(CDIR)/compute.c
equiv.o: $(CDIR)/equiv.c
$(CC) -c $(CFLAGS) $(CDIR)/equiv.c
fillem.o: $(CDIR)/fillem.c
$(CC) -c $(CFLAGS) $(CDIR)/fillem.c
gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
label.o: $(CDIR)/label.c
$(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
$(CC) -c $(CFLAGS) $(CDIR)/move.c
nextem.o: $(CDIR)/nextem.c
$(CC) -c $(CFLAGS) $(CDIR)/nextem.c
reg.o: $(CDIR)/reg.c
$(CC) -c $(CFLAGS) $(CDIR)/reg.c
regvar.o: $(CDIR)/regvar.c
$(CC) -c $(CFLAGS) $(CDIR)/regvar.c
salloc.o: $(CDIR)/salloc.c
$(CC) -c $(CFLAGS) $(CDIR)/salloc.c
state.o: $(CDIR)/state.c
$(CC) -c $(CFLAGS) $(CDIR)/state.c
subr.o: $(CDIR)/subr.c
$(CC) -c $(CFLAGS) $(CDIR)/subr.c
var.o: $(CDIR)/var.c
$(CC) -c $(CFLAGS) $(CDIR)/var.c
install: all
$(EMHOME)/mach/install cg
cmp: all
-$(EMHOME)/mach/compare cg
tables.c: table $(CGG)
$(CPP) $(TABLEFLAGS) table | $(CGG) $(CGGFLAGS)
-cmp tables.h tables.H || cp tables.H tables.h
lint: $(CFILES) tables.c
lint $(LINTOPTS) $(PREFLAGS) -I$(CDIR) $(CFILES) tables.c
clean:
rm -f *.o tables.c tables.h debug.out cg tables.H
distr: tables.c
rm -f tables1.c tables1.h
cp tables.c tables1.c
cp tables.h tables1.h
chmod -w tables1.[ch]
codegen.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
codegen.o: $(CDIR)/data.h
codegen.o: $(CDIR)/equiv.h
codegen.o: $(CDIR)/extern.h
codegen.o: $(CDIR)/param.h
codegen.o: $(CDIR)/result.h
codegen.o: $(CDIR)/state.h
codegen.o: tables.h
codegen.o: $(CDIR)/types.h
compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
compute.o: $(CDIR)/types.h
equiv.o: $(CDIR)/assert.h
equiv.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
equiv.o: $(CDIR)/equiv.h
equiv.o: $(CDIR)/extern.h
equiv.o: $(CDIR)/param.h
equiv.o: $(CDIR)/result.h
equiv.o: tables.h
equiv.o: $(CDIR)/types.h
fillem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
fillem.o: $(CDIR)/data.h
fillem.o: $(CDIR)/extern.h
fillem.o: mach.c
fillem.o: mach.h
fillem.o: $(CDIR)/param.h
fillem.o: $(CDIR)/regvar.h
fillem.o: $(CDIR)/result.h
fillem.o: tables.h
fillem.o: $(CDIR)/types.h
gencode.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
gencode.o: $(CDIR)/data.h
gencode.o: $(CDIR)/extern.h
gencode.o: $(CDIR)/param.h
gencode.o: $(CDIR)/result.h
gencode.o: tables.h
gencode.o: $(CDIR)/types.h
glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
label.o: $(CDIR)/label.h
label.o: $(CDIR)/param.h
label.o: tables.h
label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
move.o: $(CDIR)/data.h
move.o: $(CDIR)/extern.h
move.o: $(CDIR)/param.h
move.o: $(CDIR)/result.h
move.o: tables.h
move.o: $(CDIR)/types.h
nextem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
nextem.o: $(CDIR)/data.h
nextem.o: $(CDIR)/extern.h
nextem.o: $(CDIR)/param.h
nextem.o: $(CDIR)/result.h
nextem.o: tables.h
nextem.o: $(CDIR)/types.h
reg.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
reg.o: $(CDIR)/data.h
reg.o: $(CDIR)/extern.h
reg.o: $(CDIR)/param.h
reg.o: $(CDIR)/result.h
reg.o: tables.h
reg.o: $(CDIR)/types.h
regvar.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
regvar.o: $(CDIR)/data.h
regvar.o: $(CDIR)/extern.h
regvar.o: $(CDIR)/param.h
regvar.o: $(CDIR)/regvar.h
regvar.o: $(CDIR)/result.h
regvar.o: tables.h
regvar.o: $(CDIR)/types.h
salloc.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
salloc.o: $(CDIR)/data.h
salloc.o: $(CDIR)/extern.h
salloc.o: $(CDIR)/param.h
salloc.o: $(CDIR)/result.h
salloc.o: tables.h
salloc.o: $(CDIR)/types.h
state.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
state.o: $(CDIR)/data.h
state.o: $(CDIR)/extern.h
state.o: $(CDIR)/param.h
state.o: $(CDIR)/result.h
state.o: $(CDIR)/state.h
state.o: tables.h
state.o: $(CDIR)/types.h
subr.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
subr.o: $(CDIR)/data.h
subr.o: $(CDIR)/extern.h
subr.o: $(CDIR)/param.h
subr.o: $(CDIR)/result.h
subr.o: tables.h
subr.o: $(CDIR)/types.h
var.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
var.o: $(CDIR)/param.h
var.o: $(CDIR)/result.h
var.o: tables.h
var.o: $(CDIR)/types.h

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,9 +0,0 @@
The mach?.c files in this directory were made for an earlier version of
the universal assembler and are too dependent on its innards.
I have no idea in what way they should be changed.
Duk Bekema
I adapted them to the new framework. It appears to work now.
Ceriel Jacobs

View file

@ -1,26 +0,0 @@
EMHOME = ../../..
CEG = $(EMHOME)/lib/ceg/util
OBJ = obj
all:
make -f $(CEG)/make_asobj "OBJ="$(OBJ)
install:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) install
cmp:
-make -f $(CEG)/make_asobj "OBJ="$(OBJ) cmp
pr:
@pr Makefile EM_table mach.h mach.c as_table as.h as.c
opr:
make pr | opr
# total cleanup
clean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) clean
# only remove ce, ceg, and back directories
dclean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) dclean

View file

@ -1,25 +0,0 @@
EMHOME = ../../..
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
INCLUDE = $(EMHOME)/h
CFLAGS = -I. -I$(INCLUDE) -O
TARGETS = cv
all: $(TARGETS)
install: all
../../install cv
cmp: all
../../compare cv
cv: cv.o
$(CC) $(LDFLAGS) -o cv cv.o $(LIBOBJ)
clean:
rm -f $(TARGETS) *.o nohup.out Out
pr:
@pr Makefile cv.c
opr:
make pr | opr

View file

@ -1,30 +0,0 @@
# $Header$
MACH=i86
all: libem_o.a end.o
install: all
../../install libem_o.a tail_em
../../install end.o end_em
cmp: all
-../../compare libem_o.a tail_em
-../../compare end.o end_em
end.o: end.s
$(MACH) -I../../../h -O -c end.s
libem_o.a: libem_s.a
ASAR=aal ; export ASAR ;\
march . libem_o.a
clean:
rm -f *.o libem_o.a
opr :
make pr | opr
pr:
@arch pv libem_s.a | pr -h `pwd`/libem_s.a
@pr `pwd`/end.s

View file

@ -1,4 +0,0 @@
if i86 -c $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,17 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define endtext,enddata,endbss
.define _end,_etext,_edata
! $Header$
.sect .text
endtext:
_etext:
.align 2
.sect .data
enddata:
_edata:
.align 2
.sect .endsect
_end:
endbss:
.align 2

View file

@ -1,38 +0,0 @@
.define .adf4, .adf8, .sbf4, .sbf8, .mlf4, .mlf8, .dvf4, .dvf8
.define .ngf4, .ngf8, .fif4, .fif8, .fef4, .fef8
.define .cif4, .cif8, .cuf4, .cuf8, .cfi, .cfu, .cff4, .cff8
.define .cmf4, .cmf8
.sect .text
.sect .rom
.sect .data
.sect .bss
! $Header$
.sect .text
.adf4:
.adf8:
.sbf4:
.sbf8:
.mlf4:
.mlf8:
.dvf4:
.dvf8:
.ngf4:
.ngf8:
.fif4:
.fif8:
.fef4:
.fef8:
.cif4:
.cif8:
.cuf4:
.cuf8:
.cfi:
.cfu:
.cff4:
.cff8:
.cmf4:
.cmf8:
mov ax,18 ! illegal instruction EILLINS
jmp .trp

View file

@ -1,40 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define printf
.extern printc, printd, prints
printf:
pop bx ! return address
xchg ax,di
mov si,sp
1:
movb al,(di)
inc di
testb al,al
jz 6f
cmpb al,'%'
je 3f
2:
call printc
jmp 1b
3:
movb al,(di)
inc di
cmpb al,'c'
jne 4f
lods
jmp 2b
4:
cmpb al,'d'
jne 5f
lods
call printd
jmp 1b
5:
cmpb al,'s'
jne 2b
lods
call prints
jmp 1b
6:
jmp bx

View file

@ -1,5 +0,0 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define .stop
.stop:
int 3

View file

@ -1,16 +0,0 @@
.define endtext,enddata,endbss
.define _end,_etext,_edata
! $Header$
.text
endtext:
_etext:
.align 2
.data
enddata:
_edata:
.align 2
.bss
_end:
endbss:
.align 2

View file

@ -1,22 +0,0 @@
EMHOME=../../..
SUF=o
MAKEFILE=$(EMHOME)/mach/proto/fp/Makefile
MACHDEF="MACH=i86" "SUF=$(SUF)" "ASAR=aal"
all:
make -f $(MAKEFILE) $(MACHDEF) all
install:
make -f $(MAKEFILE) $(MACHDEF) install
cmp: all
-../../compare FP_$(MACH).a tail_fp
clean:
make -f $(MAKEFILE) $(MACHDEF) clean
opr:
make pr | opr
pr:
@pr Makefile

View file

@ -1,27 +0,0 @@
# $Header$
MACH=i86
all: libmon_o.a head_em.o
install: all
../../install libmon_o.a tail_mon
../../install head_em.o head_em
cmp: all
-../../compare libmon_o.a tail_mon
-../../compare head_em.o head_em
libmon_o.a: libmon_s.a
ASAR=aal ; export ASAR ;\
march . libmon_o.a
head_em.o: head_em.s
$(MACH) -O -c head_em.s
clean:
rm -f *.o libmon_o.a
opr :
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libmon_s.a | pr -h `pwd`/libmon_s.a

View file

@ -1,4 +0,0 @@
if i86 -c -L $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,197 +0,0 @@
# $Header$
EMHOME=../../..
#preprocessor flags for table
TABLEFLAGS=
#cgg options
CGGFLAGS=
PREFLAGS=-I$(EMHOME)/h -I. -I$(EMHOME)/mach -I$(EMHOME)/modules/h -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=$(PFLAGS)
LINTOPTS=-bx
LIBS=$(EMHOME)/lib/em_data.a $(EMHOME)/modules/lib/libflt.a
CDIR=$(EMHOME)/mach/proto/ncg
CGG=$(EMHOME)/lib/ncgg
CPP=$(EMHOME)/lib/cpp
CFILES=$(CDIR)/codegen.c $(CDIR)/compute.c $(CDIR)/equiv.c $(CDIR)/fillem.c \
$(CDIR)/gencode.c $(CDIR)/glosym.c $(CDIR)/label.c $(CDIR)/main.c \
$(CDIR)/move.c $(CDIR)/nextem.c $(CDIR)/reg.c $(CDIR)/regvar.c \
$(CDIR)/salloc.c $(CDIR)/state.c $(CDIR)/subr.c $(CDIR)/var.c
OFILES=codegen.o compute.o equiv.o fillem.o gencode.o glosym.o label.o \
main.o move.o nextem.o reg.o regvar.o salloc.o state.o subr.o var.o
all: tables.c
make "EMHOME="$(EMHOME) cg
cg: tables.o $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) tables.o $(LIBS) -o cg
tables.o: tables.c
$(CC) -c $(PREFLAGS) -I$(CDIR) tables.c
codegen.o: $(CDIR)/codegen.c
$(CC) -c $(CFLAGS) $(CDIR)/codegen.c
compute.o: $(CDIR)/compute.c
$(CC) -c $(CFLAGS) $(CDIR)/compute.c
equiv.o: $(CDIR)/equiv.c
$(CC) -c $(CFLAGS) $(CDIR)/equiv.c
fillem.o: $(CDIR)/fillem.c
$(CC) -c $(CFLAGS) $(CDIR)/fillem.c
gencode.o: $(CDIR)/gencode.c
$(CC) -c $(CFLAGS) $(CDIR)/gencode.c
glosym.o: $(CDIR)/glosym.c
$(CC) -c $(CFLAGS) $(CDIR)/glosym.c
label.o: $(CDIR)/label.c
$(CC) -c $(CFLAGS) $(CDIR)/label.c
main.o: $(CDIR)/main.c
$(CC) -c $(CFLAGS) $(CDIR)/main.c
move.o: $(CDIR)/move.c
$(CC) -c $(CFLAGS) $(CDIR)/move.c
nextem.o: $(CDIR)/nextem.c
$(CC) -c $(CFLAGS) $(CDIR)/nextem.c
reg.o: $(CDIR)/reg.c
$(CC) -c $(CFLAGS) $(CDIR)/reg.c
regvar.o: $(CDIR)/regvar.c
$(CC) -c $(CFLAGS) $(CDIR)/regvar.c
salloc.o: $(CDIR)/salloc.c
$(CC) -c $(CFLAGS) $(CDIR)/salloc.c
state.o: $(CDIR)/state.c
$(CC) -c $(CFLAGS) $(CDIR)/state.c
subr.o: $(CDIR)/subr.c
$(CC) -c $(CFLAGS) $(CDIR)/subr.c
var.o: $(CDIR)/var.c
$(CC) -c $(CFLAGS) $(CDIR)/var.c
install: all
$(EMHOME)/mach/install cg
cmp: all
-$(EMHOME)/mach/compare cg
tables.c: table $(CGG)
$(CPP) $(TABLEFLAGS) table | $(CGG) $(CGGFLAGS)
-cmp tables.h tables.H || cp tables.H tables.h
lint: $(CFILES) tables.c
lint $(LINTOPTS) $(PREFLAGS) -I$(CDIR) $(CFILES) tables.c
clean:
rm -f *.o tables.c tables.h debug.out cg tables.H
distr: tables.c
rm -f tables1.c tables1.h
cp tables.c tables1.c
cp tables.h tables1.h
chmod -w tables1.[ch]
codegen.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
codegen.o: $(CDIR)/data.h
codegen.o: $(CDIR)/equiv.h
codegen.o: $(CDIR)/extern.h
codegen.o: $(CDIR)/param.h
codegen.o: $(CDIR)/result.h
codegen.o: $(CDIR)/state.h
codegen.o: tables.h
codegen.o: $(CDIR)/types.h
compute.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
compute.o: $(CDIR)/data.h
compute.o: $(CDIR)/extern.h
compute.o: $(CDIR)/glosym.h
compute.o: $(CDIR)/label.h
compute.o: $(CDIR)/param.h
compute.o: $(CDIR)/result.h
compute.o: tables.h
compute.o: $(CDIR)/types.h
equiv.o: $(CDIR)/assert.h
equiv.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
equiv.o: $(CDIR)/equiv.h
equiv.o: $(CDIR)/extern.h
equiv.o: $(CDIR)/param.h
equiv.o: $(CDIR)/result.h
equiv.o: tables.h
equiv.o: $(CDIR)/types.h
fillem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
fillem.o: $(CDIR)/data.h
fillem.o: $(CDIR)/extern.h
fillem.o: mach.c
fillem.o: mach.h
fillem.o: $(CDIR)/param.h
fillem.o: $(CDIR)/regvar.h
fillem.o: $(CDIR)/result.h
fillem.o: tables.h
fillem.o: $(CDIR)/types.h
gencode.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
gencode.o: $(CDIR)/data.h
gencode.o: $(CDIR)/extern.h
gencode.o: $(CDIR)/param.h
gencode.o: $(CDIR)/result.h
gencode.o: tables.h
gencode.o: $(CDIR)/types.h
glosym.o: $(CDIR)/glosym.h
glosym.o: $(CDIR)/param.h
glosym.o: tables.h
glosym.o: $(CDIR)/types.h
label.o: $(CDIR)/label.h
label.o: $(CDIR)/param.h
label.o: tables.h
label.o: $(CDIR)/types.h
main.o: $(CDIR)/param.h
main.o: tables.h
move.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
move.o: $(CDIR)/data.h
move.o: $(CDIR)/extern.h
move.o: $(CDIR)/param.h
move.o: $(CDIR)/result.h
move.o: tables.h
move.o: $(CDIR)/types.h
nextem.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
nextem.o: $(CDIR)/data.h
nextem.o: $(CDIR)/extern.h
nextem.o: $(CDIR)/param.h
nextem.o: $(CDIR)/result.h
nextem.o: tables.h
nextem.o: $(CDIR)/types.h
reg.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
reg.o: $(CDIR)/data.h
reg.o: $(CDIR)/extern.h
reg.o: $(CDIR)/param.h
reg.o: $(CDIR)/result.h
reg.o: tables.h
reg.o: $(CDIR)/types.h
regvar.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
regvar.o: $(CDIR)/data.h
regvar.o: $(CDIR)/extern.h
regvar.o: $(CDIR)/param.h
regvar.o: $(CDIR)/regvar.h
regvar.o: $(CDIR)/result.h
regvar.o: tables.h
regvar.o: $(CDIR)/types.h
salloc.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
salloc.o: $(CDIR)/data.h
salloc.o: $(CDIR)/extern.h
salloc.o: $(CDIR)/param.h
salloc.o: $(CDIR)/result.h
salloc.o: tables.h
salloc.o: $(CDIR)/types.h
state.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
state.o: $(CDIR)/data.h
state.o: $(CDIR)/extern.h
state.o: $(CDIR)/param.h
state.o: $(CDIR)/result.h
state.o: $(CDIR)/state.h
state.o: tables.h
state.o: $(CDIR)/types.h
subr.o: $(CDIR)/assert.h $(EMHOME)/h/cgg_cg.h
subr.o: $(CDIR)/data.h
subr.o: $(CDIR)/extern.h
subr.o: $(CDIR)/param.h
subr.o: $(CDIR)/result.h
subr.o: tables.h
subr.o: $(CDIR)/types.h
var.o: $(CDIR)/data.h $(EMHOME)/h/cgg_cg.h
var.o: $(CDIR)/param.h
var.o: $(CDIR)/result.h
var.o: tables.h
var.o: $(CDIR)/types.h

View file

@ -1,21 +0,0 @@
case $# in
1) DEST="$1" ;;
2) DEST="$2" ;;
*) echo $0 [source] destination ;;
esac
MACH=`(cd .. ; basename \`pwd\`)`
mkdir ../../../lib/$MACH >/dev/null 2>&1
if cp "$1" ../../../lib/${MACH}/$DEST >/dev/null 2>&1 ||
{ rm -f ../../../lib/${MACH}/$DEST >/dev/null 2>&1 &&
cp "$1" ../../../lib/${MACH}/$DEST >/dev/null 2>&1
}
then
if (ar t ../../../lib/${MACH}/$DEST | grep __.SYMDEF ) >/dev/null 2>&1
then
ranlib ../../../lib/${MACH}/$DEST
fi
exit 0
else
echo Sorry, can not create "lib/${MACH}/$DEST".
exit 1
fi

View file

@ -1,67 +0,0 @@
# $Header$
EMHOME = ../../..
h = $(EMHOME)/h
LIBOBJ = $(EMHOME)/modules/lib/libobject.a
CDIR = $(EMHOME)/mach/proto/as
CPP = $(EMHOME)/lib/cpp
DEF =
FFLAG =
INCL = -I. -I$h $(DEF)
CFLAGS = $(FFLAG) -O $(INCL)
YFLAGS = -d
LDFLAGS = $(FFLAG)
CSRC = $(CDIR)/comm3.c $(CDIR)/comm4.c $(CDIR)/comm5.c \
$(CDIR)/comm6.c $(CDIR)/comm7.c $(CDIR)/comm8.c
COBJ = comm3.o comm4.o comm5.o \
comm6.o comm7.o comm8.o
MACH = mach0.c mach1.c mach2.c mach3.c mach4.c mach5.c
COMM = $(CDIR)/comm0.h $(CDIR)/comm1.h $(CDIR)/comm2.y $(CSRC)
all: as
install:all
../../install as
cmp:
-../../compare as
clean:
rm -f *.o as as.[cy] y.tab.h
pr: $(MACH)
@pr -n $(MACH)
opr:
make pr | opr
as: $(COBJ) as.o
$(CC) $(LDFLAGS) $(COBJ) as.o $(LIBOBJ) -o as
as.y: $(CDIR)/comm2.y
$(CPP) -P -I. -I$h $(DEF) $(CDIR)/comm2.y >as.y
-@if test -f Expect ; then cat Expect ; else echo "expect 1 shift/reduce conflict"; fi
lint: $(CSRC) as.c
lint $(INCL) $(CSRC) as.c
y.tab.h: as.c
$(COBJ): y.tab.h
$(COBJ) as.y: $(CDIR)/comm0.h mach0.c
$(COBJ) as.y: $(CDIR)/comm1.h mach1.c
as.y: mach2.c
comm3.o: mach3.c
as.y: mach4.c
comm8.o: mach5.c
comm3.o: $(CDIR)/comm3.c
$(CC) -c $(CFLAGS) $(CDIR)/comm3.c
comm4.o: $(CDIR)/comm4.c
$(CC) -c $(CFLAGS) $(CDIR)/comm4.c
comm5.o: $(CDIR)/comm5.c
$(CC) -c $(CFLAGS) $(CDIR)/comm5.c
comm6.o: $(CDIR)/comm6.c
$(CC) -c $(CFLAGS) $(CDIR)/comm6.c
comm7.o: $(CDIR)/comm7.c
$(CC) -c $(CFLAGS) $(CDIR)/comm7.c
comm8.o: $(CDIR)/comm8.c
$(CC) -c $(CFLAGS) $(CDIR)/comm8.c

View file

@ -1,26 +0,0 @@
EMHOME = ../../..
CEG = $(EMHOME)/lib/ceg/util
OBJ = obj
all:
make -f $(CEG)/make_asobj "OBJ="$(OBJ)
install:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) install
cmp:
-make -f $(CEG)/make_asobj "OBJ="$(OBJ) cmp
pr:
@pr Makefile EM_table mach.h mach.c as_table as.h as.c
opr:
make pr | opr
# total cleanup
clean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) clean
# only remove ce, ceg, and back directories
dclean:
make -f $(CEG)/make_asobj "OBJ="$(OBJ) dclean

View file

@ -1,22 +0,0 @@
CFLAGS=-O -I../../../h
LDFLAGS =
cv: cv.o
$(CC) -o cv $(LDFLAGS) cv.o
install: ins_cv
ins_cv: cv
../../install cv
cmp: cmp_cv
cmp_cv: cv
-../../compare cv
opr:
make pr | opr
pr:
@pr `pwd`/cv.c
clean:
-rm -f *.o *.old cv

View file

@ -1,38 +0,0 @@
# $Header$
MACH=m68020
ASAR=aal
all: libem_o.a end.a
install: all
../../install libem_o.a tail_em
../../install end.a end_em
cmp: all
-../../compare libem_o.a tail_em
-../../compare end.a end_em
end.a: em_end.s etext.s edata.s end.s
$(MACH) -I../../../h -c em_end.s
$(MACH) -I../../../h -c edata.s
$(MACH) -I../../../h -c etext.s
$(MACH) -I../../../h -c end.s
$(ASAR) cr end.a em_end.o etext.o edata.o end.o
libem_o.a: libem_s.a
ASAR=$(ASAR) ; export ASAR ;\
march . libem_o.a
clean:
rm -f *.o libem_o.a end.a
opr :
make pr | opr
pr:
@arch pv libem_s.a | pr -h `pwd`/libem_s.a
@pr `pwd`/em_end.s `pwd`/edata.s `pwd`/etext.s `pwd`/end.s
trpstr.s: trpstr.c strscript
sh strscript
distr: trpstr.s

View file

@ -1,4 +0,0 @@
if m68020 -c $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

View file

@ -1,9 +0,0 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.define _edata
.sect .data
.align 4
.sect .data
_edata:

View file

@ -1,22 +0,0 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.define endtext,enddata,endbss,__end
.sect .text
.align 4
.sect .rom
.align 4
.sect .data
.align 4
.sect .bss
.align 4
.sect .end ! only for declaration of _end, __end and endbss.
.sect .text
endtext:
.sect .data
enddata:
.sect .end
__end:
endbss:

View file

@ -1,7 +0,0 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.define _end
.sect .end ! only for declaration of _end, __end and endbss.
_end:

View file

@ -1,9 +0,0 @@
.sect .text
.sect .rom
.sect .data
.sect .bss
.define _etext
.sect .text
.align 4
.sect .text
_etext:

View file

@ -1,39 +0,0 @@
.define .adf4, .adf8, .sbf4, .sbf8, .mlf4, .mlf8, .dvf4, .dvf8
.define .ngf4, .ngf8, .fif4, .fif8, .fef4, .fef8
.define .cif4, .cif8, .cuf4, .cuf8, .cfi, .cfu, .cff4, .cff8
.define .cmf4, .cmf8
.sect .text
.sect .rom
.sect .data
.sect .bss
! $Header$
.sect .text
.adf4:
.adf8:
.sbf4:
.sbf8:
.mlf4:
.mlf8:
.dvf4:
.dvf8:
.ngf4:
.ngf8:
.fif4:
.fif8:
.fef4:
.fef8:
.cif4:
.cif8:
.cuf4:
.cuf8:
.cfi:
.cfu:
.cff4:
.cff8:
.cmf4:
.cmf8:
move.l #18,-(sp)
jsr (.trp)
rts

Some files were not shown because too many files have changed in this diff Show more