blob: 4457fd90ede0200091fe13c49cac85657e5adbd0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
#ifndef __REGS_H__
#define __REGS_H__
#include "mem.h"
/* General internal/io stuff */
#define RI_P1 0x00
#define RI_SB 0x01
#define RI_SC 0x02
#define RI_DIV 0x04
#define RI_TIMA 0x05
#define RI_TMA 0x06
#define RI_TAC 0x07
#define RI_KEY1 0x4D
#define RI_RP 0x56
#define RI_SVBK 0x70
/* Interrupts flags */
#define RI_IF 0x0F
#define RI_IE 0xFF
/* LCDC */
#define RI_LCDC 0x40
#define RI_STAT 0x41
#define RI_SCY 0x42
#define RI_SCX 0x43
#define RI_LY 0x44
#define RI_LYC 0x45
#define RI_DMA 0x46
#define RI_BGP 0x47
#define RI_OBP0 0x48
#define RI_OBP1 0x49
#define RI_WY 0x4A
#define RI_WX 0x4B
#define RI_VBK 0x4F
#define RI_HDMA1 0x51
#define RI_HDMA2 0x52
#define RI_HDMA3 0x53
#define RI_HDMA4 0x54
#define RI_HDMA5 0x55
#define RI_BCPS 0x68
#define RI_BCPD 0x69
#define RI_OCPS 0x6A
#define RI_OCPD 0x6B
/* Sound */
#define RI_NR10 0x10
#define RI_NR11 0x11
#define RI_NR12 0x12
#define RI_NR13 0x13
#define RI_NR14 0x14
#define RI_NR21 0x16
#define RI_NR22 0x17
#define RI_NR23 0x18
#define RI_NR24 0x19
#define RI_NR30 0x1A
#define RI_NR31 0x1B
#define RI_NR32 0x1C
#define RI_NR33 0x1D
#define RI_NR34 0x1E
#define RI_NR41 0x20
#define RI_NR42 0x21
#define RI_NR43 0x22
#define RI_NR44 0x23
#define RI_NR50 0x24
#define RI_NR51 0x25
#define RI_NR52 0x26
#define REG(n) ram.hi[(n)]
/* General internal/io stuff */
#define R_P1 REG(RI_P1)
#define R_SB REG(RI_SB)
#define R_SC REG(RI_SC)
#define R_DIV REG(RI_DIV)
#define R_TIMA REG(RI_TIMA)
#define R_TMA REG(RI_TMA)
#define R_TAC REG(RI_TAC)
#define R_KEY1 REG(RI_KEY1)
#define R_RP REG(RI_RP)
#define R_SVBK REG(RI_SVBK)
/* Interrupts flags */
#define R_IF REG(RI_IF)
#define R_IE REG(RI_IE)
/* LCDC */
#define R_LCDC REG(RI_LCDC)
#define R_STAT REG(RI_STAT)
#define R_SCY REG(RI_SCY)
#define R_SCX REG(RI_SCX)
#define R_LY REG(RI_LY)
#define R_LYC REG(RI_LYC)
#define R_DMA REG(RI_DMA)
#define R_BGP REG(RI_BGP)
#define R_OBP0 REG(RI_OBP0)
#define R_OBP1 REG(RI_OBP1)
#define R_WY REG(RI_WY)
#define R_WX REG(RI_WX)
#define R_VBK REG(RI_VBK)
#define R_HDMA1 REG(RI_HDMA1)
#define R_HDMA2 REG(RI_HDMA2)
#define R_HDMA3 REG(RI_HDMA3)
#define R_HDMA4 REG(RI_HDMA4)
#define R_HDMA5 REG(RI_HDMA5)
#define R_BCPS REG(RI_BCPS)
#define R_BCPD REG(RI_BCPD)
#define R_OCPS REG(RI_OCPS)
#define R_OCPD REG(RI_OCPD)
/* Sound */
#define R_NR10 REG(RI_NR10)
#define R_NR11 REG(RI_NR11)
#define R_NR12 REG(RI_NR12)
#define R_NR13 REG(RI_NR13)
#define R_NR14 REG(RI_NR14)
#define R_NR21 REG(RI_NR21)
#define R_NR22 REG(RI_NR22)
#define R_NR23 REG(RI_NR23)
#define R_NR24 REG(RI_NR24)
#define R_NR30 REG(RI_NR30)
#define R_NR31 REG(RI_NR31)
#define R_NR32 REG(RI_NR32)
#define R_NR33 REG(RI_NR33)
#define R_NR34 REG(RI_NR34)
#define R_NR41 REG(RI_NR41)
#define R_NR42 REG(RI_NR42)
#define R_NR43 REG(RI_NR43)
#define R_NR44 REG(RI_NR44)
#define R_NR50 REG(RI_NR50)
#define R_NR51 REG(RI_NR51)
#define R_NR52 REG(RI_NR52)
#endif
|