<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 30 Nov 2009 02:30:56 +0000
From   : kevin@... (Kevin Bracey)
Subject: Tube - I/O processor memory questions

John Kortink wrote:
> On Sun, 29 Nov 2009 23:42:06 +0000, Kevin Bracey
> <kevin@...> wrote:
>
>   
>> John Kortink wrote:
>>     
>>> On Sun, 29 Nov 2009 22:06:25 +0000, Kevin Bracey
>>> <kevin@...> wrote:
>>>
>>>       
>> Well, they are explicitly documented as being available to languages in 
>> the original 6502 Second Processor User Guide:
>>
>>    Page 0 to &EE is available
>>  
>>
>> That's sounds like official documentation, not just some bit of 
>> reverse-engineering.
>>     
>
> It sounds very much like reverse engineering to me.
>   
What's the difference between this and any other official documentation 
though? This is *the* manual for the product.

If the manuals say that 00..8F are available for languages on the I/O 
processor, why should we believe that? They didn't leave themselves that 
much room there either - should we be keeping 80-8F clear just in case 
they want it back?

And the same for F800 - am I wrong to build my "HI" language versions 
assuming that?

You've still not persuaded me not to believe Acorn.  Clearly you're free 
to claim extra workspace for your copro, but it would be a minor 
backwards compatibility niggle. Certainly less serious than lowering 
HIMEM from F800, but it could upset Tube-tuned software that's expecting 
the standard, documented 6502 copro memory layout.

I've not seen any document suggesting what Acorn's thoughts were about 
future 6502 copro compatibility. The closest thing I've found is this 
line in App Note 004 about general things likely to make code non-Tube 
compatible:

"Other invalid actions include:"
"Peeking/Poking memory unless the location is guaranteed to be the same 
in both memory maps."

That rules out 8000-F7FF as much as 90-EE. But that section's thinking 
more about stuff like trying to find your command line from &F2.

I've not found anything suggesting that they ever had second thoughts 
about the layout documented in the original documentation. Did the 
Master Turbo copro Tube OS change anything at all from the original?

> Not least because at this moment I happen to be right
> in the middle of heavily tweaking Tube OS 1.10 for my
> own creation ReCo6502, which is why I know that those
> allocations are not entirely correct. In reality, error
> messages are copied to &236-&2FF, i.e. there is no user
> memory in page 2. And page 3 is not used at all ...
>   
Hmm, looks like something changed after the docs were written (whether 
from specs, or reverse-engineering). Evidence that people weren't 
thinking that hard about what was "legal" or not. Odd, in a product 
based around the Tube, where legality and use of documented APIs were so 
much of a focus. Wonder if that changed between public versions. Do you 
have info on versions of the Tube OS?

It looks like someone had the bright idea of squidging memory up further 
to give more language space; leaving 300-7FF free, but that didn't reach 
the docs. If there's a documentation vs reality conflict like that, then 
you've clearly got a lot more leeway - effectively that gives you the 
option to use all of 200-3FF. Unless we find that something really 
important like Tube Elite is making assumptions about 
undocumented/incorrectly documented behaviour.

Kevin
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>