pcjs/devices/pc/bios/compaq/deskpro386
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2015-02-23 12:02:06 -08:00
..
1988-01-28.json Added Compaq DeskPro 386 ROMs 2015-02-22 15:42:54 -08:00
109591-001.hex Added Compaq DeskPro 386 ROMs 2015-02-22 15:42:54 -08:00
109592-001.hex Added Compaq DeskPro 386 ROMs 2015-02-22 15:42:54 -08:00
README.md Support for 80386 register dumps 2015-02-23 12:02:06 -08:00

Compaq DeskPro 386 ROMs

At the moment, the only Compaq DeskPro 386 ROMs I have are from a "Version 2" motherboard, designed in 1987 and released in 1988.

I'm still on the lookout for a "Version 1" motherboard from 1986, so that I can obtain a dump of Compaq's original ROMs for their first 80386-based system.

System ROM Locations on COMPAQ DESKPRO 386 System Board Version 2 (Assembly No. 000558-001)

U13 (EVEN)
U15 (ODD)

System ROM Revisions

Rev  Even ROM #  Odd ROM #   Size  Date
---  ----------  ----------  ----  ----
J(?) 109592-001  109591-001  32Kb  1988-01-28

Compaq DeskPro 386 System Board Version 2

1988-01-28.json was created with the following FileDump command:

filedump --file=109592-001.hex --merge=109591-001.hex --output=1988-01-28.json

For a more human-readable dump, use this command:

filedump --file=109592-001.hex --merge=109591-001.hex --comments

And for those who prefer binary files, the FileDump API can be used to recreate raw binary data from JSON data:

http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/bios/compaq/deskpro386/1988-01-28.json&format=rom

The .hex files were produced by running eeprom_read on a chipKIT Uno32 Arduino-compatible prototyping board, and capturing the serial port output on my MacBook Pro -- as outlined in "Stick a Straw in Its Brain and Suck: How to Read a ROM" by NYC Resistor contributor phooky.

The DeskPro 386 ROMs were P27128A-2 chips, so I wired my Uno32 based on this 27128A datasheet -- the closest match I could find online.

Compaq DeskPro 386 System ROM Version 2

On my first dump attempt, every ROM address returned 0xFF. After looking at the 27128A datasheet more closely, I noticed the DEVICE OPERATION table indicated that, for a READ operation, /CE and /OE pins should be connected to INPUT LOW VOLTAGE, while the /PGM should be connected to INPUT HIGH VOLTAGE. So I wired pin 27 (/PGM) to +5V instead of GND, and the dump worked perfectly. The NYC Resistor article implied that every active low pin should be connected to GND, but apparently there are exceptions to that general rule.