diff --git a/src/disk/hdc.c b/src/disk/hdc.c index c2a6c8513..f6a6b5117 100644 --- a/src/disk/hdc.c +++ b/src/disk/hdc.c @@ -8,13 +8,13 @@ * * Common code to handle all sorts of disk controllers. * - * Version: @(#)hdc.c 1.0.8 2017/12/15 + * Version: @(#)hdc.c 1.0.9 2018/02/14 * * Authors: Miran Grca, * Fred N. van Kempen, * - * Copyright 2016,2017 Miran Grca. - * Copyright 2017 Fred N. van Kempen. + * Copyright 2016-2018 Miran Grca. + * Copyright 2017,2018 Fred N. van Kempen. */ #include #include @@ -97,27 +97,36 @@ static struct { { "[ISA] [IDE] PC/AT IDE Adapter", "ide_isa", &ide_isa_device, 0 }, - { "[ISA] [IDE] PC/XT XTIDE", "xtide", - &xtide_device , 0 }, + { "[ISA] [IDE] PC/AT IDE Adapter (Dual-Channel)", "ide_isa_2ch", + &ide_isa_2ch_device, 0 }, { "[ISA] [IDE] PC/AT XTIDE", "xtide_at", &xtide_at_device, 0 }, - { "[ISA] [IDE] PS/2 XTIDE (Acculogic)", "xtide_ps2", - &xtide_ps2_device, 0 }, - { "[ISA] [IDE] PS/2 AT XTIDE (1.1.5)", "xtide_at_ps2", &xtide_at_ps2_device, 0 }, + { "[ISA] [XT IDE] Acculogic XT IDE", "xtide_acculogic", + &xtide_acculogic_device, 0 }, + + { "[ISA] [XT IDE] PC/XT XTIDE", "xtide", + &xtide_device , 0 }, + { "[MCA] [ESDI] IBM PS/2 ESDI Fixed Disk Adapter","esdi_mca", &esdi_ps2_device, 1 }, { "[PCI] [IDE] PCI IDE Adapter", "ide_pci", &ide_pci_device, 0 }, + { "[PCI] [IDE] PCI IDE Adapter (Dual-Channel)", "ide_pci_2ch", + &ide_pci_2ch_device, 0 }, + { "[VLB] [IDE] PC/AT IDE Adapter", "vlb_isa", &ide_vlb_device, 0 }, + { "[VLB] [IDE] PC/AT IDE Adapter (Dual-Channel)", "vlb_isa_2ch", + &ide_vlb_2ch_device, 0 }, + { "", "", NULL, 0 } }; diff --git a/src/disk/hdc.h b/src/disk/hdc.h index 92dbcffff..3066a579b 100644 --- a/src/disk/hdc.h +++ b/src/disk/hdc.h @@ -8,13 +8,13 @@ * * Definitions for the common disk controller handler. * - * Version: @(#)hdc.h 1.0.4 2017/12/15 + * Version: @(#)hdc.h 1.0.5 2018/02/14 * * Authors: Miran Grca, * Fred N. van Kempen, * - * Copyright 2016,2017 Miran Grca. - * Copyright 2017 Fred N. van Kempen. + * Copyright 2016-2018 Miran Grca. + * Copyright 2017,2018 Fred N. van Kempen. */ #ifndef EMU_HDC_H # define EMU_HDC_H @@ -40,12 +40,16 @@ extern device_t esdi_at_wd1007vse1_device; /* esdi_at */ extern device_t esdi_ps2_device; /* esdi_mca */ extern device_t ide_isa_device; /* isa_ide */ -extern device_t ide_pci_device; /* pci_ide */ +extern device_t ide_isa_2ch_device; /* isa_ide_2ch */ +extern device_t ide_isa_2ch_opt_device; /* isa_ide_2ch_opt */ extern device_t ide_vlb_device; /* vlb_ide */ +extern device_t ide_vlb_2ch_device; /* vlb_ide_2ch */ +extern device_t ide_pci_device; /* pci_ide */ +extern device_t ide_pci_2ch_device; /* pci_ide_2ch */ extern device_t xtide_device; /* xtide_xt */ extern device_t xtide_at_device; /* xtide_at */ -extern device_t xtide_ps2_device; /* xtide_ps2 */ +extern device_t xtide_acculogic_device; /* xtide_ps2 */ extern device_t xtide_at_ps2_device; /* xtide_at_ps2 */ diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index e1a7ae764..2de441abb 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -9,7 +9,7 @@ * Implementation of the IDE emulation for hard disks and ATAPI * CD-ROM devices. * - * Version: @(#)hdc_ide.c 1.0.25 2018/02/08 + * Version: @(#)hdc_ide.c 1.0.26 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -106,6 +106,7 @@ int (*ide_bus_master_write)(int channel, uint8_t *data, int transfer_length); void (*ide_bus_master_set_irq)(int channel); int64_t idecallback[5] = {0LL, 0LL, 0LL, 0LL, 0LL}; int cur_ide[5]; +int ide_init_ch[2] = {0, 0}; #ifdef ENABLE_IDE_LOG @@ -2701,16 +2702,6 @@ void ide_init_first(void) } -void ide_init(void) -{ - ide_pri_enable(); - ide_sec_enable(); - - timer_add(ide_callback_pri, &idecallback[0], &idecallback[0], NULL); - timer_add(ide_callback_sec, &idecallback[1], &idecallback[1], NULL); -} - - void ide_xtide_init(void) { ide_bus_master_read = ide_bus_master_write = NULL; @@ -2731,21 +2722,18 @@ void secondary_ide_check(void) int secondary_cdroms = 0; int secondary_zips = 0; - for (i=0; i= 2) && (zip_drives[i].ide_channel <= 3) && ((zip_drives[i].bus_type == ZIP_BUS_ATAPI_PIO_ONLY) || (zip_drives[i].bus_type == ZIP_BUS_ATAPI_PIO_AND_DMA))) - { secondary_zips++; - } } - for (i=0; i= 2) && (cdrom_drives[i].ide_channel <= 3) && ((cdrom_drives[i].bus_type == CDROM_BUS_ATAPI_PIO_ONLY) || (cdrom_drives[i].bus_type == CDROM_BUS_ATAPI_PIO_AND_DMA))) - { secondary_cdroms++; - } } - if (!secondary_zips && !secondary_cdroms) ide_sec_disable(); + if (!secondary_zips && !secondary_cdroms) { + ide_sec_disable(); + ide_init_ch[1] = 0; + } } @@ -2762,20 +2750,29 @@ ide_sainit(device_t *info) { switch(info->local) { case 0: /* ISA, single-channel */ - ide_pri_enable(); - ide_bus_master_read = ide_bus_master_write = NULL; - timer_add(ide_callback_pri, &idecallback[0], &idecallback[0], NULL); - break; + case 2: /* ISA, dual-channel */ + case 3: /* ISA, dual-channel, optional 2nd channel */ + case 4: /* VLB, single-channel */ + case 6: /* VLB, dual-channel */ + case 8: /* PCI, single-channel */ + case 10: /* PCI, dual-channel */ + if (!ide_init_ch[0]) { + ide_pri_enable(); + timer_add(ide_callback_pri, &idecallback[0], &idecallback[0], NULL); + ide_init_ch[0] = 1; + } - case 1: /* VLB, single-channel */ - ide_pri_enable(); - ide_bus_master_read = ide_bus_master_write = NULL; - timer_add(ide_callback_pri, &idecallback[0], &idecallback[0], NULL); - break; + if ((info->local & 2) && !ide_init_ch[1]) { + ide_sec_enable(); + timer_add(ide_callback_sec, &idecallback[1], &idecallback[1], NULL); + ide_init_ch[1] = 1; - case 2: /* PCI, single-channel */ - ide_pri_enable(); - timer_add(ide_callback_pri, &idecallback[0], &idecallback[0], NULL); + if (info->local & 1) + secondary_ide_check(); + } + + if (!(info->local & 8)) + ide_bus_master_read = ide_bus_master_write = NULL; break; } @@ -2787,6 +2784,7 @@ ide_sainit(device_t *info) static void ide_saclose(void *priv) { + ide_init_ch[0] = ide_init_ch[1] = 0; } @@ -2799,19 +2797,55 @@ device_t ide_isa_device = { NULL }; -device_t ide_pci_device = { - "PCI IDE Controller", - DEVICE_PCI | DEVICE_AT, +device_t ide_isa_2ch_device = { + "ISA PC/AT IDE Controller (Dual-Channel)", + DEVICE_ISA | DEVICE_AT, 2, ide_sainit, ide_saclose, NULL, NULL, NULL, NULL, NULL, NULL }; +device_t ide_isa_2ch_opt_device = { + "ISA PC/AT IDE Controller (Single/Dual)", + DEVICE_ISA | DEVICE_AT, + 3, + ide_sainit, ide_saclose, NULL, + NULL, NULL, NULL, NULL, + NULL +}; + device_t ide_vlb_device = { "VLB IDE Controller", DEVICE_VLB | DEVICE_AT, - 1, + 4, + ide_sainit, ide_saclose, NULL, + NULL, NULL, NULL, NULL, + NULL +}; + +device_t ide_vlb_2ch_device = { + "VLB IDE Controller (Dual-Channel)", + DEVICE_VLB | DEVICE_AT, + 6, + ide_sainit, ide_saclose, NULL, + NULL, NULL, NULL, NULL, + NULL +}; + +device_t ide_pci_device = { + "PCI IDE Controller", + DEVICE_PCI | DEVICE_AT, + 8, + ide_sainit, ide_saclose, NULL, + NULL, NULL, NULL, NULL, + NULL +}; + +device_t ide_pci_2ch_device = { + "PCI IDE Controller (Dual-Channel)", + DEVICE_PCI | DEVICE_AT, + 10, ide_sainit, ide_saclose, NULL, NULL, NULL, NULL, NULL, NULL diff --git a/src/disk/hdc_ide.h b/src/disk/hdc_ide.h index e4d85fa07..ce3cd8436 100644 --- a/src/disk/hdc_ide.h +++ b/src/disk/hdc_ide.h @@ -9,12 +9,12 @@ * Implementation of the IDE emulation for hard disks and ATAPI * CD-ROM devices. * - * Version: @(#)hdd_ide.h 1.0.5 2017/10/26 + * Version: @(#)hdd_ide.h 1.0.6 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, - * Copyright 2008-2017 Sarah Walker. - * Copyright 2016,2017 Miran Grca. + * Copyright 2008-2018 Sarah Walker. + * Copyright 2016-2018 Miran Grca. */ #ifndef EMU_IDE_H # define EMU_IDE_H @@ -82,7 +82,7 @@ extern void ide_set_base(int controller, uint16_t port); extern void ide_set_side(int controller, uint16_t port); extern void ide_init_first(void); -extern void ide_init(void); + extern void ide_reset(void); extern void ide_reset_hard(void); diff --git a/src/disk/hdc_xtide.c b/src/disk/hdc_xtide.c index 9c8f239c6..6948869f8 100644 --- a/src/disk/hdc_xtide.c +++ b/src/disk/hdc_xtide.c @@ -21,15 +21,15 @@ * already on their way out, the newer IDE standard based on the * PC/AT controller and 16b design became the IDE we now know. * - * Version: @(#)hdc_xtide.c 1.0.10 2017/11/04 + * Version: @(#)hdc_xtide.c 1.0.11 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, * Fred N. van Kempen, * - * Copyright 2008-2017 Sarah Walker. - * Copyright 2016,2017 Miran Grca. - * Copyright 2017 Fred N. van Kempen. + * Copyright 2008-2018 Sarah Walker. + * Copyright 2016-2018 Miran Grca. + * Copyright 2017,2018 Fred N. van Kempen. */ #include #include @@ -163,7 +163,7 @@ xtide_at_init(device_t *info) rom_init(&xtide->bios_rom, ROM_PATH_AT, 0xc8000, 0x4000, 0x3fff, 0, MEM_MAPPING_EXTERNAL); - ide_init(); + device_add(&ide_isa_2ch_device); return(xtide); } @@ -177,7 +177,7 @@ xtide_at_available(void) static void * -xtide_ps2_init(device_t *info) +xtide_acculogic_init(device_t *info) { xtide_t *xtide = malloc(sizeof(xtide_t)); @@ -197,7 +197,7 @@ xtide_ps2_init(device_t *info) static int -xtide_ps2_available(void) +xtide_acculogic_available(void) { return(rom_present(ROM_PATH_PS2)); } @@ -213,7 +213,7 @@ xtide_at_ps2_init(device_t *info) rom_init(&xtide->bios_rom, ROM_PATH_PS2AT, 0xc8000, 0x4000, 0x3fff, 0, MEM_MAPPING_EXTERNAL); - ide_init(); + device_add(&ide_isa_2ch_device); return(xtide); } @@ -253,12 +253,12 @@ device_t xtide_at_device = { NULL }; -device_t xtide_ps2_device = { +device_t xtide_acculogic_device = { "XTIDE (Acculogic)", DEVICE_ISA, 0, - xtide_ps2_init, xtide_close, NULL, - xtide_ps2_available, NULL, NULL, NULL, + xtide_acculogic_init, xtide_close, NULL, + xtide_acculogic_available, NULL, NULL, NULL, NULL }; diff --git a/src/intel_piix.c b/src/intel_piix.c index 4fc3ac0d6..db76455dc 100644 --- a/src/intel_piix.c +++ b/src/intel_piix.c @@ -10,7 +10,7 @@ * word 0 - base address * word 1 - bits 1-15 = byte count, bit 31 = end of transfer * - * Version: @(#)intel_piix.c 1.0.11 2018/02/01 + * Version: @(#)intel_piix.c 1.0.12 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -733,6 +733,8 @@ void piix3_reset(void) void piix_init(int card) { + device_add(&ide_pci_2ch_device); + pci_add_card(card, piix_read, piix_write, NULL); piix_reset(); @@ -755,6 +757,8 @@ void piix_init(int card) void piix3_init(int card) { + device_add(&ide_pci_2ch_device); + pci_add_card(card, piix_read, piix_write, NULL); piix3_reset(); diff --git a/src/intel_piix4.c b/src/intel_piix4.c index fa3b795bd..ed4b49335 100644 --- a/src/intel_piix4.c +++ b/src/intel_piix4.c @@ -10,13 +10,13 @@ * word 0 - base address * word 1 - bits 1-15 = byte count, bit 31 = end of transfer * - * Version: @(#)intel_piix4.c 1.0.2 2017/11/11 + * Version: @(#)intel_piix4.c 1.0.3 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, * - * Copyright 2008-2017 Sarah Walker. - * Copyright 2016,2017 Miran Grca. + * Copyright 2008-2018 Sarah Walker. + * Copyright 2016-2018 Miran Grca. */ #include #include @@ -375,6 +375,8 @@ void piix4_reset(void) void piix4_init(int card) { + device_add(&ide_pci_2ch_device); + pci_add_card(card, piix4_read, piix4_write, NULL); piix4_reset(); diff --git a/src/machine/m_at.c b/src/machine/m_at.c index 6dd7e6cc6..df8227881 100644 --- a/src/machine/m_at.c +++ b/src/machine/m_at.c @@ -15,7 +15,6 @@ #include "../keyboard.h" #include "../lpt.h" #include "../disk/hdc.h" -#include "../disk/hdc_ide.h" #include "machine.h" @@ -61,7 +60,7 @@ machine_at_common_ide_init(machine_t *model) { machine_at_common_init(model); - ide_init(); + device_add(&ide_isa_2ch_opt_device); } @@ -70,7 +69,7 @@ machine_at_ide_init(machine_t *model) { machine_at_init(model); - ide_init(); + device_add(&ide_isa_2ch_opt_device); } @@ -79,7 +78,7 @@ machine_at_ps2_ide_init(machine_t *model) { machine_at_ps2_init(model); - ide_init(); + device_add(&ide_isa_2ch_opt_device); } diff --git a/src/machine/m_at_430fx.c b/src/machine/m_at_430fx.c index 9056ff661..3cc00aa3b 100644 --- a/src/machine/m_at_430fx.c +++ b/src/machine/m_at_430fx.c @@ -8,7 +8,7 @@ * * Implementation of the Intel 430FX PCISet chip. * - * Version: @(#)m_at_430fx.c 1.0.11 2018/02/09 + * Version: @(#)m_at_430fx.c 1.0.12 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -208,7 +208,7 @@ static void i430fx_init(void) void machine_at_p54tp4xe_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -229,7 +229,7 @@ machine_at_p54tp4xe_init(machine_t *model) void machine_at_endeavor_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); @@ -262,7 +262,7 @@ at_endeavor_get_device(void) void machine_at_zappa_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); @@ -283,7 +283,7 @@ machine_at_zappa_init(machine_t *model) void machine_at_mb500n_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); pci_init(PCI_CONFIG_TYPE_1); pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0); @@ -303,7 +303,7 @@ machine_at_mb500n_init(machine_t *model) void machine_at_president_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -324,7 +324,7 @@ machine_at_president_init(machine_t *model) void machine_at_thor_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); diff --git a/src/machine/m_at_430hx.c b/src/machine/m_at_430hx.c index 75e44be96..5e734158f 100644 --- a/src/machine/m_at_430hx.c +++ b/src/machine/m_at_430hx.c @@ -8,7 +8,7 @@ * * Implementation of the Intel 430HX PCISet chip. * - * Version: @(#)m_at_430hx.c 1.0.10 2018/01/04 + * Version: @(#)m_at_430hx.c 1.0.11 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -218,7 +218,7 @@ acerm3a_in(uint16_t port, void *p) void machine_at_acerm3a_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); powermate_memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -241,7 +241,7 @@ machine_at_acerm3a_init(machine_t *model) void machine_at_acerv35n_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); powermate_memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -264,7 +264,7 @@ machine_at_acerv35n_init(machine_t *model) void machine_at_ap53_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); @@ -288,7 +288,7 @@ machine_at_ap53_init(machine_t *model) void machine_at_p55t2p4_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -309,7 +309,7 @@ machine_at_p55t2p4_init(machine_t *model) void machine_at_p55t2s_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); diff --git a/src/machine/m_at_430lx_nx.c b/src/machine/m_at_430lx_nx.c index 58d4d447f..865a85204 100644 --- a/src/machine/m_at_430lx_nx.c +++ b/src/machine/m_at_430lx_nx.c @@ -8,7 +8,7 @@ * * Implementation of the Intel 430LX and 430NX PCISet chips. * - * Version: @(#)m_at_430lx_nx.c 1.0.9 2018/01/04 + * Version: @(#)m_at_430lx_nx.c 1.0.10 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -213,7 +213,7 @@ static void i430nx_init(void) static void machine_at_premiere_common_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); diff --git a/src/machine/m_at_430vx.c b/src/machine/m_at_430vx.c index a57b6aa5d..07d5ebf23 100644 --- a/src/machine/m_at_430vx.c +++ b/src/machine/m_at_430vx.c @@ -8,7 +8,7 @@ * * Implementation of the Intel 430VX PCISet chip. * - * Version: @(#)m_at_430vx.c 1.0.10 2018/01/04 + * Version: @(#)m_at_430vx.c 1.0.11 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -195,7 +195,7 @@ void i430vx_init(void) void machine_at_p55tvp4_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -216,7 +216,7 @@ machine_at_p55tvp4_init(machine_t *model) void machine_at_i430vx_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -237,7 +237,7 @@ machine_at_i430vx_init(machine_t *model) void machine_at_p55va_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); pci_init(PCI_CONFIG_TYPE_1); pci_register_slot(0x00, PCI_CARD_SPECIAL, 0, 0, 0, 0); diff --git a/src/machine/m_at_440fx.c b/src/machine/m_at_440fx.c index b972d30aa..13747304f 100644 --- a/src/machine/m_at_440fx.c +++ b/src/machine/m_at_440fx.c @@ -8,7 +8,7 @@ * * Implementation of the Intel 440FX PCISet chip. * - * Version: @(#)m_at_440fx.c 1.0.9 2018/01/04 + * Version: @(#)m_at_440fx.c 1.0.10 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -197,7 +197,7 @@ static void i440fx_init(void) void machine_at_i440fx_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); @@ -219,7 +219,7 @@ machine_at_i440fx_init(machine_t *model) void machine_at_s1668_init(machine_t *model) { - machine_at_common_ide_init(model); + machine_at_common_init(model); device_add(&keyboard_ps2_ami_device); memregs_init(); diff --git a/src/machine/m_at_compaq.c b/src/machine/m_at_compaq.c index 0bb79f561..4c0705cc9 100644 --- a/src/machine/m_at_compaq.c +++ b/src/machine/m_at_compaq.c @@ -8,7 +8,7 @@ * * Emulation of various Compaq PC's. * - * Version: @(#)m_at_compaq.c 1.0.3 2018/01/16 + * Version: @(#)m_at_compaq.c 1.0.4 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -112,7 +112,7 @@ machine_at_compaq_init(machine_t *model) #ifdef PORTABLE3 case ROM_DESKPRO_386: if (hdc_current == 1) - ide_init(); + device_add(&ide_isa_device); break; #endif @@ -130,7 +130,7 @@ machine_at_compaq_init(machine_t *model) case ROM_PORTABLEIII386: machine_olim24_video_init(); if (hdc_current == 1) - ide_init(); + device_add(&ide_isa_device); break; #endif } diff --git a/src/machine/m_at_sis_85c496.c b/src/machine/m_at_sis_85c496.c index 6e2c1c57c..8e0fe7064 100644 --- a/src/machine/m_at_sis_85c496.c +++ b/src/machine/m_at_sis_85c496.c @@ -8,11 +8,13 @@ #include #include "../86box.h" #include "../cpu/cpu.h" +#include "../device.h" #include "../io.h" #include "../pci.h" #include "../mem.h" #include "../memregs.h" #include "../sio.h" +#include "../disk/hdc.h" #include "machine.h" @@ -162,7 +164,8 @@ static void sis_85c496_init(void) static void machine_at_sis_85c496_common_init(machine_t *model) { - machine_at_ps2_ide_init(model); + machine_at_ps2_init(model); + device_add(&ide_pci_device); memregs_init(); pci_init(PCI_CONFIG_TYPE_1); diff --git a/src/machine/m_ps1.c b/src/machine/m_ps1.c index 35233a4ed..482fc2430 100644 --- a/src/machine/m_ps1.c +++ b/src/machine/m_ps1.c @@ -28,7 +28,7 @@ * boot. Sometimes, they do, and then it shows an "Incorrect * DOS" error message?? --FvK * - * Version: @(#)m_ps1.c 1.0.5 2018/01/16 + * Version: @(#)m_ps1.c 1.0.6 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -549,7 +549,7 @@ ps1_common_init(machine_t *model) nvr_at_init(8); if (romset != ROM_IBMPS1_2011) - ide_init(); + device_add(&ide_isa_device); device_add(&keyboard_ps2_device);