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(); }