And fixed them again, this time properly (verified by testing).

This commit is contained in:
OBattler
2020-10-20 21:53:47 +02:00
parent 4390fd3bc6
commit baee7c1530
2 changed files with 10 additions and 11 deletions

View File

@@ -56,7 +56,7 @@ apollo_map(uint32_t addr, uint32_t size, int state)
mem_set_mem_state_both(addr, size, MEM_READ_EXTANY | MEM_WRITE_INTERNAL);
break;
case 2:
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_EXTANY);
break;
case 3:
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);

View File

@@ -155,14 +155,13 @@ sst_page_write(void *priv)
sst_t *dev = (sst_t *) priv;
int i;
if (dev->last_addr == 0xffffffff)
return;
dev->page_base = dev->last_addr & dev->page_mask;
for (i = 0; i < 128; i++) {
if (dev->page_dirty[i]) {
dev->array[dev->page_base + i] = dev->page_buffer[i];
dev->dirty |= 1;
if (dev->last_addr != 0xffffffff) {
dev->page_base = dev->last_addr & dev->page_mask;
for (i = 0; i < 128; i++) {
if (dev->page_dirty[i]) {
dev->array[dev->page_base + i] = dev->page_buffer[i];
dev->dirty |= 1;
}
}
}
dev->page_bytes = 0;
@@ -222,8 +221,8 @@ sst_write(uint32_t addr, uint8_t val, void *p)
dev->page_bytes = 0;
dev->command_state = 7;
sst_buf_write(dev, addr, val);
}
dev->command_state = 0;
} else
dev->command_state = 0;
}
break;
case 1: