Troubleshooting a Flaky Houdini II DOS/PC Compatibility Card & Cooling Upgrades

BeniD82

Well-known member
Figured I'd share my experience with my Houdini II aka DOS/PC Compatibility Card setup to provide some pointers/observations/feedback so others who might be having issues with theirs know where to look when troubleshooting. Considering this is an incredibly long post, if you do not want to read through all this, just scroll down to the very bottom for a brief TL;DR.



I tend to keep machines in my collection that I either find interesting or that have some sort of historical significance so with the PM6100 being one of the first consumer machines using the PPC601 as well as having a hardware based PC Compatibility "layer" integrated, figured it'd definitely be worthwhile to keep that machine around. I've always had issues with mine, specifically with the PC side of the system, and after having had the machine out on display recently and it not working as it was supposed to, figured it's time to dive in deeper and find a solution.

As for issues, the Macintosh side of the system always worked as expected and had been running rock solid. The PC side generally experienced the following issues:
  • The system would randomly experience hard lockups without specific cause

  • After creating a new DOS container on the Macintosh side, formatting from within the DOS environment would typically generate several bad sectors in the final result output (if performing an unconditional format it would not)

  • Rebooting the PC side using "warm" restart keyboard shortcut would in many cases not work, even a "hard" reset of the entire DOS card would only sometimes work; I generally had to restart the entire Macintosh once the card locked up and neither warm restart nor hard reset had any effect (typically the screen would remain black and I'd just hear three quick BIOS beeps)

  • I could setup my DOS container, install programs, Windows, network drivers, etc. and everything would work for some time but eventually the file system would start to corrupt for no apparent reason e.g. folders going missing, files corrupting, Scandisk detecting FAT errors (typically incorrectly reported file sizes, missing clusters, mismatched FAT), eventually nuking the entire container. This would typically happen after using Windows for a while or any heavy disk activity.

  • Networking the PC side would only work intermittently. When it worked it was solid, but eventually I would lose network connectivity, being unable to see my Windows (Samba) shares on my NAS, or being unable to obtain an IP from my router; I could ping the PC side host but would not be able to ping either the Macintosh or any other devices on my network. Also, once the DOS card lost the ability to network, the file system would start corrupting itself.
The intermittent nature of the encountered issues made the card essentially unusable (unreliable at best) which was rather frustrating seeing when it actually worked, it worked perfectly fine until it decided it just didn't want to anymore.

The following list highlights some of the items I checked/tried in order to resolve my issue:
  • Performed thorough virus scans on the DOS side, no issues found
  • Repeated clean installs of MS-DOS and Windows for Workgroups, would eventually lead to the same lockups and file system corruption
  • Switched RAM modules thinking it being a memory-related issue, no change (FPM or EDO made no difference)
  • Tried both Intel and Cyrix branded DX2/66 CPUs, no difference
  • Tweaked various cache-related settings (write back, write though, enabling/disabling all advanced features etc.) on my Cyrix 5x86/100 CPU which I use on the card by default
  • Tweaked SmartDrive settings (ensuring to use /X to ensure disk writes happen immediately), DOS buffers set to 40 or higher, Windows file access settings (16/32bit access), caching, swapfile/no swapfile, all made no difference
  • Tried various versions of the Apple disk drivers, no difference
During my rather intensive testing I did observe that under certain conditions the system would remain consistently stable:
  • If removing the RAM from the DOS card altogether and allowing it to share memory with the Macintosh side, the DOS side would remain stable. The system unfortunately was so slow using shared RAM it was effectively unusable, so this could not be considered a solution or even an option.

  • If I pulled the 1MB L2 cache module from the PM6100 the card would remain stable as well (module tested OK when running it through diags though). Again, the system was incredibly slow without L2 cache so not really an option either. Replacing it with a 256KB module would lead to corruption again as well, so not a cache issue.
Overall, it appeared that the issue was disk related, specifically during disk writes/heavy I/O when the system ran “fast” i.e. when using dedicated memory and/or L2 cache on the Macintosh side. I tried several different SCSI storage solutions to see if these made any difference:
  • Stratos CF PowerMonster with Transcend CF card (had been using this setup for years until modern, cheaper solutions became available)
  • BlueSCSI v2 (Samsung High Endurance SD)
  • ZuluSCSI RP2040 (Samsung High Endurance SD)
No change. Would eventually corrupt the file system.

Being at wits end I started to hunt for technical documentation that could hopefully shed some light on how data is processed and exchanged between environments. Fortunately, there were a number of documents available, though I found the Developer Notes on the DOS Compatibility card most helpful (see link).

Based on the documentation I was able to determine that the Apple custom ASIC (Pretzel IC) on the DOS card was responsible for DMA handling and controlling most of the data flow between the Macintosh and PC side and should therefore be the IC to focus on. I ended up taking a closer look at the ASIC as well as the large PC chipset IC and noticed that the pins showed signs of heat-related discoloration (not unexpected seeing how toasty the system is under load) as well as being rather dull. Testing pins individually for connectivity was inconclusive, but when doing a “sound check” - very gently going over each row of pins with e.g. small metal pin or screw driver to see if there is an audible difference in sound - I did notice that there were several sections that seemed to sound different from others.

Having the suspicion that there might be bad solder joints due to repeated thermal stress over the years, and ultimately being out of ideas, I grabbed my soldering iron, slathered on copious amounts of flux, and started reflowing the ASIC as well as the PC chipset with fresh solder. Note: Pins on these ICs are incredibly fine so ensure you use ample amounts of flux and take your time, remove any surplus and inspect your work since it’s easy to create solder bridges.

Result after reflowing below.

20240602_152033-small.jpg

Once I inspected and cleaned up the card, popped it into the Macintosh, started up the DOS Environment (ensuring to have copied over a known uncorrupted DOS container prior), launched Windows, went through the usual routine of trying to mount a network share... and immediately had network connectivity and shares detected! Performed extensive testing to see if I could trigger lockups or file system corruption, but to no avail. Even with repeated warm and hard resets as well as heavy disk I/O I was not able to reproduce the encountered issues. The system now remained stable.

So ultimately, poor solder connections on the DOS Card chipset appeared to have been the culprit.

Note: I also had some issues with the BlueSCSI v2 and corruption but switching to the ZuluSCSI solution seems to have fixed that as well (periodic read/write errors under heavy disk activity).

Addressing Heat Generation and Optimizing Cooling

Years ago I had already placed a PC slot cooler/blower type fan in the area underneath the hard drive that had been intended as air intake in order to force cool air over both CPUs for more efficient cooling, and while this setup had worked reasonably well over the years, I was never really happy with the heat sink solution since the 601's heat sink stood rather tall and I felt that it obstructed a lot of the airflow. Also, the Cyrix 5x86 requires the use of an interposer which essentially places the processor right on top of the 601’s heatsink, not really allowing for air to pass over.

Several folks, both on here as well as TinkerDifferent, have devised cooling solutions that work great, but I really wanted something that provided adequate cooling, allowing for better airflow, yet didn’t require major surgery. Sleuthing the internet for heatsinks I observed that several PPC accelerator cards used a flat heatsink that would fit the bill. Gutting an accelerator just for its heatsink didn’t feel right though, hence continued to look for a viable solution and was able to determine that heatsink used on these cards was actually a commodity item and, luckily, still in stock at both Digikey and Mouser for a reasonable price: Wakefield-Vette 609-ABS3 (this one also includes a thermal pad; it can be removed if you'd want to use your own paste).

The heatsink is a perfect match, though you may have to bend out the snaps a little bit so they fit better through the openings on the logic board. The capacitor below the CPU will need to be moved down by a mm or two if using an electrolytic cap. A tantalum cap will fit under the heatsink if it's not too tall (I used tantalum when I did my recap and while it would’ve fit I moved it anyway to avoid any potential thermal stress).

20240603_170258-Small.jpg 20240602_151942-small.jpg


I can confirm that the heatsink fits perfectly, allows for air to be pushed over the fins, keeping both the Cyrix CPU and he 601 cool. Also, it's worth calling out that the heatsink does not touch the TI chip sitting above the CPU (does not come across well in the images but figured I'd mention it).

20240602_202541-small.jpg 20240602_202554-small.jpg


I also added an additional 40x20mm fan at the rear to pull hot air from the back corner to help with air movement, forcing it towards the exhaust air intake of the power supply (just pinned it in there but may create a slightly better and more secure solution in the future). Between the upgraded heatsink and the added fan my system remains cool and hopefully operational for years to come.



TL;DR: If your DOS card misbehaves e.g. is unstable, locks up when trying to reboot the environment, only has intermittent network connectivity or no network connectivity at all, can only ping itself but no external network devices, and/or corrupts your DOS containers without cause, check the pins of the PC chipset ICs and especially the Apple custom IC near the card edge connector. Reflowing these pins may fix these issues for you. Also the Wakefield-Vette 609-ABS3 heatsink is a perfect low-profile replacement for the stock cooler.
 

just.in.time

Well-known member
Amazing finds on the solder points wearing out. Likewise, good find on the heatsink. I’ll probably order that same one. Not a fan of the factory heatsink.

Where did you get the 1MB L2 cache? I’ve been looking for a while and have had no luck.
 

BeniD82

Well-known member
Yeah those modules are pretty much unobtainium at this point and I dread the day when it fails :( I was able to grab that one at a blowout sale from some RAM/memory vendor many years ago and seems they went out of stock fairly quickly after.

Complexity wise they don't look overly involved so someone savvy with a multimeter and some hardware skills could probably reverse it fairly easily, but the Motorola chips used on it seem to be pretty pricy at this point so recreating it would most likely turn out to be a very costly endeavor.

It does make a fairly noticable difference with performance overall, especially the video performance, so if there'd be a way to recreate these somehow in a way that would not break the bank (even for retro enthusiasts/min-maxers) it'd be the upgrade to get.
 
Top