AT NVR clean-ups and manually applied the pull requests by Toggo9 and Kotochi.

This commit is contained in:
OBattler
2026-02-26 11:47:03 +01:00
parent ff3c905f40
commit 34c0bfc15e
50 changed files with 2726 additions and 1482 deletions

View File

@@ -1614,7 +1614,7 @@ ali1543_init(const device_t *info)
/* ACPI */
dev->acpi = device_add(&acpi_ali_device);
dev->nvr = device_add(&piix4_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4);
/* DMA */
dma_alias_set();

View File

@@ -1581,11 +1581,11 @@ piix_init(const device_t *info)
if (dev->type > 3) {
if (info->local & PIIX4_NVR_AMI_1995J)
dev->nvr = device_add(&piix4_ami_1995j_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4_AMI_1995J);
else if (info->local & PIIX4_NVR_AMI_1995)
dev->nvr = device_add(&piix4_ami_1995_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4_AMI_1995);
else
dev->nvr = device_add(&piix4_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4);
dev->smbus = device_add(&piix4_smbus_device);
dev->acpi = device_add(&acpi_intel_device);

View File

@@ -203,7 +203,7 @@ opti602_init(UNUSED(const device_t *info))
io_sethandler(0x0022, 0x0001, opti602_read, NULL, NULL, opti602_write, NULL, NULL, dev);
io_sethandler(0x0024, 0x0001, opti602_read, NULL, NULL, opti602_write, NULL, NULL, dev);
dev->nvr = device_add(&at_mb_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
opti602_reset(dev);

View File

@@ -44,6 +44,7 @@ typedef struct opti895_t {
static uint8_t masks[0x10] = { 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
0xe3, 0xff, 0xe3, 0xff, 0x00, 0xff, 0xff, 0xff };
#define ENABLE_OPTI895_LOG 1
#ifdef ENABLE_OPTI895_LOG
int opti895_do_log = ENABLE_OPTI895_LOG;
@@ -159,6 +160,8 @@ opti895_write(uint16_t addr, uint8_t val, void *priv)
((dev->idx >= 0xe0) && (dev->idx <= 0xef))) {
if (dev->idx > 0x2f)
dev->regs[dev->idx] = val;
else if (dev->idx == 0x28)
dev->regs[dev->idx] = (val & masks[dev->idx - 0x20]) | 0x18;
else
dev->regs[dev->idx] = val & masks[dev->idx - 0x20];
opti895_log("dev->regs[%04x] = %08x\n", dev->idx, val);
@@ -247,7 +250,11 @@ opti895_read(uint16_t addr, void *priv)
if (((dev->idx >= 0x20) && (dev->idx <= 0x2f) && (dev->idx != 0x2c)) ||
((dev->idx >= 0xe0) && (dev->idx <= 0xef))) {
ret = dev->regs[dev->idx];
if (dev->idx == 0xe0)
if (dev->idx == 0x21)
ret |= 0x1c;
else if (dev->idx == 0x28)
ret |= 0x18;
else if (dev->idx == 0xe0)
ret = (ret & 0xf6) | (in_smm ? 0x00 : 0x08) | !!dev->forced_green;
}
break;
@@ -291,7 +298,7 @@ opti895_init(const device_t *info)
dev->regs[0x01] = 0xc0;
dev->regs[0x22] = 0xc4;
dev->regs[0x22] = 0xe4;
dev->regs[0x25] = 0x7c;
dev->regs[0x26] = 0x10;
dev->regs[0x27] = 0xde;
@@ -304,7 +311,7 @@ opti895_init(const device_t *info)
dev->regs[0xe8] = 0x08;
dev->regs[0xe9] = 0x08;
dev->regs[0xeb] = 0xff;
dev->regs[0xef] = 0x40;
dev->regs[0xef] = 0x41;
opti895_recalc(dev);

View File

@@ -1238,7 +1238,7 @@ sis_5513_pci_to_isa_init(UNUSED(const device_t *info))
dev->pit_read_reg = pit_is_fast ? pitf_read_reg : pit_read_reg;
/* NVR */
dev->nvr = device_add(&at_mb_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
switch (dev->rev) {
case 0x00:

View File

@@ -673,9 +673,9 @@ static void
ide_sec_disable();
if (info->local)
dev->nvr = device_add(&ami_1994_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AMI_1994);
else
dev->nvr = device_add(&at_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT);
dma_high_page_init();

View File

@@ -667,7 +667,7 @@ sis_85c50x_init(UNUSED(const device_t *info))
dev->pit_read_reg = pit_is_fast ? pitf_read_reg : pit_read_reg;
/* NVR */
dev->nvr = device_add(&at_mb_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
device_add(&ide_pci_2ch_device);
}

View File

@@ -1722,7 +1722,7 @@ pipc_init(const device_t *info)
else if (dev->local >= VIA_PIPC_596A)
dev->smbus = device_add(&piix4_smbus_device);
dev->nvr = device_add(&via_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_VIA);
if (dev->local >= VIA_PIPC_596A) {
dev->acpi = device_add(&acpi_via_596b_device);

View File

@@ -622,7 +622,7 @@ vl82c59x_init(UNUSED(const device_t *info))
dev->port_92 = device_add(&port_92_device);
/* NVR */
dev->nvr = device_add(&at_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT);
dev->smram[0] = smram_add();
dev->smram[1] = smram_add();

View File

@@ -1393,7 +1393,7 @@ wd76c10_init(UNUSED(const device_t *info))
dev->mem_pages[i] = i - 0x20;
device_add(&port_92_inv_device);
dev->nvr = device_add(&amstrad_megapc_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_ZERO_DEFAULT);
dev->uart[0] = device_add_inst(&ns16450_device, 1);
dev->uart[1] = device_add_inst(&ns16450_device, 2);
dev->lpt = device_add_inst(&lpt_port_device, 1);

View File

@@ -245,6 +245,7 @@ enum {
MACHINE_CHIPSET_INTEL_430VX,
MACHINE_CHIPSET_INTEL_430TX,
MACHINE_CHIPSET_INTEL_450KX,
MACHINE_CHIPSET_INTEL_450GX,
MACHINE_CHIPSET_INTEL_440FX,
MACHINE_CHIPSET_INTEL_440EX,
MACHINE_CHIPSET_INTEL_440LX,
@@ -353,6 +354,18 @@ typedef struct _machine_ {
void *kbc_device;
#endif /* EMU_DEVICE_H */
uintptr_t kbc_params;
#ifdef EMU_DEVICE_H
const device_t *nvr_device;
#else
void *nvr_device;
#endif /* EMU_DEVICE_H */
uintptr_t nvr_params;
#ifdef EMU_DEVICE_H
const device_t *sio_device;
#else
void *sio_device;
#endif /* EMU_DEVICE_H */
uintptr_t sio_params;
/* Bits 23-16: XOR mask, bits 15-8: OR mask, bits 7-0: AND mask. */
uint32_t kbc_p1;
uint32_t gpio;
@@ -361,7 +374,6 @@ typedef struct _machine_ {
const device_t *device;
const device_t *kbd_device;
const device_t *fdc_device;
const device_t *sio_device;
const device_t *vid_device;
const device_t *snd_device;
const device_t *net_device;
@@ -369,7 +381,6 @@ typedef struct _machine_ {
void *device;
void *kbd_device;
void *fdc_device;
void *sio_device;
void *vid_device;
void *snd_device;
void *net_device;
@@ -394,9 +405,10 @@ extern int machine_get_machine_from_internal_name(const char *s);
extern void machine_init(void);
#ifdef EMU_DEVICE_H
extern const device_t *machine_get_kbc_device(int m);
extern const device_t *machine_get_nvr_device(int m);
extern const device_t *machine_get_sio_device(int m);
extern const device_t *machine_get_device(int m);
extern const device_t *machine_get_fdc_device(int m);
extern const device_t *machine_get_sio_device(int m);
extern const device_t *machine_get_vid_device(int m);
extern const device_t *machine_get_snd_device(int m);
extern const device_t *machine_get_net_device(int m);
@@ -528,6 +540,7 @@ extern int machine_at_px286_init(const machine_t *);
extern int machine_at_ataripc4_init(const machine_t *);
extern int machine_at_neat_ami_init(const machine_t *);
extern int machine_at_3302_init(const machine_t *);
extern int machine_at_n8810m30_init(const machine_t *);
/* SCAMP */
extern int machine_at_pc7286_init(const machine_t *);
@@ -579,6 +592,7 @@ extern int machine_at_shuttle386sx_init(const machine_t *);
/* NEAT */
extern int machine_at_cmdsl386sx16_init(const machine_t *);
extern int machine_at_neat_init(const machine_t *);
extern int machine_at_p3345_init(const machine_t *);
/* NEATsx */
extern int machine_at_if386sx_init(const machine_t *);
@@ -659,12 +673,10 @@ extern const device_t opti495_ami_device;
extern int machine_at_opti495_ami_init(const machine_t *);
/* m_at_common.c */
extern void machine_at_common_init_ex(const machine_t *, int type);
extern void machine_at_common_init(const machine_t *);
extern void machine_at_init(const machine_t *);
extern void machine_at_ps2_init(const machine_t *);
extern void machine_at_common_ide_init(const machine_t *);
extern void machine_at_ibm_common_ide_init(const machine_t *);
extern void machine_at_ide_init(const machine_t *);
extern void machine_at_ps2_ide_init(const machine_t *);
@@ -965,12 +977,12 @@ extern int machine_at_hot539_init(const machine_t *);
/* VLSI SuperCore */
extern int machine_at_bravoms586_init(const machine_t *);
extern int machine_at_g586vpmc_init(const machine_t *);
extern int machine_at_m54si_init(const machine_t *);
extern int machine_at_pb600_init(const machine_t *);
/* VLSI Wildcat */
extern int machine_at_globalyst620_init(const machine_t *);
extern int machine_at_g586vpmc_init(const machine_t *);
/* m_at_socket7_3v.c */
/* i430FX */
@@ -986,6 +998,7 @@ extern const device_t vectra52_device;
extern int machine_at_vectra52_init(const machine_t *);
extern int machine_at_vectra500mt_init(const machine_t *);
extern int machine_at_vectra54_init(const machine_t *);
extern int machine_at_atlantis_init(const machine_t *);
#ifdef EMU_DEVICE_H
extern const device_t thor_device;
#endif
@@ -994,7 +1007,6 @@ extern uint32_t machine_at_monaco_gpio_handler(uint8_t write, uint32_t va
extern int machine_at_monaco_init(const machine_t *);
extern uint32_t machine_at_endeavor_gpio_handler(uint8_t write, uint32_t val);
extern int machine_at_endeavor_init(const machine_t *);
extern int machine_at_atlantis_init(const machine_t *);
#ifdef EMU_DEVICE_H
extern const device_t monaco_device;
#endif
@@ -1177,6 +1189,8 @@ extern int machine_at_5sg100_init(const machine_t *);
/* m_at_socket8.c */
/* i450KX */
extern int machine_at_ap61_init(const machine_t *);
/* i450GX */
#ifdef EMU_DEVICE_H
extern const device_t ficpo6000_device;
#endif

View File

@@ -57,6 +57,76 @@
#define TIME_SYNC_ENABLED 1
#define TIME_SYNC_UTC 2
/* Century register for the AT, etc. */
#define RTC_CENTURY_AT 0x32
/* Century register for the PS/1 and the PS/2. */
#define RTC_CENTURY_PS 0x37
/* Century register for the Epson Equity LT. */
#define RTC_CENTURY_ELT 0x1a
/* century register for VIA VT82C586B. */
#define RTC_CENTURY_VIA 0x7f
/* No century register. */
#define RTC_CENTURY_NONE 0xff
#define FLAG_ZERO_DEFAULT 0x0001
#define FLAG_NO_NMI 0x0002
#define FLAG_MULTI_ADDRESS 0x0004
#define FLAG_MULTI_BANK 0x0008
#define FLAG_PIIX4 0x0010
#define FLAG_FIXED_SIZE 0x0020
#define FLAG_MARTIN_HACK 0x0040
#define FLAG_AMI_1992_HACK 0x0080
#define FLAG_AMI_1994_HACK 0x0100
#define FLAG_P6RP4_HACK 0x0200
#define FLAG_AMI_1995_HACK 0x0400
#define FLAG_AMI_1999_HACK 0x0800
#define FLAG_AMI_1999J_HACK 0x1000
#define FLAG_SPITFIRE_HACK 0x2000
#define FLAG_BX6_HACK 0x4000
#define NVR_CENTURY_AT (RTC_CENTURY_AT << 16)
#define NVR_CENTURY_PS (RTC_CENTURY_PS << 16)
#define NVR_CENTURY_VIA (RTC_CENTURY_VIA << 16)
#define NVR_CENTURY_ELT (RTC_CENTURY_ELT << 16)
#define NVR_CENTURY_NONE (0xff << 16)
#define NVR_ADDR_STANDARD (0x0070ULL << 24)
#define NVR_ADDR_ELT (0x11b4ULL << 24)
#define NVR_ADDR_CONFIG (0xfffeULL << 24)
#define NVR_ADDR_NONE (0xffffULL << 24)
#define NVR_IRQ_STANDARD (0x0008ULL << 40)
#define NVR_IRQ_AMSTRAD (0x0001ULL << 40)
#define NVR_IRQ_CONFIG (0xfffeULL << 40)
#define NVR_IRQ_NONE (0xffffULL << 40)
#define NVR_AT_STANDARD NVR_IRQ_STANDARD | NVR_ADDR_STANDARD
#define NVR_AT_STANDARD_MA NVR_AT_STANDARD | FLAG_MULTI_ADDRESS
#define NVR_AT_STANDARD_ZERO NVR_AT_STANDARD | FLAG_ZERO_DEFAULT
#define NVR_AT_OLD (NVR_AT_STANDARD | NVR_CENTURY_NONE)
#define NVR_AT (NVR_AT_STANDARD | NVR_CENTURY_AT)
#define NVR_AT_ZERO_DEFAULT (NVR_AT_STANDARD_ZERO | NVR_CENTURY_AT)
#define NVR_AT_MA (NVR_AT | FLAG_MULTI_ADDRESS)
#define NVR_AT_MA_ZERO (NVR_AT_ZERO_DEFAULT | FLAG_MULTI_ADDRESS)
#define NVR_AT_MB (NVR_AT_ZERO_DEFAULT | FLAG_MULTI_BANK)
#define NVR_PS (NVR_AT_STANDARD_ZERO | NVR_CENTURY_PS)
#define NVR_PS_NO_NMI (NVR_PS | FLAG_NO_NMI)
#define NVR_AMSTRAD (NVR_IRQ_AMSTRAD | NVR_ADDR_STANDARD | NVR_CENTURY_AT)
#define NVR_AMSTRAD_NO_NMI (NVR_AMSTRAD | FLAG_NO_NMI)
#define NVR_PIIX4 (NVR_AT_MA_ZERO | FLAG_PIIX4)
#define NVR_AMI_1992 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1992_HACK)
#define NVR_AMI_1994 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1994_HACK)
#define NVR_AMI_1995 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1995_HACK)
#define NVR_P6RP4 (NVR_AT_MA_ZERO | FLAG_P6RP4_HACK)
#define NVR_PIIX4_AMI_1995 (NVR_PIIX4 | FLAG_AMI_1999_HACK)
#define NVR_PIIX4_AMI_1995J (NVR_PIIX4 | FLAG_AMI_1999J_HACK)
#define NVR_VIA (NVR_AT_STANDARD_MA | NVR_CENTURY_VIA)
#define NVR_MARTIN (NVR_AT_MB | FLAG_MARTIN_HACK)
#define NVR_ELT (NVR_IRQ_NONE | NVR_ADDR_ELT | NVR_CENTURY_ELT)
#define NVR_RTC8088 (NVR_IRQ_CONFIG | NVR_ADDR_CONFIG | \
NVR_CENTURY_ALT | FLAG_NO_NMI | FLAG_FIXED_SIZE)
#ifdef _TIMER_H_
/* Define a generic RTC/NVRAM device. */
typedef struct _nvr_ {
@@ -80,26 +150,9 @@ typedef struct _nvr_ {
} nvr_t;
extern int nvr_dosave;
#ifdef EMU_DEVICE_H
extern const device_t at_nvr_old_device;
extern const device_t at_nvr_device;
extern const device_t at_mb_nvr_device;
extern const device_t ps_nvr_device;
extern const device_t amstrad_nvr_device;
extern const device_t amstrad_megapc_nvr_device;
extern const device_t ibmat_nvr_device;
extern const device_t piix4_nvr_device;
extern const device_t ps_no_nmi_nvr_device;
extern const device_t amstrad_no_nmi_nvr_device;
extern const device_t ami_1992_nvr_device;
extern const device_t ami_1994_nvr_device;
extern const device_t ami_1995_nvr_device;
extern const device_t via_nvr_device;
extern const device_t piix4_ami_1995_nvr_device;
extern const device_t piix4_ami_1995j_nvr_device;
extern const device_t p6rp4_nvr_device;
extern const device_t martin_nvr_device;
extern const device_t elt_nvr_device;
extern const device_t nvr_at_device;
#endif
extern void rtc_tick(void);

View File

@@ -2971,17 +2971,6 @@ machine_amstrad_init(const machine_t *model, int type)
ams->type = type;
amstrad_latch = 0x80000000;
switch (type) {
case AMS_PC200:
case AMS_PPC512:
device_add(&amstrad_no_nmi_nvr_device);
break;
default:
device_add(&amstrad_nvr_device);
break;
}
machine_common_init(model);
nmi_init();

View File

@@ -140,7 +140,7 @@ const device_t ibmat_device = {
static void
machine_at_ibm_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 1);
machine_at_common_init(model);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -510,8 +510,7 @@ machine_at_m290_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 6);
device_add(&amstrad_megapc_nvr_device);
machine_at_common_init(model);
device_add(&olivetti_eva_device);
device_add(&port_6x_olivetti_device);
@@ -630,7 +629,7 @@ machine_at_siemens_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 1);
machine_at_common_init(model);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -923,6 +922,29 @@ machine_at_3302_init(const machine_t *model)
return ret;
}
int
machine_at_n8810m30_init(const machine_t *model) /* Onboard SCSI not yet emulated */
{
int ret;
ret = bios_load_linear("roms/machines/n8810m30/at286bios_53889.00.0.17jr.BIN",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
device_add(&neat_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
return ret;
}
/* SCAMP */
int
machine_at_pc7286_init(const machine_t *model)
@@ -935,7 +957,7 @@ machine_at_pc7286_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));

View File

@@ -272,7 +272,7 @@ machine_at_spc6000a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 1);
machine_at_common_init(model);
device_add(&cs8230_device);

View File

@@ -409,8 +409,7 @@ machine_at_adi386sx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
machine_at_common_init(model);
device_add(&intel_82335_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -494,6 +493,31 @@ machine_at_neat_init(const machine_t *model)
return ret;
}
int
machine_at_p3345_init(const machine_t *model)
{
int ret;
ret = bios_load_interleaved("roms/machines/p3345/BIOS_EVEN.BIN",
"roms/machines/p3345/BIOS_ODD.BIN",
0x000f0000, 65536, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&neat_device);
device_add(&ide_isa_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
return ret;
}
/* NEATsx */
int
machine_at_if386sx_init(const machine_t *model)
@@ -507,8 +531,7 @@ machine_at_if386sx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
machine_at_common_init(model);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -588,7 +611,7 @@ machine_at_cmdsl386sx25_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5402_onboard_commodore_device);
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&ide_isa_device);
@@ -700,7 +723,7 @@ machine_at_dells333sl_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&ide_isa_device);
@@ -774,7 +797,7 @@ machine_at_wd76c10_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));

View File

@@ -60,7 +60,7 @@ machine_at_itoxstar_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -90,7 +90,7 @@ machine_at_arb1423c_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -117,7 +117,7 @@ machine_at_arb1479_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -144,7 +144,7 @@ machine_at_iach488_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -169,7 +169,7 @@ machine_at_pcm9340_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -198,7 +198,7 @@ machine_at_pcm5330_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -61,7 +61,7 @@
#include <86box/machine.h>
void
machine_at_common_init_ex(const machine_t *model, int type)
machine_at_common_init(const machine_t *model)
{
machine_common_init(model);
@@ -70,24 +70,12 @@ machine_at_common_init_ex(const machine_t *model, int type)
pic2_init();
dma16_init();
if (!(type & 4))
if (model->init != machine_at_m290_init)
device_add(&port_6x_device);
type &= 3;
if (type == 1)
device_add(&ibmat_nvr_device);
else if (type == 0)
device_add(&at_nvr_device);
standalone_gameport_type = &gameport_device;
}
void
machine_at_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 0);
}
void
machine_at_init(const machine_t *model)
{
@@ -112,14 +100,6 @@ machine_at_common_ide_init(const machine_t *model)
device_add(&ide_isa_device);
}
void
machine_at_ibm_common_ide_init(const machine_t *model)
{
machine_at_common_init_ex(model, 1);
device_add(&ide_isa_device);
}
void
machine_at_ide_init(const machine_t *model)
{

View File

@@ -47,7 +47,7 @@ machine_at_vpc2007_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
is_vpc = 1;
pci_init(PCI_CONFIG_TYPE_1);

View File

@@ -50,7 +50,7 @@ machine_at_m729_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -83,7 +83,7 @@ machine_at_acerv62x_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -220,7 +220,7 @@ machine_at_lx6_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -251,7 +251,7 @@ machine_at_optiplexgxa_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
@@ -442,7 +442,7 @@ machine_at_ms6117_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -479,7 +479,7 @@ machine_at_ma30d_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -516,7 +516,7 @@ machine_at_brio83xx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
// Actual settings!
@@ -610,7 +610,7 @@ machine_at_como_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -643,7 +643,7 @@ machine_at_p6i440e2_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -676,7 +676,7 @@ machine_at_bf6_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -792,7 +792,7 @@ machine_at_bx6_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -823,7 +823,7 @@ machine_at_p2bls_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -862,7 +862,7 @@ machine_at_p3bf_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -962,7 +962,7 @@ machine_at_ax6bc_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1059,7 +1059,7 @@ machine_at_ga686_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1178,7 +1178,7 @@ machine_at_ms6119_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1273,7 +1273,7 @@ machine_at_ms6147_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1363,7 +1363,7 @@ machine_at_p6sba_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1453,7 +1453,7 @@ machine_at_s1846_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1556,7 +1556,7 @@ machine_at_vei8_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1580,7 +1580,7 @@ machine_at_vei8_init(const machine_t *model)
static void
machine_at_ms6168_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1651,7 +1651,7 @@ machine_at_atc6310bxii_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1683,7 +1683,7 @@ machine_at_ficka6130_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1715,7 +1715,7 @@ machine_at_p3v133_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1825,7 +1825,7 @@ machine_at_ms6199va_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1866,7 +1866,7 @@ machine_at_p3v4x_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1901,7 +1901,7 @@ machine_at_gt694va_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1944,7 +1944,7 @@ machine_at_p6f99_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1979,7 +1979,7 @@ machine_at_m747_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -51,7 +51,7 @@ machine_at_fw6400gx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -114,7 +114,7 @@ machine_at_prosignias31x_bx_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -154,7 +154,7 @@ machine_at_s1857_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -193,7 +193,7 @@ machine_at_p6bat_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -50,7 +50,7 @@ machine_at_6gxu_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -85,7 +85,7 @@ machine_at_s2dge_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -304,7 +304,7 @@ machine_at_vect486vl_init(const machine_t *model) // has HDC problems
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c480_device);
@@ -342,7 +342,7 @@ machine_at_d824_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c480_device);
@@ -379,7 +379,7 @@ machine_at_pcs44c_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c486_device);
device_add(&tulip_jumper_device);
@@ -437,7 +437,7 @@ machine_at_tuliptc38_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c486_device);
device_add(&tulip_jumper_device);

