Below 1 MB patch

Discussion of development and patch submission.
Post Reply
User avatar
Posts: 428
Joined: Thu 04 Sep, 2014 7:03 am

Below 1 MB patch

Post by ppgrainbow » Tue 18 Aug, 2015 6:22 am

This is my first attempt at adding patches. This is a work in progress and there are changes that it may not work correctly from the get go.

I've added my first patch to change the value increment of the mem_size variable from 1 MB to 1 KB and add 64 KB memory increments.

The reason for this is simple.

Several weeks ago, Narishma made a suggestion to specify less than 1 MB of memory allocated to the emulated machine inside PCem. Some very old software (such as WordStar's 3.0's configuration tool) will refuse to start if the machine has more than 512 KB of system RAM install and end up complaining that there is not enough memory.

Currently, emulated machines with 1 MB of memory will end up having 640 KB of usable memory, because the shadow RAM is occupying the 384 KB of extended (XMS) memory.

I would also like to mention that the IBM 5170 (PC-AT) only had 256 KB of memory installed at a start. In IBMulator, you can specify how much base and extended memory that you have installed in the ibmulator.ini file.

As far as I know, 80286-based machines didn't even use 384 KB of memory reserved for shadow RAM. So, a PC with 1 MB of memory would be display as 640 KB base memory and 384 KB of extended memory.

Again, this patch is a work in progress. If you really wanted a emulated machine with 1 MB of usable memory, you would have to configure at least 1,408 KB of total RAM as a workaround.

By the way, is there a way to implement support for base memory (64 KB to 640 KB) and extended memory (0 KB to 261,504 KB)? If so, how would you get it to work?

Right now, here's the patch:
Below 1 MB patch.7z
(1.09 KiB) Downloaded 146 times
You are definitely welcome to look into the code and test it out. If you have any questions or problems, please let me know and I'll see what could be wrong here.

Post Reply