Just a note, if anyone is interested, to note an MMU project I am working on.
I've long lamented the lack of true expanded memory options for my 64, and the lack of relocatable stack and zp. After a bit of time playing with the MMU system in the TANDY Color Computer 3 and a need to replace some DRAMs in a broken 64 here, I decided to port over some of my MMU functionality and create an SRAM-based 2MB memory expansion unit for the 64. Of course, the unit can be used by any CPU/machine, but the layout is currently designed for units with 2 4464-based DRAMs. Still, I'd be happy to design a 32pin SRAM-based PCB if folks wanted to try this out.
Concerning functionality, the unit currently contains:
- 2MB of 55nS SRAM, plenty fast for the 1MHz machines
- 64kW of MMU register RAM
- relocatable register set. Initially invisible to the system, it can be enabled by reading specific locations at $c0xx
- 4kB page size
- 13 bit page address (32MB total address space, though only 2MB usable in current implementation)
- 256 MMU mapping sets can be used at one time, switchable via one register
Running out of room in the CPLD, so will probably move to the next size up, but plans include:
[list=]
[*]Interrupt on access support
[*]R/O memory support
[*]Add in a small ROM
[*]Within a range, shift addressing by 1-1024 bytes
[*]Common 256/512/1024/2048 byte page
[/list]
Repo is at:
https://github.com/go4retro/Ultimem64Unit is working and seems to be passing all tests... Interested in ideas that might make sense to add.
Jim