#
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
.define  LINO_AD,FILN_AD
.define  ERANGE,ESET,EHEAP,EILLINS,ECASE
.define  hol0,trppc~,trpim~,reghp~,.limhp
.define EXIT,WRITE,BRK
! $Id$

#define float 1
#define hardfp 1

LINO_AD = 0
FILN_AD = 4

ERANGE  = 1
ESET    = 2
EFOVFL  = 4
EFUNFL  = 5
EFDIVZ  = 7
EFUND   = 011
ECONV   = 012
EHEAP   = 021
EILLINS = 022
ECASE   = 024

#ifdef float
#ifndef hardfp
!	sys     060;.data2 4,fptrap	/ if not commented it will appear as undefined
#endif
	sys     060;.data2 010,sig8
	ldfps   $07600
#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
	mov	r0,-(sp)
EXIT:
	jsr	pc,__exit
	sys     1

WRITE:	jmp	__write

BRK:	jmp	__brk

	.sect .data
hol0:   .data2 0,0     ! line no
	.data2 0,0     ! file
trppc~: .data2 0
trpim~: .data2 0
reghp~: .data2 _end
.limhp: .data2 _end

	.sect .text
sig8:
#ifdef float
	mov     r0,-(sp)
	stst    r0
	mov     1f(r0),-(sp)
	jsr     pc,trp~
	sys     060;.data2 010,sig8
	mov     (sp)+,r0
	rti

	.sect .data
1:      .data2 EILLINS, EILLINS, EFDIVZ, ECONV, EFOVFL, EFUNFL, EFUND, EILLINS
	.sect .text
#endif
