//ARMv3 (ARM60) //note: this coprocessor uses the ARMv4 (ARM7TDMI) core as its base //instruction execution forces ARM mode to remove ARMv4 THUMB access //there is a possibility the ARMv3 supports 26-bit mode; but cannot be verified struct ArmDSP : Processor::ARM7TDMI, Thread { #include "registers.hpp" ArmDSP(); ~ArmDSP(); static auto Enter() -> void; auto boot() -> void; auto main() -> void; auto step(uint clocks) -> void override; auto sleep() -> void override; auto get(uint mode, uint32 addr) -> uint32 override; auto set(uint mode, uint32 addr, uint32 word) -> void override; auto read(uint24 addr, uint8 data) -> uint8; auto write(uint24 addr, uint8 data) -> void; auto init() -> void; auto load() -> void; auto unload() -> void; auto power() -> void; auto reset() -> void; //soft reset auto firmware() const -> nall::vector; auto serialize(serializer&) -> void; uint8* programROM; uint8* dataROM; uint8* programRAM; }; extern ArmDSP armdsp;