forked from KolibriOS/kolibrios
9b11245e08
support for exponent, high accuracy, not normalized form of writing git-svn-id: svn://kolibrios.org@4721 a494cfbc-eb01-0410-851d-a64ba20cac60
65 lines
2.7 KiB
NASM
65 lines
2.7 KiB
NASM
;-----------------------------------------------------------------------------+
|
|
; Library "utils" (c) Sergei Steshin (Akyltist) |
|
|
;-----------------------------------------------------------------------------+
|
|
; Charset:DOS-866 Font:Courier New Size:9pt |
|
|
; compiler: FASM 1.69.31 |
|
|
; version: 0.1.0 |
|
|
; last update: 31/03/2014 |
|
|
; e-mail: dr.steshin@gmail.com |
|
|
; license: BSD |
|
|
;-----------------------------------------------------------------------------+
|
|
|
|
format MS COFF
|
|
|
|
public EXPORTS
|
|
|
|
section '.flat' code readable writable align 16
|
|
|
|
include '../../../../proc32.inc'
|
|
include '_ftoa.inc'
|
|
include '_atof.inc'
|
|
include '_rand.inc'
|
|
|
|
|
|
;-----------------------------------------------------------------------------+
|
|
; float to ascii string |
|
|
;-----------------------------------------------------------------------------+
|
|
ftoa: ;
|
|
mov ebx, dword [esp+4] ; out string
|
|
mov eax, dword [esp+8] ; in value
|
|
stdcall FloatToString,eax,ebx ;
|
|
ret 8 ;
|
|
|
|
|
|
;-----------------------------------------------------------------------------+
|
|
; ascii string to float |
|
|
;-----------------------------------------------------------------------------+
|
|
atof: ;
|
|
mov ebx, dword [esp+4] ; out <- value
|
|
mov eax, dword [esp+8] ; in -> string
|
|
stdcall string2float,eax,ebx ;
|
|
ret 8 ;
|
|
|
|
|
|
;-----------------------------------------------------------------------------+
|
|
; returns a random integer in the range [ 0...99999 ] |
|
|
;-----------------------------------------------------------------------------+
|
|
random: ;
|
|
call _random ; out <- eax random
|
|
ret ;
|
|
|
|
;=============================================================================;
|
|
align 16
|
|
EXPORTS:
|
|
dd szFtoa , ftoa
|
|
dd szAtof , atof
|
|
dd szRandom , random
|
|
dd 0 , 0
|
|
|
|
szFtoa db 'ftoa' ,0
|
|
szAtof db 'atof' ,0
|
|
szRandom db 'random' ,0
|
|
|
|
section '.data' data readable writable align 16
|
|
|