mirror of
https://github.com/86Box/86Box.git
synced 2026-02-25 04:45:31 -07:00
Merge branch 'master' into pc98x1
This commit is contained in:
@@ -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
4
debian/changelog
vendored
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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; \
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user