diff --git a/src/device/clock_ics9xxx.c b/src/device/clock_ics9xxx.c index df7aaf5fa..9f7e790af 100644 --- a/src/device/clock_ics9xxx.c +++ b/src/device/clock_ics9xxx.c @@ -124,7 +124,7 @@ static const ics9xxx_model_t ics9xxx_models[] = { .hw_select = {0, 3}, .frequencies_ref = ICS9250_08 ICS9xxx_MODEL_END() -#if 0 +#ifdef ENABLE_ICS9xxx_DETECT ICS9xxx_MODEL(ICS9248_81) .max_reg = 5, .regs = {0x82, 0xfe, 0x7f, 0xff, 0xff, 0xb7}, @@ -522,7 +522,7 @@ static const ics9xxx_model_t ics9xxx_models[] = { ICS9xxx_MODEL(ICS9250_08) .max_reg = 5, .regs = {0x00, 0xff, 0xff, 0xff, 0x6d, 0xbf}, - .fs_regs = {{0, 4, 4, 7}, {0, 5, 4, 4}, {0, 6, 5, 6}, {0, 7, 4, 1}, {-1, -1, -1, -1}}, + .fs_regs = {{0, 4, 4, 7}, {0, 5, 4, 4}, {0, 6, 5, 6}, {0, 2, 4, 1}, {-1, -1, -1, -1}}, .hw_select = {0, 3}, .frequencies = (const ics9xxx_frequency_t[]) { {.bus = 12400, .pci_div = 3}, @@ -544,7 +544,7 @@ static const ics9xxx_model_t ics9xxx_models[] = { {0} } ICS9xxx_MODEL_END() -#if 0 +#ifdef ENABLE_ICS9xxx_DETECT ICS9xxx_MODEL(ICS9250_10) .max_reg = 5, .regs = {0x1f, 0xff, 0xfe, 0x00, 0x00, 0x06}, @@ -703,7 +703,7 @@ static const ics9xxx_model_t ics9xxx_models[] = { {0} } ICS9xxx_MODEL_END() -#if 0 +#ifdef ENABLE_ICS9xxx_DETECT ICS9xxx_MODEL(ICS9250_19) .max_reg = 5, .regs = {0x02, 0xff, 0xff, 0xff, 0x6d, 0xbf}, @@ -1199,7 +1199,7 @@ ics9xxx_init(const device_t *info) uint8_t i; #ifdef ENABLE_ICS9xxx_DETECT - for (i = 0; i < ICS9xxx_MAX; i++) { + for (i = ICS9xxx_xx + 1; i < ICS9xxx_MAX; i++) { if (ics9xxx_models[i].frequencies_ref || !ics9xxx_models[i].name) continue; for (uint8_t j = 0; j < i; j++) { diff --git a/src/include/86box/clock.h b/src/include/86box/clock.h index b1a3df478..7d2be9f05 100644 --- a/src/include/86box/clock.h +++ b/src/include/86box/clock.h @@ -22,7 +22,6 @@ enum { ICS9xxx_xx, ICS9150_08, ICS9248_39, -#if 0 ICS9248_81, ICS9248_95, ICS9248_98, @@ -35,16 +34,12 @@ enum { ICS9248_143, ICS9248_151, ICS9248_192, -#endif ICS9250_08, -#if 0 ICS9250_10, ICS9250_13, ICS9250_14, ICS9250_16, -#endif ICS9250_18, -#if 0 ICS9250_19, ICS9250_23, ICS9250_25, @@ -56,7 +51,6 @@ enum { ICS9250_32, ICS9250_38, ICS9250_50, -#endif ICS9xxx_MAX }; diff --git a/src/machine/m_at_slot2.c b/src/machine/m_at_slot2.c index bcce1d8c0..84c789990 100644 --- a/src/machine/m_at_slot2.c +++ b/src/machine/m_at_slot2.c @@ -9,7 +9,8 @@ * Implementation of Slot 2 machines. * * Slot 2 is quite a rare type of Slot. Used mostly by Pentium II & III Xeons - * These boards were also capable to take Slot 1 CPU's using Slot 2 to 1 adapters. + * + * * * Authors: Miran Grca, * @@ -35,6 +36,7 @@ #include <86box/hwm.h> #include <86box/spd.h> #include <86box/video.h> +#include <86box/clock.h> #include "cpu.h" #include <86box/machine.h> @@ -140,6 +142,7 @@ machine_at_fw6400gx_init(const machine_t *model) device_add(&piix4e_device); device_add(&keyboard_ps2_ami_pci_device); device_add(&pc87309_15c_device); + device_add(ics9xxx_get(ICS9250_08)); device_add(&sst_flash_29ee020_device); spd_register(SPD_TYPE_SDRAM, 0xF, 512); device_add(&w83781d_device); /* fans: Chassis, Power, CPU; temperatures: System, CPU, unused */ diff --git a/src/sound/snd_audiopci.c b/src/sound/snd_audiopci.c index b081d7632..4956f7742 100644 --- a/src/sound/snd_audiopci.c +++ b/src/sound/snd_audiopci.c @@ -145,6 +145,8 @@ typedef struct { #define INT_DAC2_EN (1<<5) #define INT_UART_EN (1<<3) +#define SI_P2_PAUSE (1<<12) +#define SI_P1_PAUSE (1<<11) #define SI_P2_INTR_EN (1<<9) #define SI_P1_INTR_EN (1<<8) @@ -1507,6 +1509,9 @@ es1371_pci_write(int func, int addr, uint8_t val, void *p) static void es1371_fetch(es1371_t *dev, int dac_nr) { + if (dev->si_cr & (dac_nr ? SI_P2_PAUSE : SI_P1_PAUSE)) + return; + int format = dac_nr ? ((dev->si_cr >> 2) & 3) : (dev->si_cr & 3); int pos = dev->dac[dac_nr].buffer_pos & 63; int c;