fixup commit for branch 'unlabeled-2.4.1'

--HG--
branch : unlabeled-2.4.1
This commit is contained in:
cvs2hg
1984-10-16 13:31:45 +00:00
parent 5d5a09a5d0
commit c02387e38d
453 changed files with 0 additions and 81744 deletions

View File

@@ -1,178 +0,0 @@
# $Header$
PREFLAGS=-I../../../h -I. -DNDEBUG
PFLAGS=
CFLAGS=$(PREFLAGS) $(PFLAGS) -O
LDFLAGS=-i $(PFLAGS)
LINTOPTS=-hbxac
LIBS=../../../lib/em_data.a
CDIR=../../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:
make tables.c
make 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
tables.c: table
-mv tables.h tables.h.save
../../../lib/cpp -P table | ../../../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,243 +0,0 @@
#ifndef NORCSID
static char rcsid[] = "$Header$";
#endif
/*
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
*
* This product is part of the Amsterdam Compiler Kit.
*
* Permission to use, sell, duplicate or disclose this software must be
* obtained in writing. Requests for such permissions may be sent to
*
* Dr. Andrew S. Tanenbaum
* Wiskundig Seminarium
* Vrije Universiteit
* Postbox 7161
* 1007 MC Amsterdam
* The Netherlands
*
* Author: Hans van Staveren
*/
/*
* machine dependent back end routines for the PDP-11
*/
/* #define REGPATCH /* save all registers in markblock */
con_part(sz,w) register sz; word w; {
while (part_size % sz)
part_size++;
if (part_size == EM_WSIZE)
part_flush();
if (sz == 1) {
w &= 0xFF;
if (part_size)
w <<= 8;
part_word |= w;
} else {
assert(sz == 2);
part_word = w;
}
part_size += sz;
}
con_mult(sz) word sz; {
long l;
if (sz != 4)
fatal("bad icon/ucon size");
#ifdef ACK_ASS
fprintf(codefile,".long %s\n",str);
#else
l = atol(str);
fprintf(codefile,"\t%o;%o\n",(int)(l>>16),(int)l);
#endif
}
/*
* The next function is difficult to do when not running on a PDP 11 or VAX
* The strategy followed is to assume the code generator is running on a PDP 11
* unless the ACK_ASS define is on.
* In the last case floating point constants are simply not handled
*/
con_float() {
#ifdef ACK_ASS
static int been_here;
if (argval != 4 && argval != 8)
fatal("bad fcon size");
fprintf(codefile,".long\t");
if (argval == 8)
fprintf(codefile,"F_DUM,");
fprintf(codefile,"F_DUM\n");
if ( !been_here++)
fprintf(stderr,"Warning : dummy float-constant(s)\n");
#else
double f;
register short *p,i;
if (argval != 4 && argval != 8)
fatal("bad fcon size");
f = atof(str);
p = (short *) &f;
i = *p++;
if (argval == 8) {
fprintf(codefile,"\t%o;%o;",i,*p++);
i = *p++;
}
fprintf(codefile,"\t%o;%o\n",i,*p++);
#endif
}
#ifdef REGVARS
char Rstring[10];
full lbytes;
struct regadm {
char *ra_str;
long ra_off;
} regadm[2];
int n_regvars;
regscore(off,size,typ,score,totyp) long off; {
if (size != 2)
return(-1);
score -= 1; /* allow for save/restore */
if (off>=0)
score -= 2;
if (typ==reg_pointer)
score *= 17;
else if (typ==reg_loop)
score = 10*score+50; /* Guestimate */
else
score *= 10;
return(score); /* estimated # of words of profit */
}
i_regsave() {
Rstring[0] = 0;
n_regvars=0;
}
f_regsave() {
register i;
if (n_regvars==0 || lbytes==0) {
#ifdef REGPATCH
fprintf(codefile,"mov r2,-(sp)\nmov r4,-(sp)\n");
#endif
fprintf(codefile,"mov r5,-(sp)\nmov sp,r5\n");
if (lbytes == 2)
fprintf(codefile,"tst -(sp)\n");
else if (lbytes!=0)
fprintf(codefile,"sub $0%o,sp\n",lbytes);
for (i=0;i<n_regvars;i++)
fprintf(codefile,"mov %s,-(sp)\n",regadm[i].ra_str);
} else {
if (lbytes>6) {
fprintf(codefile,"mov $0%o,r0\n",lbytes);
fprintf(codefile,"jsr r5,PR%s\n",Rstring);
} else {
fprintf(codefile,"jsr r5,PR%d%s\n",lbytes,Rstring);
}
}
for (i=0;i<n_regvars;i++)
if (regadm[i].ra_off>=0)
fprintf(codefile,"mov 0%lo(r5),%s\n",regadm[i].ra_off,
regadm[i].ra_str);
}
regsave(regstr,off,size) char *regstr; long off; {
fprintf(codefile,"%c Local %ld into %s\n",COMMENTCHAR,off,regstr);
/* commented away
#ifndef REGPATCH
fprintf(codefile,"mov %s,-(sp)\n",regstr);
#endif
strcat(Rstring,regstr);
if (off>=0)
fprintf(codefile,"mov 0%lo(r5),%s\n",off,regstr);
end of commented away */
strcat(Rstring,regstr);
regadm[n_regvars].ra_str = regstr;
regadm[n_regvars].ra_off = off;
n_regvars++;
}
regreturn() {
#ifdef REGPATCH
fprintf(codefile,"jmp eret\n");
#else
fprintf(codefile,"jmp RT%s\n",Rstring);
#endif
}
#endif
prolog(nlocals) full nlocals; {
#ifndef REGVARS
#ifdef REGPATCH
fprintf(codefile,"mov r2,-(sp)\nmov r4,-(sp)\n");
#endif
fprintf(codefile,"mov r5,-(sp)\nmov sp,r5\n");
if (nlocals == 0)
return;
if (nlocals == 2)
fprintf(codefile,"tst -(sp)\n");
else
fprintf(codefile,"sub $0%o,sp\n",nlocals);
#else
lbytes = nlocals;
#endif
}
dlbdlb(as,ls) string as,ls; {
if (strlen(as)+strlen(ls)+2<sizeof(labstr)) {
strcat(ls,":");
strcat(ls,as);
} else
fatal("too many consecutive labels");
}
mes(type) word type; {
int argt ;
switch ( (int)type ) {
case ms_ext :
for (;;) {
switch ( argt=getarg(
ptyp(sp_cend)|ptyp(sp_pnam)|sym_ptyp) ) {
case sp_cend :
return ;
default:
strarg(argt) ;
#ifdef ACK_ASS
fprintf(codefile,".define %s\n",argstr) ;
#else
fprintf(codefile,".globl %s\n",argstr) ;
#endif
break ;
}
}
default :
while ( getarg(any_ptyp) != sp_cend ) ;
break ;
}
}
char *segname[] = {
".text", /* SEGTXT */
".data", /* SEGCON */
".data", /* SEGROM */
".bss" /* SEGBSS */
};

