• Please review our updated Terms and Rules here

HP Integral PC (9807A) emulation

shattered

Experienced Member
Joined
Mar 16, 2014
Messages
145
I am trying to improve MAME's emulation of IPC (right now it has a "skeleton driver" -- ROM dump and not much else) -- that's not going to be easy (graphics processor is barely documented in HP Journal, HP-HIL bus is completely missing etc.) and progress so far is small -- I believe this is what display looks like right before kernel fully starts up (I don't have an IPC myself):



Anything on this list would help improve emulation -- please share these images if you have them.

00095-60978 "Service ROM - Used in trobleshooting the integral PC" via ambry.com
00095-60925 "Service ROM" via service manual
00095-60969 "Service Diagnostic Disc" via service manual
00095-60950 "I/O Component-Level Diagnostic Disc" via serial interface service manual

82xxxx (original System III-based HP-UX 1.0 ROM)
82989J Technical Basic ROM (Jan'1986)
82987A Software Engineering ROM (Nov'1986)
 
area fills are mostly working (there shouldn't be a black area in the center):

 
Excellent work!

I have such a machine but it was so many years ago that I turned it on. Maybe I could dig it out. Do you have all the reference pictures of how the graphics should look like that you need?
 
Hooked up the floppy, but IPC doesn't boot from sector-level images on coho.org.

I don't remember an IPC ever booting from a floppy, rather it would just boot from ROM and then you could access the internal floppy drive and external HPIB drives using the PAM GUI.

Back when I had an IPC I wrote these images out to physical floppies and had no problem accessing them from the IPC.
http://www.coho.org/~pete/IPC/bundled_dl.html

Too bad I no longer have one to go through this exercise again to check all of the details.
 
On-disk format is not documented; apparently, it uses 256-byte sectors on 77 data tracks, and (maybe) 128-byte sectors on 'privileged' track 79 (see http://www.coho.org/~pete/downloads..._Language_Preprocessor/include/sys/sony_sys.h).

This page says the following: "First, the IPC uses 710K double sided double density disks. These disks have 77 tracks, 9 sectors per track, and 1024 bytes per sector."
http://www.coho.org/~pete/IPC/images.html

That obviously is not correct as 1024 bytes/sector * 9 sectors/track * 2 sides * 77 tracks = 1,419,264 bytes / disk.
The correct numbers are 512 bytes/sector * 9 sectors/track * 2 sides * 77 tracks = 709,632 bytes / disk

Those are the numbers listed in Table 1-2 of this manual:
Integral_ServiceManual_00095-90126_204pages_Jan86.pdf
http://www.hpmuseum.net/document.php?hwfile=5094

Given that I believe when I created the physical floppies from the images I just low-level formatted standard 720KB floppies from an MS-DOS PC and then used a rawrite utility to write the disk image out on top of the standard sector format, but only the 77 tracks worth of the images.
 
Last edited:
The format might actually be variable; teledisk images from http://hpmuseum.net/exhibit.php?swc=9 do boot, and they are indeed almost identical to 720KB PC floppies. Track 79 has different sector numbering (and sector length on it is different between images -- some have 256-, others 512-byte sectors). Sector with ID 0x62 on that track stores geometry info.



(That's the Tutorial disk)
 
Last edited:
Hooked up HP-HIL keyboard (via very simple HP-HIL bus emulation). Lots more work to do...

 
I've noticed earlier that, if printer controller chip is missing in the memory map, kernel does not crash but sets an internal variable _desktop to 0 and some parts of the code check it. Well...



(nothing else so far, OS endlessly resets)
 
Does the 9807 really use all 80 tracks on a floppy? I've seen lots of early HP 3.5" floppies that make use of only the first 66 or 77 tracks.
 
Does the 9807 really use all 80 tracks on a floppy? I've seen lots of early HP 3.5" floppies that make use of only the first 66 or 77 tracks.

The floppy disk images here only contain 77 tracks worth of data:
http://www.coho.org/~pete/IPC/bundled_dl.html
512 bytes/sector * 9 sectors/track * 2 sides * 77 tracks = 709,632 bytes / disk

If I still had an IPC I would run the floppy format utility on it with an unformatted floppy and see if it does anything beyond the first 77 tracks.
 
Service manual says that user area is 77 tracks, the rest are spares (2 tracks) and 'wear track'. That last one is apparently track 79 -- in the images on http://hpmuseum.net/exhibit.php?swc=9 it has data in sectors 0x61 and up. Include file http://www.coho.org/~pete/downloads..._Language_Preprocessor/include/sys/sony_sys.h gives an idea what's there:

Code:
/*
 * Phsyical track 79 is designated the priviledged track
 */
#define PRIVTRACK 79
/*
 * The sector numbers for the special sectors on the
 * priviledged track are described below:
 */
#define WEAR_SECTOR	0x61	/* has wear and boundary info */
#define CONFIG_SECTOR	0x62	/* has diskette config info */
#define RWTEST_SECTOR	0x63	/* sector for self test */
#define KEY_SECTOR	0x64	/* has 14 byte key to diskette */
#define TEST_SECTOR	0x65	/* another test sector */

<...>

/*
 * the disc_characteristics structure contains information 
 * about a diskette.  The structure is located in sector
 * CONFIG_SECTOR on the priviledged track.
 */

And user manual explains what this 'wear info' is (p. 5-3)

A disc will eventually wear out from contact with the disc drive. On each disc the computer keeps a record of the wear on that disc. If the disc is approaching the end of its useful life, the computer warns you as follows.

If the computer clicks every second or so and blinks the colored 'drive busy” light, copy the disc to a new disc as soon as possible and discard the old disc.

If you continue to use the worn out disc, you risk losing the data on that disc, and the computer will eventually refuse to write data to the disc.

If you want to verify the integrity of the data on a disc, you can use the verify_disc utility. Refer to verify_disc in chapter 11.
 
Last edited:
Since no other manufacturer does this, I suspect that tracks 77-79 aren't going to be of much use. If a disk has to resort to "spares", you really don't want to keep it. This may have mattered when a DS2D floppy was $5, but certainly not today.

Some manufacturers recorded production information on track 80 also (i.e. plant/lot numbers, etc.).
 
Somewhat off topic, I was just looking at some HP 16500A floppies which are DSDD LIF format. All 80 tracks are formatted with 5 1024-byte sectors per track with the first 79 tracks using sector numbers 1,2,3,4,5 and the last track using sector numbers 97,98,99,101,101 (0x61,0x62,0x63,0x64,0x65). I wonder if those floppies use the last track for the same privileged track mechanism.
 
Do you have a teledisk or imagedisk image of those? Should be easy to check if sector 0x62 has valid 'config' structure inside.
 
The floppy disk images here only contain 77 tracks worth of data:
http://www.coho.org/~pete/IPC/bundled_dl.html
512 bytes/sector * 9 sectors/track * 2 sides * 77 tracks = 709,632 bytes / disk

If I still had an IPC I would run the floppy format utility on it with an unformatted floppy and see if it does anything beyond the first 77 tracks.

I have two friends that have them. I need to hound them about dumping the option roms
 
Back
Top