View File

@@ -61,7 +61,7 @@ machine_at_pb410a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_ibm_common_ide_init(model);
machine_at_common_ide_init(model);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -199,8 +199,7 @@ machine_at_g486ip_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1992_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -380,7 +379,7 @@ machine_at_monsoon_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c480_device);
device_add(&vl82c113_device);
@@ -408,7 +407,7 @@ machine_at_martin_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&vl82c480_device);
device_add(&vl82c113_device);

View File

@@ -105,15 +105,14 @@ machine_at_ap4100aa_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&ami_1994_nvr_device);
device_add(&ali1429g_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&ide_vlb_device);
device_add_params(&um866x_device, (void *) UM8663BF);
device_add_params(&um866x_device, (void *) (uintptr_t) UM8663BF);
return ret;
}
@@ -265,11 +264,8 @@ machine_at_403tg_init(const machine_t *model)
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
if (nvr_hack) {
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
} else
machine_at_common_init(model);
machine_at_common_init(model);
device_add_params(&nvr_at_device, (void *) (uintptr_t) (nvr_hack ? (NVR_AMI_1994) : (NVR_AT)));
device_add(&opti895_device);
@@ -482,8 +478,7 @@ machine_at_tg486g_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device);
machine_at_common_init(model);
device_add(&sis_85c471_device);
device_add(&ide_isa_device);
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));

