The universal 6502 RAM/ROM Expansion
This expansion was intended to give your PET or CBM computer 32kB RAM
and 128kB FlashROM with many configuration options on a small board
that mounts in the 6502 socket. Thanks to the use of a programmable
logic chip the expansion now supports other 6502 based systems as well:
currently the Commodore VIC-20 computer and many Commodore disk drives
with a single 6502 CPU.
Support for other systems is possible, if their memory map is simple
enough: RAM and ROM can be mapped in chunks of 2kB only.
- Hardware information
- Personality Chips
- Flash Software
- repair or diagnose computers with defective RAM and/or ROM chips.
- make the computer more reliable, the expansion needs a lot less
power than the original chips
- expand RAM to a full 32kB
- add four alternative versions of the PET system ROM
- add four third party option ROMs, even in the original PET2001
that lacks the option ROM sockets
- compatible with 2001-8032 series, 8296 will work as 8032 only
with the expansion, 8096 and SuperPET untested.
- repair or diagnose computers with defective RAM and/or ROM chips.
- expand RAM to a full 32kB (configurable as 0kB, 3kB, 3kB+8kB and
- add four alternative versions of the VIC-20 system ROM
- add four internal cartridge ROM images at BLK5
- fully compatible with VIC-20CR only, the VIC-20 can not be closed
with the expansion
- repair or diagnose drives with defective RAM and/or ROM chips.
- expand RAM (compatible with Maverick, RAMboard 1541/1571,
DolphinDOS 2.0 1541)
- add four alternative versions of the drive ROM (usually for
- universal Flash programmer, so you can program a Flash chip for
the C64 as well
- compatible with all drives with a single 6502 CPU.
Building the hardware
The PCB is double sided and requires advanced skills to be built.
The layout files were created with Cadsoft's Freeware version of Eagle 4.09 and can be downloaded here. The file contains layouts and schematics
for other projects, too. You can also buy the PCBs from me, just visit
the order page.
The following components are needed, please see the construction page for building instructions.
|recommended: two 20 pin SIL
|you should already have this
chip, it is in the
socket where you want to install this board.
|(DIL32, 5V only, "page write")
AT29C010A recommended, also
supported are W29EE011 and W29C011A.
27C256 and 27C512 EPROMs will also
work, if you can program them.
||e.g. 62256 (DIL28-3, DIL28-6, SOIC)
||(multiplexer for banking lines)
||4.7k resistor pack
||(9 resistors in 10 pin package)
||(9 switches for configuration)
|at least one 40 pin and one
are needed to make space for IC5 and IC6.
Sockets for IC3 and IC4 recommended.
The hardware is versatile enough to be able to work in a lot of
different 6502 based computers and peripherals. With the help of a
programmable logic chip the memory mapping can be set in steps of 2kB,
and modes like read/write, read only, write only, or write through are
So far there are personality chips for the following 6502 systems:
Commodore CBM/PET, Commodore 1541/1571 disk drives, Commodore VIC-20.
You can download the configuration guide and the source files for the
GAL chips in the download section below.
Each target system needs its own version of a flash program, but there
are some common points which I will describe first.
The flashmode jumper S1 will put the hardware into a state where it is
possible to write to the Flash ROM, which is normally write protected.
There are two levels of write protection: The hardware jumper S1, and a
software write protect that is part of the Flash chip. This way the
probability is very low to corrupt the contents of the Flash ROM even
the hardware write protect is disabled. Also, the option ROM jumpers S6
and S7 will get a new function: they control the bank where the ROM
image is written to. This way the system can run firmware from one bank
and flash another firmware into another bank.
Important note: In spite of the
software write protection it is not
a good idea to run the system with the flashmode enabled. This is
because any write to the Flash
chip will put it into a special mode where normal reading does not work
anymore, which effectively makes your computer crash, if you currently
run your firmware from this chip. Unfortunately some firmwares contain
bugs that cause writes to the ROM, e.g. the VIC-20 KERNAL ROM and the
Speeddos-ROM for the 1541. Fixed ROMs for the VIC-20 are included in
the ROM archive below, see the discussion
on cbm-hackers about details on the fix. A fixed Speeddos-ROM can be
downloaded from d81.de.
There are flash programs for the PET and for the VIC-20, but both are
still missing a user interface. Get them from the download
section below. There are separate versions to flash the option ROMs
and the firmware ROMs, and the images to be flashed have to be loaded
specific areas in RAM first:
PET, option ROM $9000-$AFFF: load 8kB image to $1000.
PET, firmware ROM $B000-$FFFF: load 20kB image $1000. Note that the I/O
area ($E800-$EFFF) will be ignored.
VIC, option ROM $A000-$BFFF: load 8kB image to $2000.
VIC, firmware ROM $C000-$FFFF: load 16kB image to $2000.
Since the flash programs are assembled with padding bytes that fill the
space to the data area, the flash programs can be easily concatenated
with the raw binary data on a PC and then transferred to the target
machine, e.g. with the C2N232 device. Here's an example file that takes
the name of the input file and sends it to the PET:
flash.bat: (usage: flash
copy /b petromflash.prg + %1
c2nload -c com2 -m pet flash.prg
On the PET, the PET can be put into flashmode before sending the file,
on the VIC-20 (due to its ROM bug), the program must be loaded with
flashmode switched off. After the program has loaded, just switch on
flashmode and then issue a RUN command.
New: Marko Mäkelä wrote an improved flash program for
the PET and VIC20 platforms. You can find it on Funet.
Thank you very much, Marko! This program is easier to use and more
powerful than mine, a very recommended download.
The flash software for disk drives is very
different, I put its description to a separate
- ROM images for PET and VIC-20
Currently contains both binary and program format versions of
the files. The program versions will be removed as soon as the flash
programs are able to load binary ROM images.
- Dolphin DOS 2.0 (patched $6000
This version of the Dolphin DOS 2.0 ROM for the 1541 has been patched
by me to work with a RAM expansion at $6000 instead of $8000 as with
original hardware. This makes it possible to access a full 32kB of
ROM in the drive. The checksum bytes have been adjusted and moved to
different locations. Note that this version works fine with all
programs, except the original Dolphincopy that came on the utility
This utility has both the RAM
location and parallel cable routines hardcoded. The Dolphincopy from
Dolphin DOS 3.0 (with RAM at $6000) also does not work, because it
doesn't have support for the old parallel cable. Important:
This version needs to have RAM at $6000. It will NOT work with
the standard DolphinDOS setting as described in the DIP switch
settings. Make sure you configure your board correctly.
Thanks go to:
- Paul Förster:
This and other PET related projects were born when Paul and I discussed
options to repair his sick PET. He also gave me some good ideas in the
design phase of the project. He's also my best customer :-)
- Wolfgang Moser:
He's the one who helped me a lot during the test phase of the hardware,
and the discussions about his Professional DOS clone project helped my
project as well. Without him the nasty RAM hardware bug in disk drives
would have stayed undiscovered for a very
long time! Please have a look at his test report about the hardware: http://d81.de/6502RamRom/
- Marko Mäkelä:
He wrote an
improved flash program for the PET and VIC20 platforms. You can find it
Thank you very much, Marko!
- Michael Sachse:
He wrote a menu driven Flash program for the CBM series!
Discussion board with new versions (registration needed): http://www.forum-64.de/wbb2/thread.php?threadid=9746
- Tim Schürmann:
He also tested my hardware and wrote a test report about using my
hardware as a Dolphin DOS replacement (German language only). Have a
look at his page here: http://www.tim-schuermann.de/c64/de/index.html
- and everyone else who bought hardware from me and supported the
project this way!
If you have questions about this project, you can mail me: please
visit my contact page.