View File

@@ -1,135 +0,0 @@
#ifndef NORCSID
static char rcsid[] = "$Header$";
#endif
#include <stdio.h>
/*
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
*
* This product is part of the Amsterdam Compiler Kit.
*
* Permission to use, sell, duplicate or disclose this software must be
* obtained in writing. Requests for such permissions may be sent to
*
* Dr. Andrew S. Tanenbaum
* Wiskundig Seminarium
* Vrije Universiteit
* Postbox 7161
* 1007 MC Amsterdam
* The Netherlands
*
* Author: Hans van Staveren
*/
char buf[512];
char *index();
main() {
register n,sa;
register char *p;
sa=0;
for (;;) {
getline(buf);
if (n=stackadjust()) {
sa += n;
continue;
}
if (nullinstruction())
continue;
if (sa) {
if (buf[0]=='t' && buf[1]=='s' && buf[2]=='t' && buf[3]==' ') {
sa -= 2;
buf[0]='m';
buf[1]='o';
buf[2]='v';
strcat(buf,",(sp)+");
} else if (buf[0]=='m' && buf[1]=='o' && buf[2]=='v' &&
buf[3]==' ' && (p=index(&buf[5],','))!=0 &&
p[1]=='-' && p[2]=='(' && p[3]=='s') {
sa -= 2;
p[1]=' ';
}
}
switch(sa) {
case 0:break;
case 2:puts("tst (sp)+");sa=0;break;
case 4:puts("cmp (sp)+,(sp)+");sa=0;break;
case 6:puts("add $06,sp");sa=0;break;
}
puts(buf);
}
}
getline(buf) register char *buf; {
register c;
while ((c=getchar())==' ' || c=='\t')
;
if (c==EOF)
exit(0);
do *buf++=c;
while ((c=getchar())!='\n');
*buf=0;
}
stackadjust() {
if (buf[0]=='t' &&
buf[1]=='s' &&
buf[2]=='t' &&
buf[3]==' ' &&
buf[4]=='(' &&
buf[5]=='s' &&
buf[6]=='p' &&
buf[7]==')' &&
buf[8]=='+') return(2);
if (buf[0]=='c' &&
buf[1]=='m' &&
buf[2]=='p' &&
buf[3]==' ' &&
buf[4]=='(' &&
buf[5]=='s' &&
buf[6]=='p' &&
buf[7]==')' &&
buf[8]=='+' &&
buf[9]==',' &&
buf[10]=='(' &&
buf[11]=='s' &&
buf[12]=='p' &&
buf[13]==')' &&
buf[14]=='+') return(4);
if (buf[0]=='a' &&
buf[1]=='d' &&
buf[2]=='d' &&
buf[3]==' ' &&
buf[4]=='$' &&
buf[5]=='0' &&
buf[6]=='6' &&
buf[7]==',' &&
buf[8]=='s' &&
buf[9]=='p' &&
buf[10]==0) return(6);
return(0);
}
nullinstruction() {
register char *p;
if (buf[4]=='$' && buf[5]=='0' && buf[6]=='0' && buf[7]==',') {
p=index(buf,'-');
if (p!=0 && p[1]=='(')
return(0);
p=index(buf,'+');
if (p!=0 && p[-1]==')')
return(0);
if (buf[0]=='b' && buf[1]=='i' && (buf[2]=='s' || buf[2]=='c'))
return(1);
if (buf[0]=='a' && buf[1]=='d' && buf[2]=='d')
return(1);
if (buf[0]=='s' && buf[1]=='u' && buf[2]=='b')
return(1);
}
return(0);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,74 +0,0 @@
tail_em.s.a
RT.s
adf.s
adi.s
and.s
cff.s
cfi.s
cif.s
cii.s
ciu.s
cmf.s
cmi.s
cmi4.s
cms.s
cmu.s
cmu4.s
csa.s
csb.s
dup.s
dvf.s
dvi.s
dvi4.s
dvu.s
dvu2.s
dvu4.s
eret.s
exg.s
fef.s
fif.s
gto.s
hlt.s
iaar.s
aar.s
ilar.s
inn.s
isar.s
lar.s
los2.s
mlf.s
mli.s
mli4.s
mlu.s
mlu4.s
mon.s
ngf.s
ngi.s
nop.s
prf.s
printf.s
rck.s
ret.s
rmi.s
rmi4.s
rmu.s
rmu2.s
rmu4.s
rol.s
ror.s
sar.s
sbf.s
sbi.s
set.s
setfl.s
sigtrp.s
sim.s
sli.s
sri.s
sru.s
sto2.s
strhp.s
unknown.s
trp.s
xor.s
save.s

View File

@@ -1,32 +0,0 @@
l=../lib
install: cp
cp: all
cp head_em $l/head_em
cp tail_em $l/tail_em
rm -f head_em tail_em
cmp: all
cmp head_em $l/head_em
cmp tail_em $l/tail_em
rm -f head_em tail_em
distr:
arch cr `head -1 LIST` `tail +2 LIST`
all: head_em tail_em
head_em: head_em.s
pdp -c head_em.s ; mv head_em.o head_em
tail_em:
march . tail_em
clean:
rm -f *.o
opr:
make pr | opr
pr:
@pr `pwd`/Makefile `pwd`/head_em.s
pr -l33 `tail +1 LIST|sort`

View File

@@ -1,32 +0,0 @@
/ $Header$
.globl PRr2,PR2r2,PR4r2,PR6r2
.globl PRr2r4,PR2r2r4,PR4r2r4,PR6r2r4
.globl RT,RTr2,RTr2r4
PR6r2: mov $6,r0;br PRr2
PR4r2: mov $4,r0;br PRr2
PR2r2: mov $2,r0
PRr2: mov r5,r1
mov sp,r5
sub r0,sp
mov r2,-(sp)
mov r1,pc
PR2r2r4:mov $2,r0;br PRr2r4
PR4r2r4:mov $4,r0;br PRr2r4
PR6r2r4:mov $6,r0
PRr2r4: mov r5,r1
mov sp,r5
sub r0,sp
mov r2,-(sp)
mov r4,-(sp)
mov r1,pc
RTr2r4:
mov (sp)+,r4
RTr2:
mov (sp)+,r2
RT:
mov r5,sp
mov (sp)+,r5
rts pc

View File

@@ -1,12 +0,0 @@
/ $Header$
.text
.globl aar~
/r0 : descriptor address
/r1 : element number
/base address is on stack
aar~:
sub (r0),r1
mul 04(r0),r1
add r1,02(sp)
rts pc

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl adf~
.globl setfloat~
/size in r0
adf~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp)+,r0
addf (sp)+,r0
movf r0,-(sp)
setd
jmp (r1)

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl adi~
.globl unknown~
/size in r0
adi~:
mov (sp)+,r1
cmp r0,$04
bgt 1f
cmp r0,$02
bgt 2f
add (sp)+,(sp)
jmp (r1)
2: add (sp)+,02(sp)
add (sp)+,02(sp)
adc (sp)
jmp (r1)
1:
jmp unknown~

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl and~
/ size in r0
and~:
mov (sp)+,r3
mov sp,r1
add r0,r1
asr r0
1: com (sp)
bic (sp)+,(r1)+
sob r0,1b
jmp (r3)

