• Please review our updated Terms and Rules here

IBM 5150 08/16/82 BIOS - Has anyone ever seen this?

@compaqportableplus

Thanks.

By the way, can you run this BASIC Program on IBM PC 5150 (5000024) finally?

I've maid simple BIOS sum program on BASIC.

10 CLS
20 DEF SEG=&HF000
30 A=0:FOR I=&HE000 TO &HFFFF
40 A=A+PEEK(I):NEXT
50 PRINT "SUM : E000-FFFF is";A
60 PRINT "BIOS version is ";:FOR I=0 TO 7 : PRINT CHR$(PEEK(&HFFF5+I));:NEXT

Normal value must be following
SUM 7 = 951808 (BIOS version 04/24/81 or 10/19/81, E000-FFFF), SUM 7 = 962560 (BIOS version 10/27/82, E000-FFFF)
SUM 7 = 962816 (BIOS version 08/16/82, E000-FFFF)

I want to know 962816 is correct.

View attachment 1268781

View attachment 1268782
You want me to run that on my PC with the 08/16/82 BIOS? I can definitely do that.
Not according to what I see in the 08/16/82 code. Per below, both the 08/16/82 and the 10/27/82 revisions of 5150 ROM contain code that scans for BIOS expansion ROM's on video cards. The code is even at the same offset into the ROM, that is, 0363.

View attachment 1268785
Hmm, very interesting! This makes me want to try my EGA card with it.
If it was a simple as that, we'd be telling people with 5150's that they have the option of upgrading the motherboard BIOS to a 5160 BIOS.
But we don't; for a reason. Some things are different between the 5150 and 5160.
A good example is that switch block SW1 is read differently. Accordingly, the code portion in the ROM for reading SW1 differs between the 5150 BIOS and the 5160 BIOS.

SW1 on IBM 5150

To read switches 1 to 8, set bit 7 on 8255 port B, then read port A.

SW1 on IBM 5160

A two-stage process.
- To read switches 1 to 4, clear bit 3 on 8255 port B, then read low nibble of port C.
- To read switches 5 to 8, set bit 3 on 8255 port B, then read low nibble of port C.
Yes, the difference with the switches would no doubt be a problem. I have certainly never heard of anyone using an XT BIOS with a PC previously, and obviously for good reason!
Regarding the VGA support or lack there of: Does this BIOS, on a real machine work with a VGA card or not? Does this BIOS on a real machine work with an IBM EGA card or not?

I ask, because on a Columbia Data Product clone, it does look for the video expansion BIOS, works with EGA, yet fails with VGA (or at least all VGA I have tested). Presumably due to a bug in the BIOS. (A later, but not yet unearthed, CDP BIOS update fixed that).
I don't think I actually have a VGA card that supports the 8-bit slot, but I could check my stash again. Would love to try it. I don't have a real IBM EGA either, but I do have a Paradise Autoswitch EGA card I can try.
 
Yes, the difference with the switches would no doubt be a problem. I have certainly never heard of anyone using an XT BIOS with a PC previously, and obviously for good reason!
Even the 'Super PC/Turbo XT BIOS 3.1' (thank you Plasma) at [here] is not a one-piece-of-code suits all. For use on an IBM 5150, one would need to compile after adding "IBM_PC = 1" in the source code.

Regarding the VGA support or lack there of: Does this BIOS, on a real machine work with a VGA card or not? Does this BIOS on a real machine work with an IBM EGA card or not?
I will give it a go this afternoon. I have an IBM EGA card, and VGA cards that are known to work in an IBM 5150.
 
I will give it a go this afternoon. I have an IBM EGA card, and VGA cards that are known to work in an IBM 5150.
I confirm what fs5500 wrote. With the 08/16/82 5150 ROM fitted to the motherboard, an IBM EGA card or VGA card does not work. Simply substitute the 10/27/82 ROM in place of the 08/16/82 ROM sees the IBM EGA card and VGA card working.

Probably good if a third person verifies that.

I wonder if the 08/16/82 revision for the IBM 5160 is 'in the same boat'. To me, it's a good enough reason for not releasing 08/16/82.
 
@compaqportableplus

Yes, the result is the same as the one I gave you by running the BASIC program.

The reason is that I am confident that the sum of the BIOS parts will match the actual machine and the emulator, but I still want to check.
When I looked at the checksum byte in the BIOS dump part, the total came out as 00h, so there was no problem and it worked fine on the emulator.
 
What's disappointing is that it doesn't work if you install an EGA/VGA card using extended BIOS, but it works if anyone installs MFM HDC or XT-IDE.
In the POST of the 08/16/82 and 10/27/82 BIOS ROM's are two separate routines.
- One scans for BIOS expansion ROM's in the C0000 to C7FFF range, i.e. video ROM's (e.g. ROM on EGA cards, ROM on VGA cards).
- One scans for BIOS expansion ROM's in the C8000 to F5FFF range, e.g. ROM on MFM hard drive controller, ROM on XT-IDE, etc.