View File

@@ -50,7 +50,7 @@ machine_at_s370slm_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -85,7 +85,7 @@ machine_at_awo671r_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -120,7 +120,7 @@ machine_at_ambx133_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -156,7 +156,7 @@ machine_at_cubx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -194,7 +194,7 @@ machine_at_63a1_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -227,7 +227,7 @@ machine_at_7sbb_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -256,7 +256,7 @@ machine_at_atc7020bxii_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -288,7 +288,7 @@ machine_at_m773_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -329,7 +329,7 @@ machine_at_apas3_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -361,7 +361,7 @@ machine_at_p6bap_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -397,7 +397,7 @@ machine_at_6via90ap_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -435,7 +435,7 @@ machine_at_cuv4xls_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -565,7 +565,7 @@ machine_at_ms6318_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -602,7 +602,7 @@ machine_at_cairo5_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -350,7 +350,7 @@ machine_at_pc330_6573_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&ide_vlb_2ch_device);
pci_init(PCI_CONFIG_TYPE_1);
@@ -458,7 +458,7 @@ machine_at_pb450_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&ide_vlb_2ch_device);
pci_init(PCI_CONFIG_TYPE_1);
@@ -582,8 +582,7 @@ machine_at_ninja_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x05, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -707,9 +706,8 @@ machine_at_alfredo_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&amstrad_megapc_nvr_device);
device_add(&ide_pci_device);
pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING);
@@ -881,8 +879,7 @@ machine_at_pci400cb_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -929,7 +926,7 @@ machine_at_acerp3_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -963,7 +960,7 @@ machine_at_486sp3c_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -991,7 +988,7 @@ machine_at_ls486e_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_ls486e_device);
@@ -1018,7 +1015,7 @@ machine_at_m4li_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -1045,7 +1042,7 @@ machine_at_ms4144_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_ls486e_device);
@@ -1073,7 +1070,7 @@ machine_at_r418_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -1100,7 +1097,7 @@ machine_at_4saw2_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -1129,7 +1126,7 @@ machine_at_4dps_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_sis_85c496_common_init(model);
device_add(&sis_85c496_device);
@@ -1471,11 +1468,8 @@ machine_at_hot433a_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
if (is_award)
device_add(&amstrad_megapc_nvr_device);
else
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
device_add_params(&nvr_at_device, (void *) (uintptr_t) (is_award ? (NVR_AT_ZERO_DEFAULT) : (NVR_AMI_1994)));
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -254,9 +254,8 @@ machine_at_opti560l_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&amstrad_megapc_nvr_device);
device_add(&ide_pci_device);
pci_init(PCI_CONFIG_TYPE_2);
@@ -434,9 +433,8 @@ machine_at_batman_init(const machine_t *model)
}
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&amstrad_megapc_nvr_device);
device_add(&ide_pci_device);
pci_init(PCI_CONFIG_TYPE_2);
@@ -466,9 +464,8 @@ machine_at_batman_init(const machine_t *model)
void
machine_at_premiere_common_init(const machine_t *model, int pci_switch)
{
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
device_add(&amstrad_megapc_nvr_device);
device_add(&ide_pci_2ch_device);
pci_init(PCI_CONFIG_TYPE_2 | pci_switch);
@@ -669,8 +666,7 @@ machine_at_excaliburpci2_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -83,7 +83,7 @@ machine_at_celebris5xx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -371,8 +371,7 @@ machine_at_apollo_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1995_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -402,8 +401,7 @@ machine_at_optiplexgxl_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -428,6 +426,91 @@ machine_at_optiplexgxl_init(const machine_t *model)
return ret;
}
static const device_config_t pt2000_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "pt2000",
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.50GP - Revision T1.01",
.internal_name = "pt2000",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpt2000/PT2000_v1.01.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 3.072C806",
.internal_name = "pt2000_451pg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpt2000/3072c806.bin", "" }
},
{ .files_no = 0 }
},
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
};
const device_t pt2000_device = {
.name = "FIC PT-2000",
.internal_name = "pt2000_device",
.flags = 0,
.local = 0,
.init = NULL,
.close = NULL,
.reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = pt2000_config
};
int
machine_at_pt2000_init(const machine_t *model)
{
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
device_add(&intel_flash_bxt_device);
return ret;
}
static void
machine_at_morrison32_gpio_init(void)
{
@@ -476,7 +559,7 @@ machine_at_morrison32_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_morrison32_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -571,7 +654,7 @@ machine_at_pc330_65x6_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_morrison64_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -625,91 +708,6 @@ machine_at_zappa_gpio_init(void)
machine_set_gpio_default(gpio);
}
static const device_config_t pt2000_config[] = {
// clang-format off
{
.name = "bios",
.description = "BIOS Version",
.type = CONFIG_BIOS,
.default_string = "pt2000",
.default_int = 0,
.file_filter = NULL,
.spinner = { 0 },
.selection = { { 0 } },
.bios = {
{
.name = "Award Modular BIOS v4.50GP - Revision T1.01",
.internal_name = "pt2000",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpt2000/PT2000_v1.01.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 3.072C806",
.internal_name = "pt2000_451pg",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ficpt2000/3072c806.bin", "" }
},
{ .files_no = 0 }
},
},
{ .name = "", .description = "", .type = CONFIG_END }
// clang-format on
};
const device_t pt2000_device = {
.name = "FIC PT-2000",
.internal_name = "pt2000_device",
.flags = 0,
.local = 0,
.init = NULL,
.close = NULL,
.reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = pt2000_config
};
int
machine_at_pt2000_init(const machine_t *model)
{
int ret = 0;
const char *fn;
/* No ROMs available */
if (!device_available(model->device))
return ret;
device_context(model->device);
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
device_add(&intel_flash_bxt_device);
return ret;
}
static const device_config_t zappa_config[] = {
// clang-format off
{
@@ -778,7 +776,7 @@ machine_at_zappa_init(const machine_t *model)
ret = bios_load_linear_combined(fn, fn2, 0x20000, 128);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_zappa_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -894,8 +892,7 @@ machine_at_hawk_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1088,8 +1085,7 @@ machine_at_ms5109_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1121,8 +1117,7 @@ machine_at_torino_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&ami_1994_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1189,7 +1184,7 @@ machine_at_bravoms586_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1216,36 +1211,6 @@ machine_at_bravoms586_init(const machine_t *model)
return ret;
}
int
machine_at_g586vpmc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/g586vpmc/Vpm_c3.bin",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x02, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x08, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
device_add(&vl82c59x_device);
device_add(&sst_flash_29ee010_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
device_add(&ide_cmd646_device);
return ret;
}
int
machine_at_m54si_init(const machine_t *model)
{
@@ -1257,7 +1222,7 @@ machine_at_m54si_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1288,7 +1253,7 @@ machine_at_pb600_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1324,7 +1289,7 @@ machine_at_globalyst620_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1346,3 +1311,33 @@ machine_at_globalyst620_init(const machine_t *model)
return ret;
}
int
machine_at_g586vpmc_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/g586vpmc/Vpm_c3.bin",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x02, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x08, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
device_add(&vl82c59x_wildcat_device);
device_add(&sst_flash_29ee010_device);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
device_add(&ide_cmd646_device);
return ret;
}

