{
addr &= addressing_mask;
size--;
- if (addr + size < low_memory_size) {
+ if (low_memory_size != 0xffffffff && addr + size < low_memory_size) {
if (addr < test_low_memory_start || test_low_memory_start == 0xffffffff)
goto oob;
// exception vectors needed during tests
low_memory_accessed = w ? -1 : 1;
return 1;
}
- if (addr >= HIGH_MEMORY_START && addr <= HIGH_MEMORY_START + 0x7fff) {
+ if (high_memory_size != 0xffffffff && addr >= HIGH_MEMORY_START && addr <= HIGH_MEMORY_START + 0x7fff) {
if (addr < test_high_memory_start || test_high_memory_start == 0xffffffff)
goto oob;
if (addr + size >= test_high_memory_end)
}
addr &= addressing_mask;
size--;
- if (addr + size < low_memory_size) {
+ if (low_memory_size != 0xffffffff && addr + size < low_memory_size) {
return low_memory + addr;
- } else if (addr >= HIGH_MEMORY_START && addr <= HIGH_MEMORY_START + 0x7fff) {
+ } else if (high_memory_size != 0xffffffff && addr >= HIGH_MEMORY_START && addr <= HIGH_MEMORY_START + 0x7fff) {
return high_memory + (addr - HIGH_MEMORY_START);
} else if (addr >= test_memory_start && addr + size < test_memory_end + EXTRA_RESERVED_SPACE) {
return test_memory + (addr - test_memory_start);
static void fill_memory(void)
{
- fill_memory_buffer(low_memory_temp, low_memory_size);
- fill_memory_buffer(high_memory_temp, high_memory_size);
+ if (low_memory_temp)
+ fill_memory_buffer(low_memory_temp, low_memory_size);
+ if (high_memory_temp)
+ fill_memory_buffer(high_memory_temp, high_memory_size);
fill_memory_buffer(test_memory_temp, test_memory_size);
}
dst = storage_buffer;
- memcpy(low_memory, low_memory_temp, low_memory_size);
- memcpy(high_memory, high_memory_temp, high_memory_size);
+ if (low_memory) {
+ memcpy(low_memory, low_memory_temp, low_memory_size);
+ }
+ if (high_memory) {
+ memcpy(high_memory, high_memory_temp, high_memory_size);
+ }
memcpy(test_memory, test_memory_temp, test_memory_size);
memset(storage_buffer, 0xdd, 1000);
if (low_memory_size < 0x8000)
low_memory_size = 0x8000;
- low_memory = (uae_u8 *)calloc(1, low_memory_size);
- low_memory_temp = (uae_u8 *)calloc(1, low_memory_size);
- high_memory = (uae_u8 *)calloc(1, high_memory_size);
- high_memory_temp = (uae_u8 *)calloc(1, high_memory_size);
+ if (low_memory_size != 0xffffffff) {
+ low_memory = (uae_u8 *)calloc(1, low_memory_size);
+ low_memory_temp = (uae_u8 *)calloc(1, low_memory_size);
+ }
+ if (high_memory_size != 0xffffffff) {
+ high_memory = (uae_u8 *)calloc(1, high_memory_size);
+ high_memory_temp = (uae_u8 *)calloc(1, high_memory_size);
+ }
fill_memory();
error_vectors[i - 2] = p[i];
}
}
- for (int i = 24; i < 24 + 8; i++) {
- p[i] = (uae_u32)(((uae_u32)&exceptiontable000) + (i - 2) * 2);
- if (exception_vectors) {
- p[i] = exception_vectors;
+ if (interrupttest) {
+ for (int i = 24; i < 24 + 8; i++) {
+ p[i] = (uae_u32)(((uae_u32)&exceptiontable000) + (i - 2) * 2);
+ if (exception_vectors) {
+ p[i] = exception_vectors;
+ }
}
}
for (int i = 32; i < 48; i++) {