_T("trifecta"), _T("Trifecta"), _T("ICD"),
NULL, trifecta_init, NULL, trifecta_add_idescsi_unit, ROMTYPE_TRIFECTA | ROMTYPE_NONE, 0, 0, BOARD_AUTOCONFIG_Z2, false,
trifecta_sub, 0,
- false, EXPANSIONTYPE_SCSI | EXPANSIONTYPE_IDE,
+ true, EXPANSIONTYPE_SCSI | EXPANSIONTYPE_IDE,
2071, 32, 0, false, NULL,
true, 0, NULL,
+ { 0xd1, 0x23, 0x40, 0x00, 0x08, 0x17, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 }
},
{
_T("buddha"), _T("Buddha"), _T("Individual Computers"),
if (board->irq) {
v &= ~1;
}
- v |= board->state2[0] &0x80;
+ v |= board->state2[0] & 0x80;
} else if (addr == 0xf047) {
v = board->state;
} else {
v = 0xff;
}
if (addr == 0x401) {
- if (board->subtype)
+ if (board->subtype) {
v = (board->aci->rc->device_id ^ 7) & 7; // inverted SCSI ID
- else
+ } else {
v = 0xff;
- } else if (addr & 0x8000) {
+ }
+ } else if (addr >= 0x1000) {
if (board->rom)
v = board->rom[addr & board->rom_mask];
}
- if (addr >= 0x400 && addr <= 0x7ff) {
- write_log(_T("trifecta get %08x\n"), addr);
- }
+ //write_log(_T("trifecta get %08x %08x\n"), addr, M68K_GETPC);
} else if (board->type == APOLLO_IDE) {
} else if (board->type == TRIFECTA_IDE) {
- if (addr & 0x8000) {
+ if (addr >= 0x1000) {
if (board->rom) {
v = board->rom[addr & board->rom_mask] << 8;
v |= board->rom[(addr + 1) & board->rom_mask];
}
}
-static const uae_u8 trifecta_autoconfig[16] = { 0xc1, 0x23, 0x00, 0x00, 0x08, 0x17, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00 };
-
bool trifecta_init(struct autoconfig_info *aci)
{
int rom_size = 65536;
memset(rom, 0xff, rom_size);
if (!aci->doinit) {
- aci->autoconfigp = trifecta_autoconfig;
+ aci->autoconfigp = aci->ert->autoconfig;
return true;
}
ide->keepautoconfig = false;
ide->intena = true;
- load_rom_rc(aci->rc, ROMTYPE_TRIFECTA, 32768, 0, rom, 65536, LOADROM_EVENONLY_ODDONE | LOADROM_FILL);
+ if (!aci->rc->autoboot_disabled)
+ load_rom_rc(aci->rc, ROMTYPE_TRIFECTA, 32768, 0, rom, 65536, LOADROM_EVENONLY_ODDONE | LOADROM_FILL);
for (int i = 0; i < 16; i++) {
- uae_u8 b = trifecta_autoconfig[i];
+ uae_u8 b = aci->ert->autoconfig[i];
ew(ide, i * 4, b);
}
return NULL;
}
-#define NEXT_ROM_ID 253
+#define NEXT_ROM_ID 254
#define ALTROM(id,grp,num,size,flags,crc32,a,b,c,d,e) \
{ _T("X"), 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, NULL, crc32, a, b, c, d, e },
0xebe42aa6, 0xdff761c2,0x429d0d26,0x2151d831,0x12746f83,0x3b8d36f0, NULL, NULL },
{ _T("Archos Overdrive HD"), 0, 0, 0, 0, _T("ARCHOSHD\0"), 32768, 250, 0, 0, ROMTYPE_ARCHOSHD, 0, 0, NULL,
0x30c0e3f9, 0x90014e97,0x700333a7,0x931b382f,0xe672b6e4,0x4b7b8acc, NULL, NULL },
- { _T("Trumpcard 500AT v1.1"), 0, 0, 0, 0, _T("ARCHOSHD\0"), 32768, 251, 0, 0, ROMTYPE_IVST500AT, 0, 0, NULL,
+ { _T("Trumpcard 500AT v1.1"), 0, 0, 0, 0, _T("TRUMPCARDAT\0"), 32768, 251, 0, 0, ROMTYPE_IVST500AT, 0, 0, NULL,
0xb6467cb8, 0xbc1cd85f,0x16011691,0x32a2a8d6, 0x2ee38666,0x520d5cf1, NULL, NULL },
- { _T("Trumpcard 500AT v1.2"), 0, 0, 0, 0, _T("ARCHOSHD\0"), 32768, 252, 0, 0, ROMTYPE_IVST500AT, 0, 0, NULL,
+ { _T("Trumpcard 500AT v1.2"), 0, 0, 0, 0, _T("TRUMPCARDAT\0"), 32768, 252, 0, 0, ROMTYPE_IVST500AT, 0, 0, NULL,
0x3eb87eb3, 0xff41889e,0x641114e5,0x5ec1f784,0xd79216ce,0xe9a74a40, NULL, NULL },
+ { _T("Trifecta v4.31"), 0, 0, 0, 0, _T("TRIFECTA\0"), 32768, 253, 0, 0, ROMTYPE_TRIFECTA, 0, 0, NULL,
+ 0x591c3cd4, 0x681b8a67,0x3775dd0c,0x8f13b641,0x8852a51e,0xf3a29da3, NULL, NULL },
{ _T("CyberStorm MK I 68040"), 0, 0, 0, 0, _T("CSMKI\0"), 32768, 95, 0, 0, ROMTYPE_CB_CSMK1, 0, 0, NULL,
0, 0, 0, 0, 0, 0, NULL, _T("cyberstormmk1_040.rom") },