Merge branch 'master' into pc98x1

This commit is contained in:
TC1995
2024-09-02 23:40:04 +02:00
16 changed files with 48 additions and 46 deletions

View File

@@ -35,7 +35,7 @@ if(MUNT_EXTERNAL)
endif()
project(86Box
VERSION 4.2.1
VERSION 4.3
DESCRIPTION "Emulator of x86-based systems"
HOMEPAGE_URL "https://86box.net"
LANGUAGES C CXX)

4
debian/changelog vendored
View File

@@ -1,5 +1,5 @@
86box (4.2.1) UNRELEASED; urgency=medium
86box (4.3) UNRELEASED; urgency=medium
* Bump release.
-- Jasmine Iwanek <jriwanek@gmail.com> Fri, 26 Jul 2024 21:09:16 +0200
-- Jasmine Iwanek <jriwanek@gmail.com> Mon, 02 Sep 2024 00:16:28 +0200

View File

@@ -1021,7 +1021,7 @@ smram_restore_state_p6(uint32_t *saved_state)
rammask |= 0x3000000;
if (saved_state[SMRAM_FIELD_P6_A20M] & 0x01)
rammask &= ~0xffefffff;
rammask &= 0xffefffff;
flushmmucache();

View File

@@ -2508,7 +2508,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 75000000,
.multi = 3.0,
.voltage = 3300,
.voltage = 5000,
.edx_reset = 0x480,
.cpuid_model = 0x480,
.cyrix_id = 0x0000,
@@ -2525,7 +2525,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 100000000,
.multi = 3.0,
.voltage = 3300,
.voltage = 5000,
.edx_reset = 0x483,
.cpuid_model = 0x483,
.cyrix_id = 0x0000,
@@ -3066,7 +3066,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 133333333,
.multi = 4.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x4e0,
.cpuid_model = 0x4e0,
.cyrix_id = 0,
@@ -3083,7 +3083,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 150000000,
.multi = 3.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x482,
.cpuid_model = 0x482,
.cyrix_id = 0,
@@ -3100,7 +3100,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 160000000,
.multi = 4.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x4e0,
.cpuid_model = 0x4e0,
.cyrix_id = 0,
@@ -3332,7 +3332,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 80000000,
.multi = 2.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x480,
.cpuid_model = 0,
.cyrix_id = 0x002f,
@@ -3349,7 +3349,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 100000000,
.multi = 3.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x480,
.cpuid_model = 0,
.cyrix_id = 0x002f,
@@ -3366,7 +3366,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 120000000,
.multi = 3.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x480,
.cpuid_model = 0,
.cyrix_id = 0x002f,
@@ -3383,7 +3383,7 @@ const cpu_family_t cpu_families[] = {
.fpus = fpus_internal,
.rspeed = 133333333,
.multi = 4.0,
.voltage = 3450,
.voltage = 5000,
.edx_reset = 0x480,
.cpuid_model = 0,
.cyrix_id = 0x002f,

View File

@@ -228,7 +228,6 @@ FPU_save_regi_tag(extFloat80_t reg, int tag, int stnr)
#define FPU_check_pending_exceptions() \
do { \
if (fpu_state.swd & FPU_SW_Summary) { \
pclog("SW Summary.\n"); \
if (cr0 & 0x20) { \
x86_int(16); \
return 1; \

View File

@@ -828,7 +828,7 @@ write_p2(atkbc_t *dev, uint8_t val)
and can find out what they actually did to make it boot from FFFFF0
correctly despite A20 being gated when the CPU is reset, this will
have to do. */
if (kbc_ven == KBC_VEN_SIEMENS)
if ((kbc_ven == KBC_VEN_SIEMENS) || !strcmp(machine_get_internal_name(), "acera1g"))
is486 ? loadcs(0xf000) : loadcs_2386(0xf000);
}
}

View File

@@ -223,7 +223,7 @@ serial_write_fifo(serial_t *dev, uint8_t dat)
((dev->type >= SERIAL_16550) && dev->fifo_enabled) ?
fifo_get_count(dev->rcvr_fifo) : 0);
if (!(dev->mctrl & 0x10))
if ((dev != NULL) && !(dev->mctrl & 0x10))
write_fifo(dev, dat);
}

View File

@@ -612,9 +612,11 @@ fdc_io_command_phase1(fdc_t *fdc, int out)
ui_sb_update_icon(SB_FLOPPY | real_drive(fdc, fdc->drive), 1);
fdc->stat = out ? 0x10 : 0x50;
if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->dma)
if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->dma) {
fdc->stat |= 0x20;
else
if (out)
fdc->stat |= 0x80;
} else
dma_set_drq(fdc->dma_ch, 1);
}

View File

@@ -296,7 +296,7 @@ machine_at_award_common_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&keyboard_at_ami_device);
device_add(&sio_zb_device);
device_add(&intel_flash_bxt_device);
}

View File

