This patch disables (currently in ifdefs, so it can be re-enabled in case bugs pop up) the "mmu translate" mechanism, ie the caching of memory accesss pointers for the CPU core. Not only does this ancient optimization make no sense anymore on modern CPUs (and i don't notice any performance drop for that matter) - it also makes handling watchpoints correctly impossible (they can only trigger when the CPU core accesses memory through the LOAD/STORE macros, not when it used the cached pointers).
The issue came up in https://sourceforge.net/p/vice-emu/bugs/2221/ (see last few posts - it also has a test case that works after this patch)
As a side effect, chances are that some (banked) things in the cartridge or drive emulation work better now, since the respective "mmu" stuff was always a bit broken
Please review and test. It would be interesting to know whether something broke (of course) - and also if i forgot to remove something that is no more used now.
You can re-enable everything in vice.h
For the PET I expect no difficulties, since petmem.c sets all
baseandlimitvariables to dummy values anyway. After even the ifdefs get elimitated, all references to_mem_read_base_tabandmem_read_limit_tabcan be garbage-collected.