Bringing Up An Old Motherboard Is A Delicate Process

If you were around for the early days of the personal computer revolution, you’ll no doubt recall the excitement every time IBM announced a new version of its beige boxes. For a lot of us, the excitement was purely vicarious, for despite the “personal” moniker, mere mortals could rarely afford a branded IBM machine. But it was still cool to keep track of the latest releases, and dream of the days when cheap clones would make it possible to play.

[Anders Nielsen]’s recent find of an original IBM Model 5160 motherboard sort of echoes that long-ago excitement, but in a different way. This board, from a PC XT built in 1984, was in unknown condition upon arrival, so [Anders] set about a careful process to try to bring the board back to life. A quick visual inspection leaves one with a sense of both how much things have changed, and how much they’ve stayed the same. Aside from the big 40-pin DIP 8088 CPU and the BIOS ROMs, the board is almost completely populated with discrete logic chips, but at the same time, the basic footprint of a motherboard has changed very little.

The bring-up process in the video below includes checks of all the power rails for shorts, which ended up being a good call — drat those tantalums. After fixing that issue, [Anders] had a bit of trouble getting the board to POST, and eventually resorted to dumping the BIOS ROMs and inspecting the contents. One of the chips had picked up a case of the scramblies at some point, which was easy enough to fix thanks to images of the 5160 ROMs available online. We thought the trick of using a 64k ROM and just writing the BIOS image twice was pretty clever.

In the end, the board came up, although without video or keyboard — that’s for another day. Can’t find your own PC XT motherboard to play with? Then maybe you can just build one.

Continue reading “Bringing Up An Old Motherboard Is A Delicate Process”

Taking Pokémon On A Walk

Emulating old computers or video game systems isn’t always about recreating childhood nostalgia or playing classics on hardware that doesn’t exist anymore. A lot of the time it can be an excellent way to learn about the mechanics of programming a video game. Plenty of older titles have available source code that anyone can pour over and modify, and one of those is Pokémon Emerald. This was the first Pokémon game that [Inkbox] played, and he added a few modern features to it with this custom ROM file.

The first thing to add to this game was the ability to have one’s Pokémon follow their character around in the overworld map. This is common in later games, but wasn’t yet a feature when Emerald and Ruby first came out. [Inkbox] needed to import sprites from later games into the Emerald game file, convert their color palettes to match the game’s palette, and then get to work on the mechanics. After everything was finished, the Pokémon not only follow the player around the map but are animated, enter and exit their Pokéballs, and even jump off ledges in a believable, 32-bit way.

One of the great things about older games like these is that they’ve been around long enough to have source code or decompiled code available, they often have plenty of documentation, and the platforms they operate on are well-known by now as well. Pokémon Emerald is not alone in this regard; in fact, there is a huge Game Boy Advance homebrew scene that is not too difficult to get involved in.

Continue reading “Taking Pokémon On A Walk”

Swapped ROM Revives Ailing HP-48S Calculator

Buying broken gear for cheap is time honored hacker tradition, and while we might not always be successful in reviving it, rarely do we come away empty handed. There’s always parts to salvage, and you can’t put a price on the knowledge to be gained when poking around inside an interesting piece of hardware. So we’re not surprised at all to hear that [Tomas Pavlovic] jumped at the chance to grab this faulty HP-48S calculator for a couple bucks.

Luckily for us, the story doesn’t end at the bottom of his parts bin. When he got the HP-48S back home, he immediately set out to see if it could be repaired. After changing out a few choice components and not seeing any result in the device’s behavior, he became suspicious that the problem may be with the firmware; specifically, the soldered-on chip that holds it.

Dumping the original ROM.

After carefully lifting the NEC uPD23C2000GC from its resting place for the last 30 years or so, he wired up an adapter that let him connect the chip to his programmer so its contents could be dumped. Rather than trying to find another ROM chip, he decided to wire in a socket and found a re-writable SST39SF040 that could stand in as a replacement. Flashing a fresh copy of the firmware to the new socketed chip got the calculator up and running again, with the added bonus of allowing [Tomas] to pull the chip and flash a different firmware version should he care to experiment a bit.

Now, we know what you’re thinking. Where was the fix? What exactly brought this piece of 1990s gear back to life? That part, unfortunately, isn’t very clear. You’d think if the original ROM chip was somehow faulty, [Tomas] wouldn’t have been able to so easily pull a valid firmware image from it. That leaves us with some pretty mundane possibilities, such as a bad solder joint on the chip’s pins. If that was indeed the case, this fix could have been as simple as running a hot iron over the pins…but of course, where’s the fun in that?

Update: We heard back from [Tomas], and it turns out that when compared to a known good copy, the dumped firmware did have a few swapped bits. His theory is that the NEC chip is in some weird failure mode where the calculator wouldn’t run, but it was still functional enough to get most of the content off of it. What do you think? Let us know in the comments.

Soviet-Era Auto Dialler Uses Magnetic Rope Core Memory

We’ve seen a few interesting magnetic core memories on these fine pages over the years, but we don’t recall seeing too many user programmable magnetic core memory devices. This interesting Russian telephone auto dialer in its day would have been a very useful device, capable of storing and dialing forty user programmable 7-digit numbers. [mikeselectricstuff] tore into one (video, embedded below), and found some very interesting tech. For its era, this is high technology stuff. Older Russian tech has a reputation for incredibly ingenious use of older parts, that can’t be denied. After all, if it works, then there’s no need to change it. But anyway, what’s interesting here is how the designers decided to solve the problem of programming and recalling of numbers, without using a microprocessor, by using discrete logic and core rope memory.

