Fri, 12 Apr 2013 12:34:32 +0100
Fix read-after-write logic
In some cases (notably reading from a page after having written to it), the
mapper may change the pagestate from "accessed and written" ("dirty"; PS0,PS1)
to "accessed but not written" (clean; PS1,!PS0). This should never, ever, EVER
happen. Once a page is dirty, it remains so until the 68k clears the DIRTY
bit.
Once again, this wonderful bit of logic was missing from the TRM.
philpem@0 | 1 | #ifndef SIM__HEADER |
philpem@0 | 2 | #define SIM__HEADER |
philpem@0 | 3 | |
philpem@0 | 4 | unsigned int m68k_read_memory_8(unsigned int address); |
philpem@0 | 5 | unsigned int m68k_read_memory_16(unsigned int address); |
philpem@0 | 6 | unsigned int m68k_read_memory_32(unsigned int address); |
philpem@0 | 7 | void m68k_write_memory_8(unsigned int address, unsigned int value); |
philpem@0 | 8 | void m68k_write_memory_16(unsigned int address, unsigned int value); |
philpem@0 | 9 | void m68k_write_memory_32(unsigned int address, unsigned int value); |
philpem@0 | 10 | void cpu_pulse_reset(void); |
philpem@0 | 11 | void cpu_set_fc(unsigned int fc); |
philpem@0 | 12 | int cpu_irq_ack(int level); |
philpem@0 | 13 | |
philpem@0 | 14 | #endif /* SIM__HEADER */ |