	machine	mc68030
*******************************************************************************
	xdef	_RealStr
_RealStr:
	sub.w	#40,a7
	movem.l	rl0,-(a7)
	bra	store0
store0back:
* name      	 offset
* buf       	 0+s0
* rest      	 24+s0
* top       	 28+s0
* d         	 32+s0
* args
* str       	 56+s0
* f         	 48+s0
* n         	 44+s0
; fmove.d	(48+s0,a7),fp0
	move.l	(48+s0,a7),fp0
	move.l	(4+48+s0,a7),fp0+4
; fabs	fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	fp0,d2
	move.l	fp0+4,d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-54,a6)		; IEEEDPAbs
	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
; fmove.l	fp0,(28+s0,a7)
	movem.l	d0-d1/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-30,a6)		; IEEEDPFix
	move.l	d0,(12+28+s0,a7)
	movem.l	(a7)+,d0-d1/a6
; fmove.d	(32+s0,a7),fp0
	move.l	(32+s0,a7),fp0
	move.l	(4+32+s0,a7),fp0+4
; fsub.l	(28+s0,a7),fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	(20+28+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	(-72,a6)		; IEEEDPSub
	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
; fmul.d	#10.0000000000000000E8,fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	#$41CDCD65,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
; fmove.l	fp0,(24+s0,a7)
	movem.l	d0-d1/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-30,a6)		; IEEEDPFix
	move.l	d0,(12+24+s0,a7)
	movem.l	(a7)+,d0-d1/a6

startif0:			; if
; fmove.d	(48+s0,a7),fp0
	move.l	(48+s0,a7),fp0
	move.l	(4+48+s0,a7),fp0+4
; fcmp.d	#0.0000000000000000,fp0
	movem.l	d0-d3/a6,-(a7)
	move.l	fp0,d0
	move.l	fp0+4,d1
	move.l	#$00000000,d2
	move.l	#$00000000,d3
	movea.l	_MathIEEEDoubBasBase,a6
	jsr	(-42,a6)		; IEEEDPCmp
	move.l	d0,fpcc
	movem.l	(a7)+,d0-d3/a6
	tst.l	fpcc
; fbge	end0
	bge	end0
	move.l	(28+s0,a7),d0
	neg.l	d0
	move.l	d0,(28+s0,a7)
end0:				; endif

	move.l	(24+s0,a7),-(a7)
	move.l	(28+s0+4,a7),-(a7)
	lea	str0,a0
	move.l	a0,-(a7)
	lea	(0+s0+12,a7),a0
	move.l	a0,-(a7)
	bsr	_StringF
	add.w	#16,a7
	lea	(0+s0,a7),a0
	move.l	a0,-(a7)
	bsr	_StrLen
	add.w	#4,a7
	sub.l	#9,d0
	move.l	(44+s0,a7),d1
	add.l	d1,d0
	move.l	d0,-(a7)
	lea	(0+s0+4,a7),a0
	move.l	a0,-(a7)
	move.l	(56+s0+8,a7),-(a7)
	bsr	_StrCopy
	add.w	#12,a7
RealStrend:
	move.l	(56+s0,a7),d0
RealStrfinish:
rl0	reg	d1/a0
	move.l	(a7)+,fp0+4
	move.l	(a7)+,fp0
	bra	skipstore0
store0:
	move.l	fp0,-(a7)
	move.l	fp0+4,-(a7)
	bra	store0back
skipstore0:
s0	equ	16
	movem.l	(a7)+,rl0
	add.w	#40,a7
	rts

	xref	_StrCopy
	xref	_StringF
	xref	_StrLen
	xref	_StrCopy
	xref	_StringF
	xref	_StrLen
	xref	_MathIEEEDoubBasBase
	xref	_MathIEEEDoubTransBase
	xref	fp0
	xref	fp1
	xref	fp2
	xref	fp3
	xref	fp4
	xref	fp5
	xref	fp6
	xref	fp7
	xref	fpcc
str0	dc.b	"%ld.%09.9ld",0
