RomWriter for 39SF010

The RomWriter is a dedicated stand alone device for programming 39SF010 flash memory chips with a 128k Orton 3C image. The design specification called for it to be as simple as possible to use, and to assemble, OS independent and to avoid any feature creep. Sadly, feature creep crept in, and it can also be used for dumping 39SF010 ROMs too.

Note that this is a direct clone of the RomWriter for 39SF040, with just the PCB colour changed to green, the silkscreen changed for the 39SF010, and firmware updated for the 128k image and Orton3C.rom image file.

The RomWriter reads a file from micro SD and writes it to ROM. Alternatively, it can read the ROM and dump its contents to file. This self contained stand alone operation makes it OS independent, regardless if you use Windows, Mac, Linux, Haiku, Android, or anything else, as long as it can put a file on SD.

A small OLED display and two tactile buttons are the user interface. The display will show the current status, including a progress bar during read, write or verify operations, or prompt the user if there is an error. The buttons will initiate a Write or Dump operation, or help the user respond to error messages.

Buy RC2014 Kits on z80kits.com

Assembly

The device is supplied almost fully assembled, with all surface mount components fitted. The microcontroller is pre-programmed with custom firmware. Only the chip socket, display and power pins to be assembled by the user. Anybody that has built their RC2014 should be capable of fitting these components without any issues. Power can be applied either via the 2 pins at the bottom, which line up with the Gnd and 5v on the RC2014 backplane, or via the 6 pin FTDI header. The 32 pin socket for the 39SF010 can be either a regular DIP socket, or a Zero Insertion Force (ZIF) socket.

Expected Use Case

The RC2014 Orton 3C is designed to have software toggled in to it via the front panel, and this is a great way to interact with the machine. It is, however, not always the most convenient method, particularly when large programs need to be run. The Orton 3C ROM Module allows code to be stored on ROM, and thus save some toggling. There is a limited selection of routines on the default ROM, but these may need to be updated or added to over time.

It turns out that despite the hardcore nature of the Orton 3C, not everybody programming one has their own EPROM programmer. So this device allows a simple way to update the ROM, either with your own code, or more recent updates from the Git repo.

Making a backup

  • Place your current Orton 3C ROM in the socket on the RomWriter.
  • Insert a blank* SD card (Does not need to be blank. But should not contain a file called DUMP.ROM)
  • Apply power, either using a USB FTDI adapter (eg the one you use for the serial port) or plug it in to the RC2014 backplane (after removing all other modules and taking care to align the 5v and Gnd pins carefully)
  • Push the Dump button
  • Wait for the reading cycle to complete
  • Remove power.
  • You now have a file on the SD card called DUMP.ROM. If you need to restore it, rename it to Orton3C.rom and use the Write function.

Orton3C.rom file format

The programmer looks for a file on the SD card called “Orton3C.rom”. This needs to be a binary file containing the data to be programmed on to the chip.

Not all IDE will have the option to output a .bin or .rom file. If your IDE only gives you a .ihx or .hex file then this will need to be converted first. There are online converters such as https://onlinewebdevtools.com/hex-to-file or there are command line utilities such as HEX2BIN for Linux, or HEX2BIN for Windows.

If you have the option, this file should be padded out to 128k (131072 bytes). A smaller file will work fine, although you will get a File Size Error (see below) which you will need to ignore.

Safety Checks

If the RomWriter is powered on without a micro SD card inserted it will report this. You will need to remove power, insert a card, and try again to use the RomWriter

The RomWriter is designed to use the 39SF010 flash ROM chip from SST. The chip ID is read to check this. If the ID is anything other than BFB5 then a Chip ID Mismatch error will occur with the option to Abort or Continue. Normally this means that the chip is not present, or even in backwards. In which case, Abort, fix the issue and try again. If you are using a different chip and are confident that it will work then you can continue but please be aware that this is not what this device was designed for or tested with, so positive outcomes cannot be guaranteed.

When writing, the file size of Orton3C.rom is checked that it is 128k (131072 bytes). If it is not, then it will give a File Size Mismatch error with the option to Abort or Continue. If the file size is 0, then probably it is either not on the SD card, has the wrong name, or is the wrong file. Push the Abort button, remove the SD card and check before proceeding. If you know that your file is a different size and understand the implications of using it, you can select Continue. It will try and write as many bytes on the file or the chip, whichever is smaller. Note that even if you are using a larger chip and have a larger file, only the first 128k of that file will be written to the first 128k of the chip.

When reading, a file called DUMP.ROM is created. If this already exists then you will get a File Size Mismatch error with the option to Abort or Append. Note that if you expect to need to restore the file by renaming it to Orton3C.rom then you will need to Abort, delete the existing DUMP.ROM and try again. Appending to the current DUMP.ROM file will still write the contents of the ROM to the file, but only the last 128k (131072 bytes) will be the part you need.

When verifying, the contents of the ROM are checked against the contents of Orton3C.rom. It will fail at the first discrepancy telling you the address, the ROM data and the file data. This implies that something is wrong (Probably a physical error like the chip is not seated correctly?). Using a mismatched ROM or file may also give that error.

Serial Output

The RomWriter includes a small OLED display which gives you the key information that you need. There is also a serial output on the FTDI connector at 115200 baud which gives a bit more verbose info. This will not be needed for normal operation, but may be of interest. If you get any of the errors above, such as Chip ID Mismatch, or File Size Mismatch, you will get a bit more info on the serial port, including the Chip ID and File Size. There is no serial input in to the RomWriter.

What this device is NOT

This is not designed as a universal EPROM programmer. If you wish to program anything other than a 39SF010 you will be better off buying a TL866-II. If you want to edit ROM contents manually or program individual blocks of memory, you will be better off buying a TL866-II. If you already have an EPROM programmer that works with your operating system then you probably don’t need this.

Bill of materials

  • 1 RC2014 39SF010 RomWriter PCB
  • 1 0.91″ OLED Display & Pins
  • 1 1×6 RA header
  • 1 1×2 RA header
  • 1 32 ZIF Socket