--- /dev/null
+# $Header$
+install: cp
+
+cp: all
+ ../../install tail_mon
+ rm -f head_em tail_mon
+
+cmp: all
+ -../../compare tail_mon
+ rm -f head_em tail_mon
+
+all: tail_mon
+
+tail_mon:
+ ASAR=ar ; export ASAR ;\
+ RANLIB=ranlib ; export RANLIB ;\
+ march . tail_mon
+
+clean:
+ rm -f *.o
+opr:
+ make pr | opr
+pr:
+ @pr `pwd`/Makefile `pwd`/head_em.s
+ @pr -l33 `tail +1 LIST|sort`
--- /dev/null
+#include <errno.h>
+#include "sys.h"
+rtt = 6
+.globl _signal
+.globl _errno
+
+NSIGNALS = 0
+tvect:
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f; NSIGNALS=NSIGNALS+1
+
+1:
+ mov r1,-(sp)
+ mov r2,-(sp)
+ mov r3,-(sp)
+ mov r4,-(sp)
+ sub $tvect+4,r0
+ asr r0
+ mov r0,-(sp)
+ asr (sp)
+ jsr pc,*dvect(r0)
+ tst (sp)+
+ mov (sp)+,r4
+ mov (sp)+,r3
+ mov (sp)+,r2
+ mov (sp)+,r1
+ mov (sp)+,r0
+ rtt
+
+_signal:
+ mov r5,-(sp)
+ mov sp,r5
+ mov 4(r5),r1
+ cmp r1,$NSIGNALS
+ bhis 2f
+ mov 6(r5),r0
+ mov r1,0f+2
+ asl r1
+ mov dvect(r1),-(sp)
+ mov r0,dvect(r1)
+ mov r0,0f+4
+ beq 1f
+ bit $1,r0
+ bne 1f
+ asl r1
+ add $tvect,r1
+ mov r1,0f+4
+1:
+ sys indir; 0f
+ bes 3f
+ bit $1,r0
+ beq 1f
+ mov r0,(sp)
+1:
+ mov (sp)+,r0
+ mov (sp)+,r5
+ rts pc
+2:
+ mov $EINVAL.,r0
+3:
+ mov r0,_errno
+ mov $-1,r0
+ mov (sp)+,r5
+ rts pc
+
+.data
+0:
+ sys signal; ..; ..
+.bss
+dvect: .=.+[NSIGNALS*2]