Path: blob/master/libsnes/bsnes/snes/chip/armdsp/armdsp.hpp
2 views
//ARMv3 (ARM6)12struct ArmDSP : public Coprocessor {34//zero 01-sep-2014 - dont clobber these when reconstructing!5static uint8 *firmware;6static uint8 *programROM;7static uint8 *dataROM;89uint8 *programRAM;1011#include "registers.hpp"1213static void Enter();14void enter();15void tick(unsigned clocks = 1);1617void init();18void load();19void unload();20void power();21void reset();22void arm_reset();2324ArmDSP();25~ArmDSP();2627uint8 mmio_read(unsigned addr);28void mmio_write(unsigned addr, uint8 data);2930//opcodes.cpp31bool condition();32void opcode(uint32 data);33void lsl(bool &c, uint32 &rm, uint32 rs);34void lsr(bool &c, uint32 &rm, uint32 rs);35void asr(bool &c, uint32 &rm, uint32 rs);36void ror(bool &c, uint32 &rm, uint32 rs);37void rrx(bool &c, uint32 &rm);3839void op_multiply();40void op_move_to_status_register_from_register();41void op_move_to_register_from_status_register();42void op_data_immediate_shift();43void op_data_register_shift();44void op_data_immediate();45void op_move_immediate_offset();46void op_move_register_offset();47void op_move_multiple();48void op_branch();4950//memory.cpp51uint8 bus_read(uint32 addr);52void bus_write(uint32 addr, uint8 data);5354uint32 bus_readbyte(uint32 addr);55void bus_writebyte(uint32 addr, uint32 data);5657uint32 bus_readword(uint32 addr);58void bus_writeword(uint32 addr, uint32 data);5960//disassembler.cpp61string disassemble_opcode(uint32 pc);62string disassemble_registers();6364//serialization.cpp65void serialize(serializer&);66};6768extern ArmDSP armdsp;697071