Archive for November, 2014
HD20 Firmware 0.4: Write Support!
Firmware 0.4 adds support for writing to the emulated HD20 disk drive. No more read-only disks! I’ve tested it with a Mac Plus and a Mac IIsi, copying lots of files about and moving the mouse in crazy circles to exercise the holdoff logic, and it all seems solid.
- Implemented writing to the emulated HD20 disk
HD20 Firmware 0.4A-F66
This marks the completion of the HD20 emulation work, and the latest firmware version is fully usable as a general purpose boot disk or secondary disk. I still need to do some code cleanup and performance optimization, and see how much of the floppy and HD20 emulation code can be merged, but that’s all bonus stuff. Assuming no major problems surface with this HD20 firmware 0.4 in the next couple of days, I’ll promote it to 1.0 status and call it done. Woohoo!
Thank you, Apple, for creating such an oddball hard drive that hijacked the floppy port. HD20 lives!
Read 31 comments and join the conversationHD20 Firmware 0.3: Fixes for 020 and 030 Macs
I’ve fixed an HD20 emulation bug that caused occasional errors on faster 68020- and 68030-based Macs. The symptom was a “NEG COMMAND SIZE” error message on the LCD screen, and I/O failure. This version also fixes the “BAD FUSES” error that a few people with older boards encountered when running this firmware.
Another note: the firmware requires that the HD20.dsk file on your SD card occupy a contiguous range of sectors. If it doesn’t, you’ll see an “image not contiguous” error on the LCD. The easiest way to ensure all your SD card files are contiguous is to copy them all to your PC, delete everything on the SD card, then copy the files from your PC back to the SD card. You can also use a defragmentation tool on the SD card if you want to get fancy.
- Fixed NEG COMMAND SIZE error that sometimes appeared on faster Macs
- Fixed BAD FUSES error that appeared on older Floppy Emu boards
HD20 Firmware 0.3A-F65
Read 6 comments and join the conversation68 Katy Schematics and Parts List
A number of people asked for a parts list and schematic for 68 Katy, so they could build their own version. Here it is! Please let me know if you find any errors.
Parts List
- Motorola 68008 CPU, 8 MHz, 48-pin DIP package
- AM29F040B 4 megabit Flash ROM
- BS62LV4006PIP55 4 megabit SRAM
- Sparkfun FT245RL USB to FIFO breakout board
- 2 MHz metal can oscillator
- NE555P timer, 8-pin DIP package
- 74LS139 decoder
- 74LS377 8-bit register
- 74LS244 8-bit tri-state driver
- 74LS00 quad NAND
- 74LS08 quad AND
- 74LS32 quad OR
- Lattice GAL22V10D logic array
- bypass capacitors, resistors, LEDs, buttons, etc.
The GAL was used to replace some of the glue logic that would otherwise have required more NAND’s, OR’s, flip-flops, etc. If you’re building your own version of 68 Katy, you don’t necessarily need the GAL. Just replace it with the equivalent 7400-series basic logic gates.
Memory Map
00000 - 77FFF : ROM 78000 - 79FFF : serial in 7A000 - 7BFFF : serial out 7C000 - 7DFFF : serial status 7E000 - 7FFFF : LED register 80000 - FFFFF : RAM
CPU
RAM and ROM
Control Logic
555 Timer for Scheduler
USB Serial FIFO
LED Display
Floppy Emu, $10 Off This Week
Both models of Floppy Emu boards are on sale this week, $10 off until December 5. If you’ve been holding off on getting one, now’s your chance! With the new HD20 firmware hopefully finished soon, the Floppy Emu board will be like two devices in one: a floppy disk drive emulator and a hard disk emulator. HD20 mode will require a Macintosh model with support in ROM (512Ke, Plus, SE, Classic, Classic II, Portable, IIci, IIsi, LC-I) or booted from another disk that has Apple’s HD20 Init.
Floppy Emu is a prototype floppy disk drive emulator for vintage Macs. It uses an SD memory card and custom hardware to mimic a 400K, 800K, or 1.4MB 3.5 inch disk drive and floppy disk. It plugs into the Mac’s external or internal floppy connector, and behaves exactly like a real disk drive, requiring no special software on the Mac. Floppy Emu is perfect for setup or troubleshooting of a Mac without a hard drive or a working OS. Just plug in the Floppy Emu, and you’re booting up in seconds. Keep it as a permanent solution, or use System 7 installer disk images to do a new hard drive installation. The hardware is also great for moving files between vintage Macs.
- Compatible with everything from the original Mac 128K through the Mac II and Power Mac series
- Reads and writes emulated 400K, 800K, or 1.4MB disk images
- Supports all major Macintosh disk image types
- External or internal connection to your Mac
- Can be used simultaneously with another floppy drive
HD20 Firmware 0.2: Fewer Bugs, More Emus
I’ve fixed most of the outstanding bugs in the HD20 emulation firmware. If you’ve been holding out for a way to attach huge SD card storage to your vintage Mac, this new firmware version is actually worth using. It’s still a read-only disk, and the data transfer rate can be improved further, but otherwise it’s totally usable as giant boot disk or a tool for transferring files between your vintage Mac and other machines. There doesn’t appear to be any limit on maximum disk size except the OS limit of 2 GB. If you already have a Floppy Emu board, you can use this with only a firmware update! And if you don’t have one, get one now!
- Fixed handling of the holdoff drive state. Now you can go crazy with the mouse during disk I/O without causing any problems.
- The disk’s Get Info window now says “Floppy Emu” for the disk location.
- Disk icon is a soothing round shape.
HD20 Firmware 0.2A-F65
See my previous post for notes about which Mac models are compatible, and how to apply the firmware update.
Read 5 comments and join the conversationHD20 Firmware 0.1
Good news, HD20-ers! I have rudimentary HD20 emulation working now, and I was able to use it to boot my Mac Plus. This runs on the standard Floppy Emu hardware, which means the same hardware can function as a floppy drive emulator or as a single large hard drive. If you’ve already forgotten, the HD20 was a mid-1980’s Macintosh hard drive that connected via the floppy port. Anyone with one of my Floppy Emu boards who’d like to help test this new firmware, grab the files and give it a try! But if you’re looking for something more complete and polished, you’ll need to wait a while more – this first firmware is very rough.
Version 0.1
- You can’t move the mouse during disk I/O, not even a tiny bit, otherwise bad things happen. It’s hard to avoid! The same thing goes for using the serial port, or anything else that will cause CPU interrupts. I had to single-click on icons and then press Cmd-O to open them, instead of double-clicking and accidentally nudging the mouse. Obviously this needs to be next on my list of things to fix.
- This is read-only emulation for the time being. The disk appears with a lock icon in the Finder.
- The disk icon on the desktop looks like random garbage. But in the disk’s Get Info window, it looks fine. Something about needing an icon mask, maybe? But there’s no place in the HD20 drive status structure to supply an icon mask, as far as I can see.
- In the disk’s Get Info window on System 6.8, the “where” field shows random garbage. For a SCSI disk, this field shows “SCSI1”. If someone has a real HD20, please do Get Info on the disk and let me know what it says for “where”.
- SD card transfers are totally unoptimized, one block at a time reads. This should be possible to improve significantly. But it still feels decently fast already: at least as fast as a floppy if not more so. It boots up to the desktop in 5-10 seconds.
I need help testing which Macintosh models have built-in HD20 support, and which don’t but can use an HD20 after booting from another disk with the appropriate software. From what I’ve learned so far, I believe these Macintosh models have HD20 support built into ROM:
- 512Ke
- Plus
- SE
- Classic
- Classic II
- Portable
- IIci
- IIsi
- LC (but not LC-II or LC-III)
The Mac 512K and 128K can use an HD20 if they boot from another disk that contains Apple’s HD20 Init. That Init may also work for other II-series machines that lack HD20 support in ROM. HD20 Init shipped with very old version of the Macintosh system software, and I’m still looking for a download link for it. Let me know if you’ve got one.
You’ll need to connect the Floppy Emu board to the external floppy port, not the internal one. For the LC, one of the two internal floppy ports is considered “external” – try them both to find which works.
I would also appreciate help testing different sizes of disk images. The HD20 was a 20 MB drive, but its communication protocol can support larger drives. The limit is either 32 MB or 8 GB, but I’m not sure which. Just because the computer boots and says there’s a 1 GB disk doesn’t mean it’s actually working though. It’s necessary to test reading files from all parts of the disk to make sure the full capacity is actually working correctly. The OS itself also imposes a limit of 2 GB for disks.
Let’s Do This!
When you program this firmware to your Floppy Emu hardware, it will no longer function as a floppy drive emulator until you program it again with the old firmware. Before you begin, take note of what firmware version you’re currently using. This is displayed on the LCD for a few seconds after a reset – look for a string like “App Version 1.0 Q, CPLD Firmware 13”.
Program the hardware with firmware HD20 0.1A-F64. Edit: see this later post for newer firmware that fixes most of these issues. Instructions for applying the firmware update are included with the download. Note that the update comes in two parts: a new application for the microcontroller, and a new configuration file for the CPLD. You must apply both parts.
To use the emulator, put a file named “HD20.dsk” on your SD card, put the card in the Floppy Emu, and reboot. The disk image file format is the same as the disk images from popular emulators like Mini vMac and Basilisk II, so have fun. If your image file ends with a .dsk or .hfv extension, you can probably just rename it to HD20.dsk with no other changes necessary. If you don’t have an appropriate disk image handy, try this one.
When you’re done playing, reprogram the old firmware. If you were previously using 1.0L-F11 or earlier, restore the hardware to 1.0L-F11. If you were previously using something later than 1.0L-F11, restore the hardware to 1.0Q-F13. If you get messages about “bad fuses” or “wrong CPLD” after restoring the old firmware, don’t panic – it means you’ve programmed the wrong firmware, or only programmed one of its two parts. If you get really stuck, email me.
Read 7 comments and join the conversation