Having pushed the L2 cache to 256 KiB, FDOOM.EXE
clocked at 32 fps. The IBM PS/1 2168 was close to maxing out DOOM at 35 fps. The next upgrade was going to be the CPU.
IBM's 2168 documentation mentioned the CPU could be upgraded. However there was no mention of which models were supported. All I managed to find online was a confirmation that it could work[1] and the following Processor Upgrade Matrix[2].
Model |
CPU |
Upgrade Processor |
Installation Notes |
2168 38C |
DX2/50 |
P24T-63 |
J24: 1-2, J25: 1-2, J31: 2-3 |
2168 57C |
DX2/66 |
P24T-83 |
J24: 1-2, J25: 1-2, J31: 2-3 |
2168 SR1 |
SX33 |
487SX, P23T-66, P24T-83 |
J24: 2-3, J25: 1-2, J31: 2-3 for P23T-66 |
2168 US1 |
DX2/50 |
P24T-63 |
J24: 1-2, J25: 1-2, J31: 2-3 |
2168 BB1 |
DX2/66 |
P24T-83 |
J24: 1-2, J25: 1-2, J31: 2-3 |
The 487SX indicates the Intel 487SX math coprocessor. The P24T-63 or P24T-83 indicates the Intel Pentium Overdrive Processor (63 Mhz or 83 Mhz). Under installation notes (Jxx: y-z), Jxx denotes a jumper and y-z denotes its position. If you receive a 2462 Startup POST error after installing a Pentium Overdrive, you may need a BIOS chip upgrade (FRU 76H6938) These are the only processor upgrades supported by IBM for these machines.
The mode reference (2168-BB1) did not match (I have a 2168-594) but the configuration did. It seemed that a Pentium 83Mhz could work. That would open the door to softare using floating point instructions like Quake and Duke Nukem 3D.
There is an important distinction when it comes to Overdrive processors depending if the motherboard expects the new CPU to Replace or Disable the current CPU. Let's take two types of 2168 motherboards to illustrate.
In versions with a 486 SX soldered on the motherboard and an Overdrive slot next to them, the CPU is to be disabled by the Overdrive. Notice on these motherboards how the cpu slot has 169 pins instead of 168 on the lower right. In this case, the CPU must be an ODP.
If there is only one CPU slot (my case), the socket has 128 pins. This is a Replacement and the type of Overdrive CPU needed is ODPR.
Right from its frequency we are dealing with an uncanny CPU. If you are puzzled, you are not alone. There are many discussions and debates about how this works and it that is even a superscalar processor[3][4] (answer: it is[5]!).
This uncanny beast was best summarized by mpe on Vogons.
The Pentium Overdrive is not just an adapted Pentium. It is a unique design - a modified P54C core with double L1 caches, half-size cache line size and 486 external bus.
- mpe[6]
The 83Mhz figure comes from the unusual multiplier (2.5x) applied to the system bus speed (33Mhz) resulting in 33x2.5 = 82.5 Mhz[7][8]. If you are interested in the topic, there are many good videos about this CPU[9][10].
I was quite impressed by the effort Intel had put into making Pentium broadly available (likely related to its feud with AMD over 486s). The fact that Pentium is a 3.3V core and that they managed to build something with a regulator to run on a 5V socket was pretty cool.
I was hopeful but also skeptical. The POD83 was released in October 1995[11] as the PODP5V83 (oem) and the BOXPODP5V83 (same but boxed). That is two years after this computer was built (Dec 1993). The documentation was promising but also mentioned having to find a custom ROM (FRU 76H6938).
There was only one way to know. I cracked open my BOXPODP5V83 and installed it (see an unboxing video here).
After my pack-fresh PODP5V83 failed to even POST, I ordered a second one only to run into the same issue. I tried to chase down the BIOS firmware (76H6938) mentioned in the online documentation to no avail.
In the process I learned that IBM PS/1 had an EPROM (as opposite to EEPROM). This meant that the BIOS cannot be software updated, I needed a physical EPROM chip with the new firmware. With IBM having discontinued the 76H6938 several decades ago, the odds of stumbling upon one were next to zero.
The one thing that was suggested but I did not try was to run a faster chip for the BIOS. Moving from the M27C1001-70 (70ns access time) EPROM to a faster M27C1001-10 EPROM (10ns access time) would have been an option but I decided to try something else.
All hopes of upgrading were not lost. If the PODP5V83 was too much of a stretch, perhaps something still based on a 486 architecture (but with more juice) like a DX4ODPR100[12][13][14][15] would work.
Despite its name the DX4 does not use a 4x multiplier but a 3x. On my system this gives a frequency of 99 Mhz which is rounded up to 100 Mhz for marketing reasons.
DX4 CPUs are so fast that they are prompt to instructions starvation, even on a VLB. To counter that, like the PODP5V83, Intel doubled the L1 cache of the DX4ODPR100 to reach 16 KiB.
I also happened to have a BOXDX4ODPR100 in my collection. The back of the box suggested impressive performance. I cracked it open and the installation went well. Contrary to everything else I attempted in this restoration process it worked the first time and the machine POSTed.
But I noticed right away that something was off. The memory check was super slow. And when I started DOOM, it ran at 3fps :( !. At least we were consistent with "not working on first try".
The culprit of the performance decrease showed up in the BIOS screen, The machine had lost both its L1 ("Internal cache") and L2 ("External cache").
It turned out that someone had already run into this problem and solved it. Programmer "Major Tom" accomplished the feat by patching the existing EPROM and even published their beautiful hack.
I bought an empty EPROM model M27C1001 and got an UV EPROM eraser to clear.
I was not really sure which EPROM writer to buy. I ended up with a T48.
With the M27C1001 in the T48 I only had to write Major Tom's patched BIOS on it. I used the awesome minipro
CLI which allowed me to write the whole EPROM with a single command.
After writing the EPROM, I protected the EPROM data with copper tape.
And then it was time to replace the BIOS chip. I had to take out all the ISA cards and remove the riser card again.
Notice the newly installed DX4-100 in the upper right inserted in the Overdrive socket.
With TOM 1.0
BIOS the machine POSTed and showed the right amount of L1 and L2. Only the Processor "name" was wrong since it only showed 80486DX
instead of 80486DX4
.
ASTRA
did recognize the correct CPU name (Intel i486DX4).
I emailed Major TOM to understand what magic they had done to make the cache work but they never replied. If I ever manage to find some free time this is definitely something I would like to disassemble, study and understand.
Meanwhile, there is a treasure trove of information on chipdb.org, here, here, and here where are saved gems like PentiumPro_BIOS_guide.pdf, DX4_BIOS_guide.pdf, PentiumOverdrive.pdf, and Procuring BIOS Updates.pdf.
With the frequency nearly doubled (and L1 cache doubled to 16KiB), it was time to benchmark DOOM (sound on, screensize = 10).
CPU\Engine | DOOM | FDOOM |
---|---|---|
486 DX2-66 | 24 | 32 |
486 DX4-100 | 29.7 | 39.5 |
Achievement unlocked. FDOOM runs at nearly 40fps. DOOM is maxed out!
With the DX4 upgrade, the 2168 was able venture into 1995 game territories. Command & Conquer (released sep '95) runs like a charm.
However to go in 1996-land and run games such as Duke 3D, Blood and Shadow Warrior, one will need a PCI bus and a Pentium[16]. I measured improvement on Duke Nuken 3D with command DNRATE
. The framerate went from 14fps with the DX2-66Mhz to 20fps with the DX4-100Mhz, which was still not playable by my standards.
As for the elephant in my room, Quake, this machine would have had a shot at it with a Pentium 83Mhz but not with any 486. The best summary I ever read about that came from vogons.
486 and Quake go together like water and oil.
- appiah4[17]
During this whole time trying CPUs, I was not dealing with Zero Force Insertion socket. I had to push hard for the CPU to click into the OverDrive slot. That was scary. I was afraid to break the CPU and/or the socket.
For the removal part, it would have been a nightmware without this absolute gem of a "Removal Tool" included in the Overdrive package.
I have seen videos of people using a screwdriver but if you can find one of these, I hightly recommend it. It make the operation fast and easy.