Skip to content

Commit

Permalink
Change ISA memory hole option 512kb to true/false/auto
Browse files Browse the repository at this point in the history
  • Loading branch information
joncampbell123 committed Oct 9, 2023
1 parent 2a1ea2d commit dc9e0ff
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 6 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Next:
-
- Change ISA memory hole 512kb option from boolean to true/false/auto.

2023.10.06
- Add "VRD" debugger command to force redraw of the VGA screen.
Expand Down
3 changes: 2 additions & 1 deletion contrib/windows/installer/dosbox-x.reference.setup.conf
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,7 @@ debuggerrun = debugger
#DOSBOX-X-ADV:# A few DOS games & demos require this option to be set:
#DOSBOX-X-ADV:# Majic 12 "Show": If UMBs are enabled, set this option to 639 to avoid MCB chain corruption error.
#DOSBOX-X-ADV:# isa memory hole at 512kb: If set, emulate an ISA memory hole at the 512KB to 640KB area (0x80000-0x9FFFF).
#DOSBOX-X-ADV:# Possible values: true, false, 1, 0, auto.
#DOSBOX-X-ADV:# reboot delay: Reboot delay. How long to pause at BIOS POST after reboot in milliseconds.
#DOSBOX-X-ADV:# This option is provided so that it is possible to see what the guest application
#DOSBOX-X-ADV:# or OS might have written to the screen before resetting the system. A value of
Expand Down Expand Up @@ -497,7 +498,7 @@ a20 = mask
memsize = 16
#DOSBOX-X-ADV:memsizekb = 0
#DOSBOX-X-ADV:dos mem limit = 0
#DOSBOX-X-ADV:isa memory hole at 512kb = false
#DOSBOX-X-ADV:isa memory hole at 512kb = auto
#DOSBOX-X-ADV:reboot delay = -1
#DOSBOX-X-ADV:memalias = 0
nocachedir = false
Expand Down
3 changes: 2 additions & 1 deletion dosbox-x.reference.full.conf
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ debuggerrun = debugger
# A few DOS games & demos require this option to be set:
# Majic 12 "Show": If UMBs are enabled, set this option to 639 to avoid MCB chain corruption error.
# isa memory hole at 512kb: If set, emulate an ISA memory hole at the 512KB to 640KB area (0x80000-0x9FFFF).
# Possible values: true, false, 1, 0, auto.
# reboot delay: Reboot delay. How long to pause at BIOS POST after reboot in milliseconds.
# This option is provided so that it is possible to see what the guest application
# or OS might have written to the screen before resetting the system. A value of
Expand Down Expand Up @@ -485,7 +486,7 @@ acpi reserved size = 0
memsize = 16
memsizekb = 0
dos mem limit = 0
isa memory hole at 512kb = false
isa memory hole at 512kb = auto
reboot delay = -1
memalias = 0
nocachedir = false
Expand Down
5 changes: 3 additions & 2 deletions src/dosbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1800,8 +1800,9 @@ void DOSBOX_SetupConfigSections(void) {
"A few DOS games & demos require this option to be set:\n"
" Majic 12 \"Show\": If UMBs are enabled, set this option to 639 to avoid MCB chain corruption error.");

Pbool = secprop->Add_bool("isa memory hole at 512kb",Property::Changeable::WhenIdle,false);
Pbool->Set_help("If set, emulate an ISA memory hole at the 512KB to 640KB area (0x80000-0x9FFFF).");
Pstring = secprop->Add_string("isa memory hole at 512kb",Property::Changeable::WhenIdle,"auto");
Pstring->Set_values(truefalseautoopt);
Pstring->Set_help("If set, emulate an ISA memory hole at the 512KB to 640KB area (0x80000-0x9FFFF).");

Pint = secprop->Add_int("reboot delay", Property::Changeable::WhenIdle,-1);
Pint->SetMinMax(-1,10000);
Expand Down
11 changes: 10 additions & 1 deletion src/ints/bios.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9918,7 +9918,16 @@ class BIOS:public Module_base{
bochs_port_e9 = section->Get_bool("bochs debug port e9");

// TODO: motherboard init, especially when we get around to full Intel Triton/i440FX chipset emulation
isa_memory_hole_512kb = section->Get_bool("isa memory hole at 512kb");
{
std::string s = section->Get_string("isa memory hole at 512kb");

if (s == "true" || s == "1")
isa_memory_hole_512kb = true;
else if (s == "false" || s == "0")
isa_memory_hole_512kb = false;
else
isa_memory_hole_512kb = false;
}

// FIXME: Erm, well this couldv'e been named better. It refers to the amount of conventional memory
// made available to the operating system below 1MB, which is usually DOS.
Expand Down

0 comments on commit dc9e0ff

Please sign in to comment.