8bit Projects For Everyone

Find   for  

Amstrad CPC 4MB ROM upgrade

Internal and external 4MB ROM (Flash EEPROM) upgrade for Amstrad CPC.

Port addresses

The upgrade uses some output ports:

#DFxxSelects ROM bank (0..255) as read-only. ROM access must be enabled by #7Fxx port. This is usual CPC feature, however CPC6128 has only banks 0 (BASIC) and 7 (DISK).
#DExxSelects ROM bank as write-enabled. ROM can be written in #C000..#FFFF area. Writing also goes to RAM selected in this area! ROM must be enabled by #7Fxx port to be readable. To program a Flash EEPROM a special procedure must be performed (see datasheet).
Addresses reserved for enable or disable a group of ROM banks for external upgrade.
Addresses reserved for switching between first and rescue ROM chips, also for selecting bank for the low ROM.

Banks groups

Banks group is a four banks that have the same bits 0 to 2 and 3 to 7 in its number. An example is group of banks 0, 8, 16, 24, another is 1, 9, 17, 23. The groups have two purposes.

External ROM add-ons, like 512kB Inicron ROM-RAM-BOX have dip-switch that can disable any of first 8 groups. This is used, when you don't want all the banks to be initialized. The groups appeard, because the 128kB memory chips were connected pararelly to one dip-switch of 8 slides.

Second reason for groups is that 512kB Flash EEPROM (29F040) has sectors of 64kB. (Sector is the smallest area that must be erased to change at least one bit from 0 to 1.) The 64kB takes 4 banks, and to reprogram bank 1 it is better to erase banks 1, 9, 17, 23 than 0, 1, 2, 3. The 4MB Flash EEPROM (29F320) also has 64kB sectors.

In case of installing a software that takes 3-4 banks (e.g. FutureOS), it is recommended to put it into one banks group.

Rescue ROM chip in internal upgrade

The internal upgrade completely removes the original ROMs. In case of Flash programming fail or software bug, the Flash contents could be damaged. This would make the machine unuseable. So, the rescue ROM is to be used to boot the computer and load software to correct the first Flash. Also, it can contain some repair software (when the chip is larger than 64kB), that will clear the first Flash and fill it with the minimum contents.

Rescue ROM is activated by pressing [F9] key on keyboard, while power-on or reset. Rescue ROM and first ROM can be also swapped by software, using the #DBxx port. As this port can be in future also used to change the low ROM bank, the low byte and value OUTed are important (please use OUT #DB9F,#9F). To select rescue ROM, set the AY port (keyboard) to output and clear bit 3. To select first ROM, set the keyboard column (PC0..PC4 of 8255) to value 10 (AY port should be in normal configuration). Otherwise the ROM selected while OUT depends on [F9] key.

It is not recommended to reprogram the rescue ROM without stable first ROM. In case the rescue ROM fails, the ROM must be removed and programmed with an external programmer, or special rescue interface must be connected to Expansion slot.

Low ROM bank

One ROM bank range 1..31 must be reserved for the low ROM, that is paged to #0000..#3FFF. The bank is selected to 31 by resistors (in CPCF-105 board). By rewiring the resistors other bank can be selected. Or the resistors can be driven by dip-switches, so the bank is manually selectable.

There are future plans for a board, that could select the low ROM bank with #DBxx port. Writing to this port also changes the high ROM bank, so OUT #DFxx,... must follow with number of required high ROM bank.

Internal 512kB to 4MB ROM upgrade

This upgrade replaces the 40015 and 40025 chips and uses some onboard logic that is not needed anymore. It includes two ROM chips. First is 512kB Flash EEPROM (29F040) that can be expanded to 4MB, or battery backuped SRAM. The second is 64kB to 512kB EPROM or Flash EEPROM and is used only for rescue purposes, when the first chip contents gets corrupted while programming. There are 3 boards available at this moment.

CPC.Flash basic upgrade board CPCF-105

CPCF-105 is the basic board, replaces internal ROMs. There are two 32 pins precise sockets on it and some logic. One socket is for first ROM, second for rescue ROM. The rescure ROM socket can be rewired to accept 64/128kB ROM. Into this board a memory in DIL32 (or DIL28 for rescue) can be inserted.

CPC.Flash upgrade board CPCF-201, TSOP32 to DIL32 plus logic

CPCF-201 is small board, that converts memory in TSOP32 case into DIL32 one. Also contains extra logic, so up to 8 such boards can be connected parallely, giving 4MB when each board has a 512kB chip (29F040). The two logic chips must be mounted on only one such board. Boards set is connected with vertical copper wires and is insertable into DIL32 socket. The TSOP32 case is very thin and 29F040 TSOP can be get at very low price.

CPC.Flash upgrade board CPCF-301, double TSOP32 into DIL32

CPCF-301 is a board that converts two TSOP32 memories into DIL32. There's no space for the logic, so requires at least one CPCF-201. It can join two sets made of CPCF-201 boards to reduce height while full 4MB is mounted under keyboard.

Tell other people:

Files for download

cpc6128d.zip 39.1kB (2007-09-18 00:50), uploaded by Jarek Adamski
Standard CPC6128 ROMs packed into a 512kB file for 29F040 programming. The disk support is active in bank 15 and parked in bank 7.
cpcf-904.png 56.0kB (2007-07-03 01:50)
Schematics of changed needed to CPC6128 board PTNO.Z70210 for internal Flash upgrade.
cpc664.zip 39.0kB (2007-06-28 15:48)
Standard CPC664 ROMs packed into a 512kB file for 29F040 programming.
cpc6128.zip 39.0kB (2007-06-27 15:31)
Standard CPC6128 ROMs packed into a 512kB file for 29F040 programming.
cpcf105t.jpg 63.1kB (2007-06-19 23:38)
A photo of mounted CPCF-105 board.

Links to other pages

See also

ROM :: Amstrad CPC
Extra memory that behaves like ROM banks. If SRAM with battery backup or EEPROM are used, the contents can be software changed.
Memories with parallel address and data lines.
FutureOS / CPC
Operating system for Amstrad CPC.
Amstrad CPC
Amstrad CPC - main board types, ROMs.



Forgot password?

Flash ROM
To 128
Sam Coupé
Mapper 4MB
MSX-2 SVI738
Gama 192
ROM replacer
To 128K
To +3
Wonder RAM
Timex FDD

If you see error on this page, describe here:

© 2009-12-28 21:50 Jarek Adamski, http://8bit.yarek.pl