View File

@@ -1,29 +0,0 @@
/ $Header$
.globl blm~
.globl save~,retu~
/ Size in r0
blm~:
jsr pc,save~
mov (sp)+,r2
mov (sp)+,r3
mov r0,r1
asr r0
beq 2f
/ Now avoid wrong copy.
/ The pieces may overlap !
cmp r3,r2
beq 2f
blt 3f
1:
mov (r3)+,(r2)+
sob r0,1b
2:
jmp retu~
3:
add r1,r3
add r1,r2
4:
mov -(r3),-(r2)
sob r0,4b
br 2b

View File

@@ -1,15 +0,0 @@
/ $Header$
.text
.globl cff~
.globl setfloat~
cff~:
mov (sp)+,r1
mov (sp)+,r0
cmp (sp)+,r0
beq 1f
jsr pc,setfloat~
movof (sp)+,r0
movf r0,-(sp)
setd
1: jmp (r1)

View File

@@ -1,15 +0,0 @@
/ $Header$
.text
.globl cfi~
.globl setfloat~,setint~
cfi~:
mov (sp)+,r1
mov (sp)+,r0
jsr pc,setint~
mov (sp)+,r0
jsr pc,setfloat~
movf (sp)+,r0
movfi r0,-(sp)
setd;seti
jmp (r1)

View File

@@ -1,25 +0,0 @@
/ $Header$
.text
.globl cif~,cuf~
.globl setint~,setfloat~
cif~:
mov (sp)+,r1
mov (sp)+,r0
jsr pc,setfloat~
mov (sp)+,r0
1: jsr pc,setint~
movif (sp)+,r0
movf r0,-(sp)
setd;seti
jmp (r1)
cuf~:
mov (sp)+,r1
mov (sp)+,r0
jsr pc,setfloat~
mov (sp)+,r0
cmp r0,$02
bne 1b
clr -(sp)
mov $04,r0
br 1b

View File

@@ -1,22 +0,0 @@
/ $Header$
.text
.globl cii~
/convert int to int
/ 1 byte -> ? : sign extension
cii~:
mov (sp)+,r3
mov (sp)+,r0
sub (sp)+,r0
ble 1f
asr r0
bcc 2f
movb (sp),r1
mov r1,(sp)
2: tst r0
beq 3f
tst (sp)
4: sxt -(sp)
sob r0,4b
1: sub r0,sp / if out of sob loop r0==0
3: jmp (r3)

View File

@@ -1,13 +0,0 @@
/ $Header$
.text
.globl cuu~
cuu~:
mov (sp)+,r1
mov (sp)+,r0
sub (sp)+,r0
ble 1f
asr r0
2: clr -(sp)
sob r0,2b
1: sub r0,sp / if out of sob loop r0==0
jmp (r1)

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl cmf~
.globl setfloat~
cmf~:
jsr pc,setfloat~
mov (sp)+,r1
movf (sp)+,r0
movf (sp)+,r1
clr r0
cmpf r0,r1
setd
cfcc
beq 1f
blt 2f
dec r0
jmp (r1)
2: inc r0
1: jmp (r1)

View File

@@ -1,18 +0,0 @@
/ $Header$
.text
.globl cmi~
.globl cmi4~,unknown~
/ Size in r0
cmi~:
cmp r0,$02
bne 1f
mov (sp)+,r1
mov (sp)+,r0
sub (sp)+,r0
neg r0
jmp (r1)
1: cmp r0,$04
bne 2f
jmp cmi4~
2: jmp unknown~

View File

@@ -1,21 +0,0 @@
/ $Header$
.text
.globl cmi4~
cmi4~:
mov (sp)+,r1
clr r0
cmp (sp),4(sp)
bgt 1f
blt 2f
cmp 2(sp),6(sp)
bhi 1f
beq 3f
2:
inc r0
br 3f
1:
dec r0
3:
add $10,sp
jmp (r1)

View File

@@ -1,17 +0,0 @@
/ $Header$
.text
.globl cms~
.globl save~,retu~
cms~:
jsr pc,save~
mov r0,r2
add sp,r2
mov r2,r4
add r0,r4
asr r0
2: cmp (sp)+,(r2)+
bne 1f
sob r0,2b
1: mov r4,sp
jmp retu~

View File

@@ -1,23 +0,0 @@
/ $Header$
.text
.globl cmu~
.globl unknown~,cmu4~
cmu~:
cmp r0,$02
bne 3f
mov (sp)+,r1
clr r0
cmp (sp)+,(sp)+
beq 2f
bhi 1f
inc r0
br 2f
1:
dec r0
2:
jmp (r1)
3: cmp r0,$04
bne 2f
jmp cmu4~
2: jmp unknown~

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl cmu4~
cmu4~:
mov (sp)+,r1
clr r0
cmp (sp),4(sp)
bhi 1f
blo 2f
cmp 2(sp),6(sp)
bhi 1f
beq 3f
2:
inc r0
br 3f
1:
dec r0
3:
add $10,sp
jmp (r1)

View File

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

View File

@@ -1,22 +0,0 @@
/ $Header$
.text
.globl csa~
.globl fat~
ECASE = 20.
csa~:
sub 02(r0),r1
blt 1f
cmp 04(r0),r1
blo 1f
asl r1
add r1,r0
mov 06(r0),r1
beq 2f
jmp (r1)
1: mov (r0),r0
beq 2f
jmp (r0)
2: mov $ECASE,-(sp)
jmp fat~

View File

@@ -1,23 +0,0 @@
/ $Header$
.text
.globl csb~
.globl fat~
ECASE = 20.
csb~:
mov (r0)+,-(sp)
mov (r0)+,r3
beq 1f
3: cmp (r0)+,r1
beq 2f
tst (r0)+
sob r3,3b
1: mov (sp)+,r1
br 4f
2: tst (sp)+
mov (r0),r1
4: beq 5f
jmp (r1)
5: mov $ECASE,-(sp)
jmp fat~

View File

@@ -1,12 +0,0 @@
/ $Header$
.text
.globl dup~
dup~:
mov (sp)+,r3
mov sp,r1
add r0,r1
asr r0
1: mov -(r1),-(sp)
sob r0,1b
jmp (r3)

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl dvf~
.globl setfloat~
dvf~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp)+,r0
movf (sp)+,r1
divf r0,r1
movf r1,-(sp)
setd
jmp (r1)

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl dvi~
.globl unknown~,dvi4~
dvi~:
mov (sp)+,r3
cmp r0,$04
bgt 1f
beq 2f
mov 02(sp),r1
sxt r0
div (sp)+,r0
mov r0,(sp)
br 3f
2: jsr pc,dvi4~
mov r1,-(sp)
mov r0,-(sp)
3: jmp (r3)
1: jmp unknown~

