WARNING: CONFIGS MIGHT PARTIALLY BREAK WHERE DEVICE NAMES HAVE CHANGED.

Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes #929;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
This commit is contained in:
OBattler
2020-11-16 00:01:21 +01:00
parent 745460f64b
commit 0faf6692c9
260 changed files with 5122 additions and 4471 deletions

View File

@@ -640,9 +640,12 @@ nvr_write(uint16_t addr, uint8_t val, void *priv)
sub_cycles(ISA_CYCLES(8));
if (local->bank[addr_id] == 0xff)
return;
if (addr & 1) {
if (local->bank[addr_id] == 0xff)
return;
// if (local->bank[addr_id] == 0xff)
// return;
nvr_reg_write(local->addr[addr_id], val, priv);
} else {
local->addr[addr_id] = (val & (nvr->size - 1));
@@ -672,7 +675,7 @@ nvr_read(uint16_t addr, void *priv)
sub_cycles(ISA_CYCLES(8));
if ((addr & 1) && (local->bank[addr_id] == 0xff))
if (/* (addr & 1) && */(local->bank[addr_id] == 0xff))
return 0xff;
if (addr & 1) switch(local->addr[addr_id]) {
@@ -749,6 +752,8 @@ nvr_read(uint16_t addr, void *priv)
ret = local->addr[addr_id];
if (!local->read_addr)
ret &= 0x80;
if (alt_access)
ret = (ret & 0x7f) | (nmi_mask ? 0x00 : 0x80);
}
return(ret);
@@ -845,7 +850,7 @@ void
nvr_at_handler(int set, uint16_t base, nvr_t *nvr)
{
io_handler(set, base, 2,
nvr_read,NULL,NULL, nvr_write,NULL,NULL, nvr);
nvr_read,NULL,NULL, nvr_write,NULL,NULL, nvr);
}
@@ -853,7 +858,7 @@ void
nvr_at_sec_handler(int set, uint16_t base, nvr_t *nvr)
{
io_handler(set, base, 2,
nvr_sec_read,NULL,NULL, nvr_sec_write,NULL,NULL, nvr);
nvr_sec_read,NULL,NULL, nvr_sec_write,NULL,NULL, nvr);
}
@@ -1023,7 +1028,7 @@ const device_t at_nvr_old_device = {
DEVICE_ISA | DEVICE_AT,
0,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1032,7 +1037,7 @@ const device_t at_nvr_device = {
DEVICE_ISA | DEVICE_AT,
1,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1041,7 +1046,7 @@ const device_t ps_nvr_device = {
DEVICE_PS2,
2,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1050,7 +1055,7 @@ const device_t amstrad_nvr_device = {
DEVICE_ISA | DEVICE_AT,
3,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1059,7 +1064,7 @@ const device_t ibmat_nvr_device = {
DEVICE_ISA | DEVICE_AT,
4,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1068,7 +1073,7 @@ const device_t piix4_nvr_device = {
DEVICE_ISA | DEVICE_AT,
9,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1077,7 +1082,7 @@ const device_t ls486e_nvr_device = {
DEVICE_ISA | DEVICE_AT,
13,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1086,7 +1091,7 @@ const device_t ami_apollo_nvr_device = {
DEVICE_ISA | DEVICE_AT,
14,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};
@@ -1095,6 +1100,6 @@ const device_t via_nvr_device = {
DEVICE_ISA | DEVICE_AT,
15,
nvr_at_init, nvr_at_close, NULL,
NULL, nvr_at_speed_changed,
{ NULL }, nvr_at_speed_changed,
NULL
};