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.]

Finally! The ROM You Wished Your Sinclair Spectrum Had!

If there is one thing that Sir Clive SInclair was famous for, it was producing electronic devices that somehow managed to squeeze near-impossible performance out of relatively meagre components. This gave us some impressive products, but it’s fair to say that sometimes this philosophy pushed the envelope a little too far. Thus even some of the most fondly remembered Sinclair products concealed significant flaws, and this extended to both their hardware and their software.

Sir Clive never gave us this!
Sir Clive never gave us this!

The SInclair ZX spectrum’s ROM for example had more than its fair share of bugs, and its BASIC programming experience with single keypress was unique but also slow to run. It’s something [Jonathan Cauldwell] has addressed with his Arcade Game Designer ROM, a complete and ready to run replacement for the original Spectrum ROM that contains a scripting language, a compiler, editors for in-game assets, and a game engine upon which to run your games. It’s the ROM you wanted back in 1983, when you were struggling to fit a bit of Z80 code in a Sinclair Basic REM statement.

If you’re a Spectrum enthusiast and think this sounds a little familiar then you are of course correct. It builds upon his past work with his Arcade Game Designer, with the distribution by ROM allowing the developer to use the full 48k available on all but a very few early 16k machines. You’ll need your own EPROM on which to burn it, but we suspect that if you’re the kind of person who has a Spectrum and has writing these games in mind, you already have access to the relevant equipment.

If you’re new to all this Spectrum stuff and where its ROM came from, then maybe it’s time for a trip down memory lane.

Booting A PC From Vinyl For A Warmer, Richer OS

If you’ve scrolled through the list of boot options offered on any PC’s BIOS, it reads like a history of storage technology. Up top we have the options to boot from disk, often a solid-state drive, then USB disk, optical drive, removable media, and down the bottom there’s usually an option to boot from the network. Practically no BIOS, however, has an option to boot a PC from a vinyl record — at least until now.

Clearly a project from the “Because why not?” school of hacking, [Jozef Bogin] came up with the twist to the normal booting process for an IBM-PC. As in the IBM-PC — a model 5150, with the putty-colored case, dual 5-1/4″ floppies, and one of those amazing monochrome displays with the green slow-decay phosphors. To pull off the trick, [Jozef] leverages the rarely used and little known cassette tape interface that PCs had back in the early days. This required building a new bootloader and burning it to ROM to make the PC listen to audio signals with its 8255 programmable peripheral interface chip.

Once the PC had the right bootloader, a 64k FreeDOS bootable disk image was recorded on vinyl. [Jozef] provides infuriatingly little detail about the process other than to mention that the audio was sent directly to the vinyl lathe; we’d have loved to learn more about that. Nonetheless, the resulting 10″ record, played back at 45 RPM with some equalization tweaks to adapt for the RIAA equalization curve of the preamp, boots the PC into FreeDOS just fine, probably in no more time than it would have taken to boot from floppy.

It’s may not be the first time we’ve seen software on vinyl, but it’s still a pretty cool hack. Want to try it yourself but lack a record-cutting lathe? Maybe laser-cutting your boot disc will work.

Continue reading “Booting A PC From Vinyl For A Warmer, Richer OS”