MiaM wrote:I'm just asking if you have seen any problems. Afaik the only software available that would trigger the problem would be VIC DOOM as there afaik aren't any other software that uses both the 3k expansion area and the block 1/2/3 areas. All commercial and probably most home made software from back in the days either used the 3k expansion OR the larger expansions, but afaik never both.
Commercial, probably not but expanders like the RAMAX did allow the presence of both BLK RAM area expansions and RAM in the 0400-0FFF$ areas at the same time. Never heard of any problems. Many 'hackers' or programmers back then did create custom software that used both areas without any technical issues.
When introducing another gate, you add a gate dealy and thus the risk of timings becoming a bit off.
All Commodore 8K and 16K RAM expansion include a 74LS139 decoder and there isn't any problem there.
AFAIK, all 74HCT and older 74LS logic ICs perform their operation in less than 20ns. They perform their job about twice as fast as the C64 PLA.
Afaik noone has published a calculated timing graph for VIC 20. There are various more or less delayed clock signals (passing through different numbers of gates) and those signals are involved in the selection of the 138 decoders for both block0-7 and ram0-7.
The MOS 6502 datasheet has graphs but of course, they only include information about the CPU, not the VIC-20 itself.
However, if your theory is correct, every single VIC-20 and PET computers should have such problems. Doesn't look like it.
In the C64, the PLA introduces glue logic delays that are even greater, at up to 40ns. The delay is even a critical component in the way DRAM is accessed. In the C64c and C128, faster glue logic components were introduced and the delay got back to about the same as those of 74LS logic ICs.
I must admit, I always made sure the SRAM ICs I put on every single memory expansion I have sold since 2006 is rated for 70ns or slower. The same is true for Ultimate Expanders sold around 2006-2007 which carried an EPROM - these were rated for 120ns or slower. The objective being a shift in timing on some lines caused by glue logic would therefore be inconsequential.
The EPROM used on the Behr-Bonz is rated for 90 or 100ns depending on the batches I get.
In the past, I clearly mentioned using SRAM normally destined for use as older PC cache may cause problems but some have ridiculed this notion. I think you may have found a potential problem.
eslapion wrote:I can't answer to speculation. I have the schematics of all the VIC-20 revisions and my SRAM expansions work well on all of them.
Have you specifically tested VIC DOOM (or any other software using both the 3k expansion and the block1/2/3 expansions at the same time) with all revisions?
I did not. Some of my clients did specifically note this software caused problems on other expansions (I didn't care to note which ones specifically) and not on the ones I sell. The architecture of both the Ultimate Expanders I sold a decade ago and the ones I sell presently present themselves to the VIC as if the BLK areas expansion and the RAM/IO were two completely separate RAM expansions built onto a single board. They have separate glue logic and separate RAM ICs. This may have something to do with it.
In fact, in the case of the Ultimate Expander, having RAM in the 0400-0FFF$ area was an optional add-on and having RAM in the IO areas was not available.
AFAIK, all the expansions which have problems with DOOM for VIC use a single glue logic architecture to decode both areas and they also use very fast SRAM ICs. I think the culprit is there.
... it's "only" when using the 3k expansion and block 5 as ram at the same time that it doesen't really work on some VIC 20's.
AFAIK, the FE3 and the other 'not gold plated' RAM expansion use the same logic IC to decode both the BLK5 and 3k RAM areas.
The expansions I sell do not.
Be normal.