Yes, with an MDA card and the 08/16/82 BIOS ROM fitted, the ROM on my XT-IDE card displays its banner.
But something is wrong in regard to video ROM's.

As an experiment, I modified the BIOS expansion ROM on my IBM EGA card to do only only one thing, to send 55h to a LPT/parallel reader device (then halt the CPU).
As expected, with the 10/27/82 BIOS ROM fitted to the motherboard, I saw '55' appear on the LPT/parallel reader device (a few seconds after power-on).
I pulled out the 10/27/82 BIOS ROM then put in the 08/16/82 BIOS ROM - no '55'.
I put the 10/27/82 BIOS ROM back in, and '55' appeared.

Then, an accidental discovery. At some point in further testing the 08/16/82 BIOS ROM, I accidentally had the motherboard video switches set to MDA. About seven seconds after power-on, I saw an underline cursor appear on my EGA display.
So the EGA video ROM is being detected, and its initialisation code called, if the motherboard video switches are set to MDA (which is expected), but not if the motherboard video switches are set to EGA.

Later, I will take a look at the 08/16/82 BIOS ROM code to see where the bug is.
 
I confirm what fs5500 wrote. With the 08/16/82 5150 ROM fitted to the motherboard, an IBM EGA card or VGA card does not work. Simply substitute the 10/27/82 ROM in place of the 08/16/82 ROM sees the IBM EGA card and VGA card working.

Probably good if a third person verifies that.

I wonder if the 08/16/82 revision for the IBM 5160 is 'in the same boat'. To me, it's a good enough reason for not releasing 08/16/82.
Great to have some conformation! Thanks! I don't have a real IBM one, but one of my XTs has a Paradise EGA card I can borrow and test in the PC with the 08/16/82 BIOS.
In the POST of the 08/16/82 and 10/27/82 BIOS ROM's are two separate routines.
- One scans for BIOS expansion ROM's in the C0000 to C7FFF range, i.e. video ROM's (e.g. ROM on EGA cards, ROM on VGA cards).
- One scans for BIOS expansion ROM's in the C8000 to F5FFF range, e.g. ROM on MFM hard drive controller, ROM on XT-IDE, etc.

Yes, with an MDA card and the 08/16/82 BIOS ROM fitted, the ROM on my XT-IDE card displays its banner.
But something is wrong in regard to video ROM's.

As an experiment, I modified the BIOS expansion ROM on my IBM EGA card to do only only one thing, to send 55h to a LPT/parallel reader device (then halt the CPU).
As expected, with the 10/27/82 BIOS ROM fitted to the motherboard, I saw '55' appear on the LPT/parallel reader device (a few seconds after power-on).
I pulled out the 10/27/82 BIOS ROM then put in the 08/16/82 BIOS ROM - no '55'.
I put the 10/27/82 BIOS ROM back in, and '55' appeared.

Then, an accidental discovery. At some point in further testing the 08/16/82 BIOS ROM, I accidentally had the motherboard video switches set to MDA. About seven seconds after power-on, I saw an underline cursor appear on my EGA display.
So the EGA video ROM is being detected, and its initialisation code called, if the motherboard video switches are set to MDA (which is expected), but not if the motherboard video switches are set to EGA.

Later, I will take a look at the 08/16/82 BIOS ROM code to see where the bug is.
More great info as always modem7! Much appreciated!

@compaqportableplus

Yes, the result is the same as the one I gave you by running the BASIC program.

The reason is that I am confident that the sum of the BIOS parts will match the actual machine and the emulator, but I still want to check.
When I looked at the checksum byte in the BIOS dump part, the total came out as 00h, so there was no problem and it worked fine on the emulator.
I will run it on the PC and show you the result!
 
@compaqportableplus

Thanks.

By the way, can you run this BASIC Program on IBM PC 5150 (5000024) finally?

I've maid simple BIOS sum program on BASIC.

10 CLS
20 DEF SEG=&HF000
30 A=0:FOR I=&HE000 TO &HFFFF
40 A=A+PEEK(I):NEXT
50 PRINT "SUM : E000-FFFF is";A
60 PRINT "BIOS version is ";:FOR I=0 TO 7 : PRINT CHR$(PEEK(&HFFF5+I));:NEXT

Normal value must be following
SUM 7 = 951808 (BIOS version 04/24/81 or 10/19/81, E000-FFFF), SUM 7 = 962560 (BIOS version 10/27/82, E000-FFFF)
SUM 7 = 962816 (BIOS version 08/16/82, E000-FFFF)

I want to know 962816 is correct.

View attachment 1268781

View attachment 1268782
I tried running your Basic program on the PC, but only get a blank screen when I run it. I believe I have it type in correctly, can have a look for yourself.

IMG_9454.jpeg
IMG_9456.jpeg
 
Back
Top