--- /dev/null
+Makefile
+adf4.s
+adf8.s
+cff.s
+cfi.s
+cfu.s
+cif.s
+cmf4.s
+cmf8.s
+cuf.s
+dvf4.s
+dvf8.s
+fef4.s
+fef8.s
+fif4.s
+fif8.s
+mlf4.s
+mlf8.s
+sbf4.s
+sbf8.s
+vars.s
--- /dev/null
+# $Header$
+
+EMOBJ = aar.o cii.o cmi.o cms.o cmu.o csa.o csb.o cuu.o dia.o exg.o fat.o \
+ inn.o lar.o los.o mon.o nop.o sar.o set.o shp.o sts.o trp.o trpstr.o
+
+FOBJ = adf4.o adf8.o cff.o cfi.o cfu.o cif.o cmf4.o cmf8.o cuf.o dvf4.o \
+ dvf8.o fef4.o fef8.o fif4.o fif8.o mlf4.o mlf8.o sbf4.o sbf8.o vars.o
+
+OBJ = $(EMOBJ) $(FOBJ)
+all: libext.a
+
+.s.o:
+ sun3 -c $*.s
+
+libext.a: $(OBJ)
+ for i in $(OBJ) ; do ../../../lib/sun3/cv -u $$i $$i.X ; mv $$i.X $$i ; done
+ ar rv libext.a $(OBJ)
+ ranlib libext.a
+
+install: all
+ ../../install libext.a tail_ext
+
+cmp: all
+ -../../compare libext.a tail_ext
+
+clean:
+ rm -f *.[oa]
+
+pr:
+
+opr:
+
+$(EMOBJ): ../../../lib/m68020/tail_em
+ aal x ../../../lib/m68020/tail_em $(EMOBJ)
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define adf4
+adf4:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fadds)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define adf8
+adf8:
+ move.l (sp)+,a1
+ lea (8,sp),a0
+ move.l (a0),d0
+ move.l (4,a0),d1
+ move.l (sp)+,(a0)
+ move.l (sp)+,(4,a0)
+ move.l a1,-(sp)
+ jsr (Faddd)
+ move.l d0,(4,sp)
+ move.l d1,(8,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cff
+cff:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp)+,d0
+ cmp.l d0,d1
+ beq 2f
+ cmp.l #4,d0
+ bne 1f
+ move.l (sp),d0
+ tst.l -(sp)
+ move.l a0,-(sp)
+ jsr (Fstod)
+ move.l d0,(4,sp)
+ move.l d1,(8,sp)
+2:
+ rts
+1:
+ move.l (sp),d0
+ move.l (4,sp),d1
+ move.l a0,(sp)
+ jsr (Fdtos)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cfi
+cfi:
+ move.l (sp)+,a0
+ move.l (sp)+,d1 ! should be 4
+ move.l (sp)+,d0
+ cmp.l #4,d0
+ bne 1f
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fints)
+ move.l d0,(4,sp)
+ rts
+1:
+ move.l (sp)+,d0
+ move.l (sp),d1
+ move.l a0,-(sp)
+ jsr (Fintd)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cfu
+cfu:
+ move.l (sp)+,a0
+ move.l (sp)+,d1 ! should be 4
+ move.l (sp)+,d0
+ cmp.l #4,d0
+ bne 1f
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Funs)
+ move.l d0,(4,sp)
+ rts
+1:
+ move.l (sp)+,d0
+ move.l (sp),d1
+ move.l a0,-(sp)
+ jsr (Fund)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cif
+cif:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp)+,d0 ! should be 4
+ cmp.l #4,d1
+ bne 1f
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fflts)
+ move.l d0,(4,sp)
+ rts
+1:
+ move.l (sp),d0
+ tst.l -(sp)
+ move.l a0,-(sp)
+ jsr (Ffltd)
+ move.l d1,(8,sp)
+ move.l d0,(4,sp)
+ rts
+
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cmf4
+cmf4:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fcmps)
+ blt 1f
+ bgt 2f
+ clr.l (4,sp)
+ rts
+1:
+ move.l #-1,(4,sp)
+ rts
+2:
+ move.l #1,(4,sp)
+ rts
+
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define cmf8
+cmf8:
+ move.l (sp)+,a1
+ lea (8,sp),a0
+ move.l (a0),d0
+ move.l (4,a0),d1
+ move.l (sp)+,(a0)
+ move.l (sp)+,(4,a0)
+ move.l a1,-(sp)
+ jsr (Fcmpd)
+ blt 1f
+ bgt 2f
+ clr.l (8,sp)
+3:
+ move.l (sp)+,a1
+ tst.l (sp)+
+ jmp (a1)
+1:
+ move.l #-1,(8,sp)
+ bra 3b
+2:
+ move.l #1,(8,sp)
+ bra 3b
+
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.define cuf
+.sect .rom
+L1: .data4 0x41f00000, 0x0
+.sect .text
+cuf:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp)+,d0 ! should be 4
+ cmp.l #4,d1
+ bne 1f
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fflts)
+ tst.l d0
+ bpl 2f
+ move.l #0x4f800000,d1
+ jsr (Fadds)
+2:
+ move.l d0,(4,sp)
+ rts
+1:
+ move.l (sp),d0
+ tst.l -(sp)
+ move.l a0,-(sp)
+ jsr (Ffltd)
+ tst.l d0
+ bpl 2f
+ lea (L1),a0
+ jsr (Faddd)
+2:
+ move.l d1,(8,sp)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define dvf4
+dvf4:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fdivs)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define dvf8
+dvf8:
+ move.l (sp)+,a1
+ lea (8,sp),a0
+ move.l (a0),d0
+ move.l (4,a0),d1
+ move.l (sp)+,(a0)
+ move.l (sp)+,(4,a0)
+ move.l a1,-(sp)
+ jsr (Fdivd)
+ move.l d0,(4,sp)
+ move.l d1,(8,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define fef4
+fef4:
+ move.l (4,sp),d0
+ jsr (Fstod) ! convert to double
+ lea (4,sp),a0 ! build stack for frexp
+ move.l a0,-(sp)
+ move.l d1,-(sp)
+ move.l d0,-(sp)
+ jsr (_frexp)
+ lea (12,sp),sp
+ jsr (Fdtos) ! convert result to single
+ move.l (sp),a0
+ move.l d0,(sp)
+ jmp (a0)
+
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define fef8
+fef8:
+ move.l (4,sp),d0
+ move.l (8,sp),d1
+ lea (8,sp),a0 ! build stack for frexp
+ move.l a0,-(sp)
+ move.l d1,-(sp)
+ move.l d0,-(sp)
+ jsr (_frexp)
+ lea (12,sp),sp
+ move.l (sp),a0
+ move.l d1,(4,sp)
+ move.l d0,(sp)
+ jmp (a0)
+
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define fif4
+fif4:
+ move.l (4,sp),d1
+ move.l (8,sp),d0
+ jsr (Fmuls) ! result in d0
+ jsr (Fstod) ! convert to double
+ lea (4,sp),a0 ! build stack for modf
+ move.l a0,-(sp)
+ move.l d1,-(sp)
+ move.l d0,-(sp)
+ jsr (_modf)
+ lea (12,sp),sp
+ jsr (Fdtos) ! convert result to single
+ move.l d0,-(sp) ! save it
+ move.l (8,sp),d0 ! also convert integer part to single
+ move.l (12,sp),d1
+ jsr (Fdtos)
+ move.l d0,(8,sp) ! integer part
+ move.l (sp)+,d0
+ move.l d0,(8,sp) ! fraction part
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define fif8
+fif8:
+ move.l (4,sp),d1
+ move.l (8,sp),d0
+ lea (12,sp),a0
+ jsr (Fmuld) ! result in d0/d1
+ lea (4,sp),a0 ! build stack for modf
+ move.l a0,-(sp)
+ move.l d1,-(sp)
+ move.l d0,-(sp)
+ jsr (_modf)
+ lea (12,sp),sp
+ move.l d0,(12,sp)
+ move.l d1,(16,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define mlf4
+mlf4:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fmuls)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define mlf8
+mlf8:
+ move.l (sp)+,a1
+ lea (8,sp),a0
+ move.l (a0),d0
+ move.l (4,a0),d1
+ move.l (sp)+,(a0)
+ move.l (sp)+,(4,a0)
+ move.l a1,-(sp)
+ jsr (Fmuld)
+ move.l d0,(4,sp)
+ move.l d1,(8,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define sbf4
+sbf4:
+ move.l (sp)+,a0
+ move.l (sp)+,d1
+ move.l (sp),d0
+ move.l a0,-(sp)
+ jsr (Fsubs)
+ move.l d0,(4,sp)
+ rts
--- /dev/null
+.sect .text; .sect .rom; .sect .data; .sect .bss
+.sect .text
+.define sbf8
+sbf8:
+ move.l (sp)+,a1
+ lea (8,sp),a0
+ move.l (a0),d0
+ move.l (4,a0),d1
+ move.l (sp)+,(a0)
+ move.l (sp)+,(4,a0)
+ move.l a1,-(sp)
+ jsr (Fsubd)
+ move.l d0,(4,sp)
+ move.l d1,(8,sp)
+ rts
--- /dev/null
+.define .lino,.filn
+.define hol0,.reghp,.limhp,.trpim,.trppc
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .data
+hol0:
+.lino:
+ .data4 0 ! lino
+.filn:
+ .data4 0 ! filn
+.reghp:
+ .data4 _end
+.limhp:
+ .data4 _end
+.trppc:
+ .data4 0
+.trpim:
+ .data4 0 ! USED TO BE 2 BYTES; IS THIS RIGHT?