View File

@@ -55,7 +55,7 @@ machine_at_acerm3a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -190,7 +190,7 @@ machine_at_rubyusb_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_rubyusb_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -326,7 +326,7 @@ machine_at_cu430hx_init(const machine_t *model)
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 128);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_cu430hx_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -452,7 +452,7 @@ machine_at_tc430hx_init(const machine_t *model)
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 128);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_tc430hx_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -544,7 +544,7 @@ machine_at_m7shi_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
@@ -573,8 +573,7 @@ machine_at_epc2102_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add_params(&at_nvr_device, (void *) 0x20);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -613,7 +612,7 @@ machine_at_pcv90_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_ag430hx_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -647,7 +646,7 @@ machine_at_p55t2s_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -801,7 +800,7 @@ machine_at_presario2240_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_NO_BRIDGES);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -831,7 +830,7 @@ machine_at_presario4500_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_NO_BRIDGES);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -865,7 +864,7 @@ machine_at_dellhannibalp_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -980,7 +979,7 @@ machine_at_p55va_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1013,7 +1012,7 @@ machine_at_gw2kte_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1046,7 +1045,7 @@ machine_at_brio80xx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
@@ -1168,7 +1167,7 @@ machine_at_pb680_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_nv430vx_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -1201,7 +1200,7 @@ machine_at_pb810_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1293,7 +1292,7 @@ machine_at_nupro592_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1333,7 +1332,7 @@ machine_at_tx97_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1383,7 +1382,7 @@ machine_at_optiplexgn_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -1421,7 +1420,7 @@ machine_at_tomahawk_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1463,7 +1462,7 @@ machine_at_ym430tx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1495,7 +1494,7 @@ machine_at_tx97xv_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -1648,7 +1647,7 @@ machine_at_ms5156_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1684,7 +1683,7 @@ machine_at_ma23c_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1775,7 +1774,7 @@ machine_at_an430tx_init(const machine_t *model)
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 160);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1814,7 +1813,7 @@ machine_at_mb540n_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1845,7 +1844,7 @@ machine_at_56a5_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1877,7 +1876,7 @@ machine_at_p5mms98_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1910,7 +1909,7 @@ machine_at_richmond_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1944,7 +1943,7 @@ machine_at_ficva502_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1975,7 +1974,7 @@ machine_at_ficpa2012_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2006,7 +2005,7 @@ machine_at_via809ds_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2038,7 +2037,7 @@ machine_at_cb52xsi_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2121,7 +2120,7 @@ machine_at_ms5146_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2204,7 +2203,7 @@ machine_at_r534f_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2233,7 +2232,7 @@ machine_at_sp97xv_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2262,7 +2261,7 @@ machine_at_sq578_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2290,7 +2289,7 @@ machine_at_ms5172_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2374,7 +2373,7 @@ machine_at_m5ata_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -2403,7 +2402,7 @@ machine_at_ms5164_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -2436,7 +2435,7 @@ machine_at_m560_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -204,7 +204,7 @@ machine_at_holly_init(const machine_t *model) /* HP Pavilion Holly, 7070/7090/51
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_holly_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -228,6 +228,38 @@ machine_at_holly_init(const machine_t *model) /* HP Pavilion Holly, 7070/7090/51
return ret;
}
int
machine_at_vectra500mt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/vectra500mt/GJ0718.FUL",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_VIDEO, 0, 0, 0, 0);
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_NORMAL));
device_add(&sst_flash_29ee010_device);
return ret;
}
static void
machine_at_vectra52_gpio_init(void)
{
@@ -308,7 +340,7 @@ const device_t vectra52_device = {
int
machine_at_vectra52_init(const machine_t *model)
{
int ret = 0;
int ret = 0;
const char *fn;
/* No ROMs available */
@@ -320,8 +352,8 @@ machine_at_vectra52_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_vectra52_gpio_init();
machine_at_common_init(model);
machine_at_vectra52_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -335,40 +367,9 @@ machine_at_vectra52_init(const machine_t *model)
device_add_params(&pc87306_device, (void *) PCX730X_PHOENIX_42);
device_add(&intel_flash_bxt_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
return ret;
}
int
machine_at_vectra500mt_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/vectra500mt/GJ0718.FUL",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_VIDEO, 0, 0, 0, 0);
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_NORMAL));
device_add(&sst_flash_29ee010_device);
return ret;
}
@@ -383,7 +384,7 @@ machine_at_vectra54_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -404,6 +405,80 @@ machine_at_vectra54_init(const machine_t *model)
return ret;
}
static void
machine_at_atlantis_gpio_init(void)
{
uint32_t gpio = 0xffffe0cf;
/* Register 0x0079: */
/* Bit 7: 0 = Clear password, 1 = Keep password. */
/* Bit 6: 0 = NVRAM cleared by jumper, 1 = NVRAM normal. */
/* Bit 5: 0 = CMOS Setup disabled, 1 = CMOS Setup enabled. */
/* Bit 4: External CPU clock (Switch 8). */
/* Bit 3: External CPU clock (Switch 7). */
/* 50 MHz: Switch 7 = Off, Switch 8 = Off. */
/* 60 MHz: Switch 7 = On, Switch 8 = Off. */
/* 66 MHz: Switch 7 = Off, Switch 8 = On. */
/* Bit 2: 0 = On-board audio absent, 1 = On-board audio present. */
/* Bit 1: 0 = Soft-off capable power supply present, 1 = Soft-off capable power supply absent. */
/* Bit 0: 0 = 2x multiplier, 1 = 1.5x multiplier (Switch 6). */
/* NOTE: A bit is read as 1 if switch is off, and as 0 if switch is on. */
if (cpu_busspeed <= 50000000)
gpio |= 0xffff0000;
else if ((cpu_busspeed > 50000000) && (cpu_busspeed <= 60000000))
gpio |= 0xffff0800;
else if (cpu_busspeed > 60000000)
gpio |= 0xffff1000;
if (sound_card_current[0] == SOUND_INTERNAL)
gpio |= 0xffff0400;
if (cpu_dmulti <= 1.5)
gpio |= 0xffff0100;
else
gpio |= 0xffff0000;
machine_set_gpio_default(gpio);
}
int
machine_at_atlantis_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/atlantis/1007CL0_.BIO",
"roms/machines/atlantis/1007CL0_.BI1",
0x20000, 128);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
machine_at_atlantis_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
device_add(&intel_flash_bxt_ami_device);
return ret;
}
static const device_config_t thor_config[] = {
// clang-format off
{
@@ -535,7 +610,7 @@ machine_at_thor_init(const machine_t *model)
}
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_thor_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -648,58 +723,6 @@ machine_at_endeavor_gpio_handler(uint8_t write, uint32_t val)
return ret;
}
static void
machine_at_monaco_gpio_init(void)
{
uint32_t gpio = 0xffffe0cf;
/* Register 0x0079: */
/* Bit 7: 0 = Clear password, 1 = Keep password. */
/* Bit 6: 0 = NVRAM cleared by jumper, 1 = NVRAM normal. */
/* Bit 5: 0 = CMOS Setup disabled, 1 = CMOS Setup enabled. */
/* Bit 4: External CPU clock (Switch 8). */
/* Bit 3: External CPU clock (Switch 7). */
/* 50 MHz: Switch 7 = Off, Switch 8 = Off. */
/* 60 MHz: Switch 7 = On, Switch 8 = Off. */
/* 66 MHz: Switch 7 = Off, Switch 8 = On. */
/* Bit 2: 0 = On-board audio absent, 1 = On-board audio present. */
/* Bit 1: 0 = Soft-off capable power supply present, 1 = Soft-off capable power supply absent. */
/* Bit 0: 0 = 2x multiplier, 1 = 1.5x multiplier (Switch 6). */
/* NOTE: A bit is read as 1 if switch is off, and as 0 if switch is on. */
if (cpu_busspeed <= 50000000)
gpio |= 0xffff0000;
else if ((cpu_busspeed > 50000000) && (cpu_busspeed <= 60000000))
gpio |= 0xffff0800;
else if (cpu_busspeed > 60000000)
gpio |= 0xffff1000;
if (sound_card_current[0] == SOUND_INTERNAL)
gpio |= 0xffff0400;
if (cpu_dmulti <= 1.5)
gpio |= 0xffff0100;
else
gpio |= 0xffff0000;
machine_set_gpio_default(gpio);
}
uint32_t
machine_at_monaco_gpio_handler(uint8_t write, uint32_t val)
{
uint32_t ret = machine_get_gpio_default();
if (write) {
ret &= ((val & 0xffffffcf) | 0xffff0000);
ret |= (val & 0x00000030);
machine_set_gpio(ret);
} else
ret = machine_get_gpio();
return ret;
}
int
machine_at_endeavor_init(const machine_t *model)
{
@@ -712,7 +735,7 @@ machine_at_endeavor_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_endeavor_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -739,45 +762,7 @@ machine_at_endeavor_init(const machine_t *model)
}
/* The Monaco and Atlantis share the same GPIO config */
#define machine_at_atlantis_gpio_init machine_at_monaco_gpio_init
int
machine_at_atlantis_init(const machine_t *model)
{
int ret;
ret = bios_load_linear_combined("roms/machines/atlantis/1007CL0_.BIO",
"roms/machines/atlantis/1007CL0_.BI1",
0x20000, 128);
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_atlantis_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&i430fx_device);
device_add(&piix_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
device_add(&intel_flash_bxt_ami_device);
return ret;
}
#define machine_at_monaco_gpio_init machine_at_atlantis_gpio_init
static const device_config_t monaco_config[] = {
// clang-format off
@@ -830,6 +815,22 @@ const device_t monaco_device = {
.config = monaco_config
};
uint32_t
machine_at_monaco_gpio_handler(uint8_t write, uint32_t val)
{
uint32_t ret = machine_get_gpio_default();
if (write) {
ret &= ((val & 0xffffffcf) | 0xffff0000);
ret |= (val & 0x00000030);
machine_set_gpio(ret);
} else
ret = machine_get_gpio();
return ret;
}
int
machine_at_monaco_init(const machine_t *model)
{
@@ -847,7 +848,7 @@ machine_at_monaco_init(const machine_t *model)
ret = bios_load_linear_combined(fn, fn2, 0x20000, 128);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_monaco_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -999,7 +1000,7 @@ machine_at_pb640_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
machine_at_pb640_gpio_init();
pci_init(PCI_CONFIG_TYPE_1);
@@ -1148,7 +1149,7 @@ machine_at_acerv35n_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1313,8 +1314,7 @@ machine_at_d943_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1356,7 +1356,7 @@ machine_at_gw2kma_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1456,7 +1456,7 @@ machine_at_5sbm2_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1485,7 +1485,7 @@ machine_at_amis727_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1578,7 +1578,7 @@ machine_at_ap5s_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1607,7 +1607,7 @@ machine_at_fm562_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -1638,7 +1638,7 @@ machine_at_pc140_6260_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
@@ -1724,7 +1724,7 @@ machine_at_ms5124_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -1754,7 +1754,7 @@ machine_at_zeoswildcat_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -72,6 +72,7 @@ machine_at_ap61_init(const machine_t *model)
return ret;
}
/* i450GX */
int
machine_at_p6rp4_init(const machine_t *model)
{
@@ -83,8 +84,7 @@ machine_at_p6rp4_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
device_add(&p6rp4_nvr_device);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x19, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -173,7 +173,7 @@ machine_at_ficpo6000_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x19, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -207,7 +207,7 @@ machine_at_acerv60n_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -496,7 +496,7 @@ machine_at_m6mi_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -50,7 +50,7 @@ machine_at_p5a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -86,7 +86,7 @@ machine_at_m579_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -118,7 +118,7 @@ machine_at_gwlucas_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -156,7 +156,7 @@ machine_at_5aa_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -243,7 +243,7 @@ machine_at_g5x_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -278,7 +278,7 @@ machine_at_ax59pro_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -364,7 +364,7 @@ machine_at_delhi3_init(const machine_t *model)
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
device_context_restore();
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -395,7 +395,7 @@ machine_at_mvp3_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -425,7 +425,7 @@ machine_at_ficva503a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -461,7 +461,7 @@ machine_at_5emapro_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -496,7 +496,7 @@ machine_at_k6bv3p_a_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 5);
@@ -528,7 +528,7 @@ machine_at_5sg100_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_init_ex(model, 2);
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);

