General Category > Amstrad CPC hardware

How do RAM expansions prevent writes to internal RAM on the 446/664?

(1/3) > >>

PulkoMandy:
A question for you all electronics electronics hacker out there.


I'm looking at the schematics of the CPC and as far as I can see, the RAMDIS signal only disable reads from the main memory on the 464 and 664. On the 6128 on the Plus this was changed as the signal from the expansion port goes through the memory management PAL.


However, I know there are several memory expansions that work just fine on these machines. Do they do anything special to prevent writes to the internal RAM when external RAM is mapped? How does this work? Is the 464/664 schematics incorrect, or do they use some other trick to disable RAM access?


I have found mentions of this oddity various times in the forum, but never found a conclusive answer. Some people said it would be the Gate Array handling it, but I checked the reverse engineering of the Gate Array from pictures of the die, and I did not see anything related to the MMR there. Also this wouldn't work for the Multiface, for example, since it maps its memory using a different register.

gerald:

--- Quote from: PulkoMandy on 14:48, 14 October 21 --- A question for you all electronics electronics hacker out there.

 I'm looking at the schematics of the CPC and as far as I can see, the RAMDIS signal only disable reads from the main memory on the 464 and 664. On the 6128 on the Plus this was changed as the signal from the expansion port goes through the memory management PAL.

However, I know there are several memory expansions that work just fine on these machines. Do they do anything special to prevent writes to the internal RAM when external RAM is mapped? How does this work?
--- End quote ---
Most 464 ram extension (DK tronic's one, XMEM) works by forcing MREQ on write request. This make the gate array ignore the write at all.
The C3 mode 'support' is done by forcing A15 high during extension ram access.

PulkoMandy:
I see the Multiface II also has a transistor driving MREQ, so I guess it does the same. Thanks for clarifying!

rpalmer:
The 464/664 does not have the MMU PAL as seen in the 6128 as there is no memory expansion to deal with. The only controls on a 464/664 is with the 74LS153 address selection chips between the 6845 and Z80.

The external memory expansion which implement the DK'Tronics standard use the RAMDIS to disable the internal memory so that accesses is correct on the 464/664.

As for "C3" mode (correctly is defined as mode '3') as mentioned by others, is handled by completely disabling the internal memory so that all accesses go the external unit meaning the external memory looses 64K of its total expansion memory.

zhulien:
There is also the RAMROM which is a bit of an oddity, it is RAM in that it allows you to program it, but when in normal mode you lock it with a switch and all writes go to RAM even when ROM is enabled. Reads come from ROM if ROM is enabled otherwise RAM as per a normal ROMboard.

Navigation

[0] Message Index

[#] Next page

Go to full version
Powered by SMFPacks Reactions Mod
Powered by SMFPacks Alerts Pro Mod
Powered by SMFPacks Mentions Pro Mod