Single Channel XTIDE support

This commit is contained in:
Jasmine Iwanek
2025-02-09 23:40:56 -05:00
parent acf52f7027
commit e257569e67
3 changed files with 47 additions and 9 deletions

View File

@@ -72,7 +72,9 @@ static const struct {
{ &ide_isa_device }, { &ide_isa_device },
{ &ide_isa_2ch_device }, { &ide_isa_2ch_device },
{ &xtide_at_device }, { &xtide_at_device },
{ &xtide_at_2ch_device },
{ &xtide_at_ps2_device }, { &xtide_at_ps2_device },
{ &xtide_at_ps2_2ch_device },
{ &xta_wdxt150_device }, { &xta_wdxt150_device },
{ &xtide_acculogic_device }, { &xtide_acculogic_device },
{ &xtide_device }, { &xtide_device },

View File

@@ -157,7 +157,10 @@ xtide_at_init(const device_t *info)
device_get_bios_file(info, device_get_config_bios("bios"), 0), device_get_bios_file(info, device_get_config_bios("bios"), 0),
0xc8000, 0x2000, 0x1fff, 0, MEM_MAPPING_EXTERNAL); 0xc8000, 0x2000, 0x1fff, 0, MEM_MAPPING_EXTERNAL);
device_add(&ide_isa_2ch_device); if (info->local == 1)
device_add(&ide_isa_2ch_device);
else
device_add(&ide_isa_device);
return xtide; return xtide;
} }
@@ -203,7 +206,10 @@ xtide_at_ps2_init(UNUSED(const device_t *info))
rom_init(&xtide->bios_rom, ROM_PATH_PS2AT, rom_init(&xtide->bios_rom, ROM_PATH_PS2AT,
0xc8000, 0x2000, 0x1fff, 0, MEM_MAPPING_EXTERNAL); 0xc8000, 0x2000, 0x1fff, 0, MEM_MAPPING_EXTERNAL);
device_add(&ide_isa_2ch_device); if (info->local == 1)
device_add(&ide_isa_2ch_device);
else
device_add(&ide_isa_device);
return xtide; return xtide;
} }
@@ -311,10 +317,24 @@ const device_t xtide_device = {
}; };
const device_t xtide_at_device = { const device_t xtide_at_device = {
.name = "PC/AT XTIDE (Primary Only)",
.internal_name = "xtide_at_1ch",
.flags = DEVICE_ISA16,
.local = 0,
.init = xtide_at_init,
.close = xtide_at_close,
.reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = xtide_at_config
};
const device_t xtide_at_2ch_device = {
.name = "PC/AT XTIDE", .name = "PC/AT XTIDE",
.internal_name = "xtide_at", .internal_name = "xtide_at",
.flags = DEVICE_ISA16, .flags = DEVICE_ISA16,
.local = 0, .local = 1,
.init = xtide_at_init, .init = xtide_at_init,
.close = xtide_at_close, .close = xtide_at_close,
.reset = NULL, .reset = NULL,
@@ -339,8 +359,8 @@ const device_t xtide_acculogic_device = {
}; };
const device_t xtide_at_ps2_device = { const device_t xtide_at_ps2_device = {
.name = "PS/2 AT XTIDE (1.1.5)", .name = "PS/2 AT XTIDE (1.1.5) (Primary Only)",
.internal_name = "xtide_at_ps2", .internal_name = "xtide_at_ps2_1ch",
.flags = DEVICE_ISA16, .flags = DEVICE_ISA16,
.local = 0, .local = 0,
.init = xtide_at_ps2_init, .init = xtide_at_ps2_init,
@@ -351,3 +371,17 @@ const device_t xtide_at_ps2_device = {
.force_redraw = NULL, .force_redraw = NULL,
.config = NULL .config = NULL
}; };
const device_t xtide_at_ps2_2ch_device = {
.name = "PS/2 AT XTIDE (1.1.5)",
.internal_name = "xtide_at_ps2",
.flags = DEVICE_ISA16,
.local = 1,
.init = xtide_at_ps2_init,
.close = xtide_at_close,
.reset = NULL,
.available = xtide_at_ps2_available,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};

View File

@@ -99,10 +99,12 @@ extern const device_t mcide_device;
extern const device_t xta_wdxt150_device; /* xta_wdxt150 */ extern const device_t xta_wdxt150_device; /* xta_wdxt150 */
extern const device_t xta_hd20_device; /* EuroPC internal */ extern const device_t xta_hd20_device; /* EuroPC internal */
extern const device_t xtide_device; /* xtide_xt */ extern const device_t xtide_device; /* xtide_xt */
extern const device_t xtide_at_device; /* xtide_at */ extern const device_t xtide_at_device; /* xtide_at */
extern const device_t xtide_acculogic_device; /* xtide_ps2 */ extern const device_t xtide_at_2ch_device; /* xtide_at_2ch */
extern const device_t xtide_at_ps2_device; /* xtide_at_ps2 */ extern const device_t xtide_acculogic_device; /* xtide_ps2 */
extern const device_t xtide_at_ps2_device; /* xtide_at_ps2 */
extern const device_t xtide_at_ps2_2ch_device; /* xtide_at_ps2_2ch */
/* Miscellaneous */ /* Miscellaneous */
extern const device_t lba_enhancer_device; extern const device_t lba_enhancer_device;