mirror of
https://github.com/devinacker/bsnes-plus.git
synced 2025-04-02 10:52:46 -04:00
51 lines
1,001 B
C++
51 lines
1,001 B
C++
class NECDSP : public Coprocessor, public Memory {
|
|
public:
|
|
enum class Revision : unsigned { uPD7725, uPD96050 } revision;
|
|
unsigned frequency;
|
|
unsigned drmask, drtest;
|
|
unsigned srmask, srtest;
|
|
unsigned dpmask, dptest;
|
|
|
|
#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 read(unsigned addr);
|
|
void write(unsigned addr, uint8 data);
|
|
|
|
uint8 sr_read();
|
|
void sr_write(uint8 data);
|
|
|
|
uint8 dr_read();
|
|
void dr_write(uint8 data);
|
|
|
|
uint8 dp_read(unsigned addr);
|
|
void dp_write(unsigned addr, uint8 data);
|
|
|
|
void init();
|
|
void enable();
|
|
void power();
|
|
void reset();
|
|
|
|
void serialize(serializer&);
|
|
NECDSP();
|
|
~NECDSP();
|
|
};
|
|
|
|
extern NECDSP necdsp;
|