Thinkpad 701c: Reverse Engineering A Retro Processor Upgrade

[Noq2] has given his butterfly new wings with a CPU upgrade. Few laptops are as iconic as the IBM Thinkpad 701 series and its “butterfly” TrackWrite keyboard. So iconic in fact, that a 701c is part of the permanent collection of the Museum of Modern Art in New York.

Being a 1995 vintage laptop, [Noq2’s] 701c understandably was no speed demon by today’s standards. The fastest factory configuration was an Intel 486-DX4 running at 75 MHz. However, there have long been rumors and online auctions referring to a custom model modified to run an AMD AM-5×86 at 133 MHz. The mods were performed by shops like Hantz + Partner in Germany. With this in mind, [Noq2] set about reverse engineering the modification, and equipping his 701c with a new processor.

thinkpad-brainsurgeryThe first step was determining which AMD processor variant to use. It turns out that only a few models of AMD’s chips were pin compatible with the 208 pin Small Quad Flat Pack (SQFP) footprint on the 701c’s motherboard. [Noq2] was able to get one from an old Evergreen 486 upgrade module on everyone’s favorite auction site. He carefully de-soldered the AM-5×86 from the module, and the Intel DX4 from the 701c. A bit of soldering later, and the brain transplant was complete.

Some detailed datasheet research helped [noq2] find the how to increase the bus clock on his 5×86 chip, and enable the write-back cache. All he had to do was move a couple of passive components and short a couple pins on the processor.

The final result is a tricked out IBM 701c Thinkpad running an AMD 5×86 at 133 MHz. Still way too slow for today’s software – but absolutely the coolest retro mod we’ve seen in a long time.

37 thoughts on “Thinkpad 701c: Reverse Engineering A Retro Processor Upgrade

      1. Might actually be a neat project, I’ve got a 701c, that has either a dead logic or dead mainboard that I could never find out where the issue lies, that’s been sitting around since I bought it quite a long time ago. If there was an easy way to interface to the original screen from the Pi I’d actually consider trying it. I doudt there are boards on ebay for such an old 640×480 LCD screen.

        1. Maybe It’s possible to buy a newer replacement screen the right size and slap it in, this way you could use a newer board to run it, but making the keyboard work will be a nightmare, probably needs tons of flywire, though I’ve heard that the teensy controller could work with such things, and I have used that on a thinkpad T43 keyboard before, but again the issue would be the compatibility with something this old

          1. Honestly I would love to get my hands on one to tinker with it. How much would you sell it for? It could be a fun project while I am at home for uni.

  1. What I remember from those days is that a 486 could play mp3s or it could do other things. If I tried to do any kind of multitasking while playing an mp3 it wouldn’t work. My 486s were only 33MHz though. If I wanted to run a web browser, an instant messenger (common in those times) and play music all at the same time something at the 586 level was necessary.

    That means this upgrade was a really big deal usability wise!

    1. Actually, the AMD 586/133 without overclocking was just -barely- adequate (under DOS) to play a 128 kbit/s MP3; I know this because I built such a lowly beast for a car MP3 player (back when that was a thing). Controlled it with a PS/2 keypad, and the display was a venerable HD44780 20×4 LCD hanging off the parallel port (4-bit mode). I wrote custom menu display and control software for the parallel port using Turbo C. The MP3 player was some fairly nice DOS player that was small and efficient. I packaged the whole thing into a Mac IIsi case (damn, was it ever ugly).

    1. Not sure if you are trolling or not. I still have my 386DX in the attic – it runs linux (including multiple remote serial terminal sessions and X on the console) like a champ. The install was done using half a dozen floppies… IIRC the hard drive is 120MB.

        1. It most certainly can.
          I see no reason why systemd wouldn’t work, there is no specific hardware support required, and I’ve gotten systemd to work on systems as low as an 266 MHz ARM9.
          A 133 MHz 586 is of course still slower, but not so much that it would matter for systemd.

          You would probably want to limit the services you run, though, because nowadays operating systems have become a lot more complex. Even Hotplug wasn’t something really common in the days of the 586, so udev is something that would be absolutely overkill.

          1. A compressed linux kernel image (that is how they are always stored) is about 3 Megabytes with a lot of stuff built in.
            For a small system with far less drivers needed, you’ll be around 1 Mbyte.
            Pretty sure for a 586, you could go well under 1 MB, too, if you really tried.

    2. Unfortunately there seems to be issues with anything past kernel 2.6.18 on 486 CPUs (AMD 5×86 included). I’ve been trying to debug newer kernels myself (to use TCL 4.0 on a 486 single board computer) but not having much luck so far. Seems to be mostly an issue around CPUID opcode calls and bypassing/removing them.

        1. That’s what I’ve been very slowly working on. Not much free time and spent the last few months offshore with poor-to-nonexistent internet access (not much available around the North Pole) and without the test platform.

          1. If I remember right Linus took 386 code a while back, like maybe 2 years ago? Not Sure…Could be back in those commits, even though its a different architecture, it might have had other unintended side effects.

    3. I had mine running a very early linux years ago. It was too slow to be usable as a graphics system but it was quite responsive if you booted to the shell and used it in text mode.

  2. Nice. I really loved that notebook and its keyboard. The keyboard design would be great for those netbooks with smaller screens (and consequently substandard sized keyboards). Though I suppose at the price point they’re manufactured to, the keyboard mechanism would break after a few dozen opening/closing cycles.

    1. Even when built by IBM, those keyboards had a greater than 100% failure rate during the warranty period! (meaning that they would replace some of them two or more times during the warranty period)

      1. Any idea what was failing? The only things that set it apart from a standard keyboard are the mechanical slide mechanism and a couple of flex cables. (Honestly curious here – I own one of these beasties, and I’d like to keep it alive as long as possible)

        1. I had an old 2nd hand one as my first laptop many years ago, I believe it is the flex cables that go.
          I actually had issues with the flex cable on the LCD, as there was a considerable amount of force placed on the hinges because of the spring-loaded keyboard!

  3. Reading the datasheet for the AV9107 clock generator, I noticed the line where it says it can safely dynamically change the output clock without causing glitching … which makes me think of power savings by dynamically changing the clock.

    This is rather silly, though.

  4. I had a few desktops upgraded with these AMD CPUs. On some boards they would automatically kick in at 4x multiplier and write back cache enabled. On others I had to use tiny strands of wire looped around the right pairs of pins on the underside of the chip to make it work. Never soldered wires to the bottom of the board for that.

    One variant of the chip would run on 5 volts with no problem, provided an adequate cooler with compound was on top!

    I always tried to get them running at 40Mhz bus speed for 160Mhz CPU speed. Most boards would handle it. I had one MicronPC board with a 50Mhz bus setting, which it would work at but since the L2 SRAM wasn’t fast enough the board would disable it, thus performing far worse at 50/200Mhz than at 40/120Mhz. If I could’ve afforded some faster SRAM it likely would have worked at 50Mhz.

    One issue the Cyrix 5×86 had was heat. That chip ran HOT HOT HOT! I barely brushed a fingertip against the heatsink on one and instantly got burnt bad enough to raise a blister. The AMD 5×86 would never get that hot, even on 5 volts. With the heat issue I never ever contemplated trying the Cyrix at more than 33Mhz bus.

    A CPU I always wanted to try was the 486DX2 pin compatible upgrade for the 386DX. Replacing a 386DX-40 with one of those (and matching FPU for the 387 socket) would have made it a 486DX2-80 and thus quite speedy. But that upgrade chip was always priced so high a whole new 486 board, CPU and 72pin RAM wasn’t much more money.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.