Dk'tronics memory expansion

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
256K Silicon Disc and 256K expansion (used as plain RAM, without the additional ROM cartridge here)

The Memory Expansion and Silicon Disc from Dk'tronics are both RAM expansions. The Silicon Disc additionally comes with a ROM which contains RAM-Disc functions.


Memory Expansions

Dk'tronics produced 2 different Memory Expansions, a 64K and a 256K which were compatible with all (non Plus) CPCs.

The expansions meant that CP/M Plus and CP/M 2.2 (with the use of a utility supplied) could both access a 'massive' 61K TPA.

Silicon Discs

These were intended to be used as RAM disc, made in 64K and 256K versions, too.


For general info on I/O Ports, see:

Internal 64KB in 6128 and External 64KB RAM

This uses 1 bank, the bank is mirrored through the entire 512KB range. e.g. c4,c5,c6,c7 access the same ram as cc,cd,ce,cf.

In terms of decoding the RAM selection byte:


x = ignored s = selection (0-7)

External 64KB Silicon Disk

The exact decoding is not known. Testing is needed to confirm.


This uses 4 banks (effectively 0-3 on 464 and 1-3 on 6128). It appears the 256KB RAM detects the 6128, possibly using /EXP but this is to be confirmed, so that it doesn't conflict with the 'extra 64KB' (i.e. c4-c7) RAM of the 6128.

The decoding looks like this:


b = bank (bank 0 is ignored on 6128 so that internal RAM is visible, 1,2,3 are from the 256KB RAM). s = selection (0-7)

On 6128 you get 256KB RAM + internal 64KB base RAM

256KB Silicon Disk

This uses 4 banks (effectively 4-7), the banks are not mirrored. The RAM doesn't conflict with the internal RAM of the 6128 OR the 256KB RAM. The decoding looks like this:


b = bank s = selection (0-7)

On 6128 you get 256KB RAM + 64KB internal extra RAM+ 64KB internal base RAM

Bank Numbers

  • 64K Expansion and 64K Silicon Disk use only one 64K bank (bank 0)
  • 256K Expansion uses four 64K banks (bank 0..3)
  • 256K Silicon Disc uses four 64K banks (bank 4..7)

The 256K Expansion and 256K Silicon Disc can be used together, resulting in 512K RAM in eight banks (bank 0..7). Plus, the 64K internal RAM is used (so total RAM is 576K).

Memory Expansion vs Silicon Disc

Both are basically the same hardware, both contain RAM, use same I/O ports, and both are not battery-backed.

  • The Memory Expansions are intended as general purpose RAM, and software is included on cassette or disc.
  • The Silicon Discs are intended as RAM Disc, software is included on ROM. The 256K version uses special bank numbers (see above).


  • The 64K versions (of both Memory Expansion and Silicon Disk) were made only for CPC 464/664. On CPC 6128 they would be useless (replacing the 2nd internal 64K by external 64K). --- Although, reportedly 64K versions DO exist for 6128 (apparently mapping the 64K to a location where it doesn't overlap the internal RAM. Details are unknown?)
  • The 256K versions (of both Memory Expansion and Silicon Disk) were made in separate versions for 464/664 and 6128 (they should be compatible at software side, possibly they do differ only cosmetically...?)
  • All 64K/256K Memory Expansions, and the 64K Silicon Disc consist of a single cartridge. The 256K Silicon Disc is a special case: It consists of two cartridges shipped together (one contains the ROM, the other contains the RAM).


Normal and SMD version
Normal and SMD version

There are too many different versions to list all photos on this page.

See the photo gallery:

Dk'tronics Memory Expansion Gallery

RSX Commands (Memory Expansion)

Bank Switch Software (with RSX commands) is included on tape or disc. The Bank Switch Software RSX commands are:

  • |Bank, n - Map a 16K bank directly into memory space (where n is the bank No.)
  • |Swap - Alternate between high and low screens
  • |Low - Change to the low screen
  • |High - Change to the high (default) screen
  • |Saves, n - Store a screen to a 16K bank (where n is the bank No.)
  • |Loads, n - Retrieve a screen from a 16K bank (where n is the bank No.)
  • |Savew, w, n - Stores a windows contents into a 16K bank (where n is the bank No.)
  • |Loadw, w, n - Load a window with the data from a 16K bank (where n is the bank No.)
  • |Saved, n, s, l - Transfer original RAM to expansion RAM
  • |Loadd, n, s, l - Load original RAM from expansion RAM
  • |Peek, n, s, v - Read the value of a byte in the expansion RAM
  • |Poke, n, s, v - Write to a byte in the expansion RAM

A further command which was considered to be only for 'advanced' users was also described later in the handbook:

  • |Askram, E, V (E=enquiry No. V=variable) could be used to request information from the expansion card, including the amount of RAM available (where E=1), return the number of banks available (where E=2) or (E=3) returned a 0 or 1 to indicate whether the expansion card 'had a problem'.

RSX Commands (Silicon Disc)

The whole software (including RSX tools for creating silicon disc compatible CP/M versions) is contained in the ROM, there is no cassette / disc included. The RSX commands are:

... - [See manual for now]


  • 256K Silicon Disc reviewed in ACU May 1986, page 39.


  • Upgrade a 64K expansion to a 256K expansion - from the Australian Mag : TAU 29 pag 04.
  • An article in Amstrad Action (Issue 46, July 1989, page 16 and 17) described how a Silicon Disk can be converted into a memory expansion.