*FLOAT 40
PRINT "floatmode is ";FNfloat
*FLOAT 64
PRINT "floatmode is ";FNfloat
ON ERROR : PRINT "BBCv_5" : END
*FLOAT 80
PRINT "floatmode is ";FNfloat
PRINT "BBCv_6"
END
DEF FNfloat
LOCAL a,b,A%,B%,I%,J%,eq%,bytes%
a=1 : a*=1.0# : b=1 : b*=1.0#
A%=^a : B%=^b
bytes%=5
REPEAT
eq%=0
FOR J%=1 TO 10
a=RND(1)
FOR I%=0 TO bytes%-1
B%?I%=A%?I%
NEXT I%
IF a=b THEN eq%+=1
NEXT J%
IF eq%=10 THEN
IF bytes%=5 THEN =40
IF bytes%=8 THEN =64
=80
ENDIF
IF bytes%=10 THEN =0
IF bytes%=8 THEN bytes%=10
IF bytes%=5 THEN bytes%=8
UNTIL 0
DEF FNprecision
LOCAL M%,P%
DIM P% LOCAL 10
[OPT 0
.M%
movzx eax,byte [ebp+6]
mov edi,[ebp+2]
mov [edi],eax
ret
]
CALL M%, P%, a
= P% * 8