	.TITLE	FAO_FFLOAT 
	.IDENT	/V1-001/
;
; 001	Oct-2001	PB	Creation
	.LIBRARY	"SYS$LIBRARY:LIB.MLB"

	.PSECT	FAO_FFLOAT_D,WRT,NOEXE,PIC,SHR,QUAD

FINDESC:	.WORD	4
		.BYTE	DSC$K_DTYPE_F
                .BYTE   DSC$K_CLASS_S
		.ADDRESS FRACT
FOUTDESC:	.WORD	32
		.BYTE	DSC$K_DTYPE_T
                .BYTE   DSC$K_CLASS_S
		.ADDRESS FOUTSTR
FOUTSTR:	.BLKB	32
FRACT:		.LONG
       .PSECT FAO_FFLOAT_C,EXE,NOWRT,LONG


	.CALL_ENTRY	MAX_ARGS=12, HOME_ARGS=TRUE, -
			INPUT=<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>, -
			PRESERVE=<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>, -
			LABEL=FAO_FFLOAT
;++
;1 FAO_FFLOAT
; VMS does not provide an FAO mechnism to translate Floats to ascii therfore
; it is provided here.
;2 Inputs
;	F-floating number to translate by value
;	.address of desc pointing to output field
;	.address of .long where len of resulting string is written
;2 Outputs
;	The ascii representation of the inpout float is written to the 
;	output field
;	The len of the written string is written to the len (P3)
;2 Returns
;	Any return from LIB$CVT_DX_DX
;--
		MOVL	4(AP),FRACT
		MOVQ	@8(AP),R6
		MOVW	R6,FOUTDESC
		MOVL	R7,FOUTDESC+4
		PUSHL	12(AP)
		PUSHAL	FOUTDESC
		PUSHAL	FINDESC
		CALLS	#3,G^LIB$CVT_DX_DX
		RET
			
	.END	
