Smartport Firmware Release
It is done! Floppy Emu Smartport hard disk emulation for the Apple IIgs and Apple IIc is now working nicely, after way too many headaches, mysteries, and assorted debugging adventures. I’m very excited, because this completes the grand slam of Apple disk drive emulation. With appropriate firmware, a Floppy Emu board can now emulate every type of drive that Apple ever made for a DB-19 disk connector or 20-pin ribbon connector, for Apple II and Macintosh and Lisa. Hard drives, floppy drives, different sizes, densities… it does them all. That’s nine different drive types in total.
Download the new Smartport-capable Apple II firmware now: apple-II-0.1E-F4
Hard disk image #1, 6 MB software collection compatible with IIgs and IIc: smartporthd.zip
Hard disk image #2, 32 MB GS/OS 6.0.1 volume for IIgs: gsosdisk.zip
As with the earlier Apple II firmware versions, use this firmware only when connected to an Apple II computer. If a Floppy Emu board running the Apple II firmware is connected to a Mac or Lisa, it may cause damage. This firmware can emulate a Smartport hard drive, 3 1/2 inch 800K drive, or 5 1/4 inch 140K drive (for any model of Apple II). For best results with 3 1/2 inch and 5 1/4 drive emulation, some systems may require an intelligent adapter board (coming soon, more info below). To switch emulation modes, press the Emu’s SELECT button during the display of version info on the LCD during startup.
Smartport
The Emu can emulate as many as four simultaneous Smartport hard drives, and the size of each disk image can be up to 32 MB. Here’s a pic of a IIgs with four different Smartport volumes mounted:
On your SD card, the four disk image files should be named SMART0.*, SMART1.*, SMART2.*, and SMART3.*, where * is either PO, HDV, or 2MG. These seem to be the only formats in common use for Apple II hard disk images. If there’s another format you’d like to see supported, let me know and I’ll see what I can do.
On the IIgs under GS/OS, all four Smartport disks appear on the desktop. On the IIc there’s no GUI desktop, and my ProDOS skills are too weak to understand how to access disks other than the boot volume, but from looking at the disk I/O the IIc hardware definitely sees all four disks. I did try the Apple II Desktop GUI (MouseDesk) on the IIc, and it only showed the boot disk, so maybe it’s a software thing. The pic below shows a IIc booted from a 16 MB Smartport disk, with 32767 total blocks reported by the CATALOG command.
It’s important to note that not every Apple IIc supports Smartport disks. The original IIc ROM version 255 lacks Smartport support, but later ROM versions 0, 3, 4, and 5 all have it. The Apple IIc+ also has Smartport support. You can find the IIc ROM version by doing PRINT PEEK(64447).
So what’s changed since the previous update?
- Increased max number of Smartport disks to 4.
- Implemented disk writes. Read-only is boring.
- Eliminated the “phantom 5 1/4 inch drive” that was appearing on the desktop
- Optimized the startup behavior, so it’s fast enough for a cold boot (initial power on)
- Added 2MG support
- Made the status LED blink during Smartport activity
- Implemented handlers for the CONTROL and FORMAT commands
- Lots of hardware testing and error handling cleanup
The previous issues surrounding the STATUS command and disk size reporting turned out to be non-issues. Nothing to see here, move along.
I wasted lots of time troubleshooting a problem I’d seen before: with certain SD cards, the Emu would sometimes fail to recognize the card at startup. Minor additions or modifications to the code seemed to make this problem disappear, and it only happened with specific SD cards, and then it was intermittent. I finally discovered that the problem was related to my AVRISP mkII programmer that I use for flashing new AVR firmware. During development I would often leave the programmer connected to the Emu while running tests. I found that if I disconnected the programmer before performing any tests, the problem disappeared. I don’t have any solid explanation why that helped, but I’ll take it anyway.
The Intelligent Adapter Board. Converter. Thing.
Some months ago, I learned that 3 1/2 and 5 1/4 inch drive emulation doesn’t work 100% with certain Apple II systems, and these systems will require an adapter board with active electronics. 5 1/4 inch read emulation works fine on all systems without any adapter, but 5 1/4 writes don’t work correctly on the Apple II, II+, or IIe. 3 1/2 inch emulation works on a IIgs with ROM 01 if you boot from the emulated disk, but not if you boot from another disk, and not on a IIgs with ROM 03. Yeah, it’s complicated. Fortunately the Smartport hard disk emulation works without any adapter. For Apple II users with one of the mentioned systems, who expect to use 3 1/2 or 5 1/4 inch drive emulation, they’ll want to get one of these adapter boards. The board has a switch to select between 3 1/2 inch emulation and all other modes. The adapter isn’t necessary for the Macintosh and Lisa, though it’s still compatible with them, so you can use it everywhere if you wish.
The pic above shows a prototype of the adapter board. Initially I’d planned to call this something like “Apple II adapter board for Floppy Emu”, but that’s misleading. That name would make it sound like the board is required for all Apple II usage (it’s not), and that it only works on the Apple II (it also works on the Macintosh and Lisa). Instead, I’ll probably go with a name like “Intelligent Adapter Board”, with some footnote on the Floppy Emu page explaining who might want one and why. I had intentionally postponed manufacturing any adapter boards until I had all the emulation firmware working, to ensure I knew all the cases the board needed to support. Now that that’s done, I can start the wheels turning and should have adapter boards available for sale in about four weeks.
Beta Testing
I’ve done my best to find all the bugs in the new Smartport firmware, and test it on many different Apple II systems, under many different software programs. While I think it’s pretty solid, there’s a big difference between a single-person test and a wider release. If you have a stable of Apple II systems at your disposal, please help me out by testing Smartport emulation on as many different systems as you can. If it works, or doesn’t work, either way that’s helpful information.
Happy retro-computing!
Read 6 comments and join the conversation6 Comments so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
For those testing, the following can “host” Smartport devices for testing.
1. The Apple “Liron” Unidisk 3.5″ card
2. The Apple FDHD 3.5″ Controller Card (alone or daisy chained behind 2 standard 3.5″ drives)
3. The Apple IIgs (alone or daisy chained behind 2 standard 3.5″ drives)
4. The Apple IIc and IIc+ (the latter supports a standard external 3.5″ drive)
5. The Apple II Universal Controller (this card is unobtainium)
Its best to test with a combination of drives. One should try daisy chaining it behind 1 or 2 Apple 3.5″ drives. Throw in a Unidisk 3.5″ if you got one. Heck, if you have one of the rare Smartport hard drives like the Chinook CT series, try daisy chaining it behind that.
For anyone who’s interested, the Intelligent Adapter boards should be available by late July.
I’ve acquired a Liron card and added it to my IIgs. It doesn’t appear to be interacting with the Floppy Emu. It powers on, but the IIgs does not show a drive. Using the monitor, I can check the 3 signature bytes to verify the Liron card is there. However, when I look at the SmartPort Type Byte, I get back 0x00. On the internal chip (Slot 5) with another Floppy Emu attached, I get 0x80.
Is there some reason a IIgs with the Liron wouldn’t talk to the Floppy Emu?
Is slot 5 on the IIgs set to “Your Card” or “Smartport”? I would try disabling the on-board Smartport firmware just in case it is conflicting.
Has the card been tested in an 8-bit Apple II with the FloppyEmu? This would rule out any Apple IIgs incompatibilities.
Has the card been tested with a Unidisk 3.5″ to confirm it works? Its possible the IWM chip is bad OR the Liron card’s firmware is limited to the point that it only works with the Unidisk 3.5″ drive.
I don’t own a Liron card, but I am assuming its Smartport behavior is the same as the built-in Smartport on the Apple IIc, IIc+, and IIgs. Maybe try doing a soft-reset with the control-apple-reset keys to see if that behaves differently than a cold boot?
I’ve tried a couple of troubleshooting steps. Disabling the on-board IWC, various boot sequences, FloppyEmu as Smartport and 3.5in.
The Liron I came across was a 3-pack on eBay. Except for the ROM showing up at the addresses that the IIgs firmware documentation says a “smartport controller” should be at, they don’t appear “functional.” But they aren’t compatible with the 3.5in drive I have. The fact the seller had 3 of them is making me suspect there could have been issues with them.
I’m thinking my next step is to get a UniDrive and/or a IIe. UniDrive seem tough to find. I’m just looking for a IIe that is reasonably priced–especially since I don’t want one.
My hope is that if the cards were damaged, it’s the analog controls since the IWC shows up in ROM.