Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/snes/chip/hitachidsp/registers.cpp
2 views
1
#ifdef HITACHIDSP_CPP
2
3
unsigned HitachiDSP::reg_read(unsigned n) const {
4
switch(n) {
5
case 0x00: return regs.a;
6
case 0x01: return regs.acch;
7
case 0x02: return regs.accl;
8
case 0x03: return regs.busdata;
9
case 0x08: return regs.romdata;
10
case 0x0c: return regs.ramdata;
11
case 0x13: return regs.busaddr;
12
case 0x1c: return regs.ramaddr;
13
case 0x50: return 0x000000;
14
case 0x51: return 0xffffff;
15
case 0x52: return 0x00ff00;
16
case 0x53: return 0xff0000;
17
case 0x54: return 0x00ffff;
18
case 0x55: return 0xffff00;
19
case 0x56: return 0x800000;
20
case 0x57: return 0x7fffff;
21
case 0x58: return 0x008000;
22
case 0x59: return 0x007fff;
23
case 0x5a: return 0xff7fff;
24
case 0x5b: return 0xffff7f;
25
case 0x5c: return 0x010000;
26
case 0x5d: return 0xfeffff;
27
case 0x5e: return 0x000100;
28
case 0x5f: return 0x00feff;
29
case 0x60: return regs.gpr[ 0];
30
case 0x61: return regs.gpr[ 1];
31
case 0x62: return regs.gpr[ 2];
32
case 0x63: return regs.gpr[ 3];
33
case 0x64: return regs.gpr[ 4];
34
case 0x65: return regs.gpr[ 5];
35
case 0x66: return regs.gpr[ 6];
36
case 0x67: return regs.gpr[ 7];
37
case 0x68: return regs.gpr[ 8];
38
case 0x69: return regs.gpr[ 9];
39
case 0x6a: return regs.gpr[10];
40
case 0x6b: return regs.gpr[11];
41
case 0x6c: return regs.gpr[12];
42
case 0x6d: return regs.gpr[13];
43
case 0x6e: return regs.gpr[14];
44
case 0x6f: return regs.gpr[15];
45
}
46
return 0x000000;
47
}
48
49
void HitachiDSP::reg_write(unsigned n, unsigned data) {
50
switch(n) {
51
case 0x00: regs.a = data; return;
52
case 0x01: regs.acch = data; return;
53
case 0x02: regs.accl = data; return;
54
case 0x03: regs.busdata = data; return;
55
case 0x08: regs.romdata = data; return;
56
case 0x0c: regs.ramdata = data; return;
57
case 0x13: regs.busaddr = data; return;
58
case 0x1c: regs.ramaddr = data; return;
59
case 0x60: regs.gpr[ 0] = data; return;
60
case 0x61: regs.gpr[ 1] = data; return;
61
case 0x62: regs.gpr[ 2] = data; return;
62
case 0x63: regs.gpr[ 3] = data; return;
63
case 0x64: regs.gpr[ 4] = data; return;
64
case 0x65: regs.gpr[ 5] = data; return;
65
case 0x66: regs.gpr[ 6] = data; return;
66
case 0x67: regs.gpr[ 7] = data; return;
67
case 0x68: regs.gpr[ 8] = data; return;
68
case 0x69: regs.gpr[ 9] = data; return;
69
case 0x6a: regs.gpr[10] = data; return;
70
case 0x6b: regs.gpr[11] = data; return;
71
case 0x6c: regs.gpr[12] = data; return;
72
case 0x6d: regs.gpr[13] = data; return;
73
case 0x6e: regs.gpr[14] = data; return;
74
case 0x6f: regs.gpr[15] = data; return;
75
}
76
}
77
78
#endif
79
80