	machine	mc68030
*******************************************************************************
	xdef	_RealVal
_RealVal:
	sub.w	#40,a7
	movem.l	rl0,-(a7)
	bra	store0
store0back:
* name      	 offset
* sign      	 0+s0
* pre       	 4+s0
* m         	 8+s0
* n         	 12+s0
* o         	 16+s0
* f         	 24+s0
* d         	 32+s0
* args
* str       	 48+s0
* pos       	 44+s0
; fmove.d	#0.0000000000000000,fp0
	move.l	#$00000000,fp0
	move.l	#$00000000,fp0+4
; fmove.d	fp0,(32+s0,a7)
	move.l	fp0,(32+s0,a7)
	move.l	fp0+4,(4+32+s0,a7)
; fmove.d	#9.9999999999999982E-2,fp0
	move.l	#$3FB99999,fp0
	move.l	#$99999994,fp0+4
; fmove.d	fp0,(16+s0,a7)
	move.l	fp0,(16+s0,a7)
	move.l	fp0+4,(4+16+s0,a7)
	move.w	#-1,(4+s0,a7)

startwhile0:			; while
	move.l	(48+s0,a7),a0
	move.l	(44+s0,a7),d1
	move.b	(a0,d1.l*1),d0
	andi.l	#$ff,d0
	cmp.l	#32,d0
	seq	d0
	extb.l	d0
	move.l	(48+s0,a7),a0
	move.l	(44+s0,a7),d2
	move.b	(a0,d2.l*1),d1
	andi.l	#$ff,d1
	cmp.l	#10,d1
	seq	d1
	extb.l	d1
	or.l	d1,d0
	move.l	(48+s0,a7),a0
	move.l	(44+s0,a7),d2
	move.b	(a0,d2.l*1),d1
	andi.l	#$ff,d1
	cmp.l	#9,d1
	seq	d1
	extb.l	d1
	or.l	d1,d0
	tst.l	d0
	beq	end0
	addi.l	#1,(44+s0,a7)
	bra	startwhile0
end0:				; endwhile


startif1:			; if
	move.l	(48+s0,a7),a0
	move.l	(44+s0,a7),d0
	cmpi.b	#45,(a0,d0.l*1)
	bne	elseif1_1
	move.l	#-1,(0+s0,a7)
	addi.l	#1,(44+s0,a7)
	bra	end1
elseif1_1:
	move.l	#1,(0+s0,a7)
end1:				; endif


startwhile5:			; while
	move.l	(48+s0,a7),a0
	move.l	(44+s0,a7),d0
	move.b	(a0,d0.l*1),d1
	andi.l	#$ff,d1
	move.l	d1,(8+s0,a7)
	tst.l	(8+s0,a7)
	beq	end5

startif6:			; if
	move.l	(8+s0,a7),d0
	cmp.l	#48,d0
	sge	d0
	extb.l	d0
	move.l	(8+s0,a7),d1
	cmp.l	#57,d1
	sle	d1
	extb.l	d1
	and.l	d1,d0
	tst.l	d0
	beq	elseif6_1
	move.l	(8+s0,a7),d0
	sub.l	#48,d0
	move.l	d0,(12+s0,a7)

startif8:			; if
	tst.w	(4+s0,a7)
	beq	elseif8_1
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fmul.d	#10.0000000000000000E0,fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	#$40240000,d2
	move.l	#$00000000,d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-78,a6)		; IEEEDPMul
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
; fmove.d	fp0,(32+s0,a7)
	move.l	fp0,(32+s0,a7)
	move.l	fp0+4,(4+32+s0,a7)
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fadd.l	(12+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	(20+12+s0,a7),d0
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-36,a6)		; IEEEDPFlt
	move.l	d0,d2
	move.l	d1,d3
	move.l	fp0,d0
	move.l	fp0+4,d1
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-66,a6)		; IEEEDPAdd
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
; fmove.d	fp0,(32+s0,a7)
	move.l	fp0,(32+s0,a7)
	move.l	fp0+4,(4+32+s0,a7)
	bra	end8
elseif8_1:
; fmove.l	(12+s0,a7),fp0
	movem.l	d0-d1/a6,-(a7)
	move.l	(12+12+s0,a7),d0
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-36,a6)		; IEEEDPFlt
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d1/a6
; fmove.d	fp0,(24+s0,a7)
	move.l	fp0,(24+s0,a7)
	move.l	fp0+4,(4+24+s0,a7)
; fmove.d	(24+s0,a7),fp0
	move.l	(24+s0,a7),fp0
	move.l	(4+24+s0,a7),fp0+4
; fmul.d	(16+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	(20+16+s0,a7),d2
	move.l	(24+16+s0,a7),d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-78,a6)		; IEEEDPMul
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
; fmove.d	fp0,(24+s0,a7)
	move.l	fp0,(24+s0,a7)
	move.l	fp0+4,(4+24+s0,a7)
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fadd.d	(24+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	(20+24+s0,a7),d2
	move.l	(24+24+s0,a7),d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-66,a6)		; IEEEDPAdd
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
; fmove.d	fp0,(32+s0,a7)
	move.l	fp0,(32+s0,a7)
	move.l	fp0+4,(4+32+s0,a7)
; fmove.d	(16+s0,a7),fp0
	move.l	(16+s0,a7),fp0
	move.l	(4+16+s0,a7),fp0+4
; fmul.d	#9.9999999999999982E-2,fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	#$3FB99999,d2
	move.l	#$99999994,d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-78,a6)		; IEEEDPMul
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
; fmove.d	fp0,(16+s0,a7)
	move.l	fp0,(16+s0,a7)
	move.l	fp0+4,(4+16+s0,a7)
end8:				; endif

	bra	end6
elseif6_1:
	cmpi.l	#46,(8+s0,a7)
	bne	elseif6_2
	move.w	#0,(4+s0,a7)
	bra	end6
elseif6_2:
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fmul.l	(0+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	(20+0+s0,a7),d0
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-36,a6)		; IEEEDPFlt
	move.l	d0,d2
	move.l	d1,d3
	move.l	fp0,d0
	move.l	fp0+4,d1
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-78,a6)		; IEEEDPMul
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
	bra	RealValfinish
end6:				; endif

	addi.l	#1,(44+s0,a7)
	bra	startwhile5
end5:				; endwhile

RealValend:
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fmul.l	(0+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	(20+0+s0,a7),d0
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-36,a6)		; IEEEDPFlt
	move.l	d0,d2
	move.l	d1,d3
	move.l	fp0,d0
	move.l	fp0+4,d1
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-78,a6)		; IEEEDPMul
	move.l	d0,fp0
	move.l	d1,fp0+4
	movem.l	(a7)+,d0-d3/a6
RealValfinish:
rl0	reg	d1/d2/a0
	bra	skipstore0
store0:
	bra	store0back
skipstore0:
s0	equ	12
	movem.l	(a7)+,rl0
	add.w	#40,a7
	rts

	xref	_MathIEEEDoubBasBase
	xref	_MathIEEEDoubTransBase
	xref	fp0
	xref	fp1
	xref	fp2
	xref	fp3
	xref	fp4
	xref	fp5
	xref	fp6
	xref	fp7
	xref	fpcc