View File

@@ -1,82 +0,0 @@
/ $Header$
.text
.globl dvi4~
.globl save~,retu~
dvi4~:
jsr pc,save~
mov 02(sp),r3
sxt r4
bpl 1f
neg r3
1: cmp r4,(sp)
bne hardldiv
mov 06(sp),r2
mov 04(sp),r1
bge 2f
neg r1
neg r2
sbc r1
com r4
2: mov r4,-(sp)
clr r0
div r3,r0
mov r0,-(sp)
mov r1,r0
mov r1,r4
mov r2,r1
div r3,r0
bvc 3f
mov r2,r1
mov r4,r0
sub r3,r0
div r3,r0
tst r1
sxt r1
add r1,r0
3: mov r0,r1
mov (sp)+,r0
br 4f
hardldiv:
clr -(sp)
mov 010(sp),r2
mov 06(sp),r1
bpl 5f
com (sp)
neg r1
neg r2
sbc r1
5: clr r0
mov 02(sp),r3
bge 6f
neg r3
neg 04(sp)
sbc r3
com (sp)
6: mov $16.,r4
9: clc
rol r2
rol r1
rol r0
cmp r3,r0
bhi 7f
bcs 8f
cmp 04(sp),r1
blos 8f
7: sob r4,9b
br 1f
8: sub 04(sp),r1
sbc r0
sub r3,r0
inc r2
sob r4,9b
1:
mov r2,r1
clr r0
4: tst (sp)+
beq 1f
neg r0
neg r1
sbc r0
1: add $010,sp
jmp retu~

View File

@@ -1,18 +0,0 @@
/ $Header$
.text
.globl dvu~
.globl unknown~,dvu4~,dvu2~
dvu~:
mov (sp)+,r3
cmp r0,$04
bgt 1f
beq 2f
jsr pc,dvu2~
mov r0,-(sp)
br 3f
2: jsr pc,dvu4~
mov r1,-(sp)
mov r0,-(sp)
3: jmp (r3)
1: jmp unknown~

View File

@@ -1,16 +0,0 @@
/ $Header$
.text
.globl dvu2~
dvu2~:
clr r0
mov 04(sp),r1
tst 02(sp)
blt 1f
div 02(sp),r0
2: mov (sp)+,r1
add $04,sp
jmp (r1)
1: cmp 02(sp),r1
bhi 2b
inc r0
br 2b

View File

@@ -1,62 +0,0 @@
/ $Header$
.text
.globl dvu4~
.globl save~,retu~
dvu4~:
jsr pc,save~
clr r0
tst (sp)
bne harddvu4
tst 02(sp)
blt harddvu4
mov 06(sp),r2
mov 04(sp),r1
mov 02(sp),r3
div r3,r0
mov r0,-(sp)
mov r1,r0
mov r1,r4
mov r2,r1
div r3,r0
bvc 1f
mov r2,r1
mov r4,r0
sub r3,r0
div r3,r0
tst r1
sxt r1
add r1,r0
1: mov r0,r1
mov (sp)+,r0
br 2f
harddvu4:
mov 06(sp),r2
mov 04(sp),r1
mov (sp),r3
mov $17.,r4
br 3f
6: rol r2
rol r1
rol r0
3: cmp r3,r0
bhi 4f
blo 5f
cmp 02(sp),r1
blos 5f
4: clc
sob r4,6b
br 7f
5: sub 02(sp),r1
sbc r0
sub r3,r0
sec
sob r4,6b
7: rol r2
bcc 8f
mov $01,r0
br 9f
8: clr r0
9: mov r2,r1
2: add $010,sp
jmp retu~

View File

@@ -1,9 +0,0 @@
/ $Header$
.globl eret
eret:
mov r5,sp
mov (sp)+,r5
mov (sp)+,r4
mov (sp)+,r2
rts pc

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl exg~
exg~: jsr pc,save~
mov sp,r4
sub r0,sp
mov sp,r3
mov r0,r1
1:
mov (r4)+,(r3)+
sob r0,1b
asr r1
mov sp,r4
1:
mov (r4)+,(r3)+
sob r1,1b
mov r4,sp
jmp retu~

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl fef~
.globl setfloat~
fef~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp),r0
movei r0,-(sp)
movie $0,r0
movf r0,02(sp)
setd
jmp (r1)

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl fif~
.globl setfloat~
fif~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp)+,r0
modf (sp)+,r0
movf r0,-(sp)
movf r1,-(sp)
setd
jmp (r1)

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl gto~
gto~:
mov (sp)+,r4
mov 4(r4),r5
mov 2(r4),sp
mov (r4),pc
/
/ mov (sp)+,r3
/1: cmp 4(r3),r5
/ jeq 2f
/ mov 2(r5),r4
/ mov 4(r5),r2
/ mov (r5),r5
/ br 1b
/2: mov 2(r3),sp
/ jmp *(r3)

View File

@@ -1,76 +0,0 @@
/ $Header$
.globl LINO_AD,FILN_AD
.globl ERANGE,ESET,EHEAP,EILLINS,ECASE
.globl hol0,trppc~,trpim~,reghp~
rti = 2
stst = 170300 ^ tst
.float = 1 / this should be parameterized somehow
.hardfp = 1 / only relevant if .float on
LINO_AD = 0.
FILN_AD = 4.
ERANGE = 1.
ESET = 2.
EFOVFL = 4.
EFUNFL = 5.
EFDIVZ = 7.
EFUND = 9.
ECONV = 10.
EHEAP = 17.
EILLINS = 18.
ECASE = 20.
.if .float
/ .globl fltused; fltused:
.if 1 - .hardfp
/ sys 48.;4.;fptrap / if not commented it will appear as undefined
.endif
sys 48.;8.;sig8
ldfps $7600
.endif
mov 2(sp),r0
clr -2(r0)
mov sp,r0
sub $4,sp
mov 4(sp),(sp)
tst (r0)+
mov r0,2(sp)
1:
tst (r0)+
bne 1b
cmp r0,*2(sp)
blo 1f
tst -(r0)
1:
mov r0,4(sp)
jsr pc,_m_a_i_n
/ next two lines for as long as tail needs printf
/ mov r0,-(sp)
/ jsr pc,*$_exit
sys 1.
.data
hol0: 0;0 / line no
0;0 / file
trppc~: 0
trpim~: 0
reghp~: _end
.text
sig8:
.if .float
mov r0,-(sp)
stst r0
mov 1f(r0),-(sp)
jsr pc,trp~
sys 48.;8.;sig8
mov (sp)+,r0
rti
.data
1: EILLINS; EILLINS; EFDIVZ; ECONV; EFOVFL; EFUNFL; EFUND; EILLINS
.text
.endif

