diff --git a/src/86box.h b/src/86box.h index 6e9034139..260b6976d 100644 --- a/src/86box.h +++ b/src/86box.h @@ -8,7 +8,7 @@ * * Main include file for the application. * - * Version: @(#)86box.h 1.0.33 2019/11/01 + * Version: @(#)86box.h 1.0.34 2019/11/01 * * Authors: Miran Grca, *f Fred N. van Kempen, @@ -30,8 +30,8 @@ #define EMU_NAME "86Box" #define EMU_NAME_W L"86Box" #ifdef RELEASE_BUILD -#define EMU_VERSION "2.05" -#define EMU_VERSION_W L"2.05" +#define EMU_VERSION "2.06" +#define EMU_VERSION_W L"2.06" #else #define EMU_VERSION "2.10" #define EMU_VERSION_W L"2.10" diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index 1e44453c2..28f5ef7ae 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -9,7 +9,7 @@ * Implementation of the IDE emulation for hard disks and ATAPI * CD-ROM devices. * - * Version: @(#)hdc_ide.c 1.0.62 2019/10/31 + * Version: @(#)hdc_ide.c 1.0.63 2019/11/01 * * Authors: Sarah Walker, * Miran Grca, @@ -1631,10 +1631,12 @@ ide_read_data(ide_t *ide, int length) static uint8_t -ide_status(ide_t *ide, int ch) +ide_status(ide_t *ide, ide_t *ide_other, int ch) { - if (ide->type == IDE_NONE) + if ((ide->type == IDE_NONE) && ((ide_other->type == IDE_NONE) || !(ch & 1))) return 0x7F; /* Bit 7 pulled down, all other bits pulled up, per the spec. */ + else if ((ide->type == IDE_NONE) && (ch & 1)) + return 0x00; /* On real hardware, a slave with a present master always returns a status of 0x00. */ else if (ide->type == IDE_ATAPI) return (ide->sc->status & ~DSC_STAT) | (ide->service ? SERVICE_STAT : 0); else @@ -1727,7 +1729,7 @@ ide_readb(uint16_t addr, void *priv) DF (drive fault). */ case 0x7: /* Status */ ide_irq_lower(ide); - temp = ide_status(ide, ch); + temp = ide_status(ide, ide_drives[ch ^ 1], ch); break; } @@ -1751,7 +1753,7 @@ ide_read_alt_status(uint16_t addr, void *priv) /* Per the Seagate ATA-3 specification: Reading the alternate status does *NOT* clear the IRQ. */ - temp = ide_status(ide, ch); + temp = ide_status(ide, ide_drives[ch ^ 1], ch); ide_log("ide_read_alt_status(%04X, %08X) = %02X\n", addr, priv, temp); return temp; diff --git a/src/i82335.c b/src/i82335.c index b0043a1a5..37cf60306 100644 --- a/src/i82335.c +++ b/src/i82335.c @@ -42,7 +42,7 @@ void i82335_write(uint16_t addr, uint8_t val, void *priv) { for (i = 0; i < 8; i++) { - mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL); + mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_EXTANY); shadowbios = 0; } } @@ -69,7 +69,7 @@ void i82335_write(uint16_t addr, uint8_t val, void *priv) { for (i = 0; i < 8; i++) { - mem_set_mem_state(0xc0000, 0x20000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL); + mem_set_mem_state(0xc0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_EXTANY); shadowbios = 0; } } @@ -90,8 +90,8 @@ void i82335_write(uint16_t addr, uint8_t val, void *priv) { for (i = 0; i < 8; i++) { - mem_write = (val & 8) ? MEM_WRITE_DISABLED : MEM_WRITE_EXTERNAL; - mem_set_mem_state(0xa0000, 0x20000, MEM_READ_EXTERNAL | mem_write); + mem_write = (val & 8) ? MEM_WRITE_DISABLED : MEM_WRITE_EXTANY; + mem_set_mem_state(0xa0000, 0x20000, MEM_READ_EXTANY | mem_write); shadowbios = 0; } } diff --git a/src/machine/m_ps1.c b/src/machine/m_ps1.c index 0b214f50a..c58ccccec 100644 --- a/src/machine/m_ps1.c +++ b/src/machine/m_ps1.c @@ -22,13 +22,7 @@ * The reserved 384K is remapped to the top of extended memory. * If this is not done then you get an error on startup. * - * NOTES: Floppy does not seem to work. --FvK - * The "ROM DOS" shell does not seem to work. We do have the - * correct BIOS images now, and they do load, but they do not - * boot. Sometimes, they do, and then it shows an "Incorrect - * DOS" error message?? --FvK - * - * Version: @(#)m_ps1.c 1.0.15 2019/03/08 + * Version: @(#)m_ps1.c 1.0.16 2019/11/01 * * Authors: Sarah Walker, * Miran Grca, @@ -284,13 +278,13 @@ recalc_memory(ps1_t *ps) mem_set_mem_state(0x00000, 0x80000, (ps->ps1_e0_regs[0] & 0x01) ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : - (MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL)); + (MEM_READ_EXTANY | MEM_WRITE_EXTANY)); /* Enable 512-640K */ mem_set_mem_state(0x80000, 0x20000, (ps->ps1_e0_regs[1] & 0x01) ? (MEM_READ_INTERNAL | MEM_WRITE_INTERNAL) : - (MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL)); + (MEM_READ_EXTANY | MEM_WRITE_EXTANY)); } diff --git a/src/machine/m_ps2_mca.c b/src/machine/m_ps2_mca.c index 7a467e863..7eb011931 100644 --- a/src/machine/m_ps2_mca.c +++ b/src/machine/m_ps2_mca.c @@ -8,15 +8,15 @@ * * Implementation of MCA-based PS/2 machines. * - * Version: @(#)m_ps2_mca.c 1.0.5 2018/11/12 + * Version: @(#)m_ps2_mca.c 1.0.6 2019/11/01 * * Authors: Fred N. van Kempen, * Miran Grca, * Sarah Walker, * - * Copyright 2017,2018 Fred N. van Kempen. - * Copyright 2016-2018 Miran Grca. - * Copyright 2008-2018 Sarah Walker. + * Copyright 2017-2019 Fred N. van Kempen. + * Copyright 2016-2019 Miran Grca. + * Copyright 2008-2019 Sarah Walker. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -490,14 +490,14 @@ static void model_55sx_write(uint16_t port, uint8_t val) } else { - mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTERNAL | MEM_WRITE_INTERNAL); + mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_INTERNAL); mem_mapping_enable(&ps2.shadow_mapping); } if ((ps2.option[1] & 1) && !(ps2.option[3] & 0x20)) mem_set_mem_state(mem_size * 1024, 256 * 1024, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); else - mem_set_mem_state(mem_size * 1024, 256 * 1024, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL); + mem_set_mem_state(mem_size * 1024, 256 * 1024, MEM_READ_EXTANY | MEM_WRITE_EXTANY); break; case 0x106: ps2.subaddr_lo = val; @@ -972,7 +972,7 @@ static void mem_encoding_update() ps2.split_addr = ((uint32_t) (ps2.mem_regs[0] & 0xf)) << 20; if (ps2.mem_regs[1] & 2) { - mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTERNAL | MEM_WRITE_INTERNAL); + mem_set_mem_state(0xe0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_INTERNAL); ps2_mca_log("PS/2 Model 80-111: ROM space enabled\n"); } else { mem_set_mem_state(0xe0000, 0x20000, MEM_READ_INTERNAL | MEM_WRITE_DISABLED); diff --git a/src/machine/m_xt_laserxt.c b/src/machine/m_xt_laserxt.c index ddf715fb3..9caa2e41b 100644 --- a/src/machine/m_xt_laserxt.c +++ b/src/machine/m_xt_laserxt.c @@ -129,7 +129,7 @@ static void laserxt_init(int is_lxt3) mem_mapping_add(&laserxt_ems_mapping[i], 0xE0000 + (i << 14), 0x4000, mem_read_laserxtems, NULL, NULL, mem_write_laserxtems, NULL, NULL, ram + 0xA0000 + (i << 14), 0, NULL); mem_mapping_disable(&laserxt_ems_mapping[i]); } - mem_set_mem_state(0x0c0000, 0x40000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL); + mem_set_mem_state(0x0c0000, 0x40000, MEM_READ_EXTANY | MEM_WRITE_EXTANY); laserxt_is_lxt3 = is_lxt3; } diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 543ed98b1..49c941934 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -8,7 +8,7 @@ * * Application resource script for Windows. * - * Version: @(#)86Box.rc 1.0.52 2019/11/01 + * Version: @(#)86Box.rc 1.0.53 2019/11/01 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -225,7 +225,7 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,129,94,71,12 ICON 100,IDC_ABOUT_ICON,7,7,20,20 #ifdef RELEASE_BUILD - LTEXT "86Box v2.05 - An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2. See LICENSE for more information.", + LTEXT "86Box v2.06 - An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2. See LICENSE for more information.", IDC_ABOUT_ICON,54,7,146,73 #else LTEXT "86Box v2.10 - An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2. See LICENSE for more information.", @@ -980,8 +980,8 @@ END VS_VERSION_INFO VERSIONINFO #ifdef RELEASE_BUILD - FILEVERSION 2,5,0,0 - PRODUCTVERSION 2,5,0,0 + FILEVERSION 2,6,0,0 + PRODUCTVERSION 2,6,0,0 #else FILEVERSION 2,10,0,0 PRODUCTVERSION 2,10,0,0 @@ -1004,7 +1004,7 @@ BEGIN VALUE "CompanyName", "IRC #SoftHistory\0" VALUE "FileDescription", "86Box - an emulator for X86-based systems\0" #ifdef RELEASE_BUILD - VALUE "FileVersion", "2.05\0" + VALUE "FileVersion", "2.06\0" #else VALUE "FileVersion", "2.10\0" #endif @@ -1015,7 +1015,7 @@ BEGIN VALUE "PrivateBuild", "\0" VALUE "ProductName", "86Box Emulator\0" #ifdef RELEASE_BUILD - VALUE "ProductVersion", "2.05\0" + VALUE "ProductVersion", "2.06\0" #else VALUE "ProductVersion", "2.10\0" #endif