Yellowstone: Cloning the Apple II Liron

FPGA-based disk control for Apple II is finally working! Six months ago, I began designing a universal disk controller card for the Apple II family. Apple made a bewildering number of different disk controller cards in the 1970s and 80s, and my hope was to replace the IWM chip (Integrated Wozniak Machine) and other assorted ICs typically found on the cards, and substitute a modern FPGA. With a little luck, that would make it possible to clone any vintage disk controller card – some of which are now rare and expensive. It would also enable a single card to function as many different disk controllers, simply by modifying the FPGA configuration. With the successful cloning of a Liron disk controller, the first major step towards those goals has been made.
Six months passed from the initial design until now, but it wasn’t exactly six months of continuous work. After a short spurt of activity last summer, the project sat collecting dust on my desk until I recently picked it up again. Sometimes it’s hard to find motivation!
Hello Liron

The “Liron” disk controller was introduced by Apple in 1985. More formally known as the Apple II UniDisk 3.5 Controller, it’s designed to work with a new generation of “smart” disk drives more sophisticated than the venerable Disk II 5.25 inch floppy drive. The smart disk port on the Liron is appropriately named the Smartport, and it can communicate with block-based storage devices such as the Unidisk 3.5 (an early 800K drive) and Smartport-based Apple II hard drives.
Why care about the Liron? The Apple IIc and Apple IIgs have integrated disk ports with built-in Smartport functionality, but for the earlier Apple II+ and IIe, the Liron is the only way to get a Smartport. For owners of the BMOW Floppy Emu disk emulator, the Liron card makes it possible to use the Floppy Emu as an external hard drive for the II+ and IIe. Unfortunately finding a Liron is difficult, and although they occasionally turn up on eBay, they’re quite expensive. That made cloning the Liron a logical first goal.
John Holmes was kind enough to lend me his Liron card for examination. Later Roger Shimada made the generous gift of a Liron and a Unidisk 3.5. I’m indebted to both of these kind gentlemen for their help.
The Liron contains an IWM chip, a 4K ROM, and a handful of 7400-series glue logic chips. It took a few hours to trace all the connections on the card and create a schematic. Except for the IWM, the exact functions of the other chips are all well known and relatively easy to implement in a hardware description language for the FPGA. Fortunately there’s a spec sheet for the IWM too, written by Woz himself, available if you search through dusty corners of the Internet. Based on that information, I was able to create an HDL model of the IWM for synthesis in the FPGA. It was a fairly big project, but I’d already done part of it back in 2011 for my Plus Too Mac replica.
Yellowstone Prototype
The first Yellowstone prototype was sketched out during a single hectic week. I’d never made an Apple II card before, but it’s just a standard thickness PCB with a specific shape and pattern of edge connectors. The core of the Yellowstone board is a Lattice MachXO2 FPGA, specifically the LCMXO2-1200HC. This 100-pin chip has 1280 LUTs for implementing logic, and 8 KB of embedded block RAM to serve as the boot ROM or for other functions. It also has some nice features like a built-in PLL oscillator and integrated programmable pull-up and pull-down resistors. Unlike some FPGAs, the MachXO2 family has built-in flash memory to store the FPGA configuration, so it doesn’t need to be reloaded from an external source at power-up. The FPGA can be programmed through a JTAG header on the card.
Because the FPGA’s maximum supported I/O voltage is 3.3V, but the Apple II has a 5V bus, some level conversion is needed. I used four 74LVC245 chips as bus drivers. These chips operate at 3.3V but are fully 5V tolerant, and the Apple II happily accepts their 3.3V output as a valid logic “high”. One of the chips operates bidirectionally on the data bus, and the others handle the unidirectional address bus and control signals.
The prototype card also has a 2 MB serial EEPROM. I’m not exactly sure how this will be used, but I’m hoping to find a way to load disk images from the EEPROM as well as load disks from a real drive. 2 MB is enough to store 14 disk images of 5.25 inch disks, or a single larger disk image. It’s not central to the design, but if it works it would be exciting.

