#ifndef PROCESSOR_UPD96050_HPP #define PROCESSOR_UPD96050_HPP namespace Processor { //NEC uPD7720 (not supported) //NEC uPD7725 //NEC uPD96050 struct uPD96050 { enum class Revision : unsigned { uPD7725, uPD96050 } revision; uint24 programROM[16384]; uint16 dataROM[2048]; uint16 dataRAM[2048]; #include "registers.hpp" void power(); void exec(); void serialize(serializer&); void exec_op(uint24 opcode); void exec_rt(uint24 opcode); void exec_jp(uint24 opcode); void exec_ld(uint24 opcode); uint8 sr_read(); void sr_write(uint8 data); uint8 dr_read(); void dr_write(uint8 data); uint8 dp_read(uint12 addr); void dp_write(uint12 addr, uint8 data); string disassemble(uint14 ip); }; } #endif