NULL
}
};
+static const struct expansionboardsettings dev_hd_settings[] = {
+ {
+ _T("Base address"),
+ _T("base")
+ },
+ {
+ _T("Register spacing"),
+ _T("spacing")
+ },
+ {
+ _T("Data port address"),
+ _T("dataport")
+ },
+ {
+ _T("Alternate register base address"),
+ _T("altbase")
+ }
+};
+
static const struct expansionboardsettings cdtvsram_settings[] = {
{
_T("SRAM size\0") _T("64k\0") _T("128k\0") _T("256k\0"),
_T("dev_ide"), _T("DEV IDE"), NULL,
NULL, dev_hd_init, NULL, dev_hd_add_ide_unit, ROMTYPE_DEVHD | ROMTYPE_NOT, 0, 0, BOARD_NONAUTOCONFIG_BEFORE, true,
NULL, 0,
- false, EXPANSIONTYPE_CUSTOM | EXPANSIONTYPE_IDE | EXPANSIONTYPE_SCSI
+ false, EXPANSIONTYPE_CUSTOM | EXPANSIONTYPE_IDE | EXPANSIONTYPE_SCSI,
+ 0, 0, 0, false, NULL,
+ false, 0, dev_hd_settings
+
},
#endif
if (addr >= dev_hd_io_base && addr < dev_hd_io_base + dev_hd_io_total) {
reg = (addr - dev_hd_io_base) / dev_hd_io_size;
reg &= 7;
- if (addr & dev_hd_io_secondary) {
- reg |= IDE_SECONDARY;
+ if (reg == 0) {
+ write_log("invalid %08x\n", addr);
}
- } else if (addr >= dev_hd_data_base && addr < dev_hd_data_base + 4) {
+ } else if (addr >= dev_hd_data_base && addr < dev_hd_data_base + 0x100) {
reg = 0;
+ } else {
+ write_log("out of range %08x\n", addr);
}
return reg;
}
dev_hd_io_size = 4;
dev_hd_data_base = 0x4800;
dev_hd_io_secondary = 0x1000;
- dev_hd_io_total = 0x2000;
+ dev_hd_io_total = 8 * 4;
if (!aci->doinit) {
return true;
}