View File

@@ -1,11 +0,0 @@
/ $Header$
.text
.globl hlt~
exit = 1
hlt~:
mov (sp)+,r0
bne 1f
sys exit
1: 4

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl iaar~
.globl aar~,trp~
EILLINS = 18.
iaar~:
mov (sp)+,r0
cmp (sp)+,$02
bne 1f
mov 02(sp),r1
mov r0,02(sp)
mov (sp)+,r0
jmp aar~
1: mov $EILLINS,-(sp)
jsr pc,trp~
add $06,sp
jmp (r0)

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl ilar~
.globl lar~,trp~
EILLINS = 18.
ilar~:
mov (sp)+,r0
cmp (sp)+,$02
bne 1f
mov 02(sp),r1
mov r0,02(sp)
mov (sp)+,r0
jmp lar~
1: mov $EILLINS,-(sp)
jsr pc,trp~
add $06,sp
jmp (r0)

View File

@@ -1,22 +0,0 @@
/ $Header$
.text
.globl inn~
inn~:
mov r0,-(sp)
clr r0
div $010,r0
cmp r0,(sp)
bcc 1f
add sp,r0
bitb bits(r1),4(r0)
beq 1f
mov $01,r0
br 2f
1: clr r0
2: mov 02(sp),r1
add (sp)+,sp
tst (sp)+
jmp (r1)
.data
bits: .byte 1,2,4,10,20,40,100,200

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl isar~
.globl sar~,trp~
EILLINS = 18.
isar~:
mov (sp)+,r0
cmp (sp)+,$02
bne 1f
mov 02(sp),r1
mov r0,02(sp)
mov (sp)+,r0
jmp sar~
1: mov $EILLINS,-(sp)
jsr pc,trp~
add $06,sp
jmp (r0)

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl lar~
lar~:
mov (sp)+,r3
sub (r0),r1
mov 04(r0),r0
mul r0,r1
add (sp)+,r1
add r0,r1
asr r0
beq 1f
2: mov -(r1),-(sp)
sob r0,2b
jmp (r3)
1: clr r0
bisb -(r1),r0
mov r0,-(sp)
jmp (r3)

View File

@@ -1,16 +0,0 @@
/ $Header$
.text
.globl los2~
los2~:
mov (sp)+,r3
cmp r0,$01
bne 1f
clr -(sp)
bisb (r1),(sp)
jmp (r3)
1: add r0,r1
asr r0
2: mov -(r1),-(sp)
sob r0,2b
jmp (r3)

View File

@@ -1,13 +0,0 @@
/ $Header$
.text
.globl mlf~
.globl setfloat~
mlf~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp)+,r0
mulf (sp)+,r0
movf r0,-(sp)
setd
jmp (r1)

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl mli~
.globl unknown~,mli4~
mli~:
cmp r0,$04
bgt 1f
beq 2f
mov (sp)+,r0
mov (sp)+,r1
mul (sp)+,r1
mov r1,-(sp)
jmp (r0)
2: mov (sp)+,r3
jsr pc,mli4~
mov r1,-(sp)
mov r0,-(sp)
jmp (r3)
1: jmp unknown~

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl mli4~
.globl save~,retu~
mli4~:
jsr pc,save~
mov 02(sp),r2
sxt r1
sub (sp),r1
mov 06(sp),r0
sxt r3
sub 04(sp),r3
mul r0,r1
mul r2,r3
add r1,r3
mul r2,r0
sub r3,r0
add $010,sp
jmp retu~

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl mlu~
.globl unknown~,mlu4~
mlu~:
cmp r0,$04
bgt 1f
beq 2f
mov (sp)+,r0
mov (sp)+,r1
mul (sp)+,r1
mov r1,-(sp)
jmp (r0)
2: mov (sp)+,r3
jsr pc,mlu4~
mov r1,-(sp)
mov r0,-(sp)
jmp (r3)
1: jmp unknown~

View File

@@ -1,24 +0,0 @@
/ $Header$
.text
.globl mlu4~
.globl save~,retu~
mlu4~:
jsr pc,save~
clr r0
mov 02(sp),r1
mov 06(sp),r3
mul r3,r0
tst r3
bge 1f
ashc $15.,r0
1: mov 02(sp),r3
clr r2
mul 04(sp),r2
add r3,r0
mov 06(sp),r3
clr r2
mul (sp),r2
add r3,r0
add $010,sp
jmp retu~

View File

@@ -1,146 +0,0 @@
/ $Header$
.text
.globl mon~
.globl sigtrp~,save~,retu~,save1~
indir = 0
fork = 2
getpid = 20.
sigtrp = 48.
EBADMON = 25.
HBMASK = 0177400
REG01M = 030
REG1M = 020
ERRMASK = 040
/ Associated with every monitor call is a descriptor.
/ The low order three bits describe how values are returned,
/ the next two bits specify if arguments are expected in
/ r0 and/or r1, the next bit is not used, and the next
/ three bits specify the number of arguments disregarding
/ arguments in registers.
mon~:
cmp 02(sp),$sigtrp
bne 1f
jmp sigtrp~
1: jsr pc,save~
mov (sp)+,r4
mov r4,r2
asl r4
mov args(r4),r3
mov r3,r4
bit $ERRMASK,r4
bne err
cmp r2,$fork
bne 2f
jbr fork~
2: bic $HBMASK,r2
bis $sys,r2
mov r2,9f
bit $REG01M,r3
beq 1f
mov (sp)+,r0
bit $REG1M,r3
beq 1f
mov (sp)+,r1
1: ash $-6,r3
beq 2f
mov $[9f+2],r2
1: mov (sp)+,(r2)+
sob r3,1b
2: sys indir ; 9f
bcs 2f
clr r3
4: asr r4
bcc 1f
mov r0,-(sp)
1: asr r4
bcc 1f
mov r1,-(sp)
1: asr r4
bcc 1f
clr -(sp)
1: jmp retu~
2: mov r0,-(sp)
mov r0,-(sp)
jmp retu~
fork~:
sys fork
br 1f
bcs 2b
clr r1
br 4b
1: mov $1,r1
br 4b
err:
mov $EBADMON,-(sp)
jsr pc,trp~
tst (sp)+
jmp retu~
.data
.even
9: .=.+12.
args: ERRMASK / 0 : error
010 / 1 : exit(st); ---
07 / 2 : fork(); e10
0215 / 3 : read(addr,nb,fild); e-0
0215 / 4 : write(addr,nb,fild); e-0
0205 / 5 : open(str,flag); e-0
014 / 6 : close(fild); e--
07 / 7 : wait(); e10
0205 / 8 : creat(str,mode); e-0
0204 / 9 : link(str1,str2); e--
0104 /10 : unlink(str); e--
ERRMASK /11 : error
0104 /12 : chdir(str); e--
03 /13 : time(); -10
0304 /14 : mknod(str,mode,addr); e--
0204 /15 : chmod(str,mode); e--
0304 /16 : chown(str,owner,grp); e--
ERRMASK /17 : error
0204 /18 : stat(str,buf); e--
0217 /19 : lseek(high,low,fild); e10
01 /20 : getpid(); --0
0304 /21 : mount(str1,str2,fl); e--
0104 /22 : umount(str); e--
014 /23 : setuid(uid); e--
03 /24 : getuid(); -01
024 /25 : stime(high,low); e--
0315 /26 : ptrace(pid,addr,req,d); e-0
011 /27 : alarm(sec); --0
0114 /28 : fstat(buf,fild); e--
0 /29 : pause(); ---
0204 /30 : utime(str,timep); e--
ERRMASK /31 : error
ERRMASK /32 : error
0204 /33 : access(str,mode): e--
010 /34 : nice(incr); ---
0100 /35 : ftime(bufp); ---
0 /36 : sync(); ---
0114 /37 : kill(sig,pid); e--
ERRMASK /38 : error
ERRMASK /39 : error
ERRMASK /40 : error
025 /41 : dup(fild,newfild); e-0
07 /42 : pipe(); e10
0100 /43 : times(buf); ---
0400 /44 : profil(buff,siz,off,sc); ---
ERRMASK /45 : error
014 /46 : setgid(gid); e--
03 /47 : getgid(); -01
0 /48 : sigtrp(trap,sig); e-0; SPECIAL TREATMENT
ERRMASK /49 : error
ERRMASK /50 : error
0104 /51 : acct(file); e--
0304 /52 : phys(seg,siz,phaddr); e--
0104 /53 : lock(flag); e--
0304 /54 : ioctl(fild,req,argp); e--
ERRMASK /55 : error
0204 /56 : mpxcall(cmd,vec); e--
ERRMASK /57 : error
ERRMASK /58 : error
0304 /59 : exece(name,argv,envp); e--
0104 /60 : umask(complmode); e--
0104 /61 : chroot(str); e--

