HP 16C machine emulator?


I am wondering how feasible it would be to write a CPU/machine emulator for the HP 16c that would execute the ROM from an actual 16C.

I know there are emulators available that emulate the functions of this device, but I'd like to work on a emulator for the hardware that would run the actual ROM image from the 16C.

I see a few problems here:

1. Need to extract a ROM image from a 16C.
2. Need to write an emulator for the CPU (Saturn?), display, keypad, etc.
3. Getting enough documentation to do #2.

I've written an emulator before, mainly one for a 80386 when I worked for Cyrix years ago. So I feel this is possible.

But I'm wondering about obtaining ROM images from a 16C. Are there service manuals available that document the pinout of the ROM such that a ROM could be extracted from a 16C and read-out? It seems like the 12C is similar in hardware design, so perhaps this could be tested on a donor 12C (cheaper to obtain) before trying it on a 16C ROM.

If anyone has info that would help me out, I'd appreciate it.

Also, any thoughts on the feasibility of this project?



Just to start the thread...


I read many information about the Voyager that was posted here by some contributors, mostly by Tony Duel (Hey, Tony, where are you?), and I will reproduce them here: (O.K., Tony?)

"The original Voyagers contained 2 chips. The smaller one is a Nut CPU (similar to the CPU in the HP41 -- the data sheet gives the differences, mostly to do with voltage levels). As in the HP41, it contains the keyboard scanning logic. The larger chip is called R2D2 (ROM/RAM/Display Driver) [Seriously], and is what it says it is. As it contains the ROM, it is machine-specific. I'd always assumed that the third chip in the 15C was ROM/RAM, but I have no definite proof of this."

My question at that time was about a freaky 11C with more than 400 available program lines.

I also believe that hardware emulation IS feasible, possible and, if well designed, would run the ROM image for the emulated calculator. You face the same problems I faced before.

Another contributor that has dealt into the 41´s guts is Pavel Korensky. Mr. Cameron Paine wrote an HP16C emulator that runs on the Win-PC structure (runs a lot well!). If I am not wrong, Cameron wrote the code itself. The HP16C is mostly based on digital logic, so the emulator would use part of the digital resources already available in the processor and emulate special characteristics - operating stack, registers, program-line codes, etc.

Pavel found a very good microcontroler from ATMega that I believe has features enough to emulate most of the 16C. I believe another one to scan the keyboard and drive the LCD and the rest is a lot of sweat and time, knowledge, neural activity, time spent...

Let’s keep this thread... Come you all, Pavel, Tony, Cameron, any... Let's go for it.


Hi Luiz,

Thanks for the information you provided.

I should probably clarify my desire a little bit. I'm interested in writing a software emulator for the HP 16C, not developing a hardware emulator. I see writing a emulation environment ofr the Nut CPU, RAM, ROM, keypad and display in some language like C++. Then I'd load a ROM image from a 16C and execute it. The LCD/keypad would be hooked up to some GUI like Windows or Pocket PC so you could run the emulator on popular platforms.

So where would I find data sheets on this Nut CPU and the R2D2 chip? Are they available on the net somewhere?


P.S. I'll be out of town for a few days, so I may be late in responding to replies to this thread.


You are correct Luiz. My software is a simulator, not an emulator. I considered emulation but rejected it primarily because of the intellectual property issues and secondarily because the Voyagers had no removable storage. I figured that any significant or reuasable program that exists for the 16C would be recorded on paper, not as a bitstream.

Anil's idea is an interesting one although I'm still leery of the IP situation. AFAIK, the ROM of the 16C has never been published; nor is it in the public domain. If he manages to suck the ROM out of the calculator he would have little use for the things I've learned about the behaviour of the calculator or the methods I've used to simulate them.

Anil, if you think I can be of assistance, don't hesitate to ask.


Possibly Related Threads...
Thread Author Replies Views Last Post
  Bought a 16C to compensate a little Eelco Rouw 23 3,704 12-07-2013, 01:26 PM
Last Post: Eelco Rouw
  HP Prime : Galton's machine Mic 0 511 11-15-2013, 04:23 AM
Last Post: Mic
  Shiny new 16C! Keith Midson 7 1,287 10-27-2013, 02:22 AM
Last Post: Keith Midson
  Joys of eBay: HP-32S, HP-32SII, HP-42S, HP-16C, ... Sasu Mattila 7 1,207 09-23-2013, 04:39 PM
Last Post: Julián Miranda (Spain)
  HP-16C simulator fhub 12 1,749 06-30-2013, 10:14 PM
Last Post: Robert Prosperi
  Program for HP-16c... Leonid 9 1,370 06-07-2013, 08:51 PM
Last Post: David Hayden
  Convergence Dream Machine anetzer 11 1,569 04-12-2013, 07:16 AM
Last Post: David Hayden
  HP 11C/12C/15C/16C case Philippe Cairic 4 1,081 11-06-2012, 06:04 PM
Last Post: Matt Agajanian
  Understanding HP-16C integer division Jimi 18 2,470 10-16-2012, 09:13 PM
Last Post: Eddie W. Shore
  O.T. - A pristine machine Palmer O. Hanson, Jr. 4 818 08-08-2012, 12:16 AM
Last Post: Dave Shaffer (Arizona)

Forum Jump: