The HP-85 comes with a Tape Drive, a Thermal Printer, a CRT display, 16k of RAM, and Basic in ROM. Out of the box, there is no external I/O, but it does have a 4 slot expansion bus that can accept modules, of which there are many.
The expansion bus not only allows additional I/O to be added but also additional RAM and ROM. Probably the most important I/O to be added is a HP-IB interface to support connection to many peripherals and instruments.
The addition of ROMs allowed command set enhancements and in many cases the use of additional I/O or peripherals needed enhanced commands. eg the use of disk drives requires the addition of a mass storage ROM and an enhanced mass storage ROM. A plotter requires the addition of a Plotter/Printer ROM.
ROMs were sold individually and were plugged into a ROM tray that plugged into the expansion bus.
The exercise of finding the individual ROMs and the ROM tray requires deep pockets and patience. Noting that providing code in ROMs is fairly easy to do, it was a matter of time before an alternative solution appeared.
The HP computer community is awesome and some years ago a couple of gents (Bill Kotaska with support from John Shadbolt) developed an expansion module, PRM-85, that emulates a ROM tray.
I had gathered an HP-IB and serial cards, and I had a serial plotter and an HP-IB printer. I also wanted to be able to use HPDrive to emulate disk drives via the HP-IB interface, including SS/80 protocol. To achieve this, i needed the following ROMs:
- EDISK (85B version – supports Extended Mass Storage
- Mass Storage (85B version) – supports Extended Mass Storage
- Extended Mass Storage – Supports SS/80 protocols
- Input/Output – Supports HP-IB and Serial interfaces
- Plotter/Printer – Supports plotter peripherals
All the ROMs have been captured and can be loaded into the onboard ROM. I contacted Bill in 2018. They had done a small run the previous year and had one left, which I purchased for much less than the combined cost of the original tray and ROMs. The details are here. ROM info is here.
The “85A without EMS” uses the first ROM socket on the PRM-85. It uses the 8 predefined addresses below:
Jumper J10 Decoded
Contact# ROM Address ROM Name
---------- ------------ --------------------
17 232 (E8 Hex) Advanced Programming
18 40 (28 Hex) Assembler
19 224 (E0 Hex) Service-85
20 8 (08 Hex) Program Development
21 208 (D0 Hex) Mass Storage
22 176 (B0 Hex) Matrix
23 192 (C0 Hex) Input/Output
24 207 (CF Hex) Extended Mass Storage
But for the 85 to use SS/80 disk storage requires the “85A with EMS” Super ROM. This Super ROM replaces the Program Development ROM (08H) with the 85B EDISK ROM (D1H) and the Mass Storage (D0H) with the 85B Mass Storage ROM (also D0H). The address D1H requires DIP Switch 1 as it is not one of the predefined addresses.
Jumper J6/9/10 J6=1-8, J9=9-16, J10=17-24
Contacts ROM Name
-------- ---------------------
9 to 17 232 (E8 Hex) Advanced Programming
10 to 18 40 (28 Hex) Assembler
11 to 19 224 (E0 Hex) Service-85
4 to 12 209 (D1 Hex) EDISK (85B version) - set address with first DIP Switch
13 to 21 208 (D0 Hex) Mass Storage (85B version)
14 to 22 176 (B0 Hex) Matrix
15 to 23 192 (C0 Hex) Input/Output
16 to 24 207 (CF Hex) Extended Mass Storage
The second ROM slot on the PRM-85 is available. It can take up to a 27C512 for 8 x 8k slots. I had a 27C256 so that was 4 slots. Practically, though, the only addresses left were the predefined 08H and the second DIP switch.
Active Enable ROM Image Start Address (Hex)
Signal (pin) 2764 27128 27256 27512
------------- ----- ----- ----- -----
Enable 0 (9) XXXX XXXX XXXX 0000
Enable 1 (10) XXXX XXXX XXXX 2000
Enable 2 (11) XXXX XXXX XXXX 4000
Enable 3 (12) XXXX XXXX XXXX 6000
Enable 4 (13) XXXX XXXX 0000 8000 =>Prog Dev (08H)
Enable 5 (14) XXXX XXXX 2000 A000 =>Plotter/Printer
Enable 6 (15) XXXX 0000 4000 C000
Enable 7 (16) 0000 2000 6000 E000
I could add the Plotter ROM (F0H) using the DIP switch and pop the Program Development ROM (08H) in next to it.
Jumper J7/8 J7=1-8, J8=9-16
Contacts ROM Name
-------- ---------------------
4 to 20(J10!!) 8 (08 Hex) Program Development
5 to 13(J8) 240 (F0H) Plotter/Printer - set address with second DIP switch

I think i could probably add a couple more ROMs to the second EPROM. They could not be used at the same time as the Plotter/Printer ROM. The link from J7-5 to J8-13 would need to be changed and the second DIP switch changed to the appropriate address.
ROM Name Number Switch settings
---------------------- ------ ---------------
Advanced Programming 2 231 11100111
Matrix 2 177 10110001
Plotter/Printer 240 11110000