On 22 Sep 2006, at 08:14, [EMAIL PROTECTED] wrote:

> Ok, A6,A1 was a typo, I meant A4 - apologies. On the other hand, my  
> QDOS Companion (Pennell) has the load/save parameters as $32 to $ff  
> and not $ff31 to $ffff as you state.
>
> I went on a doc hunt last night and Dickens has the negatives and  
> my QDOS docs from Jochen also has negatives - so Pennell is wrong.  
> Oh hum.
>
> Further to this, Dickens works out the actual address as (A6 + A4 +  
> (D0.W OR FF00) AND FFEE) while Jochen's docs (in my version) simply  
> has A6 + A4 + (D0.W AND FFFE) which looks like the correct verion -  
> as only bit zero is cleared and not bits 0 and 1 as per Dickens.

It is a long timne since I used the maths routines, but I made some  
notes on these and I found that they worked in practice. The op code  
are either in D0.W, for RI.EXEC or i a list of bytes, for RI.EXECB.  
This implies that the op code is a byte. Pennel thus refers to the  
range for fp number storage as $32 to $FE for reading and $31 to $FF  
for storage. Pennel further lists the addresses of the storage as -206 
(A6,A4.L) to -2(A6,A4.L), I have interpreted that (correctly in  
practice) as
$32  reading from -$CE(A6,A4.L)
$34  reading from -$CC(A6,A4.L)
. . . .
$FE reading from -$02(A6,A4.L)

Dickens says that codes $31 to $FF are extended to a negative word  
$FF31 to $FFFF when used to determine the storage address. Apart from  
the fact that $31 does not seem to be allowed, Pennel and Dickens are  
saying the same thing in different ways, Pennel is in fact correct.

Thus,  there are only two bytes between each possible storage address  
so that storing fp numbers using,say, $32 and $34 is bound to lead to  
overwriting.

George
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to