Skip to content

ARM7TDMI Emulation

JetSetIlly edited this page Apr 4, 2022 · 1 revision

Gopher2600 provides emulation the ARM7TDMI CPU that is found in the Harmony cartridge. The presence of this CPU allows for highly flexible co-processing.

Although the Harmony itself executes in both ARM and Thumb modes, Gopher2600 currently only emulates Thumb mode.

ARM Preferences

The characteristics of the ARM processor can be changed via the preferences window. It can be opened with the F10 hotkey.

ARM preferences

Immediate ARM Execution instructs the emulation to execute the Thumb program instantaneously without any cycle counting. For Performance reasons, you may want to have this selected but for development work you should leave it disabled.

If immediate mode is disabled then the Default MAM State can be selected. This is best kept set to the default, Driver. This means that the emulated drivers for the ARM using cartridge type set the MAM appropriately. If required, this can be changed to Disabled, Partial or Full.

The Abort on Illegal Memory Access option controls what happens when the custom Thumb program tries to read or write to memory that doesn't exist. If the option is on then the Thumb program will exit early and the 6502 program (ie. normal console operation) will continue.

Note that if the memory access is an instruction fetch the program will always exit early regardless of this option's setting - there's nothing meaningful that can be done if the PC value is out of range.

Details of illegal memory accesses are always written to the log, regardless of the Abort on Illegal Memory Access option.