1980s Vintage Computers |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hewlett-Packard Series 80 -
|
HP-85/83/9915 ROMs | |||
Name | Part number | ROM number | Switch setting (8 to 1) |
Program Development | 98151A | 8 | 00001000 |
Assembler | 00085-15007 | 40 | 00101000 |
Forth | User Library | 168 | 10101000 |
Matrix | 00085-15004 | 176 | 10110000 |
Input / Output | 00085-15003 | 192 | 11000000 |
Extended Mass Storage (85B/9915B only) | 00085-15013 | 207 | 11001111 |
Mass Storage (85A only) | 00085-15001 | 208 | 11010000 |
Service-85 | 00085-60952 | 224 | 11100000 |
Advanced Programming | 00085-15005 | 232 | 11101000 |
Printer / Plotter | 00085-15002 | 240 | 11110000 |
The HP-85B has a built-in Mass Storage ROM (number 208) and EDISK ROM (number 209). This version of the Mass Storage ROM is different to the plug-in version of the ROM above, to allow for hooks into the EDISK ROM, so that the two ROMs act as a pair. These ROMs are also needed by the Extended Mass Storage (EMS) ROM, as this was designed to work on the HP-85B. If you have a HP-85A and a Programmable ROM Module or a PRM-85, then using the HP-85B versions of the Mass Storage and EDISK ROMs allows the EMS ROM to work, and also adds the GET and SAVE commands.
HP-86/87 ROMs | |||
Name | Part number | ROM number | Switch setting (8 to 1) |
SYSEXT | User produced | 56 | 00111000 |
Assembler | 00087-15007 | 40 | 00101000 |
Forth | User Library | 168 | 10101000 |
Input / Output | 00087-15003 | 192 | 11000000 |
Extended Mass Storage | 00087-15013 | 207 | 11001111 |
EDISK | 00087-15012 | 209 | 11010001 |
Service - System | 00087-60912 | 224 | 11100000 |
Service- HPIB | 00087-60913 | 225 | 11100001 |
Advanced Programming 1 | 00087-15005 | 231 | 11100111 |
Advanced Programming 2 | 00087-15005 | 232 | 11101000 |
Plotter | 00087-15002 | 240 | 11110000 |
nb HP 86/87 has a built in Mass Storage ROM (number 208) and the built in Basic also uses ROM number 1, which I think is used for graphics routines. The HP 86B also has a language ROM (number 30), to support international keyboard layouts and error messages in other languages.
Below is a ZIP file for most ROMs, either for studying their contents or to provide a copy on a 8K byte EPROM (type 2764). Each ZIP file contains 3 files with the following extensions:
Thanks to vp at www.series80.org for extracting all of his ROMs to binary, and thanks to Glen Bear for the HP-85 EMS image!
Here are zip files for most of the HP-85 ROMs:
HP-85 Assembler: 85ASM.ZIP (35147
bytes)
HP-85B EMS: 85EMS.ZIP (15044 bytes)
HP-85 Service: 85SERVIC.ZIP (34223
bytes)
HP-85 Input / Output (rev B): 85IO.ZIP (34308
bytes)
HP-85A Mass Storage: 85MASS.ZIP (33596 bytes)
HP-85 Printer / Plotter: 85PRINT.ZIP (33627
bytes)
HP-85 Advanced Programming: 85ADPROG.ZIP
(34873 bytes)
HP-85 Matrix: 85MATRIX.ZIP (33644 bytes)
HP-85 Program Development: 85PROGDEV.ZIP
(34404 bytes)
HP-85B Mass Storage and EDISK: 85B_MS_E.ZIP
(25342 bytes)
The System ROM is built in to the machine:
HP-85 System ROM: 85_SYS.ZIP (26551 bytes)
Here are zip files for some key HP-87 ROMs:
HP-87 Assembler: 87ASM.ZIP (34923 bytes)
HP-87 Input / Output: 87IO.ZIP (34963 bytes)
HP-87 EMS ROM: 87EMS.ZIP (25569 bytes)
HP-87 Service ROMs: 87SERVIC.ZIP (23782 bytes)
The Forth ROM came about with the help of Everett Kaser and Don Person. The following ZIP file contains source code as well as image files for the HP-85 and HP-87:
HP-85 / HP-87 Forth ROM: HP_Series_80_Forth.zip (146k bytes)
André Koppel wrote some utilities for the HP-87 called SYSEXT, which he transferred to a ROM. This can be downloaded together with a manual in German from http://www.akso.de/index.php?id=hp_series_80&L=1. Also on André's site are the system ROMs for the HP-86/87 and various manuals.
There are some further ROM downloads available from www.series80.org/Images
This requires the Assembler ROM for your machine, plus the serial module if you wish to transfer the ROM to EPROM. Here are the steps.
1. Determine the ROM number for the ROM to be read. You may have this anyway (as it is used for error messages). For this example assume the ROM number is 40. To check the ROM is readable run the following command on an HP 85 / 9915:
MEM 60000:40,2
or on the HP 87 due to the slightly different syntax (ROM number must be in octal) run:
MEM 60000:50,2
This should display
050 327
This shows this is a HP-85 ROM as the first two bytes of the ROM are the ROM number followed by the complement of the ROM number (in this case 377-50=327 using octal maths). I have noticed for the HP-87 ROMs the second byte is 1 higher, eg for the EMS ROM the first two bytes are 317 061 so the second byte is 400-317=61 in octal. The MEM command then outputs the ASCII equivalents. I have been informed the HP-87 MEM outputs a minimum of 8 bytes.
If the ROM number is incorrect then you need to try other numbers in the MEM command from 1 to 254 until you have found all the ROMs on the system (the Assembler ROM which contains the MEM command is 40 decimal so this will always be found) eg:
10 CRT IS 10
20 FOR I=1 TO 254
30 DISP "I=";I;"decimal";OCT(I);"octal"
40 MEM 60000:I,2
50 NEXT I
60 END
nb on the HP-87 change line 40 to:
40 MEM 60000:OCT(I),2
Line 10 sends the output to serial, can remove this line if you don't want to capture the results on a PC.
2. Once the ROM number is known connect up a PC to the serial port and capture the output from the HP 85.
3. Type:
CRT IS 10
- to redirect output to PC.
4. Type:
MEM 60000:207,20000
This dumps 8192 bytes + text to the PC. Then if I haven't listed the EPROM below send me the file on e-mail and I will run a conversion program (fb 1.5) to make it into binary, I can then send you the binary + Intel hex file version to blow onto a 2764 EPROM.
5. To use the EPROM the Programmable ROM module (and similarly the PRM-85 module) has to have switches set to show the ROM number.
I will post the resulting files here on my website, to allow anyone to have a copy.
Please can anyone with any other ROM e-mail me, as I hope to find further ROM based software and include it here.