expamem_init_clear();
expamem_init_clear_zero();
map_banks(&expamem_bank, 0xE8, 1, 0);
- if (currprefs.address_space_24)
+ if (!currprefs.address_space_24)
map_banks(&dummy_bank, 0xff000000 >> 16, 1, 0);
expamem_bank_current = NULL;
return;
if (ab) {
// non-NULL: not using expamem_bank
expamem_bank_current = ab;
- if ((card_flags[ecard] & 1) && currprefs.cs_z3autoconfig) {
+ if ((card_flags[ecard] & 1) && currprefs.cs_z3autoconfig && !currprefs.address_space_24) {
map_banks(&expamemz3_bank, 0xff000000 >> 16, 1, 0);
map_banks(&dummy_bank, 0xE8, 1, 0);
} else {
map_banks(&expamem_bank, 0xE8, 1, 0);
- if (currprefs.address_space_24)
+ if (!currprefs.address_space_24)
map_banks(&dummy_bank, 0xff000000 >> 16, 1, 0);
}
} else {
- if ((card_flags[ecard] & 1) && currprefs.cs_z3autoconfig) {
+ if ((card_flags[ecard] & 1) && currprefs.cs_z3autoconfig && !currprefs.address_space_24) {
map_banks(&expamemz3_bank, 0xff000000 >> 16, 1, 0);
map_banks(&dummy_bank, 0xE8, 1, 0);
expamem_bank_current = &expamem_bank;
} else {
map_banks(&expamem_bank, 0xE8, 1, 0);
- if (currprefs.address_space_24)
+ if (!currprefs.address_space_24)
map_banks(&dummy_bank, 0xff000000 >> 16, 1, 0);
expamem_bank_current = NULL;
}
error_log (_T("Too large Z2 RTG memory size."));
}
+ if (p->cs_z3autoconfig && p->address_space_24) {
+ p->cs_z3autoconfig = false;
+ error_log (_T("Z3 autoconfig and 24bit address space are not compatible."));
+ }
+
#if 0
if (p->m68k_speed < -1 || p->m68k_speed > 20) {
write_log (_T("Bad value for -w parameter: must be -1, 0, or within 1..20.\n"));