• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

30 Year Old Apple ROM Bugs

bigmessowires

Well-known member
While investigating why Floppy Emu wasn't working on the Mac 128K/512K, I discovered something very interesting in the original 64K ROM used in those machines. It looks like the only reason that external 800K floppy drives didn't work "out of the box" with the 128K/512K was due to a divide by zero bug in some timing code in the old ROM. Were it not for that bug, the 128K/512K could have booted directly from an external 800K drive, instead of the crazy dance of booting from the 400K internal drive with the HD20 init first. And even allowing for the bug, Apple/Sony had an opportunity to work around it with a small design change to the 800K drive, but they didn't.

If anyone's interested, I described the gory details here: http://www.bigmessowires.com/2013/10/17/fixing-30-year-old-apple-rom-bugs/

 

techknight

Well-known member
You know... Why does this NOT surprise me in the least bit. lol. It is always the obvious things that get totally overlooked, ive been there...

when you got a team of people developing firmware the possibility for bugs like that always exist.

 

Gorgonops

Moderator
Staff member
I'm sort of curious what design changes Apple made to the "Universal" A9M0106 drive to resolve the compatibility issue with the bugged ROM, as that drive will boot a 64K ROM Mac without doing the little dance-of-joy. (I have both styles of 800k drive to go with my 512k now, and can confirm that the later drive will indeed work to boot an old System 2.0 disk directly without the HD20 init.)

 

Gorgonops

Moderator
Staff member
LOL! :lol: Zero to TWO Compacts in nothing flat?
Yeah, that Plus turned into a twofer because I got all indecisive about what level of antique-ish-ness I wanted to go for. ;)

(I've actually been playing with the 512K quite a lot more than the Plus; the Plus is basically a floppy-disk generation mule now that I've worked out the kinks in Localtalk-ing it to a Linux server via a printer bridge.)

 
Top