BMOW title
Floppy Emu banner

ROM 03 Revisited

20150425_154032_Richtone(HDR)_resized

Good news, Apple II fans! The Apple IIgs ROM 03 mystery has been solved. A few weeks ago I added new support to Floppy Emu, for emulation of 3.5 inch Apple II disks. I used it to boot my Apple IIgs with GS/OS… fun. Then I started hearing from other IIgs owners for whom the new firmware didn’t work, but I couldn’t understand why… not fun. The issue seemed related to differences between IIgs version ROM 01 and ROM 03, but I wasn’t sure what was going on or how to fix it. This prompted the post Apple IIgs ROM 03 Headaches. Now, after a lot of head scratching, I think I’ve finally got it figured out.

A huge “thank you” goes to Steve Palm, who did an extraordinary amount of testing under different conditions with his ROM 03 machine, and to Jason Galarneau, who loaned me a ROM 03 machine to experiment with directly. What I learned was that the ROM 03 problem is caused by incomplete decoding of the disk drive enable signals, causing the Emu to respond at inappropriate times. I had actually diagnosed the problem correctly in this earlier post, and I even provided a potential solution there, but I somehow convinced myself this wasn’t the ROM 03 problem, or wasn’t the main problem. Wrong!

On a Macintosh floppy port, there’s a single active low signal called /ENABLE that tells the drive when to wake up. The earliest Apple II 5.25 inch drives worked the same way. But Apple later complicated things in order to support daisy chained disk drives, and chains containing multiple different types of drives, to where on an Apple IIgs the floppy port has three different enable signals: /DRIVE1, /DRIVE2, and /EN3.5. Floppy Emu was only listening to /DRIVE1, and wasn’t even connected to the other signals. The difficulties are described in much more detail in the earlier post, so I won’t repeat them here.

The final step was to build a prototype of the external adapter described in the earlier post. Since the Emu board lacks connections for /DRIVE2 and /EN3.5, the external adapter is responsible for decoding those signals along with /DRIVE1, and passing the result to Floppy Emu as a single /ENABLE signal. And what do you know, it works! No more ROM 03 problems, and no more limitations on where the Emu can appear in the disk daisy chain.

The adapter prototype also includes a couple of resistors not shown in the diagram. There’s a 10K pull-up resistor for /DRIVE2, because that signal isn’t connected on a Mac or Lisa. And there’s a 470 ohm series resistor on WRPROT, which is the only signal that changes direction between the Mac/Lisa and Apple II firmwares. No more worries about possibly damaging something if you accidentally use the Apple II firmware while connected to a Mac.

EPSON MFP image

 
A Universal Apple Adapter for Floppy Emu

The original name I gave the adapter is misleading – it’s not an adapter for the Apple II, it’s an adapter for everything including the Apple II! There’s a photo of the adapter prototype at the top of this post, with the current do-nothing adapter also pictured for comparison. The new universal adapter has a switch on it. Set it to “3.5” if you want to emulate an Apple Disk 3.5 for Apple II, or set it to “OFF” if you want to emulate any other type of Apple II, Mac, or Lisa disk.

There’s potential for confusion with this new universal adapter, so I’m trying to choose names and terminology carefully. The adapter is only REQUIRED in a few specific circumstances, but it’s COMPATIBLE with all circumstances, so you can just plug it in and leave it there. Macintosh computers and the Lisa don’t need the adapter, and you can also boot an Apple IIgs ROM 01 machine from the Emu without the adapter. And when Apple II 5.25 inch and SmartPort disk emulation is ready, those shouldn’t need the adapter either. But for 3.5 inch emulation on a IIgs ROM 03 machine, or 3.5 inch emulation on a IIgs ROM 01 machine where the Emu is not the boot disk, this adapter is just what the doctor ordered.

So what’s next? I hope to have some of these adapters available for sale shortly. They’ll be offered as an alternative to the existing “convertible extension cable”, for a few dollars more. People who expect to use Apple II 3.5 inch disk emulation (mainly IIgs owners) along with other emulation modes can use the new cable, while people who don’t care about Apple II 3.5 inch disk emulation can stick with the current cable. Longer term, I hope to build the functionality of the universal adapter into a new Floppy Emu, but that won’t be any time soon.

Crazy idea: with other external adapter boards like this one, with a different external connector, it might be possible to develop Floppy Emu disk emulation firmware for completely different computer platforms. Atari disk emulation, anybody? Amiga? They all operate on the same basic principles as the existing Floppy Emu disk emulation. Yes, there are many differences in the details, but the more emulation modes I implement the better I’m getting at abstracting the drive-specific parts from the shared functionality. Maybe someday…

Read 8 comments and join the conversation 

8 Comments so far

  1. Bryan - April 25th, 2015 10:03 pm

    Very cool! Would I be able to return my IDC-20 to DB-19 adapter, and get a few $$$ off the new adapter? This would save you a DB-19 connector.

  2. Thomas - April 25th, 2015 11:36 pm

    Hi, before producing and selling, what about modifying the board in order to add a resistor on each signal line? The CPLD will definitly be protected after that 😉

  3. Rob Kouwenberg - April 26th, 2015 2:45 am

    I’d like to order one, was a week too early 🙂 I’ll ship you back the db19 pcb adapter. Being a LED fetished guy, I’d opt for some Xmas lights scenery in the adapter ? R/W/select, etc ?

  4. Steve Chamberlin - April 26th, 2015 6:42 pm

    I probably shouldn’t have said “shortly” – it will take me some time to verify that the other Apple II modes (as yet unimplemented) work with this adapter, and to get a bunch of them manufactured. Maybe a couple of months. You could always build your own, if you’re impatient, using the schematic. Or use the trick of taking the daisy chain board out of an Apple Disk 3.5. I don’t think there will be trade-ins for old cables, sorry!

  5. Bryan - April 26th, 2015 10:17 pm

    Let me see if I have this correct… With this adapter, I can keep the firmware on the Floppy Emu as-is (i.e. no Apple II firmware,) and still have it work on the IIGS?

  6. Steve Chamberlin - April 27th, 2015 6:03 am

    You still need the Apple II firmware for emulating Apple II disks. With that firmware and a standard connection, you can emulate a 3.5 inch boot disk for IIgs ROM 01, or a 5.25 disk for any Apple II (planned), or SmartPort drive (planned). With the adapter, you can also emulate 3.5 inch non-boot disks, and 3.5 inch disks for IIgs ROM 03. So the adapter is only needed in a couple of very specific cases.

  7. Tim Buchheim - April 27th, 2015 2:21 pm

    Awesome! I’m glad the solution turned out to be so simple. 🙂

  8. Murdock - April 28th, 2015 8:33 pm

    For people with an existing cable, instead of a trade in option, sell them just the new board and they can transfer the actual cable part and db19 themselves? I’m not sure if that would be worth it.

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.