IBM PS/55 Z – Replacing the Guts
I was unsuccessful in restoring the original motherboard contained in the IBM PS/55 Z – 5530 that I picked up recently, so the new goal was to find a similar motherboard with riser card and give the machine an upgrade. I knew I'd never find an exact fit, so I started preparing to make things work.
The overall structure
The motherboard in this machine is around 290mm x 340mm and has a central riser card with 3 MCA slots. These are slimmer than ISA cards, so there was always going to be an issue fitting a standard riser card in there. There was also only front-panel space for two 'tall' floppy drives and hardly any other room internally for hard drives.
Digital 54-22703-01 Motherboard
This item popped up on eBay and looked like a perfect fit. It had no RAM and a Dallas CMOS chip, but I'm always up for a challenge. The board happened to be smaller than the IBM board and so there'd be extra effort to mount it, but it had a replaceable CPU and I had an upgrade for the stock DX-33.
At first it didn't even want to boot. The front-panel connector is a pin-header and I have no idea of the pinout. Flying blind, I tried just about every RAM SIMM I had and still couldn't get it going. Finally I remembered I had an ISA diagnostics card, of which I'd never tested.
Once plugged in, I kept getting 0xD0 on the display... oh wait... that's 0x09. The manual indicates that it's failing to read the stored CMOS configuration data for the BIOS. Well, that isn't entirely unexpected as the Dallas clock-chip is probably toast. I quickly fixed this, as I've done before and before.
With this in, it still didn't work. I emailed the eBay seller as they'd hinted the board needed specific RAM. He sent a few pics of SIMMs he thought might work and I scrummaged through my box-o-junk and found similar. With a little more swapping and testing I got the card through to 0x57. Interesting... nothing on the screen.... OH! I'd disabled the on-board VGA whilst testing!
After a little more testing, I found 3 4mb SIMMs, totalling me up to 12mb of RAM. Perfect for a vintage 486 DX2/66. Note that the board still uses a 33mhz clock when running the DX/2 66mhz. As per the board configuration, the 66mhz is 'internal' to the CPU!
Mounting it
The chassis is pure steel. It took a lot of bending, twisting and grinding to make this fit. The bottom rear slot needed to be extended and the base was punched to allow mounting screws for the motherboard. I then created a vertical bracket to secure the ISA cards to. Thankfully this board had on-board VGA... otherwise I'd have totally run out of slots!
The middle riser card that came with the board was too low... the bottom slot was too low. Fortunately I had another riser that worked perfectly. The lower riser also didn't clear the clock-mod I did for the cell battery!
The plastic housing for the hard drives and floppies was a bit of a pain. It used to secure the center riser card and this was no longer an option. It also held the front floppy drive with very little clearance from the motherboard. I chose to swap the floppy to the other side, but this caused even more problems as the actual case had a blank panel there! More dismantling saw this to be an easy swap, but not after a LOT of fiddling.
As you can see above, I'm messy and always in a rush. Regardless, the end result was totally functional.
Power Supply
The previous motherboard had an edge connector with voltages supplied from the power supply in the chassis up top with the monitor circuitry. This was based off 110v, as the unit was from Japan. I wanted to change this to a newer power supply... so I dismantled the monitor to determine if it was even possible.
All was looking good until I saw that one of the wires over to the monitor board needed +85v. I've no idea how to generate that from a standard PC power supply... so I went back to the original idea of augmenting the internal power board to work with an AT motherboard.
After analysing the pins, I started the re-routing. All was available except the -5v. Goshdarn. I tried to boot it anyway and got a 'blip' from the SCSI LED... but no POST. How do you generate -5v? Seems you can use an oscillator circuit or an LM7905. The guess was that I could use the -12v rail to provide a -5v rail.
A quick soldered-up hack got the -5v rail in place and, well, it booted??? I couldn't actually believe my eyes...
I then turned the power switch off and back on again. I then had issues getting the machine to reliably come back on. Seems that I'd fluked it this time around and the -5v rail wasn't the answer.
Power Good
Seems that the very first pin of a standard AT Power Supply is known as the Power Good signal. This line goes high (+5v) when the power supply has decided it is outputting valid power values and that then notifies the motherboard to start booting. The main point to note in that article is that a motherboard will reject this signal if it fires before 100ms and after 500ms. Eep... we're tied to 5v, so it's probably either totally noisy or easily firing before 100ms.
So... do I fully review the power board in this system and determine a proper value for this? Or just hack in a fake timer to produce a 200ms delay? It seems that we're already causing a random delay on the line as I can get the machine to boot sometimes... so I might just try and fake the signal by use an RC charging circuit to add a small delay.
A quick interesting note: I actually used the wiring off an old power supply from a dead power macintosh for the motherboard plugs. It turns out that pin 1 and 6 were tied together by a tiny capacitor!? That capacitor is shown above. It seems Apple were using the same trick on their 7220 line of Power Macs. Might've been a cheap way to use pc-specification power supplies in that model/series as the goal back then was to be as off-the-shelf as possible to produce a cheaper line of macs.
Anyway, where was I? Oh yeah... I want to fake the signal as well. To do this, I'll throw an electrolytic capacitor and resistor onto the power good signal wire. Use the calculator here (thanks Digikey!) to determine what you need. We'll want a 200ms delay from a 5v supply, so that's a 2k resistor and a 100uf capacitor. The resistor will be between the 5v supply and the positive terminal on the capacitor. We'll then connect the other side of the capacitor to a ground line. Finally we'll run the power good signal wire to the join between the capacitor and the resistor.
Turns out my trusty box-o-stuff only contained 3k3 resistors, so I soldered in this and an 100uf electrolytic capacitor and, heavens above, the machine booted everytime without fail! I then used the remaining 12v and 5v wires to get both full-size and floppy-size molex power plugs connected. Make sure you get the power wires the correct way around! Before I knew it, the machine was booting without any external support. Unfortunately it was stalling at the SCSI BIOS.
HDD Sizes
The BIOS in this machine was determined to not let me use the full size of my 1.2gb C:. I attempted to use ANYDRIVE, but it really didn't like the GOTEK that I was using. Instead I gave EZ-Drive from Western Digital a shot. (Really good VOGONs thread on the topic here!)
I also considered tinkering with the actual BIOS of the motherboard. It seems to be two EPROMs and I would've been happy to whip out an old machine with a real LPT1 port to program one. A little digging revealed a great archived site with the DEC LPV+ support files. One of them even mentions the drive size limitations I was facing! Hah... it then simply recommends to use drive overlay software... So, back to EZ-Drive...
Firstly, set up your BIOS with the 'default' setting for a 504mb drive.
Next, download the EXE (not the ZIP) from Phil's Computer Lab and copy it to a disk. I was using a Gotek, so I copied it to one of the blank disks available. Boot using another disk and then switch back to this one. When you run the EXE, you'll be greeted by the welcome message. It'll take some time at this point as it's copying itself to RAM. Once in RAM, it'll inform you that it's time to switch disks. At this point you need to insert a blank disk that'll be your EZ-Drive boot disk. I swapped to a new slot on the Gotek and hit enter... in no time the disk was built and I was prompted to restart.
From here, it's child's play! The GUI is perfect and found all the information it needed. I just kept choosing the default options. During the install it'll ask for a disk with a bootloader on it. I switched the Gotek back to DOS 6.22 Disk 1 and it copied the required files over.
Once complete, the machine will actually boot from this drive to the basic DOS it installs. Unfortunately, DOS still needs to be fully installed and cannot be done from the booted HDD as the floppy will tell you to restart with the disk in A:. Of course, if we did this and booted straight from the floppy then we'd undo all the work that EZ-Drive has just done. Instead, as per the instructions below, we need to try and boot the HDD, but hit CTRL just as it's about to start.
If your timing is good, then you'll get the following screen...
From here you can hit A, get the disk in the drive (if you have a Gotek, then wait 2 seconds after selecting the floppy index number!) and then hit any key to boot the disk. DOS 6.22 then installed with a minor warning that it'd overwrite the current DOS install... it's not a real DOS install (it was just the boot files that EZ-Drive copied over), so yes, please, wipe it and get my OS ready!
Meanwhile, if you're adventurous... there's a truckload of DDO software here to try out if you can't win with ANYDRIVE or EZ-Drive.
SCSI Card
The card is an Adaptec AHA-1542B and it really didn't want to find the attached drives. I had an external case with a CD drive and an ultra-wide (converted to 50-pin) 9.2gb IBM HDD.
I could see it pinging both drives, but the card never seemed to find Drive ID 0 at LUN 0 whilst loading the BIOS. Usually you can hit CTRL-A at this point to get into the BIOS configuration, but this card wasn't even offering that option?
There's a mention on this forum post that my card can only do up to 1gb HDDs. The manufacturer reckons that it will support 8gb drives. Unfortunately, I don't seem to have any drives small enough? Maybe this is why the boot is stalling. The AHA-1542C BIOS ROM is here, but probably wont work in this card. There's AHA-1542B BIOS ROMs over here on Github, but a quick Notepad++ inspection of the BD00 bin image shows that the newest one is already version 3.20... I have 3.10 so maybe I should update?
I'd been testing all this on an ultra-scsi hdd with a converter... but I remembered I had an ancient macintosh 1.2gb drive laying around and it was a proper 50-pin! It worked perfectly... and then I remembered that old MOTOR START trick. These server-grade SCSI HDDs don't actually spin up until they're told to. Usually you can request this under options in the SCSI BIOS, but this card doesn't seem to have one! Instead, I had to adjust the jumpers on the drive itself AND the converter/adapter. Note that these drives, with only power applied and the MOTOR jumper set, will spin up. Once you plug the SCSI cable in, regardless of the MOTOR jumper setting, they WON'T spin up until the host has been turned on!
All of my SCSI devices were mounted in an external case and it was causing me grief. As mentioned, the drive would spin up fine with the jumpers set and power applied, but as soon as I mounted them and closed the case, a quick power-on test would see the HDD no longer spin up by itself! I spent a long time trying to work out this out. As mentioned above, the result is that the drive won't spin up if an actual ribbon cable is plugged into the drive. The MOTOR will only spin up when it senses that the host is switched on. So the MOTOR jumper is really I'LL SPIN UP IF I SEE THE HOST IS ALIVE; I assumed it was I'LL SPIN UP IF I HAVE POWER.
With everything now powering up, the BIOS was listing the drive as D:. I then tried the ADAPTEC DOS Drivers and found that ASPI4DOS.SYS 3.36 just kept reporting Installation Failed. I found a forum post on VOGONs that mentioned a version downgrade to get things working. I love little hints like this: ASPI4DOS.SYS 3.35 worked perfectly! Of course, 3.36 has all the disk tools whereas 3.35 is just the drivers... I had to download and put both on C: to be able to get the SCSI drive into a usable format.
With partition size limitations, I made 3 that were around the same size as C:. D: was still only being mounted... but I assumed Windows would find the rest. Note that, if you've mounted your D: via the SCSI BIOS, you will be limited by your computer's BIOS for partition sizes. I recommend NOT mounting via your BIOS first and booting to DOS to use AFDISK from the 3.36 driver archive. Once you've created your partition set, you can then turn the BIOS back on, or just let Windows use the drives and have DOS forget them.
Sound Card + MIDI + Speakers
I had an ISA sound card sitting on the shelf. It turns out it's a Reveal SC400 Rev.3 (I38-MMSN811) which seems to have come from a Packard Bell system. Further digging indicates that this card is actually just a rebranded clone of a third generation Sound Galaxy Nova 16. It utilises the AZT-2316 chipset and you can find more information about the whole family here. Grab the full Aztec Driver kit here, and make images of the first three disks in the NOV16E folder. I couldn't actually get the DIAGNOSE application to work successfully... it seemed to either hate the DMA or IRQ configuration... but running DEMO8 and DEMOFM produced sound!
Of course, if you're going to use Windows, then everything will just work. This card is new enough to be well-supported. That bloody W95 Chimes and TADA! were playing over and over whilst installing software and restarting.
Networking
This was the easiest LAN card I've ever installed, well the easiest ISA LAN card. It's a 3Com EtherLink III 3c509b. No jumpers, capable of PnP! Of course, that wont work here, but Win95b happily configured it.
Under older windows, don't forget to provide the gateway and DNS settings! These won't be auto-discovered from DHCP. Internet Explorer 3.0 actually just worked perfectly. HTTPS sites all failed... which is actually a really big issue now with older hardware. Thanks to all the new HTTPS security requirements, no older software works with new URLs.
Front Panel Connection
The DEC obviously had a proprietary front panel board. The header on the motherboard was unlabeled and there is zero documentation online. I grabbed my trusty multimeter and started probing the wires for voltages.
The hard drive activity light was found by choosing the biggest folder on C: and copying it to another folder. From there, there was only one pin that was 'pulsing'. I wired this through to the LED on the front of the IBM. The speaker was a little more tricky. I created a quick QBASIC program: 10 BEEP; 20 SLEEP 1; 30 GOTO 10; which happily started a 1 second beep every second second. Again, this rhythmic pulse was found on another pin. Each seemingly had a GND as a neighbour... but maybe I should have hard-wired to a real GND as I don't know if the neighbour wasn't another digital signal?
Windows
This was going to be another WFW311 machine before I realised I was easily spec'd for 95B. Back in the day, the family had a 486 DX2/66 with 4MB of RAM and we went to the computer store to get a bigger HDD and an extra 4MB of RAM for Windows 95! This machine has a MUCH bigger HDD and 12MB of RAM... so we're good to go.
A quick visit to my favourite site produced the required install media and the WIN95 folder was copied to C:\. I always do this as it makes it much easier when configuring (or re-configuring) network options in the future. Windows always manages to ask for the Installation CD and if it's on C:\ then it just zooms through without asking.
The installation was nearly painless. After typing SETUP.EXE, I was stuck just after hitting ENTER to scan disks. Scandisk didn't actually come up and the SCSI drive was making a very noisy hum. Turns out the heads were starting to fail and SCANDISK's attempt to wake up the drive locked up the computer. Well, not the whole computer... turning off the external SCSI enclosure saw SCANDISK continue... but that wasn't acceptable. I quickly swapped out to another SCSI drive (and partitioned and formatted...) and started the install again.
Before I knew it, I was at that treasured desktop once again! Here's Opera 6.00 and WinZip 5.0.
1024x768 Resolution
The Display Adapter IV card in the old mainboard was capable of a 1024x768 resolution. Unfortunately, this had a weird mode and wasn't standard SVGA. The display mode is detailed here (thank you, Diary on wind) and I tested out if Scitech Display Doctor would make Windows 95 display it. Turns out that previous link is shit.. use this one instead. (or here) (or here) You can find PMHELP.VXD here.
Here's the Quadtel DEC VLB S3 805 Driver.
It turns out that, even with the relevant display drivers installed, Scitech just doesn't care for my video card. The video is soldered onto the motherboard, so we're out of luck. I'll try and find a monitor INF for the display or something shortly... there must be other methods!
L1/L2 Cache
Windows 95B performed pretty awfully... or maybe it was Scitech Display Doctor that started to make it chug... either way, I wanted to see if I could boost performance. One standard method is to install cache. This is a small block of RAM that sits right next to the CPU and provides a 'working area' to pre-load the next disk or ram segment so it's readily available. It's actually the reason the newest CPUs on the market have security bugs as the data pre-loaded can be from other applications and then be viewed.
For this motherboard, there's 8 RAM slots and 3 TAG RAM slots? Page 45 of the Service Manual indicates that I need For the DECpc LPv, secondary cache memory consists of four or eight 32 KB x 8 cache SRAM chips and three 16 KB x 4 cache tag SRAM chips. I jumped on google to try and find the TAG RAM chips, as all boards I already had only had the cache chips.
I hadn't actually heard of TAG RAM before and didn't exactly know what to look for. It turns out it's a block of RAM used to store address data of what's actually in the cache. The CPU uses it to bookmark where it's at and what data is where. For this we'll need 3 chips of 16KBx4. These all seem to be in Israel, so I'll sit tight and wait for them to arrive.
Update: Cache has been installed!
The Final Product
Getting this thing running was a real tour-de-force. At no point was a single task easy, but for the first time in a long time everything did come together nicely. I'm really happy with the end result and may just leave this as my beige beast for playing old games!