View File

@@ -191,7 +191,7 @@ machine_elt_init(const machine_t *model)
* indicate the correct display type */
device_add(&kbc_xt_device);
device_add(&elt_nvr_device);
device_add_params(model->nvr_device, (void *) model->nvr_params);
io_sethandler(0x11b8, 1, sysstat_in, NULL, NULL, sysstat_out, NULL, NULL, cga);

View File

@@ -444,8 +444,6 @@ ps1_setup(int model)
device_add(&ps1snd_device);
}
device_add(&ps_nvr_device);
}
static void

View File

@@ -229,8 +229,6 @@ ps2_isa_setup(int model, int cpu_type)
mem_remap_top(384);
device_add(&ps_nvr_device);
device_add(&fdc_ps2_device);
/* Enable the builtin HDC. */

View File

@@ -1636,7 +1636,6 @@ machine_ps2_common_init(const machine_t *model)
dma16_init();
ps2_dma_init();
device_add(&ps_no_nmi_nvr_device);
pic2_init();
int pit_type = ((pit_mode == -1 && is486) || pit_mode == 1) ? PIT_8254_FAST : PIT_8254;

View File

@@ -2082,8 +2082,6 @@ machine_xt_tuliptc8_init(const machine_t *model)
nmi_init();
standalone_gameport_type = &gameport_200_device;
device_add(&amstrad_megapc_nvr_device);
return ret;
}
@@ -2134,8 +2132,6 @@ machine_xt_pc5086_init(const machine_t *model)
device_add(&kbc_xt_device);
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
return ret;
}

