This commit is contained in:
Jasmine Iwanek
2022-03-13 09:37:19 -04:00
parent a7edaf0608
commit 369f6774f9
12 changed files with 424 additions and 271 deletions

View File

@@ -52,49 +52,60 @@ hdc_log(const char *fmt, ...)
#define hdc_log(fmt, ...) #define hdc_log(fmt, ...)
#endif #endif
static void * static void *
null_init(const device_t *info) nullhdc_init(const device_t *info)
{ {
return(NULL); return(NULL);
} }
static void static void
null_close(void *priv) nullhdc_close(void *priv)
{ {
} }
static void * static void *
inthdc_init(const device_t *info) inthdc_init(const device_t *info)
{ {
return(NULL); return(NULL);
} }
static void static void
inthdc_close(void *priv) inthdc_close(void *priv)
{ {
} }
static const device_t hdc_none_device = { static const device_t hdc_none_device = {
"None", "none", 0, 0, .name = "None",
null_init, null_close, NULL, .internal_name = "none",
{ NULL }, NULL, NULL, NULL .flags = 0,
}; .local = 0,
static const device_t hdc_internal_device = { .init = nullhdc_init,
"Internal", "internal", 0, 0, .close = nullhdc_close,
inthdc_init, inthdc_close, NULL, .reset = NULL,
{ NULL }, NULL, NULL, NULL { .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
static const device_t hdc_internal_device = {
.name = "Internal",
.internal_name = "internal",
.flags = 0,
.local = 0,
.init = inthdc_init,
.close = inthdc_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
static const struct { static const struct {
// clang-format off
const device_t *device; const device_t *device;
} controllers[] = { } controllers[] = {
// clang-format off
{ &hdc_none_device }, { &hdc_none_device },
{ &hdc_internal_device }, { &hdc_internal_device },
{ &st506_xt_xebec_device }, { &st506_xt_xebec_device },
@@ -118,7 +129,7 @@ static const struct {
{ &ide_pci_2ch_device }, { &ide_pci_2ch_device },
{ &ide_vlb_device }, { &ide_vlb_device },
{ &ide_vlb_2ch_device }, { &ide_vlb_2ch_device },
{ NULL } { NULL }
// clang-format on // clang-format on
}; };

View File

@@ -845,12 +845,15 @@ wd1007vse1_available(void)
const device_t esdi_at_wd1007vse1_device = { const device_t esdi_at_wd1007vse1_device = {
"Western Digital WD1007V-SE1 (ESDI)", .name = "Western Digital WD1007V-SE1 (ESDI)",
"esdi_at", .internal_name = "esdi_at",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
0, .local = 0,
wd1007vse1_init, wd1007vse1_close, NULL, .init = wd1007vse1_init,
{ wd1007vse1_available }, .close = wd1007vse1_close,
NULL, NULL, .reset = NULL,
NULL { .available = wd1007vse1_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -1180,9 +1180,15 @@ esdi_available(void)
const device_t esdi_ps2_device = { const device_t esdi_ps2_device = {
"IBM PS/2 ESDI Fixed Disk Adapter (MCA)", .name = "IBM PS/2 ESDI Fixed Disk Adapter (MCA)",
"esdi_mca", .internal_name = "esdi_mca",
DEVICE_MCA, 0, .flags = DEVICE_MCA,
esdi_init, esdi_close, NULL, .local = 0,
{ esdi_available }, NULL, NULL, NULL .init = esdi_init,
.close = esdi_close,
.reset = NULL,
{ .available = esdi_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -3064,57 +3064,87 @@ ide_close(void *priv)
const device_t ide_isa_device = { const device_t ide_isa_device = {
"ISA PC/AT IDE Controller", .name = "ISA PC/AT IDE Controller",
"ide_isa", .internal_name = "ide_isa",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
0, .local = 0,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_isa_2ch_device = { const device_t ide_isa_2ch_device = {
"ISA PC/AT IDE Controller (Dual-Channel)", .name = "ISA PC/AT IDE Controller (Dual-Channel)",
"ide_isa_2ch", .internal_name = "ide_isa_2ch",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
1, .local = 1,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_vlb_device = { const device_t ide_vlb_device = {
"VLB IDE Controller", .name = "VLB IDE Controller",
"ide_vlb", .internal_name = "ide_vlb",
DEVICE_VLB | DEVICE_AT, .flags = DEVICE_VLB | DEVICE_AT,
2, .local = 2,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_vlb_2ch_device = { const device_t ide_vlb_2ch_device = {
"VLB IDE Controller (Dual-Channel)", .name = "VLB IDE Controller (Dual-Channel)",
"ide_vlb_2ch", .internal_name = "ide_vlb_2ch",
DEVICE_VLB | DEVICE_AT, .flags = DEVICE_VLB | DEVICE_AT,
3, .local = 3,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_pci_device = { const device_t ide_pci_device = {
"PCI IDE Controller", .name = "PCI IDE Controller",
"ide_pci", .internal_name = "ide_pci",
DEVICE_PCI | DEVICE_AT, .flags = DEVICE_PCI | DEVICE_AT,
4, .local = 4,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_pci_2ch_device = { const device_t ide_pci_2ch_device = {
"PCI IDE Controller (Dual-Channel)", .name = "PCI IDE Controller (Dual-Channel)",
"ide_pci_2ch", .internal_name = "ide_pci_2ch",
DEVICE_PCI | DEVICE_AT, .flags = DEVICE_PCI | DEVICE_AT,
5, .local = 5,
ide_init, ide_close, ide_reset, .init = ide_init,
{ NULL }, NULL, NULL, NULL .close = ide_close,
.reset = ide_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
// clang-format off // clang-format off
@@ -3160,41 +3190,57 @@ static const device_config_t ide_qua_config[] = {
// clang-format on // clang-format on
const device_t ide_ter_device = { const device_t ide_ter_device = {
"Tertiary IDE Controller", .name = "Tertiary IDE Controller",
"ide_ter", .internal_name = "ide_ter",
DEVICE_AT, .flags = DEVICE_AT,
0, .local = 0,
ide_ter_init, ide_ter_close, NULL, .init = ide_ter_init,
{ NULL }, NULL, NULL, .close = ide_ter_close,
ide_ter_config .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = ide_ter_config
}; };
const device_t ide_ter_pnp_device = { const device_t ide_ter_pnp_device = {
"Tertiary IDE Controller (Plug and Play only)", .name = "Tertiary IDE Controller (Plug and Play only)",
"ide_ter_pnp", .internal_name = "ide_ter_pnp",
DEVICE_AT, .flags = DEVICE_AT,
1, .local = 1,
ide_ter_init, ide_ter_close, NULL, .init = ide_ter_init,
{ NULL }, NULL, NULL, .close = ide_ter_close,
NULL .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_qua_device = { const device_t ide_qua_device = {
"Quaternary IDE Controller", .name = "Quaternary IDE Controller",
"ide_qua", .internal_name = "ide_qua",
DEVICE_AT, .flags = DEVICE_AT,
0, .local = 0,
ide_qua_init, ide_qua_close, NULL, .init = ide_qua_init,
{ NULL }, NULL, NULL, .close = ide_qua_close,
ide_qua_config .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = ide_qua_config
}; };
const device_t ide_qua_pnp_device = { const device_t ide_qua_pnp_device = {
"Quaternary IDE Controller (Plug and Play only)", .name = "Quaternary IDE Controller (Plug and Play only)",
"ide_qua_pnp", .internal_name = "ide_qua_pnp",
DEVICE_AT, .flags = DEVICE_AT,
1, .local = 1,
ide_qua_init, ide_qua_close, NULL, .init = ide_qua_init,
{ NULL }, NULL, NULL, .close = ide_qua_close,
ide_qua_config .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = ide_qua_config
}; };

View File

@@ -493,51 +493,71 @@ cmd640_init(const device_t *info)
const device_t ide_cmd640_vlb_device = { const device_t ide_cmd640_vlb_device = {
"CMD PCI-0640B VLB", .name = "CMD PCI-0640B VLB",
"ide_cmd640_vlb", .internal_name = "ide_cmd640_vlb",
DEVICE_VLB, .flags = DEVICE_VLB,
0x0078, .local = 0x0078,
cmd640_init, cmd640_close, cmd640_reset, .init = cmd640_init,
{ NULL }, NULL, NULL, .close = cmd640_close,
NULL .reset = cmd640_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd640_vlb_178_device = { const device_t ide_cmd640_vlb_178_device = {
"CMD PCI-0640B VLB (Port 178h)", .name = "CMD PCI-0640B VLB (Port 178h)",
"ide_cmd640_vlb_178", .internal_name = "ide_cmd640_vlb_178",
DEVICE_VLB, .flags = DEVICE_VLB,
0x0178, .local = 0x0178,
cmd640_init, cmd640_close, cmd640_reset, .init = cmd640_init,
{ NULL }, NULL, NULL, .close = cmd640_close,
NULL .reset = cmd640_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd640_pci_device = { const device_t ide_cmd640_pci_device = {
"CMD PCI-0640B PCI", .name = "CMD PCI-0640B PCI",
"ide_cmd640_pci", .internal_name = "ide_cmd640_pci",
DEVICE_PCI, .flags = DEVICE_PCI,
0x0a, .local = 0x0a,
cmd640_init, cmd640_close, cmd640_reset, .init = cmd640_init,
{ NULL }, NULL, NULL, .close = cmd640_close,
NULL .reset = cmd640_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd640_pci_legacy_only_device = { const device_t ide_cmd640_pci_legacy_only_device = {
"CMD PCI-0640B PCI (Legacy Mode Only)", .name = "CMD PCI-0640B PCI (Legacy Mode Only)",
"ide_cmd640_pci_legacy_only", .internal_name = "ide_cmd640_pci_legacy_only",
DEVICE_PCI, .flags = DEVICE_PCI,
0x00, .local = 0x00,
cmd640_init, cmd640_close, cmd640_reset, .init = cmd640_init,
{ NULL }, NULL, NULL, .close = cmd640_close,
NULL .reset = cmd640_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd640_pci_single_channel_device = { const device_t ide_cmd640_pci_single_channel_device = {
"CMD PCI-0640B PCI", .name = "CMD PCI-0640B PCI",
"ide_cmd640_pci_single_channel", .internal_name = "ide_cmd640_pci_single_channel",
DEVICE_PCI, .flags = DEVICE_PCI,
0x2000a, .local = 0x2000a,
cmd640_init, cmd640_close, cmd640_reset, .init = cmd640_init,
{ NULL }, NULL, NULL, .close = cmd640_close,
NULL .reset = cmd640_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -408,31 +408,43 @@ cmd646_init(const device_t *info)
const device_t ide_cmd646_device = { const device_t ide_cmd646_device = {
"CMD PCI-0646", .name = "CMD PCI-0646",
"ide_cmd646", .internal_name = "ide_cmd646",
DEVICE_PCI, .flags = DEVICE_PCI,
0x8a, .local = 0x8a,
cmd646_init, cmd646_close, cmd646_reset, .init = cmd646_init,
{ NULL }, NULL, NULL, .close = cmd646_close,
NULL .reset = cmd646_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd646_legacy_only_device = { const device_t ide_cmd646_legacy_only_device = {
"CMD PCI-0646 (Legacy Mode Only)", .name = "CMD PCI-0646 (Legacy Mode Only)",
"ide_cmd646_legacy_only", .internal_name = "ide_cmd646_legacy_only",
DEVICE_PCI, .flags = DEVICE_PCI,
0x80, .local = 0x80,
cmd646_init, cmd646_close, cmd646_reset, .init = cmd646_init,
{ NULL }, NULL, NULL, .close = cmd646_close,
NULL .reset = cmd646_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t ide_cmd646_single_channel_device = { const device_t ide_cmd646_single_channel_device = {
"CMD PCI-0646", .name = "CMD PCI-0646",
"ide_cmd646_single_channel", .internal_name = "ide_cmd646_single_channel",
DEVICE_PCI, .flags = DEVICE_PCI,
0x2008a, .local = 0x2008a,
cmd646_init, cmd646_close, cmd646_reset, .init = cmd646_init,
{ NULL }, NULL, NULL, .close = cmd646_close,
NULL .reset = cmd646_reset,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -313,11 +313,15 @@ opti611_init(const device_t *info)
const device_t ide_opti611_vlb_device = { const device_t ide_opti611_vlb_device = {
"OPTi 82C611/82C611A VLB", .name = "OPTi 82C611/82C611A VLB",
"ide_opti611_vlb", .internal_name = "ide_opti611_vlb",
0, .flags = DEVICE_VLB,
0, .local = 0,
opti611_init, opti611_close, NULL, .init = opti611_init,
{ NULL }, NULL, NULL, .close = opti611_close,
NULL .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -587,15 +587,15 @@ static void
const device_t sff8038i_device = const device_t sff8038i_device =
{ {
"SFF-8038i IDE Bus Master", .name = "SFF-8038i IDE Bus Master",
"sff8038i", .internal_name = "sff8038i",
DEVICE_PCI, .flags = DEVICE_PCI,
0, .local = 0,
sff_init, .init = sff_init,
sff_close, .close = sff_close,
sff_reset, .reset = sff_reset,
{ NULL }, { .available = NULL },
NULL, .speed_changed = NULL,
NULL, .force_redraw = NULL,
NULL .config = NULL
}; };

View File

@@ -769,10 +769,15 @@ mfm_close(void *priv)
const device_t st506_at_wd1003_device = { const device_t st506_at_wd1003_device = {
"WD1003 AT MFM/RLL Controller", .name = "WD1003 AT MFM/RLL Controller",
"st506_at", .internal_name = "st506_at",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
0, .local = 0,
mfm_init, mfm_close, NULL, .init = mfm_init,
{ NULL }, NULL, NULL, NULL .close = mfm_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -1737,67 +1737,85 @@ static const device_config_t wd_rll_config[] = {
// clang-format on // clang-format on
const device_t st506_xt_xebec_device = { const device_t st506_xt_xebec_device = {
"IBM PC Fixed Disk Adapter (MFM)", .name = "IBM PC Fixed Disk Adapter (MFM)",
"st506_xt", .internal_name = "st506_xt",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 0, .local = (HDD_BUS_MFM << 8) | 0,
st506_init, st506_close, NULL, .init = st506_init,
{ xebec_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
NULL { .available = xebec_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t st506_xt_dtc5150x_device = { const device_t st506_xt_dtc5150x_device = {
"DTC 5150X MFM Fixed Disk Adapter", .name = "DTC 5150X MFM Fixed Disk Adapter",
"st506_xt_dtc5150x", .internal_name = "st506_xt_dtc5150x",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 1, .local = (HDD_BUS_MFM << 8) | 1,
st506_init, st506_close, NULL, .init = st506_init,
{ dtc5150x_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
dtc_config { .available = dtc5150x_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = dtc_config
}; };
const device_t st506_xt_st11_m_device = { const device_t st506_xt_st11_m_device = {
"ST-11M MFM Fixed Disk Adapter", .name = "ST-11M MFM Fixed Disk Adapter",
"st506_xt_st11_m", .internal_name = "st506_xt_st11_m",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 11, .local = (HDD_BUS_MFM << 8) | 11,
st506_init, st506_close, NULL, .init = st506_init,
{ st11_m_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
st11_config { .available = st11_m_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = st11_config
}; };
const device_t st506_xt_st11_r_device = { const device_t st506_xt_st11_r_device = {
"ST-11R RLL Fixed Disk Adapter", .name = "ST-11R RLL Fixed Disk Adapter",
"st506_xt_st11_r", .internal_name = "st506_xt_st11_r",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 12, .local = (HDD_BUS_MFM << 8) | 12,
st506_init, st506_close, NULL, .init = st506_init,
{ st11_r_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
st11_config { .available = st11_r_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = st11_config
}; };
const device_t st506_xt_wd1002a_wx1_device = { const device_t st506_xt_wd1002a_wx1_device = {
"WD1002A-WX1 MFM Fixed Disk Adapter", .name = "WD1002A-WX1 MFM Fixed Disk Adapter",
"st506_xt_wd1002a_wx1", .internal_name = "st506_xt_wd1002a_wx1",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 21, .local = (HDD_BUS_MFM << 8) | 21,
st506_init, st506_close, NULL, .init = st506_init,
{ wd1002a_wx1_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
wd_config { .available = wd1002a_wx1_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = wd_config
}; };
const device_t st506_xt_wd1002a_27x_device = { const device_t st506_xt_wd1002a_27x_device = {
"WD1002A-27X RLL Fixed Disk Adapter", .name = "WD1002A-27X RLL Fixed Disk Adapter",
"st506_xt_wd1002a_27x", .internal_name = "st506_xt_wd1002a_27x",
DEVICE_ISA, .flags = DEVICE_ISA,
(HDD_BUS_MFM << 8) | 22, .local = (HDD_BUS_MFM << 8) | 22,
st506_init, st506_close, NULL, .init = st506_init,
{ wd1002a_27x_available }, .close = st506_close,
NULL, NULL, .reset = NULL,
wd_rll_config { .available = wd1002a_27x_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = wd_rll_config
}; };

View File

@@ -1134,21 +1134,29 @@ static const device_config_t wdxt150_config[] = {
}; };
const device_t xta_wdxt150_device = { const device_t xta_wdxt150_device = {
"WDXT-150 XTA Fixed Disk Controller", .name = "WDXT-150 XTA Fixed Disk Controller",
"xta_wdxt150", .internal_name = "xta_wdxt150",
DEVICE_ISA, .flags = DEVICE_ISA,
0, .local = 0,
xta_init, xta_close, NULL, .init = xta_init,
{ xta_available }, NULL, NULL, .close = xta_close,
wdxt150_config .reset = NULL,
{ .available = xta_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = wdxt150_config
}; };
const device_t xta_hd20_device = { const device_t xta_hd20_device = {
"EuroPC HD20 Fixed Disk Controller", .name = "EuroPC HD20 Fixed Disk Controller",
"xta_hd20", .internal_name = "xta_hd20",
DEVICE_ISA, .flags = DEVICE_ISA,
1, .local = 1,
xta_init, xta_close, NULL, .init = xta_init,
{ NULL }, NULL, NULL, .close = xta_close,
NULL .reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };

View File

@@ -261,51 +261,71 @@ xtide_at_close(void *priv)
const device_t xtide_device = { const device_t xtide_device = {
"PC/XT XTIDE", .name = "PC/XT XTIDE",
"xtide", .internal_name = "xtide",
DEVICE_ISA, .flags = DEVICE_ISA,
0, .local = 0,
xtide_init, xtide_close, NULL, .init = xtide_init,
{ xtide_available }, NULL, NULL, .close = xtide_close,
NULL .reset = NULL,
{ .available = xtide_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t xtide_at_device = { const device_t xtide_at_device = {
"PC/AT XTIDE", .name = "PC/AT XTIDE",
"xtide_at", .internal_name = "xtide_at",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
0, .local = 0,
xtide_at_init, xtide_at_close, NULL, .init = xtide_at_init,
{ xtide_at_available }, NULL, NULL, .close = xtide_at_close,
NULL .reset = NULL,
{ .available = xtide_at_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t xtide_at_386_device = { const device_t xtide_at_386_device = {
"PC/AT XTIDE (386)", .name = "PC/AT XTIDE (386)",
"xtide_at_386", .internal_name = "xtide_at_386",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
1, .local = 1,
xtide_at_init, xtide_at_close, NULL, .init = xtide_at_init,
{ xtide_at_386_available }, NULL, NULL, .close = xtide_at_close,
NULL .reset = NULL,
{ .available = xtide_at_386_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t xtide_acculogic_device = { const device_t xtide_acculogic_device = {
"Acculogic XT IDE", .name = "Acculogic XT IDE",
"xtide_acculogic", .internal_name = "xtide_acculogic",
DEVICE_ISA, .flags = DEVICE_ISA,
0, .local = 0,
xtide_acculogic_init, xtide_close, NULL, .init = xtide_acculogic_init,
{ xtide_acculogic_available }, NULL, NULL, .close = xtide_close,
NULL .reset = NULL,
{ .available = xtide_acculogic_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };
const device_t xtide_at_ps2_device = { const device_t xtide_at_ps2_device = {
"PS/2 AT XTIDE (1.1.5)", .name = "PS/2 AT XTIDE (1.1.5)",
"xtide_at_ps2", .internal_name = "xtide_at_ps2",
DEVICE_ISA | DEVICE_AT, .flags = DEVICE_ISA | DEVICE_AT,
0, .local = 0,
xtide_at_ps2_init, xtide_at_close, NULL, .init = xtide_at_ps2_init,
{ xtide_at_ps2_available }, NULL, NULL, .close = xtide_at_close,
NULL .reset = NULL,
{ .available = xtide_at_ps2_available },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
}; };