Flash Software for disk drives
The flash software consists of two parts: the front end which runs on
the host computer (VIC-20, C64, C128, C264 series), and the actual
flash
code that runs in the disk drive itself (2031/154x/157x and
compatibles). This makes the program easy to use and quite fast,
because
the data is directly loaded from disk and does not have to be loaded
into the host computer's memory first. Flashing a 32kB ROM image takes
about 35 seconds on a 1541 and less than 15 seconds on a 1571 in native
mode.
You can read about the hardware on this page.
History
2005-01-04
The previous version contained a nasty bug that I found today when
making more enhancements, so I fixed it and here is the new version for
download. Sorry if this caused you any
trouble.
2004-12-04
I finally finished a new version of the software! It includes several
bugfixes and enhancements, you can read about all the changes in the
included history file.
2003-01-29
Fixed a bug in the mirror option and added automatic 1571 detection.
Support for all VIC-20 versions added.
Usage
First, you need to download the files here
(includes source), and transfer the file FLASH64 to your C64. (Or if
you
use a different machine, use FLASH20, FLASH128 or FLASH264).
Then load and run the file FLASH64 (or e.g. FLASH20) to get the
following screen:
Some of the text is written in negative letters, this marks the keys
you can press to control the program, or the options that are currently
active. Some of the options are not self explaining, so I will do this
now:
Format: BIN is the file format
that is usually found on internet resources like Funet or emulator
pages. In contrast to the PRG format it does not contain a two byte
loading address. Use this option to adjust the program to the nature of
your file.
Mirror: This option works only
if the start address is $C000 or above. Use it to flash a mirror copy
of
a 16kB ROM to $8000-$BFFF as well, some badly written software requires
this mirror copy.
Address: The start address of
the drive ROM. As a general rule, use $8000 for 32kB ROM images (mostly
1570/1571, some 1541 speeders), $A000 for DolphinDOS 2.0 1541, $C000
for
16kB 1541 ROMs. If you want to use 8kB speeder ROM images, flash them
to
$E000, but you have to manually flash a copy of the standard $C000 ROM
as well. You can find it on Funet,
and the part number is 325302-01.
Bank: This option is currently
untested and unsupported. It is intended to control the option ROM
switches from the VIA lines that also control the bit density in
register $1C00. In theory the code should work and you only have to
solder two wires, but I didn't test it yet. Without the wires changing
this option has no effect.
If you are a hardware hacker and want to try to add the
wires, be careful to have the corresponding switches in the off
position
or you will cause a short circuit which will very probably kill your
VIA
chip!
Chiptype: The only officially
supported chip is the AT29C010, all other types are untested! In theory
the AT29C512 should work as well, because it uses the same page size,
it
just has only half the memory. The program supports the different page
sizes of AT29C256, AT29C020 and AT29C040, but these have a different
pinout that needs modifications to the hardware or an adaptor socket.
Important: If you got a Winbond 29C020 chip, use the AT29C010
setting in the software, NOT the AT29C020 setting.
Select File: After you set all
options correctly, you can start the flashing procedure with this
option. The directory entries are printed one at a time and you are
asked if you want to flash this file. If you press the Y key, the flashing starts
immediately! Press N to
advance
to the next entry or press the left arrow key to start over.
Note that before you start the flash procedure you have to enable the
flashmode jumper on the hardware and also set the option ROM jumpers
correctly to select the bank where you want to have the file flashed
to. Don't flash the same bank
that you
currently run the drive ROM from, or your system will crash, and even
worse: if this was your only working main ROM bank, you will need the
original ROM installed in the drive to restore it.
Restart program and quit program:
I think those should be self explaining.
Hints
If you prefer other options than the ones that are preselected when you
start the program, just select other options, quit the program and save
it to disk. The next time you start the program, it will have your
preferred options selected already!
Some drive ROMs do not work correctly if the flashmode is enabled. E.g.
Speeddos contains a bug that writes into the ROM area each time a
parallel transfer takes place. To fix this issue temporarily, simply
unplug the parallel cable for flashing. There are also restrictions
with
Dolphin DOS 2.0: Because it has RAM in the ROM area, only the upper
24kB of FlashROM are accessible. Don't try to flash larger ROMs, it
will overwrite RAM and crash the system.
Examples
1. Flash the 1571 upgrade ROM from Funet (310654-05)
This file is in binary format and since it is 32kB, choose address
$8000, format bin, mirror off.
2. Flash the 1541C upgrade ROM from Funet (251968-02)
This file is in binary format and since it is 16kB, choose address
$C000, format bin, mirror on.
3. Flash Jochen Adler's Super-Jiffydos ROM for the 1541
This file is in program format and is 32kB: choose address $8000,
format prg, mirror off.
You can get it here, it
requires a JiffyDOS licence and usually a lot of hardware hacking. With
the Flash expansion, you can do it without the hacking, but you still
require the license!
4. Flash Dolphin DOS 2.0 for the 1541
The file is usually in binary format and 24kB: choose address $A000,
format bin, mirror off. You also have to set the configuration switches
to the correct mode, and you need a parallel cable and the
corresponding
C64 ROM for maximum performance.
5. Flash a generic 8kB speeder ROM
Sometimes you can find speeder ROMs on an old disk you got, therefore
it is in prg format. Flash it to $E000, with mirror on. Then get the
standard $C000 ROM from Funet and flash it to $C000, with mirror on,
and
format bin. Easy, isn't it?
6. Flash a C64 Kernal
To be able to do this, you need to have your original ROM in the disk
drive, because you have to write to an empty flash chip. A C64 Kernal
is
8kB, therefore 16 of them will fit into a 29C010 chip. Select one of
the
16 slots by combining the option ROM switches and a start address of
$8000,$A000,$C000 or $E000. Then make sure that mirror is off and you
set the format according to the nature of your image file. That's all!
7. Flash a C64E or C128 KERNAL or BASIC chip
Here goes almost the same as for 5., but the image files are 16kB and
therefore you can choose addresses $8000 or $C000 only. Mirror must be
off.
8. Flash a C128DCR KERNAL or BASIC chip
These image files are 32kB and you can only choose $8000 for the start
address. You can still put four of these in a 29C010, selectable with
the option ROM switches.
Contact
If you have questions about this project, you can mail me: please
visit my contact page.