We are living in extraordinary times! Modern electronics and talented communities give a new life to our vintage devices. Unfortunately, keeping up with all the projects is hard, and I often miss great opportunities. Indeed, the small batch productions usually sell out in a few hours, or I altogether miss the Kickstarter. And the chip shortages don’t make the situation better. I have several projects on hold because I have several yearlong backorders. The moral of the story is simple: stay informed!
Similarly, when the HPCC celebrated its 40th Anniversary in London on the 22nd and 23rd of October 2022, I heard about the RCL 40 book release (here). I promptly ordered my copy and devoured it as soon as it arrived a few weeks later. And that’s when I learned about the Multimod Project by Mark A. Fleming.
If you own an HP-71B, you will jump up and down in a minute. That’s what I did while I frantically searched for a place where I could source a Multimod. Luckily, Mark still had a few, and I bought one swiftly. So, what is it all about? Well, the HP-71B is an open platform you can expand using modules. In particular, up to four ROM modules can be inserted into the computer to add the features your applications need. On the downside, it also means that if a program uses features provided by a module you don’t have, it won’t work! If you want to learn more about this fantastic platform, I posted here several times about the HP-71B. For example, here and here, specifically about great modules – get them all here.
The problem is that the pocket computer only has four expansion ports, and we must share them with the RAM modules. Yes, you need RAM! Even if you have multiple HP-71B, it quickly becomes a swap-in/swap-out game. The Multimod offers an elegant way to solve the ultimate dilemma: which modules should I take to a deserted island?
Multimod is an HP-71B module emulator that fits into the card reader pit of the computer. Again, since you cannot have both simultaneously, we must choose. But, honestly, the card reader is more anecdotal these days, and the choice is simple. To securely house the Multimod PCB, you can 3D print a case or buy one here.
The module comes pre-loaded with an excellent selection of ROMs: MATH (2B), FORTH/Assembler, JPC (5), and a hidden one (ULIB52). Wao! Once the module is installed, the ROMs are not immediately available. You need to POKE 1 to 2C000 and power cycle the computer to use them. The power cycle is required as the HP-71B enumerates the modules present on the expansion bus at boot. To disable the ROMs – for example, to save power –, POKE 0 at the same address (the value 3 enables the hidden 8KB ULIB52 ROM – here).
Although I could not make my microcontroller programmer work yet (I believe I didn’t use XON/XOFF and did use MCLR on my serial connection – TBC), I have no doubts what I’ll write next is true. The 128KB of flash memory can hold up to seven ROMs. In fact, each of the eight 16KB banks can be loaded with a ROM image. You can refer to this site for a great list of existing modules. Depending on the ROM size, it may require more than one slot, and everything is aligned on 16KB boundaries, so you’ll need to be smart when you load the module). The module emulator occupies one of the eight slots and must always be present. The list below from the Multimod documentation summarizes its capabilities:
- PIC18F27Q10 Microcontroller, 64 MHz (16 MIPS)
- 128 KB Program Flash Memory, 112 KB usable
- Operating voltage 3.3 V to 5.5 V, absolute maximum rating 6.5 V
- 3.8 mA operating current, < 1µA standby
- Power jumper to remove power load entirely
- Seven 16 KB “chips” for ROM images
- Serial port interface for configuration and ROM image load
- Write-protected boot loader for software update
- ICSP connector for direct programming
You can find the software on Mark’s Git here. Note that if you want to rebuild the entire image, including the controller, you must install the usual development suits (IDE, compilers, boot loader, etc.). In my case (Windows/64), I found what I needed here:
Annoyingly, the bootloader – a Java application – will crash if you use a JRE more recent than the outdated version of 1.8.0_251. An even more irritating issue is that in addition to Mark’s tools, the bootloader seems to be the only extra tool we need if we only plan to change the ROM images.
In his RCL 40 paper, Mark hints at several future uses of the Multimod. Indeed, it carries ROMs today, but the HP-71B also accepts RAM and EPROM modules. It would be fantastic to expand the computer’s memory using this module. Indeed, Corvallis 32KB and 64KB modules are very expensive and rare. And what to say about the FRAM71, one of those projects I missed several years ago (here). Don’t you dream of a one to two MB RAM card-reader module supported by a ROM Multimod that fits in one of the four front expansion slots 😊.
The HP-71B became an even better pocket computer with all this goodness!