View File

@@ -1,10 +0,0 @@
/ $Header$
.text
.globl ngf~
.globl setfloat~
ngf~:
jsr pc,setfloat~
negf 2(sp)
setd
rts pc

View File

@@ -1,18 +0,0 @@
/ $Header$
.text
.globl ngi~
.globl unknown~
ngi~:
mov (sp)+,r1
cmp r0,$02
bgt 1f
neg (sp)
jmp (r1)
1: cmp r0,$04
bgt 2f
neg (sp)
neg 02(sp)
sbc (sp)
jmp (r1)
2: jmp unknown~

View File

@@ -1,13 +0,0 @@
/ $Header$
.text
.globl nop~
.globl hol0,prf~
nop~:
mov hol0,-(sp)
mov $fmt,-(sp)
jsr pc,prf~
add $04,sp
rts pc
.data
fmt: <test %d\n\0>

View File

@@ -1,34 +0,0 @@
/ $Header$
.text
.globl prf~
.globl save~,retu~,hol0,_printf
prf~:
jsr pc,save~
mov hol0,-(sp)
mov hol0+4,r0
beq 1f
mov r0,r2
mov $40.,r1
3: movb (r2)+,r3
beq 2f
cmpb r3,$0177
bge 1f
cmpb r3,$040
blt 1f
sob r1,3b
clrb (r2)
2: mov sp,r1
mov r1,-(sp)
mov r0,-(sp)
mov $fmt,-(sp)
jsr pc,_printf
add $010,sp
jsr pc,_printf
jmp retu~
1: mov $name,r0
br 2b
.data
fmt: <"%s", sp = %d, line %d: \0>
name: <_unknown file_\0>

View File

@@ -1,63 +0,0 @@
/ $Header$
.text
.globl _printf
write = 4
_printf:
mov r2,-(sp)
mov r3,-(sp)
mov r4,-(sp)
mov sp,r3
mov $buff,r4
add $010,r3
mov (r3)+,r2
prloop:
movb (r2)+,r0
beq ready
cmpb r0,$045
bne 1f
movb (r2)+,r0
cmpb r0,$0144
beq 2f
cmpb r0,$0163
beq 3f
1: movb r0,(r4)+
br prloop
2: mov (r3)+,r1
bge 4f
movb $055,(r4)+
neg r1
4: jsr pc,printn
br prloop
printn:
clr r0
div $010,r0
beq 5f
mov r1,-(sp)
mov r0,r1
jsr pc,printn
mov (sp)+,r1
5: add $060,r1
movb r1,(r4)+
rts pc
3: mov (r3)+,r1
7: movb (r1)+,r0
bne 6f
br prloop
6: movb r0,(r4)+
br 7b
ready:
movb r0,(r4)+
sub $buff,r4
mov $01,r0
mov $buff,9f
mov r4,9f+2
sys write
9: 0; 0
mov (sp)+,r4
mov (sp)+,r3
mov (sp)+,r2
rts pc
.data
buff: .=.+256.

View File

@@ -1,16 +0,0 @@
/ $Header$
.text
.globl rck~
.globl trp~
ERANGE = 1
rck~:
mov (sp)+,r1
cmp (sp),(r0)
blt 1f
cmp (sp),02(r0)
ble 2f
1: mov $ERANGE,-(sp)
jsr pc,trp~
2: jmp (r1)

View File

@@ -1,31 +0,0 @@
/ $Header$
.text
.globl ret~,lfr~,retar
.globl unknown~
/ Size in r0
ret~:
mov r0,r1
beq 1f
asr r1
add $retar,r0
cmp r0,$retend
bhi 9f
3: mov (sp)+,-(r0)
sob r1,3b
1: mov r5,sp
mov (sp)+,r5
rts pc
9: jmp unknown~
lfr~:
mov (sp)+,r3
asr r0
beq 4f
mov $retar,r1
5: mov (r1)+,-(sp)
sob r0,5b
4: jmp (r3)
.data
retar: .=.+16.
retend:

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl rmi~
.globl unknown~,rmi4~
rmi~:
mov (sp)+,r3
cmp r0,$04
bgt 1f
beq 2f
mov 02(sp),r1
sxt r0
div (sp)+,r0
mov r1,(sp)
br 3f
2: jsr pc,rmi4~
mov r1,-(sp)
mov r0,-(sp)
3: jmp (r3)
1: jmp unknown~

View File

