mirror of https://github.com/bsnes-emu/bsnes.git
40 lines
1014 B
C++
40 lines
1014 B
C++
//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<uint8>;
|
|
auto serialize(serializer&) -> void;
|
|
|
|
uint8* programROM;
|
|
uint8* dataROM;
|
|
uint8* programRAM;
|
|
};
|
|
|
|
extern ArmDSP armdsp;
|