BizHawk/libsnes/bsnes/snes/chip/necdsp/necdsp.hpp

50 lines
915 B
C++

//NEC uPD7725
//NEC uPD96050
class NECDSP : public Coprocessor {
public:
enum class Revision : unsigned { uPD7725, uPD96050 } revision;
unsigned frequency;
#include "registers.hpp"
uint24 programROM[16384];
uint16 dataROM[2048];
uint16 dataRAM[2048];
unsigned programROMSize;
unsigned dataROMSize;
unsigned dataRAMSize;
static void Enter();
void enter();
void exec_op(uint24 opcode);
void exec_rt(uint24 opcode);
void exec_jp(uint24 opcode);
void exec_ld(uint24 opcode);
string disassemble(uint14 ip);
uint8 sr_read(unsigned);
void sr_write(unsigned, uint8 data);
uint8 dr_read(unsigned);
void dr_write(unsigned, uint8 data);
uint8 dp_read(unsigned addr);
void dp_write(unsigned addr, uint8 data);
void init();
void load();
void unload();
void power();
void reset();
void serialize(serializer&);
NECDSP();
~NECDSP();
};
extern NECDSP necdsp;