Page 1 of 3

Writing ROMs for the Falcon

Posted: Tue May 04, 2021 1:08 pm
by Badwolf
I've been asked a couple of times about writing replacement ROMs for the Falcon, so I'm going to record what I've replied in the past here in the hope it helps others.

~~~

The Falcon takes a single half-megabyte 27C4096 chip in a PLCC44 format. This is located in a socket under the RAM board.

Unfortunately all the modern chips in this format are one-time-programmable, for example the Microchip (AT) version: https://uk.rs-online.com/web/p/eprom/1276560/

s-l500x.jpg
s-l500x.jpg (17.16 KiB) Viewed 5541 times


There are, at the time of writing, vintage and almost certainly second hand, despite adverts to the contrary, UV-erasable Hitachi (HN) versions available on eBay. Search for HN27C4096. You'll probably want to pick up a cheap UV eraser too. These use LEDs and so are pretty inefficient at their job, but a good 45 minutes or so with your chip under the light should erase it fully, more often than not.

IMG_3939.jpeg
IMG_3939.jpeg (47.03 KiB) Viewed 5541 times

Both of these types can be programmed with the now virtually ubiquitous TL866ii Plus programmer (1), with a suitable adapter (5).

v6-6-100-original-new-minipro-tl866cs-programmer.jpg
v6-6-100-original-new-minipro-tl866cs-programmer.jpg (46.54 KiB) Viewed 5541 times

In my opinion, if you're buying one of these TL866ii Plus programmers, it's worth getting a pack with as many adapters as you can as the adapters themselves can be quite pricey and if there's any chance you may want to program something else in the future, it'll probably work out cheaper to wrap them all up into the package in one go. The PLCC extractor tool is a must have as well, if you don't want to run the risk of breaking your ROM socket and having a whole world of pain trying to replace it.

Have a search on Ali Express.

Screenshot 2021-05-04 at 12.32.40.png
Screenshot 2021-05-04 at 12.32.40.png (318.5 KiB) Viewed 5541 times

Some of the more recent adapter boards come with a jumper that lets you choose between compatibility for our EPROMs or for flashing PLCC44 microcontrollers.

The older boards may not have this jumper and are wired to support flashing of the microcontrollers only. For these older boards, you'll need to solder a pair of jumper wires between or around the pin header. Converting two NC pins to ground. These links are between pins 12 and 13 and pins 33 and 34 on the PLCC socket. A little bit of kynar wire will do the job.

IMG_3942.jpeg
IMG_3942.jpeg (35.27 KiB) Viewed 5541 times