@@ -1,76 +0,0 @@
/ $Header$
.text
.globl rmi4~
.globl save~,retu~
rmi4~:
jsr pc,save~
mov 02(sp),r3
sxt r4
bpl 1f
neg r3
1: cmp r4,(sp)
bne hardrmi4
mov 06(sp),r2
mov 04(sp),r1
mov r1,r4
bge 2f
neg r1
neg r2
sbc r1
2: mov r4,-(sp)
clr r0
div r3,r0
mov r1,r0
mov r1,r4
mov r2,r1
div r3,r0
bvc 3f
mov r2,r1
mov r4,r0
sub r3,r0
div r3,r0
tst r1
beq 3f
add r3,r1
3: tst (sp)+
bpl 4f
neg r1
4: sxt r0
br 9f
hardrmi4:
mov 06(sp),r2
mov 04(sp),r1
bpl 5f
neg r1
neg r2
sbc r1
5: clr r0
mov (sp),r3
bge 6f
neg r3
neg 02(sp)
sbc r3
6: mov $16.,r4
1: clc
rol r2
rol r1
rol r0
cmp r3,r0
bhi 7f
bcs 8f
cmp 02(sp),r1
blos 8f
7: sob r4,1b
br 2f
8: sub 02(sp),r1
sbc r0
sub r3,r0
sob r4,1b
2: tst 04(sp)
bge 9f
neg r0
neg r1
sbc r0
9: add $010,sp
jmp retu~

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl rmu~
.globl rmu2~,rmu4~,unknown~
rmu~:
mov (sp)+,r3
cmp r0,$04
bgt 1f
beq 2f
cmp r0,$02
bne 1f
jsr pc,rmu2~
mov r1,-(sp)
jmp (r3)
2: jsr pc,rmu4~
mov r1,-(sp)
mov r0,-(sp)
jmp (r3)
1: jmp unknown~

View File

@@ -1,17 +0,0 @@
/ $Header$
.text
.globl rmu2~
rmu2~:
mov 04(sp),r1
tst 02(sp)
blt 1f
clr r0
div 02(sp),r0
2: mov (sp)+,r0
add $04,sp
jmp (r0)
1: cmp 02(sp),r1
bhi 2b
sub 02(sp),r1
br 2b

View File

@@ -1,53 +0,0 @@
/ $Header$
.text
.globl rmu4~
.globl save~,retu~
rmu4~:
jsr pc,save~
clr r0
tst (sp)
bne hardrmu4
tst 02(sp)
blt hardrmu4
mov 06(sp),r2
mov 04(sp),r1
mov 02(sp),r3
div r3,r0
mov r1,r0
mov r1,r4
mov r2,r1
div r3,r0
bvc 1f
mov r2,r1
mov r4,r0
sub r3,r0
div r3,r0
tst r1
beq 1f
add r3,r1
1: clr r0
br 2f
hardrmu4:
mov 06(sp),r2
mov 04(sp),r1
mov (sp),r3
mov $17.,r4
br 3f
6: clc
rol r2
rol r1
rol r0
3: cmp r3,r0
bhi 4f
bcs 5f
cmp 02(sp),r1
blos 5f
4: sob r4,6b
br 2f
5: sub 02(sp),r1
sbc r0
sub r3,r0
sob r4,6b
2: add $010,sp
jmp retu~

View File

@@ -1,20 +0,0 @@
/ $Header$
.text
.globl rol~
.globl save~,retu~
rol~:
jsr pc,save~
mov (sp)+,r3
3: add r0,sp
mov r0,r1
asr r1
clc
1: rol -(sp)
sob r1,1b
bcc 2f
mov sp,r1
add r0,r1
bis $01,-(r1)
2: sob r3,3b
jmp retu~

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl ror~
.globl save~,retu~
ror~:
asr r0
jsr pc,save~
mov (sp)+,r3
3: mov sp,r1
mov r0,-(sp)
clc
1: ror (r1)+
sob r0,1b
bcc 2f
bis $0100000,02(sp)
2: mov (sp)+,r0
sob r3,3b
jmp retu~

View File

@@ -1,17 +0,0 @@
/ $Header$
.text
.globl sar~
sar~:
mov (sp)+,r3
sub (r0),r1
mov 04(r0),r0
mul r0,r1
add (sp)+,r1
asr r0
beq 1f
2: mov (sp)+,(r1)+
sob r0,2b
jmp (r3)
1: movb (sp)+,(r1)
jmp (r3)

View File

@@ -1,25 +0,0 @@
/ $Header$
.text
.globl save~,retu~,savearea
save~:
mov r5,savearea
mov $[savearea+2],r5
mov r4,(r5)+
mov r3,(r5)+
mov r2,(r5)+
mov (sp)+,r2
mov (sp)+,(r5)+
jmp (r2)
retu~:
mov -(r5),-(sp)
mov -(r5),r2
mov -(r5),r3
mov -(r5),r4
mov -(r5),r5
rts pc
.data
.even
savearea:
.=.+12.

View File

@@ -1,14 +0,0 @@
/ $Header$
.text
.globl sbf~
.globl setfloat~
sbf~:
mov (sp)+,r1
jsr pc,setfloat~
movf (sp)+,r0
subf (sp)+,r0
negf r0
movf r0,-(sp)
setd
jmp (r1)

View File

@@ -1,19 +0,0 @@
/ $Header$
.text
.globl sbi~
.globl unknown~
sbi~:
mov (sp)+,r1
cmp r0,$04
bgt 1f
cmp r0,$02
bgt 2f
sub (sp)+,(sp)
jmp (r1)
2: sub (sp)+,02(sp)
sub (sp)+,02(sp)
sbc (sp)
jmp (r1)
1:
jmp unknown~

View File

@@ -1,25 +0,0 @@
/ $Header$
.text
.globl set~
.globl save~,retu~,trp~
ESET = 2
set~:
jsr pc,save~
mov r0,r2
asr r0
1: clr -(sp)
sob r0,1b
div $8.,r0
cmp r0,r2
blo 2f
mov $ESET,-(sp)
jsr pc,trp~
jmp retu~
2: add sp,r0
bisb bits(r1),(r0)
jmp retu~
.data
bits: .byte 1,2,4,10,20,40,100,200

View File

@@ -1,22 +0,0 @@
/ $Header$
.text
.globl setfloat~,setint~
.globl unknown~
setfloat~:
cmp r0,$8.
bne 1f
rts pc
1: cmp r0,$04
bne 3f
setf
2: rts pc
3: jmp unknown~
setint~:
cmp r0,$04
bne 4f
setl
rts pc
4: cmp r0,$02
bne 3b
5: rts pc

View File

