Way back in about 1992, I finally had enough money (ok, well, enough credit) to finally expand my Commodore Amiga 500 to how I wanted it. I previously had an A501 memory expansion module and an external floppy drive that my parents had bought me for Christmas the year or two before. A major upgrade was a Microbotics VXL*30 accelerator card which included a 68030 at 25mhz, and whopping 2MB RAM which was just amazing for the time. I may make a post in the future about the specifics of that card.
Enter the hard drive era…..
Besides upgrading the memory and processor, I also added on a hard drive expansion on the left hand side of the A500 case. This expansion was the Dataflyer 500. There were several different versions of the Dataflyer depending on the specific Amiga. It can be inserted as a card into the Amiga 2000, sidecar expansion like the 500, or completely separate box for the Amiga 1000. The PCB in all of them are very similar, with only minor changes in the chassis that held the individual card. There are also three different versions of the card: SCSI-only, IDE-only, or SCSI+IDE. Expansion Systems only populates the required components for each version. I seem to remember them being priced accordingly. I’m showing the SCSI-only version in this post.
Front populated card
While I was messing around with trying to properly light these cards for photographing them, I noticed that the cards were fairly translucent and displayed all of the traces very clearly through the FR-4. The purpose of this post was just to share these images.
I was really struck with how beautiful the cards were when I placed a bright light source direct behind them.
I also pulled the DF Autoboot ROM version 2.1 from the board and used by TL866A ROM reader to read the code. It matches other copies around, but I’m archiving it in case it’s needed in the future. I’ve been messing around in Ghidra to disassemble the code. I don’t have great results yet, but this Autoboot ROM sounds like it’s unique. The boot code is only just enough to read the contents of the hard disk, which then contains the actual full boot code in the RDB of the disk. I’m not sure if they did that to reduce the size of the ROM or what, but I’ll have more on this later.
There are upwards of ten different ICs populated, again, depending on version:
- SN74F32N, which is a quad 2-input OR gate, to support the A1000(or so says the silk screening)
- SN74LS244/245N, that function as bus drivers for the IDE connector
- 74LS373, an octal latch
- 74F521N, an 8-bit comparator
- The 27C256-15 ROM mentioned above
- Two PALs:
- 16L8 labeled BUSS
- 16L8 labeled DTACK
- AM5380PC, the AMD SCSI controller chip.
I’m also going to read those PALs that is populated just to play around. It’s a 16L8, which I believe means that it’s only combinatorial logic, no registers. So if I drive all 10-bits on the input, and capture the contents of the 8 output lines, I should be able to determine the various equations used for the internal logic.
Lately, I’ve gotten the urge to reverse engineer some things, remembered my fascination with this card, and so I’m using this to have some fun. I think with these images, it would be trivial to put together a schematic for the card.
At least one user on an Amiga forum told me to essentially “not waste my time” and that the card is “not worth the effort” but for me, it’s part of my history. It was a crucial part of the computer I grew up on, and now that I have the time and ability to reflect back, and some more skills to understand how this thing works, I say why the f*ck not! This card is still operating after almost 30 years.
As always, I welcome comments and feedback on my posts.
Chances are the boot loader only read as little as possible from the HDD then jumped to that code. Likely it read a checksum to make sure the code was there then executed it. There would have been several reasons for this: of course, ROM and even EPROM were very expensive relative to HDD storage so having unnecessary code was expensive. The other thing is that it was time consuming and expensive to program ROMs or EPROMs. The first ROM I used in a design had to be manufactured at the factory with my code inside it. There was a huge setup fee and a lengthy delay to have it made (IIRC MOSTEK, but I might be wrong). Obviously, not a situation where you want to issue software updates! PROMs were programmed by blowing internal fuses, and they used a lot of power. Even EPROMs took time to program though there were gang programmers.
Either way you really didn’t want to have to update in the field. On the other hand if your boot loader only reads a sector, runs a checksum, and jumps to it you can field update software and so on.
BTW looks to me the PCBs were laid out by hand with colored tapes on acetate just like the good old days
Brian (from Canada)
Delayed response, but thanks for the message here. Makes total sense to me. And greetings, btw! 😉
man, i have a few of these cards, the A2000 one ide and scsi, 2.1 boot rom, i also have just the SCSI for the 2000 , and a dataflyer 500 , this turd has a bad autoboot rom, (1.1) i want to program a new rom for it, i have the 2.1 code but need to purchase a programmer and some blank uv ones to test the program. .
Right on. When you buy a programmer, just check for device support/compatibility with the 27C256. I think this is a bog-standard device so I’d think most would support it. I READ it with my TL866A, but I don’t know if it can also write those devices.
I’ve thought many times about creating a small flash or otherwise non-volatile ram that can be accessed like a ROM. For replacement of these older chips….
I have the TL866CS and have written to a 27c400 (kickrom) with an adapter. it is very doable so imagine you would be able to write to a 27c256 as well.
Randomly stumbled on your page through internet. Dont listen to the naysayers! Keep it up! Someone out there will benefit from you work, possibly may either build there own version.
Thanks for the reply and encouragement, Dan!
I did make my own wire adapter a few years back to read the ROMs. I should look into burning them. I have a few rev5 A500 boards, and I think there’s some mods required for newer roms. I had purchased a 3.1 rom, but I think the machine was guru’ing after installation.
I think they sell a few kits on ebay. Maybe I’ll make my own adapter PCB. There’s a couple pins that need connected, and I think pull-up resistors on the address lines.
My adapter post was here, in case anyone is interested.
I have exactly the same Dataflyer Rev2.0 board for many years, purchased way back in 1991 for my working AMIGA 500. I had put it aside because it no longer worked. But today, being retired, I would like to fix it. I assume it’s the faulty ROM del 27C128 and the TIBPL16f8. Since you have backed up the above chips is it possible to have them? I am equipped with the TL866II_PLUS and I could easily reprogram both the ROM (27c128) and the PAL 16L8.
Trusting in your feedback, thank you in advance,
Please find the ROM file here
I have not yet read the pal. I think I have a TL866A and I’m not sure I can read it. I thought about using a simple microcontroller to drive it if I can’t. Just haven’t gotten around to it.
Hope this helps.
i am sending you a link that may be useful to you. This is an adapter scheme from PAL to 27C020 to be able to read the registers of the TIBPAL16l8. You can use your programmer to do this. Unfortunately, I don’t know anything about PAL.
Hope this helps.
I have the same device now but am looking for the Dataflyer 500 auto install disk / adf.
Would you be able to send me a copy?
Manual is here
and the disk is here
It’s in .dms format, but I was able test it — it works fine in WinUAE.
Does that help?
I swear I had an ADF copy that I created myself but heck if I can find it. Let me know if you’re good.
Hello! Did you ever get the PAL copied? I have the same data flyer, but SCSI 2.0 PAL is dead.
I never did. I did see the post above about building an adapter that would allow me to read it. Also thought about just making a driver that would iterate through the inputs.
I’ll check it out. Lemme know if you find another source and I’ll keep you posted if I make progress. I’m not sure what version(s) I have.
Thanks for the update!
So far, you are the only source of good info. (And a rom file.) I’ll look for alternative sources. If you decide to reverse the PAL, I would be grateful! I would try, but mine is fried. 🙂
[…] you may have seen in this other post here I have an interest in this Amiga hard drive controller designed for the Commodore Amiga 500. I used […]
[…] expansion card, in terms of hardware. I describe with PCB photos and some part numbers here, but the key parts […]
cool pictures. I found your page while looking for a Z2 SCSI-2 card. Back in 2008 some other guys had been dissecting the ROM chip firmware and it looks like they have overtaken your attempts, including zipped files for download.
They say it is not the fastest card and has quite a weird behaviour, so I will look for a different one. But I think you might enjoy reading their posts.
Yeah I saw that thread years ago. The zips are just copies of the ROM.
What’s not there, unfortunately, is any kind of reverse engineering of the boot code(spread across the ROM and disk itself), annotated disassembly, or detailed analysis. Since Toni was able to add support for the card in UAE, then he must understand enough of how it works to at least duplicate the behavior.
My interest in reverse engineering it, including my trials (and eventual success) in determining the PAL equations for the custom silicon onboard, comes just from my own personal interest because I used one as a teenager. There’s nothing special, high performance, or compelling reason about the card beyond that. An outlet for my reverse engineering desires, if you will.
Thanks for the compliments and links —- you never know what you’ve missed out there!