A little personal history: Macintosh Plus, commonly referred to as “linnunpönttö” (birdhouse) in finnish, is a computer I got to test hands-on way later than it was released. By the time I did, Amiga 500 had been ruling the home computer hobbyist scene for years. Familiar with A500’s awesome capabilities the Plus (with it’s small gray-scale monitor) simply was, in comparison, a uninteresting relic.
Fast forward ten (or so) years and I found myself looking at one in a second hand store. With a near yours-for-free-if-you-take-it-out-the-shop price tag, the Plus powered on nicely but came only with a keyboard (minus one key cap). The lack of OS disks and mouse made it pretty much a unusable piece-of-shit. Nonetheless, I took it with me and stored it away to wait for closer inspection. Then life had its funny ways, and the Plus sat in the basement waiting.. and waiting, right up until this august when I dug it up thinking “maybe it’s about time..” And here, we start to close in on this post.
There is a lot of info about Mac+ out and about the net. But as it often is with these retro systems, not everything is necessarily applicable or usable, or you’ll simply come across a bunch of dead links. One of my ideas with this post was to compact my findings and provide one usable solution for “how to get that damn can of worms up and running“. If you, like me, acquired a second-hand Plus with just a keyboard, this one is a definite read for you. Maybe you’ll have a little less grandiose mission getting your Plus back in action ;)
After digging up the Plus from basement, I upgraded the memory to 4Mb without powering up the system first. Once I did, it turned out that Plus was not outputting picture anymore. Knowing I had stored it in a working state, I started looking into what might’ve gone wrong. One thing that mislead me in the beginning was the startup sound; having used mostly only newer Macs (Mac II and later), I first thought the power up beep is some kind of a early power-up error notification. Without thinking much, I of course assumed that the memory upgrade had somehow gone wrong and spent a good while looking for documentation about error codes.. Silly me for not going with wider search terms right from the get-go, as comparing against just about any Mac startup sound isn’t exactly demanding ;).
Coming back around from all the attempts at mimicking a certain famous gesture by Jean-Luc Picard, I was swiftly back on track with the repairs thanks to Gamba’s excellent Mac Plus analog document. It presents a very detailed description about the analog circuitry of Plus and lists typical faults caused by short-comings in electronics design. Indeed, it was exactly one of the typical faults that my Plus was suffering from too: Bad solder joints on display cable connector. While fixing this, I decided to replace the electrolythic capacitors as well. Most still measured ok by value, but as we’re talking about a +25 year old computer maybe a little pre-emptive repair isn’t that much out of place.
If you have a Plus that outputs no picture, it’s highly recommended to read through Gamba’s document and at least try resoldering the connector prior to tossing the unit. While at it, why not check out the rest of Gamba’s website too, it’s packed with handy resources. Jag’s House has also an article about Plus analog board repairs.
The Plus originally uses something called the ‘Eveready 523‘ as the PRAM backup battery. Sized slightly larger than the standard AA battery and packing triple the cell voltage (4.5V), this 523 certainly isn’t something you’d expect to find among generic off-the-shelf spares. Not that my replacement was exactly that either.
For a good while, I’ve been curious about testing these cheap DC boost converter boards available at Ebay for “something battery-ish”. These boards take a lower input voltage, eg. from a battery (or set of batteries), and convert it to something like +5V. The Plus PRAM battery of course seemed like a good excuse to order some boards for testing: The ones I bought had a USB connector installed so that needed to be removed for this application. Not sure why anyone would want to use batteries to charge (or power) USB devices, but as the product exist there are some of you out there :).. But whatever, remove the USB connector, solder in a battery and there you have it:
It will be interesting to see how this Boost Battery fares in the long run. When I left the circuit idling on the desk the voltage seemed to drop between 1-2 mA per day. Weirdly enough this was not sustained once the battery was installed, as taking some subsequent daily measurements the cell voltage showed no drop at all. Rock-solid +5VDC on the clock chip, so the connections are fine.. Dunno, it might be a good idea to even chart the power draw a little.
Contrary to the above, a way simpler approach would’ve been to get some regular button cell batteries (perhaps LR44?) and stack them on the bottom of battery compartment followed by a conducting piece of metal. You know, to make contact with the upper (negative) battery terminal.
With Plus “no mouse” likely means you have to make one, and this is exactly what I did. I had a basic dual-button Logitech PC serial mouse (type M-M34) stashed aside just for the purpose. The difference between the two is that whereas Mac+ mouse sends raw TTL-level optoencoder pulses for both X/Y axles, the a PC serial mouse transmits these over proper (-ish??) RS232. Thus converting the latter to former basically involves removing all the fancy RS232 stuff and tapping directly to the optoencoders.
As it turned out, luck was on my side with this particular mouse. Initially, I was looking to implement Jan’s Universal Mouse hack, but at a closer inspection the mouse turned out to have been implemented with optoencoders that readily output TTL logic level signals.
After stripping away all the parts, I wired the switches parallel and added a 10k pull-up resistor. For the IR LEDs, I first tried Jan’s suggested value of 100R but as 220R seemed to work equally fine, I went with that instead. Why draw excess current, if you can get away with less.. Difference between the two was roughly 10mA.
The original DSUB cable had only four wires whereas I needed seven, so I replaced that with a 1-meter UTP ethernet cable. Compared to standard serial cable this doesn’t have a shielding all around the wires, but it works fine (at least) for this application. The optoencoder signals definitely aren’t that high-speed neither is the transmission line long.
Making It Boot
Apple has System 6 floppy disk images (and System 7 too) freely downloadable at their Support Area, so by the time you have the Plus (that came without any OS disks) powered up, you’re bound to start wondering “how do I make myself a set of System 6 boot disks?”. Here, a little technical background is in order..:
Prior Macs started shipping with standard 1.44Mb floppy drives, single density (SD) and double density (DD) drives were used. In contrast to PC DD drives that use a method called Constant Angular Velocity (CAV, linear speed) to spin the disk, Apple chose to use Constant Linear Velocity (CLV, variable speed). This allowed squeezing in more data per disk, respectively 720kb vs. 800kb.
So to answer the question about making boot disks: Unless you have a second functional Classic Mac at your disposal, you don’t! Writing Mac SD / DD boot disks on a standard PC just isn’t possible, much thanks to alternate standards. Sure, there are some very special floppy drive controller boards (like Catweasel) for PC that can likely manage both, but getting one just for writing a couple of floppies hardly makes sense. This was my situation to (*AHEM*) boot with and so, I turned to the second option: SCSI.. But how to get System 6 on a SCSI drive?
Enter Mini vMac and BasiliskII. These two Mac emulators provide a way, but you (obviously) do need to have a SCSI controller installed on your PC. I have no clue what’s the maximum harddisk size System6 can handle, so my recommendation is to go for something small. I had a Zip drive plus 40Mb and 500Mb drives and all these worked fine. Prior to resorting to these drives I also spent a good while playing around with this SCSI CF drive, sadly with poor results (more on that later).
The two emulator are needed because only one emulates 16-bit Macs (Mini vMac) and the other supports mounting and writing to physical SCSI disks (BasiliskII). Additionally, HFV Explorer is needed to transfer files to and from virtual disk images (.dsk). For BasiliskII, only the pre-JIT build 94 has been said to support physical drives. As my “SCSI computer” is a Win98 system, I went for this version directly and thus am unable to tell for sure if newer versions actually work too. Anyway, check out Emaculation for download links and set-up instructions for the emulators.
So if taking the complete route like me, you’d first download the emulators, HFV Explorer, System 6 and System 7 disk images, Stuffit Expander, System 7 Network Access disk, OS ROM dumps, some harddisk tools and blank virtual disk images. Then, you’d set up BasiliskII, transfer disk images and tools to a blank virtual disk (call it “Transfer”) using HFV Explorer, boot using the minimal boot disk and install System 7 and other stuff from Transfer to a blank virtual disk (call it “Sys7”). Then, you’d boot BasiliskII with this newly created disk, install Stuffit and disk tools, extract the System 6 floppy images and format your SCSI (Lido rules, fuck Apple HD SC Setup and the patch kludge). After this, you’d setup vMac and boot that using the extracted System 6 floppy images, mount yet another blank virtual disk (call it ‘Sys6’) and install System 6 on to that. Then, you’d mount Sys6 in Basilisk, boot to Sys7 and copy Sys6 contents to your formatted physical drive. Finally, you’d hook this drive up to your Plus, boot to System 6 and use Disk Copy 4.2 to write System 6 install disks using the internal floppy drive.
Now, is it just me or does this sound like a lot of hassle?
Alternatively you could just take the short route and install BasiliskII, download the disk images I made, mount them to boot BasiliskII with System 7, then format your physical drive, copy the System 6 install over and use the physical drive to boot your Plus.. Without forgetting to bless that System folder of course!
Following my traditions, it might be a little weird not to have some modding kludge included. Considering that the Plus has SCSI, I really despise the idea of booting it off a floppy. On the other hand, having to haul a external SCSI drive with the computer doesn’t really go well with the nice carrying handle on the Plus case, thus everything minus the keyboard and mouse should be “in the box”.. And so, the idea of adding a internal SCSI mod was born.
Mechanically the insides of a Plus sure look like as if the option of adding a internal drive was planned but left unused eventually. Why I’m not sure, but retail price is always a good guess. Whatever the reason, there’s ample space underneath the floppy drive. Just drill mounting holes for a drive following EIDE spec and the mech is sorted out. Electronics, on the other hand, require a bit more work.
The SCSI controller on the Plus mainboard is a AMD AM5380PC, a 40-pin wide-DIP packaged chip. It has all the SCSI signal pins on the other edge of the chip (pins 2 – 20) and thus makes a decent candidate for adding a standard 2,54mm spacing pin header for internal bus connection. I implemented this using a double row header, even pins besides 2 and 40 carry ground and odd pins carry the SCSI bus signals. Pins 2 and 40 are connected to their odd pairs (1 and 39, respectively), as this helps to fasten the header down a little. Making most of the pins on even row carry ground simplifies making a custom 40-to-50 pin adapter cable, since individual signals can be routed using flat cable wire pairs.
While constructing the cable, no matter how much I was paying attention to the AM5380 pinout, the D0 on pin1 still managed to misguide me. This resulted in a faulty cable that had the SCSI data pins offset by a bit (D0 connected to internal data bus of the Plus). No wonder that the only thing Lido blurted out when trying to format a drive with this cable plugged in, was a persistent “SCSI phase error”. The Plus did boot up from another connected drive though :).. Taking a second look at the cable after a good nights sleep, the project was back on track (once again).
Where powering up the drive is concerned, Gamba’s descriptions about the bad design of the power supply circuit prompted to implement a separate PSU for the drive. Without having exact power consumption readings, I chose not to risk the chance of damaging the analog board with my own kludging.
The power supply, on the other hand, is notoriously prone to failure, as there is no fan inside the unit (Steve Jobs objected to the noise, and preferred to risk overheating the machine instead).
The PSU I made is pretty straightforward. There’s a AC/AC transformer (sourced from a tape deck!) hooked to the Plus analog board through a 150mA fuse. The output of transformer is 26.5VAC and is DC rectified through a 1.5A diode bridge. This feeds two monolithic DC converter modules, +5V has max. current rating of 1.5A whereas 12V has 1.25A.
I installed one 470µF and two 4700µF capacitors on the input side of these converters. Adding up the capacitance the total sounds like overkill, but without less none of the drives I had spun up properly.. Guess there must be some high-current “power on” transients at work, as all drives we’re specced to draw 6W or less. The caps do take a short while to charge up, but once they do the drive spins up flawlessly. On the output side, +5V has 1000µF whereas +12 has 2200µF.
Looking into options where to install the new PSU the drive bay seemed most appropriate. This way, the whole contraption can be installed/removed as a single “block”. Lucky me, the mounting holes on the transformer matched the hole spacing on the drive bay.
One effect that I completely overlooked with this modification is the magnetic field emitted by the transformer. As it is located pretty close esp. to the board interconnect cable, apparently the video signal picks up the magnetic field somewhere along the way up and this results in a slight 50hz warble on the display image. Removing this is yet a pending improvement, but I’m thinking of starting by adding a grounded metal shroud around the cable. Alternatively, some thin sheet of metal could be fashioned to cover the transformer.. should be pretty easy to connect it to the rest of the mech.
The most “negative” side to this internal HD is that the drive does make some noise, slightly ruining the original idea of a silent computer.. as if the floppy drive was silent ;). But whatever, the Plus now certainly makes a neat bring-along set for demoparties or other such events!
The CF trials
Ok some words about the PCD-50B SCSI card reader and Plus as promised. The way I envisioned things prior to testing anything was, that CF cards would make one damn handy way to transfer files between the Plus and other, more modern computers. If installed as a internal drive the PCD-50B would be completely silent and not require extra PSU kludges nor even necessarily cutting the case. With a bit of custom mech work, the PCMCIA slot could be aligned with the floppy slot on the front panel (allowing to keep original appearance). Anyway, no use fantasizing if the damn thing won’t work, and I think I tried any imaginable approach to make it so.
When hooked up with the Plus the cards I tested (8M, 32M, 512M, 2Gb) were all visible in Lido, but running its ‘Easy Setup’ shortly ended up with “format failure” error. 2Gb was a exception to the rule as trying to format it resulted in a hilarious “not enough memory to format” error :). I do recall reading somewhere that HFS should support drives up to 2Gb, but I’m sure that the people who designed Plus didn’t really think anyone could afford a Gb class drive at the time.. let alone even if such existed!
On the emulator side things weren’t rosy either: BasiliskII allowed mounting CF both through USB and SCSI, yet both failed. With SCSI the activity LED on PCD-50B did blink here and there, so clearly some attempts at accessing the drive were made. Whatever it was it just didn’t work all the way. USB access on the other hand worked only on a “first boot” basis: Once BasiliskII was started with the CF drive mapped, any subsequent launches just failed to recognize the drive. This occurred even despite the drive was disconnected and reconnected to Windows between launching BasiliskII.
I’m keen to think all this could have something to do with Windows too, but it’s good to keep in mind here that real SCSI harddisks were accessible just fine on same setups (Win98 & XP). I didn’t bother testing if Mac OS 8 or 9 would’ve made any difference.
Prior to performing the above CF formatting tests with Plus, I also tried DD‘ing my working 32Mb System 7 drive image (which I was using to boot BasiliskII) to a similar sized CF. No cigar here, and it really is a shame as this would’ve been the most straight-forward process. You know, just pick a image from blanks.zip that matches the physical drive size, stuff it under the emulator with OS (and/or programs you need) and then DD the image. Not sure if there is some header info (or such) that would need to be stripped in order for the process to work.. But what use would this be if you can’t get the Plus to identify the drive in the first place.
To wrap things up I was planning to do a list of software websites like the System 6 Heaven, but on closer look it turned out to be mostly comprised of dead links. Shortly after I found this large collection of legacy Mac software, so I’ll just leave it at that ;). To drop some other links, Pickle’s Low-end Mac FAQ with its very handy reference list of classic Mac startup key combos sure came in handy a couple of times. Then, for the adventurous there’s Erik Rasmussen’s earlymacintosh.org with a page containing disk images for System 2 to 4.. Well worth the visit just for the near-exhausting dig into the history of Mac hardware and System OS.
Finally, beyond the Plus electronics crapping up to some unrepairable state its good to know there is at least one nice re-use for the case ;)