• Please review our updated Terms and Rules here

About 544KB RAM on IBM PC 5150 (with Rev.0 / Rev.1 BIOS)

fs5500

Veteran Member
Joined
Nov 5, 2008
Messages
507
As you know, the IBM PC 5150 Rev.0 (04/24/81), Rev.1 (10/19/81) BIOS has a bug that does not recognize the 5th bit in SW2 setting.
Therefore, it is already known that the maximum recognizable RAM capacity is up to 544KB.
But here something amazing happened. After obtaining MicroRAM, after setting it to 640KB, I tested it after plugging it into the slot of the IBM PC 5150 Rev.0 motherboard.
MS-DOS recognized up to 544KB, but when I ran PC-Tools 4.3, the total amount of memory found was 640KB instead of 544KB.
I compared the screenshot I took with a digital camera and the one I ran on the PCE IBM PC 5150, the only emulator that recognizes up to 544KB. In PCE, if you set it to 640KB, it can only recognize 128KB.
The reason is that 640KB is based on Rev.2 (10/27/82) BIOS. The bit corresponding to bit 1/2/3/4/5 of SW2 becomes 1 0 1 1 0, so it is 640 KB.
It is normal to be recognized. However, because Rev.0/1 BIOS does not recognize bit 5 Eventually, the number corresponding to the 4th bit becomes 1 0 1 1, which is Because it corresponds to 128KB, the PCE emulation requires a BIOS corresponding to Rev.0/1
When using, if the memory exceeds 544KB, a bug that the memory is not recognized correctly occurs.
Coming back to the real thing, I think this is very interesting.
The fact that PC-Tools 4.3 recognizes the total memory as 640KB. In the future, by properly analyzing this part, will it be possible to recognize and use up to 640 KB by software?
It is unknown at this time, but it is clear thanks to MicroRAM and PC-Tools.
In the meantime, as a model adopting the IBM PC 5150 Rev.0/Rev.1 BIOS, which has been limited to 544KB, I wonder when it will be used up to 640KB.

P.S. No another emulator can be implemented with 544KB RAM and 100% CPU speed for 8088 except PCE.

1) Real machine
20221027_023034.png20221027_023108.png20221027_023226.png


2) PCE IBM PC emulator
pce0000.png
pce0001.png
pce0024.png
 
As you know, the IBM PC 5150 Rev.0 (04/24/81), Rev.1 (10/19/81) BIOS has a bug that does not recognize the 5th bit in SW2 setting.
It is not a bug. It is by design.

In the meantime, as a model adopting the IBM PC 5150 Rev.0/Rev.1 BIOS, which has been limited to 544KB, I wonder when it will be used up to 640KB.
??? If the 544 KB limitation is a problem for someone, they can always simply upgrade the motherboard to the third BIOS revision.
 
Last edited:
Upgrading to Rev.2 BIOS is out of the question here, the important thing is that I used Rev.0 / Rev.1 BIOS and set the RAM up to 544KB in SW2.
However, when I run it while setting it to recognize up to 640KB in MicroRAM, it is definitely correct to recognize up to 544KB in MS-DOS.
But why did PC-Tools find it as 640KB?
Rather, even though it is normal to find 544KB even in PC-Tools, when MicroRAM is installed, even PC-Tools finds it as 640KB.
If anyone is curious about this part later, I don't think it's a quiz worthy of solving the question of why such a phenomenon occurs.
 
The memory will be physically there and accessible, not matter what the switches say. One could do the opposite and set the switches to less than the installed amount of memory to test on a more limited system. In theory, a patch could change the value DOS has for the installed memory and let programs that go through DOS access the full 640K or even have special software that works only in the 96K of memory that DOS doesn't recognize on a 640K machine with the first BIOS. Compared to the ease of just upgrading the BIOS, I doubt those would have much benefit.
 
The memory will be physically there and accessible, not matter what the switches say. One could do the opposite and set the switches to less than the installed amount of memory to test on a more limited system. In theory, a patch could change the value DOS has for the installed memory and let programs that go through DOS access the full 640K or even have special software that works only in the 96K of memory that DOS doesn't recognize on a 640K machine with the first BIOS. Compared to the ease of just upgrading the BIOS, I doubt those would have much benefit.
It's trivially easy to edit the end of memory mark in the BDA. You could do it in DEBUG or even write a little program to run at startup
 
Back
Top