aci->start = PCMCIA_ATTRIBUTE_START;
aci->size = PCMCIA_ATTRIBUTE_SIZE;
aci->zorro = 0;
+ aci->indirect = true;
aci->parent_address_space = true;
device_add_reset(gayle_reset);
if (aci->doinit)
aci->start = PCMCIA_COMMON_START;
aci->size = PCMCIA_COMMON_SIZE;
aci->zorro = 0;
+ aci->indirect = true;
aci->parent_address_space = true;
device_add_reset(gayle_reset);
if (aci->doinit)
aci->start = PCMCIA_COMMON_START;
aci->size = 0xa80000 - aci->start;
aci->zorro = 0;
+ aci->indirect = true;
device_add_reset(gayle_reset);
if (aci->doinit)
gayle_init();
uae_u32 start;
uae_u32 size;
int zorro;
+ // never direct maps RAM
+ bool indirect;
const TCHAR *label;
addrbank *addrbank;
uaecptr write_bank_address;
if (!_tcscmp(ab->label, _T("*"))) {
start = ab->start;
got = true;
- if (expansion_get_autoconfig_by_address(&currprefs, ab->start, 0) && !expansion_get_autoconfig_by_address(&currprefs, ab->start + size, 0))
- barrier = true;
+ if (expansion_get_autoconfig_by_address(&currprefs, ab->start, 0)) {
+ struct autoconfig_info *aci = expansion_get_autoconfig_by_address(&currprefs, ab->start + size, 0);
+ if (!aci || aci->indirect) {
+ barrier = true;
+ }
+ }
} else if (!_tcscmp(ab->label, _T("*B"))) {
start = ab->start;
got = true;