First post, by Falco
While strolling around a second hand store a month or so ago after work, I happened upon an IBM PS/1 system sitting on a shelf for $7. Stuff like this doesn't come along every day, so I snagged it.
Inspecting it when I got it home, it turned out to be a PS/1 Model 2133-C11. I couldn't find much information on this sub model, as it seems IBM had a menagerie of different SKUs with different options, but it seemed to be close to the -111.
Specs of the system when I got it:
Intel 386SX-25 (no cache)
Cirrus Logic CL-GD5410 (256k)
8 MB RAM (2M onboard, 1 x 2M module, 1 x 4M module) - 72 pin SIMMs of proprietary IBM variety.
82 MB IDE Hard Drive
1.44M floppy
The prior owner had the courtesy of not removing the hard drive, or wiping it. So it had the original factory install of Windows 3.1 and IBM DOS 5, along with some games and the usual PI that I quickly deleted.
One thing that was rather quickly made obvious is how painfully slow the system was, especially in Windows 3.1. Doing any moves on the screen, you could literally watch the redraw happening. Software was slow, games were even slower. Now, I haven't had a 386 system in decades, but the last one I did have I did not remember being this bad.
IBM really didn't want anyone upgrading this system, the CPU is soldered on, and there is no provision for cache. That doesn't stop me though. After doing some extensive research, I found a TI486SXLC2-50 was pin compatible with the 386SX, and it has 8k of L1 cache. I bought one and installed it, and the system booted! The BIOS has no idea what it is though.
After doing more research, I figured out that the cache isn't automatically enabled, but thanks to another thread here, I figured out how to use the CYRIX.EXE utility to get both cache and clock doubling working after a few days of trouble. So I now had a system running at 50 MHz with 8 KB of cache. Windows 3.1 ran MUCH faster and everything was generally more tolerable. Since the motherboard was never designed for cache, the two cache control lines aren't actually routed to anything (KEN# and FLUSH#), so I had to use the A20 and BARB method for cache eviction. If anyone wants to try this upgrade, the options I used were "-a -b -m -r -i1 -cd".
But, I figured I'd try to push it a bit more. I noticed that the video memory had two unpopulated pads, and the above BIOS image gives it away that I upgraded the video RAM to 512k. This upgrade didn't go exactly to plan because I didn't have any 256kx4 DRAM chips on hand. I tried to use some 1Mx4 DRAMs and tied the unused address line high, but while the video chip detects the memory, attempting to use it results in the frame buffer getting garbled. I'm waiting on some real 256kx4 DRAM ICs from UTSource, and I'll see if those clear up the garbage issue.
And since I can't leave things well enough alone, I decided to see if it was possible to bump the CPU clock up even higher. I found the CPU clock oscillator near one of the large chipset ASICs, it being 50 MHz for a 25 MHz CPU clock. I desoldered it and installed a socket so I could install a 66 MHz crystal, and this is where my luck would run out. While the system would boot with the 33 MHz CPU clock, it was not stable. The machine would boot with lots of strange errors and eventually would crash during POST. From watching a Necroware video, I remember that IBM had implemented checks in some of their machines to prevent the machine from working properly or booting with CPU clock speeds faster than they set. I thought it may be something along those lines, so I started down the rabbit hole of trying to mod the BIOS. This is where it all went to hell. As soon as I dumped the BIOS, I accidentally hit the program button and managed to clobber the BIOS, so now I had a bricked system.
Fortunately I had the dumped BIOS, unfortunately, I haven't worked with EPROMs before. I have a Xgecu T48 programmer that is "supposed" to support burning EPROMs, but as I soon found out, it really doesn't. I also didn't have a UV eraser to erase the clobbered EPROM. Taking notes from MacGyver, I started digging around my horde of parts for anything that put out UV, and remembered I had a UV resin curing box. I managed to use some putty to stick the window of the EPROM right over one of the UV LEDs in the box and bypassed the timer to run it for a half hour. It actually worked and erased the EPROM. But my troubles were just beginning, I could not get the T48 programmer to make a successful program on the EPROM. This resulted in me buying more 27C1024s thinking maybe I fried the original, but those didn't burn either. So a week of buying parts and fiddling with programming settings later, I found a combination that worked. I needed to have the programmer plugged into a powered USB 3.0 hub, and I needed to use a very specific chip profile and voltage settings in the Xgecu software. But even then, I had to burn the EPROM in three steps because it would fail at predictable addresses. By the end of this whole mess, I had a proper UV eraser, so I could erase the chips in 5 minutes. I've also ordered a GQ 4x v4 with the EPROM board so I hopefully don't have to play 50 questions with the Xgecu anymore.
By happenstance, the successful EPROM programming was on one of the new 27C1024 chips that I bought, and they were a different much lower speed grade than the original (these were 70ns, the original was 120ns). Plugging this chip into the PS/1 and it fired right up. But there was a difference, the machine no longer crashed on the BIOS POST screen, and there were no more weird POST code errors. So it seems like the BIOS chip was too slow for the faster 33 MHz bus speed. The system is still *slightly* unstable, but I think this has to do with the system memory being rated at 80ns, and it being marginal at 33 MHz. I'm going to try sourcing replacement chips for the onboard memory, and figure out the weird IBM proprietary modules so I can get 70ns or faster DRAM installed.
But enough talking, here are a few more benchmarks. It won't win any speed awards, but it also isn't painful to use anymore.