Login
Back to forumSee the full topicGo to last reply

Posted By

siz
on 2023-04-11
17:22:29
 Re: New Project: Hannes-compatible 256k RAM Expansion

I'm just a programmer but please don't do new, incompatible extensions. (Even when there are very few actual programs that use 256k and even less computers having original 256k - or more - RAM expansions). The original Hannes expansion used a 6529 with initial value of $ff. Please keep it that way.

I can accept that address bits 18 and 19 in the bank select register (P2 and P3) are inverted and actually they select bank 3 as default (1111 xor 1100 in assembly wink) and TED either accesses the same bank as the CPU or always bank 3.
I still don't understand why did they need this from a programmers point of view: the default bank is $0f (with whatever amount of RAM I have). When I set bit 6 to 0 TED will access only one of the banks. From a programmer's perspective it should be the default, power-up bank. And that's exactly what happens in the 1M expansion by HLI: internally he implements the default bank to be bank 3 (by inverting the upper two bank select bits of $fd16) and forces TED to read bank 3. But actually he would get the same result if he does not invert does bank select bits and just forces TED to bank $f.

It does not make sense to me to say that default bank is $f (the initial value of $fd16) and if you turn bit 6 of $fd16 to 0 to force TED to use a single bank it will be bank 3. And I know that this is what's written in the docs ("TED-acces to RAM only in bank 3, bits 0 and 1 ignored") but for them that was the default, the highest bank. And IMHO if we have more than 256k it should mean "bank select bits are ignored, default bank is used")

Returning to the bug in Dream World: as long as a program writes different bank select values and assumes them to have the same effect it will not work properly. Independently of hardware level tricks.



Back to top


Copyright © Plus/4 World Team, 2001-2024