@@ -5484,10 +5484,10 @@ const machine_t machines[] = {
.cpu = {
.package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
.block = CPU_BLOCK_NONE,
.min_bus = 25000000,
.max_bus = 66666667,
.min_voltage = 5000,
.max_voltage = 5000,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
@@ -5524,10 +5524,10 @@ const machine_t machines[] = {
.cpu = {
.package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
.block = CPU_BLOCK_NONE,
.min_bus = 25000000,
.max_bus = 66666667,
.min_voltage = 5000,
.max_voltage = 5000,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},

View File

@@ -279,7 +279,7 @@ static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_default = {
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ GPMODE_CAPABILITIES_PAGE, 0x12, 0, 0, 1, 0, 0, 0, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
{ GPMODE_CAPABILITIES_PAGE, 0x12, 7, 0, 0x3f, 1, 0x0d, 3, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
};
static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_default_scsi = {
@@ -325,7 +325,7 @@ static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_default_scsi = {
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ GPMODE_CAPABILITIES_PAGE, 0x12, 0, 0, 1, 0, 0, 0, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
{ GPMODE_CAPABILITIES_PAGE, 0x12, 7, 0, 0x3f, 1, 0x0d, 3, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
};
static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_default_sony_scsi = {
@@ -371,7 +371,7 @@ static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_default_sony_scsi =
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ GPMODE_CAPABILITIES_PAGE, 0x12, 0, 0, 1, 0, 0, 0, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
{ GPMODE_CAPABILITIES_PAGE, 0x12, 7, 0, 0x3f, 1, 0x0d, 3, 2, 0xC2, 1, 0, 0, 0, 2, 0xC2, 0, 0, 0, 0 }}
};
static const mode_sense_pages_t scsi_cdrom_mode_sense_pages_changeable = {
@@ -2436,7 +2436,15 @@ begin:
b[2] = (0 << 2) | 0x02 | 0x01; /* persistent and current */
b[3] = 4;
b[4] = 0x1d;
b[4] = 0x0d;
/* The early CD-ROM drives we emulate (NEC CDR-260 for ATAPI and
early vendor SCSI CD-ROM models) are caddy drives, the later
ones are tray drives. */
if (dev->drv->bus_type == CDROM_BUS_SCSI)
b[4] |= ((dev->drv->type == CDROM_TYPE_86BOX_100) ? 0x20 : 0x00);
else
b[4] |= ((dev->drv->type == CDROM_TYPE_NEC_260_100) ||
((dev->drv->type == CDROM_TYPE_NEC_260_101)) ? 0x00 : 0x20);
alloc_length += 8;
b += 8;

View File

@@ -32,6 +32,7 @@
#include <86box/fdd.h>
#include <86box/fdc.h>
#include <86box/keyboard.h>
#include <86box/machine.h>
#include <86box/nvr.h>
#include <86box/apm.h>
#include <86box/acpi.h>
@@ -131,7 +132,8 @@ fdc37c93x_gpio_read(uint16_t port, void *priv)
const fdc37c93x_t *dev = (fdc37c93x_t *) priv;
uint8_t ret = 0xff;
ret = dev->gpio_regs[port & 1];
if (strcmp(machine_get_internal_name(), "vectra54"))
ret = dev->gpio_regs[port & 1];
return ret;
}

View File

@@ -15,7 +15,7 @@
%global romver 4.1
Name: 86Box
Version: 4.2.1
Version: 4.3
Release: 1%{?dist}
Summary: Classic PC emulator
License: GPLv2+
@@ -121,5 +121,5 @@ popd
%{_datadir}/%{name}/roms
%changelog
* Fri Jul 26 2024 Robert de Rooy <robert.de.rooy[AT]gmail.com> 4.2.1-1
* Sat Aug 31 Jasmine Iwanek <jriwanek[AT]gmail.com> 4.3-1
- Bump release

View File

@@ -11,7 +11,7 @@
</categories>
<launchable type="desktop-id">net.86box.86Box.desktop</launchable>
<releases>
<release version="4.2.1" date="2024-07-26"/>
<release version="4.3" date="2024-09-02"/>
</releases>
<content_rating type="oars-1.1" />
<description>

View File

@@ -9441,18 +9441,12 @@ s3_disable_handlers(s3_t *s3)
{
s3_io_remove(s3);
mem_mapping_set_addr(&s3->linear_mapping, 0, 0);
mem_mapping_disable(&s3->linear_mapping);
mem_mapping_set_addr(&s3->mmio_mapping, 0, 0);
mem_mapping_disable(&s3->mmio_mapping);
mem_mapping_set_addr(&s3->new_mmio_mapping, 0, 0);
mem_mapping_disable(&s3->new_mmio_mapping);
mem_mapping_set_addr(&s3->svga.mapping, 0xa0000, 0x20000);
mem_mapping_disable(&s3->svga.mapping);
if (s3->pci) {
mem_mapping_set_addr(&s3->bios_rom.mapping, 0xc0000, 0x8000);
if (s3->pci)
mem_mapping_disable(&s3->bios_rom.mapping);
}
/* Save all the mappings and the timers because they are part of linked lists. */
reset_state->linear_mapping = s3->linear_mapping;
@@ -9466,8 +9460,6 @@ s3_disable_handlers(s3_t *s3)
memset(s3->svga.vram, 0x00, s3->svga.vram_max + 8);
memset(s3->svga.changedvram, 0x00, (s3->svga.vram_max >> 12) + 1);
pci_clear_irq(s3->pci_slot, PCI_INTA, &s3->irq_state);
}
static void
@@ -9482,7 +9474,6 @@ s3_reset(void *priv)
reset_state->pci_slot = s3->pci_slot;
*s3 = *reset_state;
s3_io_set(s3);
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "86box",
"version-string": "4.2.1",
"version-string": "4.3",
"homepage": "https://86box.net/",
"documentation": "https://86box.readthedocs.io/",
"license": "GPL-2.0-or-later",