As far as I can see, there is some problem with Darrel subroutine.
To get correct number in microchip format I used this code:
Code:
aint = 2375
Gosub itofa ' Convert int to float
bint = 100
Gosub itofb ' Convert int to float
Gosub fpdiv
Result is: $833E0000
And I can display correctly with this code:
Code:
A_Float = $833E0000 ; with 1 decimal place
Bint = 10
GOSUB ItoFB
GOSUB fpmul
GOSUB FtoIA
HSEROUT2 [" ",SDEC Aint/10,".",DEC1 ABS(Aint),13,10]
A_Float = B ; with 2 decimal places
Bint = 100
GOSUB ItoFB
GOSUB fpmul
GOSUB FtoIA
HSEROUT2 [" ",SDEC Aint/100,".",DEC2 ABS(Aint),13,10]
A_Float = B ; with 3 decimal places
Bint = 1000
GOSUB ItoFB
GOSUB fpmul
GOSUB FtoIA
HSEROUT2 [" ",SDEC Aint/1000,".",DEC3 ABS(Aint),13,10,13,10]
Output is:
23.7
23.74
23.749
That is fine...
But when I try to convert $41BE0000 with Darrel's routine result is
IEEE = 41BE0000
Mchip= 82BE0000
Bookmarks