From 51b085c13e2a1375f4279839bf9bb3a438520ccb Mon Sep 17 00:00:00 2001 From: OBattler Date: Sun, 26 Feb 2017 06:36:52 +0100 Subject: [PATCH] Fixed RAM mask on resetx86(), fixes soft reset triggered by MS-DOS Setup; Changed version to 1.04. --- src/808x.c | 9 +-------- src/86box.h | 2 +- src/mem.c | 12 +++++------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/808x.c b/src/808x.c index 36a4e1467..20f6e3b93 100644 --- a/src/808x.c +++ b/src/808x.c @@ -645,14 +645,7 @@ void resetx86() eflags=0; cgate32=0; loadcs(0xFFFF); - if (AT) - { - rammask = mem_a20_state ? 0xffffffff : 0xffefffff; - } - else - { - rammask = 0xfffff; - } + rammask = AT ? 0xFFFFFFFF : 0xfffff; idt.base = 0; flags=2; makeznptable(); diff --git a/src/86box.h b/src/86box.h index 0b4ca1f9c..87b2e57da 100644 --- a/src/86box.h +++ b/src/86box.h @@ -1,4 +1,4 @@ /* Copyright holders: Tenshi see COPYING for more details */ -#define emulator_version "1.10" +#define emulator_version "1.04" diff --git a/src/mem.c b/src/mem.c index c86f723ec..e98542f14 100644 --- a/src/mem.c +++ b/src/mem.c @@ -2250,22 +2250,20 @@ void mem_a20_recalc() static uint8_t port_92_read(uint16_t port, void *priv) { - return (port_92_reg & 3) | 0x24; + return port_92_reg; } static void port_92_write(uint16_t port, uint8_t val, void *priv) { - mem_a20_alt = val & 2; - mem_a20_recalc(); - - if (!(port_92_reg & 1) && (val & 1)) + if (val & 1) { - // pclog("Port 92: Soft reset\n"); softresetx86(); + cpu_set_edx(); } - port_92_reg = val & 3; + port_92_reg = val & ~-1; + mem_a20_alt = val & 2; mem_a20_recalc(); }