Once this is in place you should be able to successfully read the chip ID of your 27C4096 and dump its contents. You can use the (Windows only) software supplied with the TL866ii Plus (I'll not go into this here, as I don't use this, but examples abound on the internet -- it's actually quite powerful and will let you do many things such as dumping GALs and verifying logic chips) or you can use the open-source command line minipro tool.

Now, the Falcon is a big-endian machine and the machine you're going to flash with is almost certainly not, so a bit of byte-swapping is needed.

Let's say I have a 512k EmuTOS image downloaded from https://sourceforge.net/projects/emutos/files/snapshots. It'll be in the correct byte order for running Hatari or indeed running it on the Falcon, but as we come to write a word at a time to on the TL866ii Plus, the order will be reverse.

We can use the command-line tool 'dd' available on most Posix systems to flip the bytes:

Code: Select all

dd conv=swab if=etos512uk.img of=myimage.img
Then we can write it to our (hopefully freshly erased) HN27C4096, or if we're feeling brave, our one-time-writable AT27C4096 (change the chip name as appropriate):

Code: Select all

minipro -p HN27C4096@DIP40 -w myimage.img
~~~

Now, this is a hardware forum, so I should point out there are also alternatives. Either involving a bit of sneaky patch wiring, or by using cut-down 'loader' OSs in the cartridge port. The TL866ii can also write to Flash chips...

IMG_3944.jpeg
IMG_3944.jpeg (30.54 KiB) Viewed 5541 times
But these would be stories for another day!

BW.

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 1:17 pm
by czietz
Badwolf wrote: Tue May 04, 2021 1:08 pm UV-erasable Hitachi (HN) versions available on eBay. Search for HN27C4096.
Sidenote: On my eBay order of HN27C4096, one of five EPROMs I bought was a (proven!) fake. I'm not exactly surprised about that, just saying that you perhaps should order more than one, just in case.

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 1:36 pm
by Badwolf
czietz wrote: Tue May 04, 2021 1:17 pm
Badwolf wrote: Tue May 04, 2021 1:08 pm UV-erasable Hitachi (HN) versions available on eBay. Search for HN27C4096.
Sidenote: On my eBay order of HN27C4096, one of five EPROMs I bought was a (proven!) fake. I'm not exactly surprised about that, just saying that you perhaps should order more than one, just in case.
Good advice. One of mine had 43 pins... :?

BW

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 2:23 pm
by BlankVector
Very good information about the Falcon ROM. I had absolutely no idea about its physical format.

BTW, here is a shameless advert for my review of the TL866II Plus programmer. French speech, but English subtitles are available.
Note: I plan to make a second video, more specific to the STe ROMs.


Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 2:42 pm
by BlankVector
Note that the Xgpro software for TL866II Plus has some options in the Load dialog. This is very convenient to split a 256k STE ROM into two 128k ROMs. Just open the 256k file, and select "Load a low byte of a WORD(2 bytes)" to load the HI half, and "Load a high byte of a WORD(2 bytes)" to load the LO half. Note that, as usual, hi/lo halves are inverted, as the software uses little-endian names.

Unfortunately, it has no byteswap option, so this can't be used to easily flash a Falcon ROM.

load.png
load.png (8.29 KiB) Viewed 5432 times

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 3:38 pm
by Badwolf
BlankVector wrote: Tue May 04, 2021 2:42 pm Note that the Xgpro software for TL866II Plus has some options in the Load dialog. This is very convenient to split a 256k STE ROM into two 128k ROMs. Just open the 256k file, and select "Load a low byte of a WORD(2 bytes)" to load the HI half, and "Load a high byte of a WORD(2 bytes)" to load the LO half. Note that, as usual, hi/lo halves are inverted, as the software uses little-endian names.
Vraiment très bon, Vincent. :-)

Can you confirm if the software works on modern Windows, by the way?

Merci,

BW

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 3:48 pm
by DoG
Badwolf wrote: Tue May 04, 2021 3:38 pm Can you confirm if the software works on modern Windows, by the way?
Works fine in Win10 Pro x64.

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 4:08 pm
by BlankVector
Badwolf wrote: Tue May 04, 2021 3:38 pm Vraiment très bon, Vincent.
Merci :D
DoG wrote: Tue May 04, 2021 3:48 pm
Badwolf wrote: Tue May 04, 2021 3:38 pm Can you confirm if the software works on modern Windows, by the way?
Works fine in Win10 Pro x64.
I also confirm, with same OS. I forgot to say it in the video.

Re: Writing ROMs for the Falcon

Posted: Tue May 04, 2021 4:35 pm
by stephen_usher
If anyone wants a PLCC-44 EPROM to DIP converter PCB (merely socket and pins needed) I've a few I can send to people once I get back home next weekend.

I can alternatively post KiCAD files and Gerbers if anyone is interested then as well.

Re: Writing ROMs for the Falcon

Posted: Wed May 12, 2021 8:27 am
by Rustynutt
Ok, I'm shopping :)

Some questions, or ignorance :)

Notice you have the 44 pin plcc mounted to a cartridge port card.
I was under the impression the cartridge port could only access 256k.

Are you actually using an 4mb EmuTOS image/can be read by the cartridge port?

Next, can a HN27C1024HCC-85 PLCC-44,x16 EPROM be used in place of a HN27C4096HCC-85 PLCC-44?

I'm not familiar with all the adapters pictured (on eBay) that come with the XGecu TL866II Plus. Do any of those allow to be fitted over plcc's mounted to a board (clip over) so they can be read?

If not, any suggestions?

Thanks all :)