04-28-2020, 05:37 PM
After my HP-25 keyboard got too flaky to put up with, I decided to build a replacement! While I was at it, I decided to super-size it as a desktop machine so I could read it easily with my boomer eyes, and use Cherry MX mechanical keyswitches which should hopefully out-last me.
The hardware is typical of the era but unrelated to HP calculators: Z80 CPU, 32K EEPROM, 32K static RAM, ICM7218 display drivers and simple matrix keyboard.
I started out with great enthusiasm to write my own microcode emulator in Z80 assembly language, but in the end I ported the "famous" nonpareil simulator core by Eric Smith to the Z80 using the z88dk development environment with SDCC compiler. It is a bit slow, but running the CPU at 16MHz is close to original speed.
Some day when I'm really bored I might revive the assembly version just for fun.
The finished product also needs a box.
CPU board schematic
LED/Display board schematic
Photo below: Calculator running, with Cherry MX key switches and "re-legendable" keycaps. Printed the labels on a color laser printer, and after a bit of tweaking I'm pleased with the appearance.
The guts are a stack of two PC boards, all thru-hole, made for almost nothing by JLC-PCB in China. The keyboard/display PCB has two ICM7218 display driver chips on the back driving nice bright 10mm common anode 7-segment displays. Had to use the "unencoded" mode so it correctly displays things like "Error".
The 6-pin connector on the CPU board accommodates a USB/serial adapter (FTDI) for a bit-banged serial port. (Note to self -- never build another Z80 system without a UART, big-banging serial on a Z80 is no fun!).
The hardware is typical of the era but unrelated to HP calculators: Z80 CPU, 32K EEPROM, 32K static RAM, ICM7218 display drivers and simple matrix keyboard.
I started out with great enthusiasm to write my own microcode emulator in Z80 assembly language, but in the end I ported the "famous" nonpareil simulator core by Eric Smith to the Z80 using the z88dk development environment with SDCC compiler. It is a bit slow, but running the CPU at 16MHz is close to original speed.
Some day when I'm really bored I might revive the assembly version just for fun.
The finished product also needs a box.
CPU board schematic
LED/Display board schematic
Photo below: Calculator running, with Cherry MX key switches and "re-legendable" keycaps. Printed the labels on a color laser printer, and after a bit of tweaking I'm pleased with the appearance.
The guts are a stack of two PC boards, all thru-hole, made for almost nothing by JLC-PCB in China. The keyboard/display PCB has two ICM7218 display driver chips on the back driving nice bright 10mm common anode 7-segment displays. Had to use the "unencoded" mode so it correctly displays things like "Error".
The 6-pin connector on the CPU board accommodates a USB/serial adapter (FTDI) for a bit-banged serial port. (Note to self -- never build another Z80 system without a UART, big-banging serial on a Z80 is no fun!).