The standard expansions are based on the RAM banking logic from the CPC6128, ie. equivalent to the fourth Gate Array register in the CPC6128 (or more precisely, the PAL that assists its Gate Array chip).
- Accessing a 64K expansion (or the first 64K of a bigger expansion) is compatible to the 128K in the CPC6128
- Although, for real CPC6128 compatibility one may need some patches (eg. CP/M Plus refuses to work without the 6128s BASIC version) (it "detects" the 128K by checking the BASIC version)
Expansions bigger than 64K combine the CPC6128-style mapping with some formerly unused chips in the fourth Gate Array register:
Gate Array, Port 7Fxxh:
7-6 Must be 3 (aka Gate Array Register 3) 5-3 Bank number in 64K units (for expansions bigger than 64K) 2-0 Bank mapping in 16K fragments (as on normal CPC 6128 Gate Array)
The 16K fragments are consisting of 8 banks. Banks 0-3 are the internal RAM, banks 4-7 are external RAM (taken from the currently selected 64K block).
Capacity
- A nnK expansion adds nn Kbytes to the internal 64 Kbytes in the CPC. So the resulting size is nn+64 Kbytes.
- This does in most or all cases also apply on the CPC 6128: only 64 Kbytes of it's internal memory are used (the 2nd half of internal memory is disabled and replaced by the expansion RAM, the resulting size is nn+64, not nn+128 Kbytes)
Standard Expansions
- Dk'tronics memory expansion - 64K and 256K expansions
- Dobbertin Memory Expansion
- CPC4MB (DIY) - compatible with standard 512 Kbyte expansion (plus extra non-standard 3.5 MBbyte)
- RAM BOX 512Kb memory expansion (is that lowercase "b" meaning 512kbit=64Kbyte ???)
- The first 192K (of total 512K) in Aleste 520EX are standard compatible
Non-Standard Expansions
- Inicron RAM-Box - not fully compatible with standard expansions
- Otten & Fecht 1 MB RAM-Disc - Accessed through I/O ports (RAM is not mapped to memory)
- Vortex Expansions RAM card - non-standard
Expansions that are unknown how they work, and if they are standard or not
- RAM7 2Mb memory expansion - is that 2Mbit or 2Mbyte? what I/O ports would be used to access 2MByte?
- Inicron RAM-Box - not fully compatible with standard expansions
- Data Media SP64 - all unknown
- Dk'tronics Silicon Disc (Dk'tronics) - all unknown
- Phoenix M64 - all unknown