The collection here includes all the ROMs I could get my hands on. If you have any other ROMs please send me their images. Details on how to copy a ROM are given below (but assume that you have the Assembler ROM).
Please note that the HP-83/85 ROMs are not compatible with the HP-86/87 ROMs. The former have 00085 prefix and white letters on their label, while the latter have 00087 prefix and yellow letters.
Description | Id (octal) | HP-83/85 | HP-86/87 |
  |   |   |   |
  Printer/Plotter | 360 | ROM | ROM (Rev.B) |
  Advanced Programming | 350 | ROM | ROM (Rev.B) |
  Advanced Programming II | 347 | N/A | ROM (Rev.B) |
  Service ROM | 340 | ROM | N/A |
  Electronic Disk | 321 | N/A | ROM |
  Mass Storage | 320 | ROM | ROM |
  EMS | 317 | ROM | ROM |
  I/O | 300 | ROM (Rev.B) | ROM |
  Matrix 2 | 261 | N/A | ROM |
  Matrix | 260 | ROM | ROM |
  Assembler | 050 | ROM | ROM |
  MIKSAM | 016 | N/A | ROM |
  Program Development | 010 | ROM (Rev.B) | N/A |
Acknowledgments
I would like to thank
The following procedure was adapted from instructions given at the Vintage Computers site.
Prerequisites: The following procedure assumes that you have the Assembler ROM and a PC connected via the 82939A Serial Interface.
The Series 80 assembler has the command MEM that produces a memory dump of the specified locations. The command also accepts an optional ROM ID that allows MEM to switch the correct ROM bank before reading the memory contents. This provides an easy way of dumping ROM contents.
Please note that the HP-83/85 MEM command expects the ROM ID in decimal, while the HP-86/87 version expects it in octal.
With this proviso, the following discussion for the HP-86/87 applies to the HP-83/85 as well.
We need to determine the ID of the ROMs in our system. The following program dumps the headers of all the possible 253 ROMs to the serial port. We are only interested in the lines that start with the ROM ID, the rest correspond to nonexistent ROMs.
For example, the following command will print the first few locations of the Assembler ROM.
Since the first number was the ROM ID, then we know the ROM exists.
Run the program to determine which ROMs exist in your system.
100 CRT IS 10 ! send screen output to the serial port 120 FOR I = 2 TO 254 130 MEM 60000:OCT(I),2 ! print the first few bytes of the ROM 140 NEXT I 150 CRT IS 1 ! restore output to screen 160 END
Once you have the ROM ID of the ROM you want to dump to the serial port, you have to perform the following (here we assume that you want to dump the assembler ROM which has a ROM ID of 050):
CRT IS 10 DISP "ROM 50, ASSEMBLER" MEM 60000:50,20000 CRT IS 1
The memory dump of the selected ROM will be printed on the serial port.