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); mem_set_mem_state_both(addr, size, MEM_READ_EXTANY | MEM_WRITE_INTERNAL);
break; break;
case 2: 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; break;
case 3: case 3:
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);

View File

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