Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site genrad.UUCP
Path: utzoo!linus!decvax!genrad!al
From: al@genrad.UUCP (Al Gudaitis)
Newsgroups: net.micro.cbm
Subject: Re: Re: c64 floating point, part 3 - (nf)
Message-ID: <3857@genrad.UUCP>
Date: Thu, 16-Feb-84 13:08:19 EST
Article-I.D.: genrad.3857
Posted: Thu Feb 16 13:08:19 1984
Date-Received: Fri, 17-Feb-84 06:15:26 EST
References: <5652@uiucdcs.UUCP>
Organization: GenRad, Bolton, Mass.
Lines: 15

In regards to the accuracy of addresses $BBD4 vs $BBD7 for moving F1 to memory
and $BC0C vs $BC0F for moving F1 to F2, I still think I'm right that the lower
addresses are correct.  First of all, the extra byte at $70 is very important
and should not be ignored.  BASIC obtains extra accuracy by using one more bit
of mantissa for arithmetic operations on the main floating point accumulator
(F1) and then rounding off before sending F1 to any place else (the storage
format in memory is different and so needs conversion and the secondary FPA
(F2) doesn't have room to store the extra bit).  But in addition, $BBD0 is the
entry point for the routine that stores the FPA into the memory occupied by
the current variable (as in a LET statement) and it loads X and Y with the
correct address and then falls through to $BBD4.  In fact, I found no routine
within BASIC that calls $BBD7.  By analogy, I assume that $BC0C is actually
the correct entry point for most F1 to F2 operations though I agree with you
that the only difference between your entry points and mine is that call to
$BC1B.