@@ -1,93 +0,0 @@
/ $Header$
.text
.globl sigtrp~
.globl trp~,save~,retu~
indir = 0
signal = 48.
rti = 2
sig1: mov sig.trp+0.,-(sp)
br 1f
sig2: mov sig.trp+2.,-(sp)
br 1f
sig3: mov sig.trp+4.,-(sp)
br 1f
sig4: mov sig.trp+6.,-(sp)
br 1f
sig5: mov sig.trp+8.,-(sp)
br 1f
sig6: mov sig.trp+10.,-(sp)
br 1f
sig7: mov sig.trp+12.,-(sp)
br 1f
sig10: mov sig.trp+18.,-(sp)
br 1f
sig11: mov sig.trp+20.,-(sp)
br 1f
sig12: mov sig.trp+22.,-(sp)
br 1f
sig13: mov sig.trp+24.,-(sp)
br 1f
sig14: mov sig.trp+026.,-(sp)
br 1f
sig15: mov sig.trp+028.,-(sp)
br 1f
sig16: mov sig.trp+030.,-(sp)
br 1f
1:
jsr pc,trp~
rti
sigtrp~:
jsr pc,save~
tst (sp)+
mov (sp)+,r1
mov (sp)+,r0
ble sig.bad
cmp r0,$16.
bhi sig.bad
mov r0,call+02
asl r0
mov sig.trp-2(r0),r3
cmp r1,$256.
bhis 1f
mov sig.adr-2(r0),r2
bne 2f
sig.bad:
mov $-1,r0
sigbad:
mov r0,-(sp)
mov r0,-(sp)
jmp retu~
1: cmp r1,$-3
blo sig.bad
mov r1,r2
inc r2
inc r2
2: mov r1,sig.trp-2(r0)
mov r2,call+04
sys indir ; call
bcs sigbad
asr r0
bcc 1f
mov $-3,-(sp)
clr -(sp)
jmp retu~
1: mov r3,-(sp)
clr -(sp)
jmp retu~
.data
call: sys signal; 0; 0
sig.trp:
-2; -2; -2; -2
-2; -2; -2; -2
-2; -2; -2; -2
-2; -2; -2; -2
sig.adr:
sig1; sig2; sig3; sig4
sig5; sig6; sig7; 0
0; sig10; sig11; sig12
sig13; sig14; sig15; sig16

View File

@@ -1,29 +0,0 @@
/ $Header$
.text
.globl sim~
.globl trpim~
.float = 1
sim~:
mov (sp)+,r3
mov (sp)+,r0
mov r0,trpim~
.if .float
stfps r1
bis $07400,r1
bit $020,r0
beq 0f
bic $01000,r1
0: bit $040,r0
beq 0f
bic $02000,r1
0: bit $01000,r0
beq 0f
bic $04000,r1
0: bit $02000,r0
beq 0f
bic $0400,r1
0: ldfps r1
.endif
jmp (r3)

View File

@@ -1,23 +0,0 @@
/ $Header$
.text
.globl sli~
.globl unknown~
sli~:
mov (sp)+,r3
cmp r0,$02
bgt 1f
mov (sp)+,r1
mov (sp)+,r0
ash r1,r0
mov r0,-(sp)
jmp (r3)
1: cmp r0,$04
bgt 2f
mov 02(sp),r0
mov 04(sp),r1
ashc (sp)+,r0
mov r0,(sp)
mov r1,02(sp)
jmp (r3)
2: jmp unknown~

View File

@@ -1,26 +0,0 @@
/ $Header$
.text
.globl sri~
.globl unknown~
/ Size in r0
sri~:
mov (sp)+,r3~
cmp r0,$02
bgt 1f
mov (sp)+,r1
mov (sp)+,r0
neg r1
ash r1,r0
mov r0,-(sp)
jmp (r3)
1: cmp r0,$04
bgt 2f
mov 02(sp),r0
mov 04(sp),r1
neg (sp)
ashc (sp)+,r0
mov r0,(sp)
mov r1,02(sp)
jmp (r3)
2: jmp unknown~

View File

@@ -1,31 +0,0 @@
/ $Header$
.text
.globl sru~,slu~
.globl unknown~
sru~:
neg 2(sp)
slu~:
mov (sp)+,r3
cmp r0,$02
bgt 1f
mov 2(sp),r1
clr r0
ashc (sp)+,r0
2: mov r1,-(sp)
jmp (r3)
1: cmp r0,$04
bgt 3f
mov 02(sp),r0
mov 04(sp),r1
tst (sp)
beq 4f
ashc $-1,r0
bic $0100000,r0
inc (sp)
beq 4f
ashc (sp)+,r0
4: mov r0,(sp)
mov r1,02(sp)
jmp (r3)
3: jmp unknown~

View File

@@ -1,15 +0,0 @@
/ $Header$
.text
.globl sto2~
sto2~:
mov (sp)+,r3
cmp r0,$01
bne 1f
movb (sp),(r1)
tst (sp)+
jmp (r3)
1: asr r0
2: mov (sp)+,(r1)+
sob r0,2b
jmp (r3)

View File

@@ -1,25 +0,0 @@
/ $Header$
.text
.globl strhp~
.globl fat~,reghp~,_end
indir = 0
break = 17.
EHEAP = 17.
strhp~:
mov (sp)+,r0
mov (sp)+,r1
mov r1,reghp~
cmp r1,2f+2
blos 1f
add $01777,r1
bic $01777,r1
mov r1,2f+2
sys indir ; 2f
bcs 3f
1: jmp (r0)
3: mov $EHEAP,-(sp)
jmp fat~
.data
2: sys break; _end

View File

@@ -1,93 +0,0 @@
/ $Header$
.text
.globl trp~,fat~
.globl trppc~,trpim~,savearea,retar
write=4.
fat~:
jsr pc,trp~
4
trp~:
mov r0,-(sp)
mov 04(sp),r0
mov 02(sp),04(sp)
mov (sp),02(sp)
mov r1,(sp)
cmp r0,$16.
jhis 0f
mov $01,r1
ashc r0,r1
bit r1,trpim~
bne 8f
0: mov r2,-(sp)
mov r3,-(sp)
mov r4,-(sp)
movf r0,-(sp)
movf r1,-(sp)
movf r2,-(sp)
movf r3,-(sp)
stfps -(sp)
mov $savearea,r2
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov $retar,r2
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov r0,-(sp)
mov trppc~,r0
beq 9f
clr trppc~
jsr pc,(r0)
tst (sp)+
mov $retar+16.,r2
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov $savearea+12.,r2
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
ldfps (sp)+
movf (sp)+,r3
movf (sp)+,r2
movf (sp)+,r1
movf (sp)+,r0
mov (sp)+,r4
mov (sp)+,r3
mov (sp)+,r2
8: mov (sp)+,r1
mov (sp)+,r0
rts pc
9: mov (sp)+,r0
mov $buf+11,r1
mov $4,r2
1: mov r0,r3
bic $177770,r3
bisb r3,-(r1)
ash $-3,r0
sob r2,1b
mov $2,r0
sys write;buf;11.
4
.data
buf: <err 00000\n>

View File

@@ -1,10 +0,0 @@
/ $Header$
.text
.globl unknown~
.globl fat~
EILLSIZ = 19.
unknown~:
mov $EILLSIZ,-(sp)
jmp fat~

View File

@@ -1,14 +0,0 @@
/ $Header$
.globl xor~
.globl save~,retu~
xor~:
jsr pc,save~
mov sp,r1
add r0,r1
asr r0
1:
mov (sp)+,r2
xor r2,(r1)+
sob r0,1b
jmp retu~