This is the same technology used by the Apollo Guidance Computer, but in a user configurable form, and obviously much smaller storage capacity. The core array consists of seven, four-bit words, one word per telephone digit, which will be read out sequentially bottom to top. The way you program your number is to take your programming wire, insert it into the appropriate hole (one row related to numbers 1-20, the other row is shifted 1-20 for the second bank) and thread it along the cores in a weave type pattern. Along the way, the wire is passed through or bypasses a particular core, depending upon the digit you are coding for. They key for this encoding is written on the device’s lid. At the end, you then need to terminate the wire in the matching top connector, to allow the circuit to be completed.

As far as we can tell, the encoding is a binary sequence, with a special ‘stop’ code to indicate telephone numbers with less than seven digits. We shall leave further analysis to interested parties, and just point you at the Original manufacturer schematics. Enjoy!

Of course we’re not just going to mention rope core memory and the AGC without linking to a fantastic article about the very same, and if that’s wetting your appetite for making a rope core memory, here’s a little thing about that too!

Continue reading “Soviet-Era Auto Dialler Uses Magnetic Rope Core Memory”

Pi Pico Emulates ROM For Speedy Retro Hacking

If you’ve ever worked on a system that loads its software from a ROM or EPROM, you know how much of a hassle it can be to make frequent changes to the code. Pulling the chip, flashing it, and sticking it back into the socket each time you change a line isn’t anyone’s idea of a good time. Which is why [Nick Bild] has come up with the PicoROM, a way to emulate a ROM chip using the Raspberry Pi Pico.

With the Pi Pico standing in for the original ROM, updating firmware takes a fraction of the time and doesn’t require you to actually disconnect any of the hardware. [Nick] had done something similar with FPGAs in the past, but the far cheaper and easier to work with Pi Pico makes this version particularly appealing. The secret to getting it to work is the overclocking potential of the Pico, which he says has been pushed to 400 MHz for this particular application.

PicoROM on a breadboard.

The downside is that you can’t access the Pico’s onboard flash when the chip is running that fast. To get around that limitation, all of the code is loaded into the microcontroller’s RAM. With a healthy 264 KB of memory this isn’t really a problem when emulating 32 KB chips, but [Nick] says his method would quickly fall apart for larger ROMs.

Beyond the Pi Pico itself, [Nick] is using a trio of 74LVC245AN 8-bit logic level shifters so the chip can talk to the 5 V logic of his homebrew 6502 computer. With everything wired up on a simple breadboard, PicoROM has no trouble serving up the operating system as it hums along at 2 MHz.

Of course, a modern high-performance microcontroller isn’t strictly necessary. In the past we’ve covered devices that could emulate an EPROM using 1990s era silicon.

Homebrew ROM Reader Saves Data From A Vintage Minicomputer

Have you ever heard of a Centurion minicomputer? If not, don’t feel bad — we hadn’t either, until [David Lovett] stumbled upon a semi-complete version of the 1980-ish mini in all its wood-trimmed, dust-encased glory. And what does a hacker do with such an acquisition but attempt to get it going again?

Of course, getting a machine from the Reagan administration running is not without its risks, including the chance of losing whatever is on the machine’s many ROM chips forever. When finding a commercial ROM reader supporting the various chips proved difficult, [David] decided to build his own. The work was eased considerably by the fact that he had managed to read one chip in a commercial reader, giving him a baseline to compare his circuit against. The hardware is straightforward — a 12-bit counter built from a trio of cascaded 74LS161s to step through addresses, plus an Arduino Nano to provide clock pulses and to read the data out to the serial port.

The circuit gave the same results as the known good read, meaning results would be valid for the rest of the chips. The breadboard setup made supporting multiple ROM pinouts easy, even for the chips that take -9 volts. What exactly the data on the ROMs mean, if anything, remains a mystery, but at least it’s backed up now.

Before anyone notes the obvious, yes, [David] could have used a 555 to clock the reader — perhaps even this one. We’d actually have loved that, but we get it — sometimes you just need to throw an Arduino at a job and be done with it.

Continue reading “Homebrew ROM Reader Saves Data From A Vintage Minicomputer”

Pi Pico Game Boy Flash Cart Gets Slim RP2040 Upgrade

The story for this one starts a few months ago, when [John Green] released his PICO-GB project. His code allowed the Raspberry Pi Pico to stand in for a Game Boy cartridge, complete with a simple text menu that let the user select between ROMs that had been baked into the microcontroller’s firmware. The project was particularly notable for the fact that it was entirely a software solution; while a custom breakout cartridge made for a handy temporary solution, you could have permanently wired the Pico’s pins directly to the Game Boy’s cartridge connector if you wanted to.

PICO-GB running on the full-size Pi Pico

Then in early June, the RP2040 chip that powers the Pi Pico went up for sale in single unit quantities. That opened up the possibility of building the PICO-GB functionality into a cartridge small enough to actually fit inside the Game Boy. So [Martin “HDR” Refseth] got to work creating the slick cartridge PCB you’re seeing now.

The RP2040 is joined by a trio of Texas Instruments TXB0108 level shifters, and there’s a spot for adding a SPI flash chip. The RP2040 supports a maximum of 16 MB of external flash, but given the size of Game Boy games were generally measured in kilobytes, that shouldn’t pose much of a problem.

Looking ahead, the original PICO-GB documentation mentions enhancements like loading ROMs from SD card, as well as hardware additions like a real-time-clock for the more advanced games that supported it. We assume those concepts will become part of [Martin]’s PCB eventually, but these are still early days.

We’ve seen Game Boy cartridge emulation with a microcontroller in the past, but we’re exited to see how the unique capabilities of the Raspberry Pi Foundation’s custom silicon can improve the state-of-the-art.

[Thanks to Itay for the tip.]