Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/snes/chip/armdsp/armdsp.hpp
2 views
1
//ARMv3 (ARM6)
2
3
struct ArmDSP : public Coprocessor {
4
5
//zero 01-sep-2014 - dont clobber these when reconstructing!
6
static uint8 *firmware;
7
static uint8 *programROM;
8
static uint8 *dataROM;
9
10
uint8 *programRAM;
11
12
#include "registers.hpp"
13
14
static void Enter();
15
void enter();
16
void tick(unsigned clocks = 1);
17
18
void init();
19
void load();
20
void unload();
21
void power();
22
void reset();
23
void arm_reset();
24
25
ArmDSP();
26
~ArmDSP();
27
28
uint8 mmio_read(unsigned addr);
29
void mmio_write(unsigned addr, uint8 data);
30
31
//opcodes.cpp
32
bool condition();
33
void opcode(uint32 data);
34
void lsl(bool &c, uint32 &rm, uint32 rs);
35
void lsr(bool &c, uint32 &rm, uint32 rs);
36
void asr(bool &c, uint32 &rm, uint32 rs);
37
void ror(bool &c, uint32 &rm, uint32 rs);
38
void rrx(bool &c, uint32 &rm);
39
40
void op_multiply();
41
void op_move_to_status_register_from_register();
42
void op_move_to_register_from_status_register();
43
void op_data_immediate_shift();
44
void op_data_register_shift();
45
void op_data_immediate();
46
void op_move_immediate_offset();
47
void op_move_register_offset();
48
void op_move_multiple();
49
void op_branch();
50
51
//memory.cpp
52
uint8 bus_read(uint32 addr);
53
void bus_write(uint32 addr, uint8 data);
54
55
uint32 bus_readbyte(uint32 addr);
56
void bus_writebyte(uint32 addr, uint32 data);
57
58
uint32 bus_readword(uint32 addr);
59
void bus_writeword(uint32 addr, uint32 data);
60
61
//disassembler.cpp
62
string disassemble_opcode(uint32 pc);
63
string disassemble_registers();
64
65
//serialization.cpp
66
void serialize(serializer&);
67
};
68
69
extern ArmDSP armdsp;
70
71