This is a start, but I took the Compaq Portable BIOS and disassembled it to study differences compared to a genuine PC BIOS. There are some notable differences when compared to a genuine IBM BIOS or, say, one of the earlier ERSO derivatives, including:
The BIOS was disassembled with freeware IDA to save myself some time and frustration. It's not wonderfully commented but it will at least assemble without error, and only one warning. I can only work with IDA for so long before I need to take a break, so I'll come back to this at a future time. Most of the code sections are accounted for, but I wouldn't assume it will compile to an identical ROM image just yet (i.e. data interpreted as code may very well be in the BIOS).
I hope this might be useful to someone for the time being.
- Different offsets for the IVT initialization table.
- Different offsets for certain interrupt vectors.
- 'COMPAQ' signature near the end of the BIOS
- Lack of BIOS date (seems they forgot to put it in?)
- Data tends to be placed after each logical code section, rather than at IBM compatible offsets.
- Deliberately seems more difficult to analyze than a standard BIOS (use of bx as the base register for variables in ROM in place of a constant offset).
- Accessing I/O ports which are meaningless on an IBM PC (0xB4-0xB8, 0xD4-0xD8).
- More to come!
The BIOS was disassembled with freeware IDA to save myself some time and frustration. It's not wonderfully commented but it will at least assemble without error, and only one warning. I can only work with IDA for so long before I need to take a break, so I'll come back to this at a future time. Most of the code sections are accounted for, but I wouldn't assume it will compile to an identical ROM image just yet (i.e. data interpreted as code may very well be in the BIOS).
I hope this might be useful to someone for the time being.