View File

@@ -207,7 +207,6 @@ machine_xt_xi8088_init(const machine_t *model)
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
device_add(&port_6x_xi8088_device);
nmi_init();
device_add(&ibmat_nvr_device);
pic2_init();
standalone_gameport_type = &gameport_200_device;
device_add(&sst_flash_39sf010_device);

View File

@@ -117,6 +117,9 @@ machine_init_ex(int m)
cpu_fast_off_reset();
pci_flags = 0x00000000;
if (machines[m].nvr_device)
device_add_params(machines[m].nvr_device, (void *) (uintptr_t) machines[m].nvr_params);
}
is_pcjr = 0;

File diff suppressed because it is too large Load Diff

View File

@@ -238,67 +238,59 @@
#include <86box/nvr.h>
/* RTC registers and bit definitions. */
#define RTC_SECONDS 0
#define RTC_ALSECONDS 1
#define AL_DONTCARE 0xc0 /* Alarm time is not set */
#define RTC_MINUTES 2
#define RTC_ALMINUTES 3
#define RTC_HOURS 4
#define RTC_AMPM 0x80 /* PM flag if 12h format in use */
#define RTC_ALHOURS 5
#define RTC_DOW 6
#define RTC_DOM 7
#define RTC_MONTH 8
#define RTC_YEAR 9
#define RTC_REGA 10
#define REGA_UIP 0x80
#define REGA_DV2 0x40
#define REGA_DV1 0x20
#define REGA_DV0 0x10
#define REGA_DV 0x70
#define REGA_RS3 0x08
#define REGA_RS2 0x04
#define REGA_RS1 0x02
#define REGA_RS0 0x01
#define REGA_RS 0x0f
#define RTC_REGB 11
#define REGB_SET 0x80
#define REGB_PIE 0x40
#define REGB_AIE 0x20
#define REGB_UIE 0x10
#define REGB_SQWE 0x08
#define REGB_DM 0x04
#define REGB_2412 0x02
#define REGB_DSE 0x01
#define RTC_REGC 12
#define REGC_IRQF 0x80
#define REGC_PF 0x40
#define REGC_AF 0x20
#define REGC_UF 0x10
#define RTC_REGD 13
#define REGD_VRT 0x80
#define RTC_CENTURY_AT 0x32 /* century register for AT etc */
#define RTC_CENTURY_PS 0x37 /* century register for PS/1 PS/2 */
#define RTC_CENTURY_ELT 0x1A /* century register for Epson Equity LT */
#define RTC_ALDAY 0x7D /* VIA VT82C586B - alarm day */
#define RTC_ALMONTH 0x7E /* VIA VT82C586B - alarm month */
#define RTC_CENTURY_VIA 0x7F /* century register for VIA VT82C586B */
#define RTC_SECONDS 0
#define RTC_ALSECONDS 1
/* Alarm time is not set. */
#define AL_DONTCARE 0xc0
#define RTC_MINUTES 2
#define RTC_ALMINUTES 3
#define RTC_HOURS 4
/* PM flag if 12h format in use. */
#define RTC_AMPM 0x80
#define RTC_ALHOURS 5
#define RTC_DOW 6
#define RTC_DOM 7
#define RTC_MONTH 8
#define RTC_YEAR 9
#define RTC_REGA 10
#define REGA_UIP 0x80
#define REGA_DV2 0x40
#define REGA_DV1 0x20
#define REGA_DV0 0x10
#define REGA_DV 0x70
#define REGA_RS3 0x08
#define REGA_RS2 0x04
#define REGA_RS1 0x02
#define REGA_RS0 0x01
#define REGA_RS 0x0f
#define RTC_REGB 11
#define REGB_SET 0x80
#define REGB_PIE 0x40
#define REGB_AIE 0x20
#define REGB_UIE 0x10
#define REGB_SQWE 0x08
#define REGB_DM 0x04
#define REGB_2412 0x02
#define REGB_DSE 0x01
#define RTC_REGC 12
#define REGC_IRQF 0x80
#define REGC_PF 0x40
#define REGC_AF 0x20
#define REGC_UF 0x10
#define RTC_REGD 13
#define REGD_VRT 0x80
/* VIA VT82C586B - alarm day. */
#define RTC_ALDAY 0x7d
/* VIA VT82C586B - alarm month. */
#define RTC_ALMONTH 0x7e
#define RTC_ALDAY_SIS 0x7E /* Day of Month Alarm for SiS */
#define RTC_ALMONT_SIS 0x7F /* Month Alarm for SiS */
/* Day of Month Alarm for SiS. */
#define RTC_ALDAY_SIS 0x7e
/* Month Alarm for SiS. */
#define RTC_ALMONTH_SIS 0x7f
#define RTC_REGS 14 /* number of registers */
#define FLAG_NO_NMI 0x001
#define FLAG_AMI_1992_HACK 0x002
#define FLAG_AMI_1994_HACK 0x004
#define FLAG_AMI_1995_HACK 0x008
#define FLAG_AMI_1999_HACK 0x010
#define FLAG_AMI_1999J_HACK 0x020
#define FLAG_P6RP4_HACK 0x040
#define FLAG_PIIX4 0x080
#define FLAG_MULTI_BANK 0x100
#define FLAG_MARTIN_HACK 0x200
/* Number of registers. */
#define RTC_REGS 14
typedef struct local_t {
int8_t stat;
@@ -319,6 +311,7 @@ typedef struct local_t {
int16_t state;
uint16_t flags;
uint16_t default_addr;
uint16_t addr[8];
@@ -482,7 +475,7 @@ timer_update(void *priv)
/* Check for any alarms we need to handle. */
if (check_alarm(nvr, RTC_SECONDS) && check_alarm(nvr, RTC_MINUTES) && check_alarm(nvr, RTC_HOURS) &&
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONTH) /* &&
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY_SIS) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONT_SIS) */) {
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY_SIS) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONTH_SIS) */) {
nvr->regs[RTC_REGC] |= REGC_AF;
timer_update_irq(nvr);
}
@@ -1148,108 +1141,34 @@ nvr_at_init(const device_t *info)
local = (local_t *) malloc(sizeof(local_t));
memset(local, 0x00, sizeof(local_t));
nvr->data = local;
nvr->data = local;
/* This is machine specific. */
nvr->size = machines[machine].nvrmask + 1;
local->lock = (uint8_t *) malloc(nvr->size);
nvr->size = (info->local & FLAG_FIXED_SIZE) ? 128 :
(machines[machine].nvrmask + 1);
local->lock = (uint8_t *) malloc(nvr->size);
memset(local->lock, 0x00, nvr->size);
local->def = 0xff /*0x00*/;
local->flags = 0x00;
switch (info->local & 0x0f) {
case 0: /* standard AT, no century register */
if (info->local == 32) {
local->flags |= FLAG_P6RP4_HACK;
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
} else {
nvr->irq = 8;
local->cent = 0xff;
}
break;
case 1: /* standard AT */
case 5: /* AMI WinBIOS 1994 */
case 6: /* AMI BIOS 1995 */
if ((info->local & 0x1f) == 0x11) {
local->flags |= FLAG_PIIX4;
local->def = 0x00;
} else {
local->def = 0x00;
if ((info->local & 0x1f) == 0x15)
local->flags |= FLAG_AMI_1994_HACK;
else if ((info->local & 0x1f) == 0x16)
local->flags |= FLAG_AMI_1995_HACK;
else
local->def = 0xff;
}
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
break;
local->flags = info->local & 0xffff;
local->cent = (info->local >> 16) & 0xff;
local->default_addr = (info->local >> 24) & 0xffff;
local->def = (local->flags & FLAG_ZERO_DEFAULT) ? 0x00 : 0xff;
nvr->irq = (info->local >> 40) & 0xff;
case 2: /* PS/1 or PS/2 */
nvr->irq = 8;
local->cent = RTC_CENTURY_PS;
local->def = 0x00;
if (info->local & 0x10)
local->flags |= FLAG_NO_NMI;
break;
if (nvr->irq == 0xff)
nvr->irq = -1;
else if (nvr->irq == 0xfe)
nvr->irq = device_get_config_int("irq");
case 3: /* Amstrad PC's */
nvr->irq = 1;
local->cent = RTC_CENTURY_AT;
local->def = 0xff;
if (info->local & 0x10)
local->flags |= FLAG_NO_NMI;
break;
if (local->default_addr == 0xfffe)
local->default_addr = device_get_config_hex16("base");
case 4: /* IBM AT */
if (info->local & 0x10) {
local->def = 0x00;
local->flags |= FLAG_AMI_1992_HACK;
} else if ((info->local == 36) || (info->local == 68)) {
local->def = 0x00;
if (info->local == 68)
local->flags |= FLAG_MARTIN_HACK;
} else
local->def = 0xff;
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
break;
if (nvr->is_new && (machines[machine].init == machine_at_spitfire_init))
local->flags |= FLAG_SPITFIRE_HACK;
case 7: /* VIA VT82C586B */
nvr->irq = 8;
local->cent = RTC_CENTURY_VIA;
break;
case 8: /* Epson Equity LT */
nvr->irq = -1;
local->cent = RTC_CENTURY_ELT;
break;
case 9: /* Intel PIIX4 + AMI 1999 hack */
local->flags |= (FLAG_PIIX4 | FLAG_AMI_1999_HACK);
local->def = 0x00;
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
break;
case 0x0a: /* Intel PIIX4 + AMI 1999J hack */
local->flags |= (FLAG_PIIX4 | FLAG_AMI_1999J_HACK);
local->def = 0x00;
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
break;
default:
break;
}
if (info->local & 0x20)
local->def = 0x00;
if (machines[machine].init == machine_at_monsoon_init)
local->def = 0xff;
if (info->local & 0x40)
local->flags |= FLAG_MULTI_BANK;
if (nvr->is_new && (machines[machine].init == machine_at_bx6_init))
local->flags |= FLAG_BX6_HACK;
local->read_addr = 1;
@@ -1276,27 +1195,21 @@ nvr_at_init(const device_t *info)
timer_load_count(nvr);
/* Set up the I/O handler for this device. */
if (info->local == 8) {
io_sethandler(0x11b4, 2,
io_sethandler(local->default_addr, 2,
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
if (local->flags & FLAG_MULTI_ADDRESS)
io_sethandler(local->default_addr + 2, 2,
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
} else {
io_sethandler(0x0070, 2,
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
}
if (((info->local & 0x1f) == 0x11) || ((info->local & 0x1f) == 0x17) ||
((info->local & 0x1f) == 0x18)) {
io_sethandler(0x0072, 2,
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
}
nvr_at_inited = 1;
}
/* This is a hack but it is required for the machine to boot properly, no idea why. */
if (nvr->is_new && (machines[machine].init == machine_at_spitfire_init))
if (nvr->is_new && (local->flags & FLAG_SPITFIRE_HACK))
nvr->regs[0x33] = nvr->regs[0x34] = 0xff;
if (nvr->is_new && (machines[machine].init == machine_at_bx6_init))
if (nvr->is_new && (local->flags & FLAG_BX6_HACK))
nvr->regs[0x39] = 0x09;
return nvr;
@@ -1328,8 +1241,8 @@ nvr_at_close(void *priv)
nvr_at_inited = 0;
}
const device_t at_nvr_old_device = {
.name = "PC/AT NVRAM (No century)",
const device_t nvr_at_device = {
.name = "PC/AT NVRAM",
.internal_name = "at_nvr_old",
.flags = DEVICE_ISA16,
.local = 0,
@@ -1341,255 +1254,3 @@ const device_t at_nvr_old_device = {
.force_redraw = NULL,
.config = NULL
};
const device_t at_nvr_device = {
.name = "PC/AT NVRAM",
.internal_name = "at_nvr",
.flags = DEVICE_ISA16,
.local = 1,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t at_mb_nvr_device = {
.name = "PC/AT NVRAM",
.internal_name = "at_nvr",
.flags = DEVICE_ISA16,
.local = 0x40 | 0x20 | 1,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ps_nvr_device = {
.name = "PS/1 or PS/2 NVRAM",
.internal_name = "ps_nvr",
.flags = DEVICE_ISA16,
.local = 2,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t amstrad_nvr_device = {
.name = "Amstrad NVRAM",
.internal_name = "amstrad_nvr",
.flags = DEVICE_ISA16,
.local = 3,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ibmat_nvr_device = {
.name = "IBM AT NVRAM",
.internal_name = "ibmat_nvr",
.flags = DEVICE_ISA16,
.local = 4,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t piix4_nvr_device = {
.name = "Intel PIIX4 PC/AT NVRAM",
.internal_name = "piix4_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 1,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ps_no_nmi_nvr_device = {
.name = "PS/1 or PS/2 NVRAM (No NMI)",
.internal_name = "ps1_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 2,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t amstrad_no_nmi_nvr_device = {
.name = "Amstrad NVRAM (No NMI)",
.internal_name = "amstrad_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 3,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ami_1992_nvr_device = {
.name = "AMI Color 1992 PC/AT NVRAM",
.internal_name = "ami_1992_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 4,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ami_1994_nvr_device = {
.name = "AMI WinBIOS 1994 PC/AT NVRAM",
.internal_name = "ami_1994_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 5,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t ami_1995_nvr_device = {
.name = "AMI WinBIOS 1995 PC/AT NVRAM",
.internal_name = "ami_1995_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 6,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t via_nvr_device = {
.name = "VIA PC/AT NVRAM",
.internal_name = "via_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 7,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t piix4_ami_1995_nvr_device = {
.name = "Intel PIIX4 AMI WinBIOS 1995 PC/AT NVRAM",
.internal_name = "piix4_ami_1995_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 9,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t piix4_ami_1995j_nvr_device = {
.name = "Intel PIIX4 AMI WinBIOS 1995J PC/AT NVRAM",
.internal_name = "piix4_ami_1995j_nvr",
.flags = DEVICE_ISA16,
.local = 0x10 | 10,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t p6rp4_nvr_device = {
.name = "ASUS P/I-P6RP4 PC/AT NVRAM",
.internal_name = "p6rp4_nvr",
.flags = DEVICE_ISA16,
.local = 32,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t amstrad_megapc_nvr_device = {
.name = "Amstrad MegaPC NVRAM",
.internal_name = "amstrad_megapc_nvr",
.flags = DEVICE_ISA16,
.local = 36,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t martin_nvr_device = {
.name = "Zeos Martin NVRAM",
.internal_name = "martin_nvr",
.flags = DEVICE_ISA16,
.local = 68,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};
const device_t elt_nvr_device = {
.name = "Epson Equity LT NVRAM",
.internal_name = "elt_nvr",
.flags = DEVICE_ISA,
.local = 8,
.init = nvr_at_init,
.close = nvr_at_close,
.reset = nvr_at_reset,
.available = NULL,
.speed_changed = nvr_at_speed_changed,
.force_redraw = NULL,
.config = NULL
};

View File

@@ -2323,7 +2323,6 @@ ql_sxp_begin_response_entry(ql_sxp_req_t *pkt, isp_req_status_t *resp)
static double
ql_sxp_handle_state_send_cdb_bios(ql_t *dev, scsi_device_t *sd)
{
ql_sxp_req_t *pkt = &dev->pkt;
isp_req_status_t *resp = &dev->pkt_resp;
double media_period = 10.0;
uint64_t bytes_xfered = 0;

View File

@@ -298,7 +298,7 @@ f82c606_init(const device_t *info)
{
upc_t *dev = (upc_t *) calloc(1, sizeof(upc_t));
dev->nvr = device_add(&at_nvr_old_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_OLD);
dev->gameport = gameport_add(&gameport_sio_device);
dev->uart[0] = device_add_inst(&ns16450_device, 1);

View File

@@ -1892,7 +1892,7 @@ fdc37c93x_init(const device_t *info)
dev->port_370 = !!(info->local & FDC37XXXX_370);
if (dev->has_nvr) {
dev->nvr = device_add(&amstrad_megapc_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_ZERO_DEFAULT);
nvr_bank_set(0, 0, dev->nvr);
nvr_bank_set(1, 0xff, dev->nvr);

View File

@@ -486,7 +486,7 @@ pc87306_init(UNUSED(const device_t *info))
dev->lpt = device_add_inst(&lpt_port_device, 1);
lpt_set_cnfga_readout(dev->lpt, 0x10);
dev->nvr = device_add(&at_mb_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
switch (dev->kbc_type) {
case PCX730X_AMI:

View File

@@ -135,11 +135,12 @@ vl82c113_init(UNUSED(const device_t *info))
vl82c113_t *dev = (vl82c113_t *) calloc(1, sizeof(vl82c113_t));
if (machines[machine].init == machine_at_martin_init)
dev->nvr = device_add(&martin_nvr_device);
else if (machines[machine].init == machine_at_sensation1_init || machines[machine].init == machine_at_sensation2_init)
dev->nvr = device_add(&at_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_MARTIN);
else if ((machines[machine].init == machine_at_monsoon_init) || (machines[machine].init == machine_at_sensation1_init) ||
(machines[machine].init == machine_at_sensation2_init))
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT);
else
dev->nvr = device_add(&amstrad_megapc_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_ZERO_DEFAULT);
dev->nvr_enabled = 1;
dev->nvr_base = 0x0070;

View File

@@ -1287,7 +1287,7 @@ w83977_init(const device_t *info)
dev->has_nvr = !(info->local & W83977_NO_NVR);
if (dev->has_nvr && (dev->id != 1)) {
dev->nvr = device_add(&amstrad_megapc_nvr_device);
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_ZERO_DEFAULT);
nvr_bank_set(0, 0, dev->nvr);
}