To make the physical connection to an external disk drive, I attached a short cable to another custom PCB with a DB19-F connector. The female version of the DB19 isn’t quite as difficult to find as the male, but it’s not exactly common. If Yellowstone eventually becomes a product and sells in any appreciable volume, obtaining sufficient supplies of the DB19-F will likely be a problem.
Putting it All Together
After months of procrastination, and a long digression into what proved to be a faulty JTAG programmer, I was finally ready to put Yellowstone to the test. After a few quick fixes, it worked right away! I was very surprised, considering that the complex IWM model for the FPGA was developed without any iterative testing or validation. I got lucky this time.
Here’s Yellowstone, booting an Apple IIe from a 6 MB hard disk image using a Floppy Emu Model B in Smartport mode:
And here’s Yellowstone again, booting an 800K ProDOS master disk from an Apple Unidisk 3.5 drive:
What’s Next?
I’ve made it this far – phew! Next, there are lots of little things to fix on the card. Some parts are labeled incorrectly, it’s slightly too wide, some extra resistors and buffers are probably needed for safety, etc. Addressing all those items will keep me busy for a while.
Second, I’d like to investigate cloning other types of Apple II disk controllers. The Disk II controller card should be fairly easy to clone – or the Disk 5.25 controller, which is essentially the same card with a different physical connector. I’m about 90% sure I can make that work. I would love to clone the Apple II 3.5 Disk Controller too (aka the Superdrive controller), but that would be a much larger effort and I’m not certain it’s possible. I believe the real Superdrive controller contains an independent 6502 CPU and is quite complex.
In theory the Yellowstone card could also implement other non-disk functions, although it might require a different physical connector to make use of them. A serial card maybe? Some kind of networking? A coprocessor?
The elephant in the room is the question of Yellowstone’s ultimate goal. Is it a hobby project, or a product? If a product, how much demand really exists for something like this? How would the demand change, depending on what kinds of other disk controllers I’m ultimately able to clone? And how would Yellowstone buyers update the FPGA with new firmware for new clones and bug fixes? I probably can’t assume that every customer owns a JTAG programmer and has the tools and skills to use it. But I’m reluctant to add a USB interface or microcontroller that’s used solely for JTAG/firmware updates and is dead weight otherwise. I’m still waiting for a great solution to hit me.
I’m happy the Apple II bus interface is so easy to understand and implement. Thanks to Woz for that. With just a ROM and a bit of glue logic (or their equivalents in FPGA), you can do all sorts of creative things. With today’s computers being such closed systems, I’m glad we still have antiques like the Apple II to provide an outlet for my electronics tinkering.


Hey there,
Hows the status on this? And how far away are we from a publicly available card? Just think like, Jimmy Neutron…. keep moving forwards…
Regards,
A
Just throwing another vote behind this project. I already own a Floppy Emu and I have an odd use case: I accidentally blow up my IWM on one IIgs, which otherwise works perfectly. So….I have a rather limited 5.25″ controller card in there right now and can no longer use the Floppy Emu or 3.5″ drives. Basically it’s relegated to a high-speed IIe. Definitely like the idea of this card as a swiss army knife: (1) Make the IIgs workable or (2) add functionality to my actual IIe or (3) act as a fancy bridge card for my Floppy Emu.
Greg
Hi.
I was wondering if you are still considering to produce this card.
Some ideas you may want to consider doing to make it better and useful:
1. Add a port that can accept a cheap RTC card such as the KEYES DS3234 ($5 or less on eBay)) to have a Real Time clock card (these are rare these days).
2. A combo serial and full parallel port (so the parallel port can be used as IOs).
3. A GPIO port, I think it will be cool to be able to write basic/assembly programs on the A2 to control/monitor stuff instead of using an Arduino.
Cheers,
Nate
Hi Steve – I, too, am wondering whatever happened to this project? I don’t see it listed in your store so obviously you have not manufactured any for sale. Do you plan to?
I never found a resolution for the occasional bus interface problems that were described in later blog posts, then I lost interest and moved on to other things. I released the design as open source earlier this year, in the hopes that someone else might pick it up.
Bummer
Hello,
What a very great job, I hope you have a kit to sell.
I will buy two pieces
Best regards
Franck
Hi!
Wonderfull work !
I was wondering if this work was usable as a start to make a sort-of usb adapter for old apple floppy drives using an Arduino shield or by making a Raspberry Pi HAT … (maybe I’m not very clear … sorry, I’m french and my english is “rusty”)
The goal would be to connect an old Apple floppy drive on a quite recent computer using usb.
I know about AppleSauce but their solution is so expensive and not exactly what I’m thinking about.
Thanks for your answer ! 🙂
Aside from connecting to disk drives, Yellowstone is not very similar to what you’re describing. If you want to use a microcontroller or Raspberry Pi to bit-bang control signals for Apple drives, you could look at the Disk II ROM disassembly combined with the IWM spec: https://6502disassembly.com/a2-rom/C600ROM.html https://www.brutaldeluxe.fr/documentation/iwm/apple2_IWM_Spec_Rev19_1982.pdf That would show you how to find track zero and read a sector.
Put me down for one of these. If course, there has been no feedback for building these as a product. I see that no one has actually bought one, so I guessed it’s a busy product. There actually is a market for these, albeit perhaps a small fan base market. Nevertheless, this product should not go to waste. Please MARKET IT!
Please see the ongoing Yellowstone development discussions at https://www.bigmessowires.com/category/yellowstone/. It’s currently (October 2021) in limited beta testing, and hoping to have general availability in a few more months.
All I can say is, “I want one.” Lol Ready to buy when this great Apple ll product is ready.