Skip to content

Feature request - 16KB+7C00 memory on IBM PC #106

@Torinde

Description

@Torinde

To add memory setting 18KB or 16K/32K (if it's more straightforward to populate the whole second bank instead only the top 2K) or similar

IBM PC when configured as 16KB (DIP switch setting), but having RAM chip present also at range 0x7800-0x7FFF (2KB below 32K, importantly including the 1K above 0x7C00 - the PC BIOS boot vector) - then it can boot PC DOS and it'll behave as if it has only 16KB:

Motherboard configured for 16 KB RAM
Note 1: There was a successful boot if all I did was simply populate the second RAM bank, leaving the motherboard switches set to 16 KB.

That's possible due to the permanently connected U12 memory transievers:

SW1 and SW2 are used simply to inform the POST of bank population. They do not enable/disable RAM banks.

So, the DIP switches control the memory size value to be reported/assigned via BIOS/POST/DOS, but the CPU/programs can access any memory present, including 0x7C00.
I assume DOS receives the MEMORY_SIZE, IO_RAM_SIZE or similar from the BIOS and denies loading of programs declaring a need for more than that (for PC DOS 1.x the COMMAND.COM has the role to load executables).

Scenario: "User didn't have enough RAM chips or some of them failed".
If having 16K + 2K non-contiguous step is complicated - then just make 16K reported out of 32K installed.

Source code of BIOS

Related: joncampbell123/dosbox-x#3664, 640-KB/GLaBIOS#50

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions