C64MEGA65 icon indicating copy to clipboard operation
C64MEGA65 copied to clipboard

Support Kernals in EF3

Open sy2002 opened this issue 5 months ago • 2 comments

To support Kernals in the Easy Flash 3 (EF3), we need to be able to sense the cartridge's modifications of address line A14 as described here:

"Fortunately, a method was found which does not involve #DMA. Whenever a CPU read access to the address range $F000-$FFFF is detected, the cartridge pulls down the address line A14 for a fraction of the clock cycle. This changes any address between $F000-$FFFF to an address between $A000-$BFFF. After this is done, the state of #HIRAM can be read from #ROMH."

Taken from: http://skoe.de/kernal/kernal-cartridge.pdf

There are two ways of doing this that I currently see:

  1. Enhancing our heuristics module (https://github.com/MJoergen/C64MEGA65/blob/develop/CORE/vhdl/cartridge_heuristics.vhd) and this code here: https://github.com/MJoergen/C64MEGA65/blob/develop/CORE/vhdl/main.vhd#L991 (This means: We monitor in realtime what the firmware code of the EF3 is doing and then act accordingly. We are already doing this today on R3/R3A boards, otherwise the EF3 would not work at all.)

  2. Enhancing future MEGA65 PCBs to have circuit that allows us to continue to constantly write to the address bus while in parallel we can sense if the EF3 modifies A14. I guess this is something different than a standard Open Collector circuit.

Advantage of (1): No hardware change needed plus works on all MEGA65 revisions. But I consider this as pretty dangerous, see comments in main.vhd (see link above).

Advantage of (2): Clean solution

sy2002 avatar Jan 26 '24 11:01 sy2002