Instructions for backing up and restoring your HP15c memory contents
- Make sure you have the firmware dated 2024-02-17 and with checksum 0d0dh. If you have a prior firmware, you need to get the firmware file from this location, and install it following the instructions listed here.
- Copy the file VoyagerSave.exe to your computer.
- Connect the computer with the programming cable.
- Once you have the right firmware, switch the calculator off, press f & ENTER simultaneously, and while keeping them pressed, press "on". The calculator is now set in USB HID mode. It can be seen in your computer device manager as HP10bII+.
- (To exit the HID mode you can at any time press "on" to switch the calculator off and come back to standard mode)
- Open the command line in your computer (by running cmd in the search line in your windows menu). Linux may need other procedure. For Mac I am using Parallels and a Win11 virtual installation.
- Navigate through folders to the folder where VoyagerSave is located.
- When executing VoyagerSave without parameters, it gives help on its use:
- To back up your calculator, write VoyagerSave -s filename and press enter, where "filename" is the name you want to give to the backup file. The system backs up the user memory area and stores it in the file. You will save the user memory area of the mode you are currently in. This is interesting to remember when you are moving from HP15c to HP16c and viceversa, to avoid losing your keyed-in programs.
- To restore from a previous backup, write VoyagerSave -r filename , where “filename" is the name you gave to the back up in point 9.
- Press "on" to exit from USB HID mode.
- Disconnect the programming cable, pushing gently towards the center on the connecting head side wings. Remember to close and secure the back door!
Of course, you can have as many different backups as needed. A good policy is creating different user profiles, depending on the situation and application. These can be thought as "software pacs", since you can reconfigure your calculator for specific applications, and be able to call them to memory when you need these programs. We plan to create some of these software pacs.
Data structure in dump file
Structure of the back-up file
The back-up files are just dumps of the user memory area, which is 2048 bytes long, and is organized as shown below. Registers are 8 bytes long, so there are 256 8-byte registers
There are two areas of unknown content so far, the blue areas in the picture: 14 registers at the beginning and 2 registers at the end. These were not present in the original memory of the calculator, and appear only in the emulator.
The original HP15c had 7-bytes registers, while the file registers are 8-bytes long. This means that there is always an empty byte at the end of each HP15c register. (this does not apply to the blue "technical" registers).
The discussion below can be better understood by reading Syhthetic Methods on the HP15c. While the HP15c CE does not accept synthetic methods, the discoveries found using them on the original calculator give us information about how the user memory is distributed - and this is applicable here.
The 32 first registers are the System Registers. Its distribution is the following:
- The first column is the system register number
- The second column is its location in the file
- The third is its known use
- The 4th and 5th are the two nibbles for the padding byte
- And the following are the 14 nibbles of the 7 bytes of the original HP15c registers, starting with the sign, the mantissa, the sign of the exponent and the two exponent numbers
For our purposes, it is important to see that the stack is there, and also registers 0 and 1 (and this is the reason that they cannot be allocated to programs, too. It also may imply that operations done to these registers might be slightly faster than with other registers, where we need to have memory map access):