]> git.sur5r.net Git - cc65/blob - include/geos/gsym.h
C programs don't need offsets into data structures - they have actual structs :-...
[cc65] / include / geos / gsym.h
1 /*
2   GEOS system addresses and locations
3
4   reassembled by Maciej 'YTM/Elysium' Witkowiak
5 */
6
7 #ifndef _GSYM_H
8 #define _GSYM_H
9
10 #ifndef _GSTRUCT_H
11 #include <geos/gstruct.h>
12 #endif
13
14 #define r0              (*(unsigned*)(R_BASE + 0x00))
15 #define r0L             (*(char*)(R_BASE + 0x00))
16 #define r0H             (*(char*)(R_BASE + 0x01))
17 #define r1              (*(unsigned*)(R_BASE + 0x02))
18 #define r1L             (*(char*)(R_BASE + 0x02))
19 #define r1H             (*(char*)(R_BASE + 0x03))
20 #define drawWindow      (*(struct window*)(R_BASE + 0x04))
21 #define r2              (*(unsigned*)(R_BASE + 0x04))
22 #define r2L             (*(char*)(R_BASE + 0x04))
23 #define r2H             (*(char*)(R_BASE + 0x05))
24 #define r3              (*(unsigned*)(R_BASE + 0x06))
25 #define r3L             (*(char*)(R_BASE + 0x06))
26 #define r3H             (*(char*)(R_BASE + 0x07))
27 #define r4              (*(unsigned*)(R_BASE + 0x08))
28 #define r4L             (*(char*)(R_BASE + 0x08))
29 #define r4H             (*(char*)(R_BASE + 0x09))
30 #define r5              (*(unsigned*)(R_BASE + 0x0a))
31 #define r5L             (*(char*)(R_BASE + 0x0a))
32 #define r5H             (*(char*)(R_BASE + 0x0b))
33 #define r6              (*(unsigned*)(R_BASE + 0x0c))
34 #define r6L             (*(char*)(R_BASE + 0x0c))
35 #define r6H             (*(char*)(R_BASE + 0x0d))
36 #define r7              (*(unsigned*)(R_BASE + 0x0e))
37 #define r7L             (*(char*)(R_BASE + 0x0e))
38 #define r7H             (*(char*)(R_BASE + 0x0f))
39 #define r8              (*(unsigned*)(R_BASE + 0x10))
40 #define r8L             (*(char*)(R_BASE + 0x10))
41 #define r8H             (*(char*)(R_BASE + 0x11))
42 #define r9              (*(unsigned*)(R_BASE + 0x12))
43 #define r9L             (*(char*)(R_BASE + 0x12))
44 #define r9H             (*(char*)(R_BASE + 0x13))
45 #define r10             (*(unsigned*)(R_BASE + 0x14))
46 #define r10L            (*(char*)(R_BASE + 0x14))
47 #define r10H            (*(char*)(R_BASE + 0x15))
48 #define r11             (*(unsigned*)(R_BASE + 0x16))
49 #define r11L            (*(char*)(R_BASE + 0x16))
50 #define r11H            (*(char*)(R_BASE + 0x17))
51 #define r12             (*(unsigned*)(R_BASE + 0x18))
52 #define r12L            (*(char*)(R_BASE + 0x18))
53 #define r12H            (*(char*)(R_BASE + 0x19))
54 #define r13             (*(unsigned*)(R_BASE + 0x1a))
55 #define r13L            (*(char*)(R_BASE + 0x1a))
56 #define r13H            (*(char*)(R_BASE + 0x1b))
57 #define r14             (*(unsigned*)(R_BASE + 0x1c))
58 #define r14L            (*(char*)(R_BASE + 0x1c))
59 #define r14H            (*(char*)(R_BASE + 0x1d))
60 #define r15             (*(unsigned*)(R_BASE + 0x1e))
61 #define r15L            (*(char*)(R_BASE + 0x1e))
62 #define r15H            (*(char*)(R_BASE + 0x1f))
63
64 #ifdef __GEOS_APPLE__
65
66 #define nameBuf         char[16]
67 #define blockBuf        char[512]
68
69 #define R_BASE          0x00
70
71 #define curPattern      (*(unsigned*)0x022c)
72 #define string          (*(unsigned*)0x53)
73 #define curFontDesc     (*(struct fontdesc*)0x0218)
74 #define currentMode     (*(char*)0x021c)
75 #define dispBufferOn    (*(char*)0x021d)
76 #define mouseOn         (*(char*)0x5d)
77 #define curWindow       (*(struct window*)0x021e)
78 #define pressFlag       (*(char*)0x08fe)
79 #define mousePos        (*(struct pixel*)0x0241)
80 #define returnAddress   (*(unsigned*)0x64)
81
82 #define diskBlkBuf      ((blockBuf)0xf659)
83 #define fileHeader      (*(struct fileheader*)0xf859)
84 #define curDirHead      ((char[39])0xfa80)
85 #define dirEntryBuf     (*(struct filehandle*)0xfa59)
86
87 #define DrACurDkNm      ((nameBuf)0xfaa7)
88 #define DrBCurDkNm      ((nameBuf)0xfab7)
89 #define dataFileName    ((nameBuf)0x02a4)
90 #define dataDiskName    ((nameBuf)0x02b4)
91 #define PrntFileName    ((nameBuf)0x08ac)
92
93 #define curDrive        (*(char*)0xf60d)
94 #define diskOpenFlg     (*(char*)0xf617)
95 #define NUMDRV          (*(char*)0xf60e)
96
97 #define driveType       ((char[4])0xfaf3)
98
99 #define VLIRInfo        (*(struct VLIR_info*)0xf618)
100
101 #define appMain         (*(void_func*)0x0200)
102 #define intTopVector    (*(void_func*)0x0202)
103 #define intBotVector    (*(void_func*)0x0204)
104 #define mouseVector     (*(void_func*)0x0206)
105 #define keyVector       (*(void_func*)0x0208)
106 #define inputVector     (*(void_func*)0x020a)
107 #define mouseFaultVec   (*(void_func*)0x020c)
108 #define otherPressVec   (*(void_func*)0x020e)
109 #define StringFaultVec  (*(void_func*)0x0210)
110 #define alarmTmtVector  (*(void_func*)0x0212)
111 #define BRKVector       (*(void_func*)0x0214)
112 #define RecoverVector   (*(void_func*)0x0216)
113
114 #define selectionFlash  (*(char*)0x0224)
115 #define alphaFlag       (*(char*)0x0225)
116 #define iconSelFlg      (*(char*)0x0226)
117 #define faultData       (*(char*)0x0227)
118 #define menuNumber      (*(char*)0x0228)
119 #define mouseWindow     (*(struct window*)0x57)
120 #define stringXY        (*(struct pixel*)0x022e)
121
122 #define maxMouseSpeed   (*(char*)0x027d)
123 #define minMouseSpeed   (*(char*)0x027e)
124 #define mouseAccel      (*(char*)0x027f)
125 #define keyData         (*(char*)0x0245)
126 #define mouseData       (*(char*)0x0246)
127 #define inputData       (*(char*)0x0247)
128 #define random          (*(char*)0x024c)
129 #define saveFontTab     (*(struct fontdesc*)0x024e)
130
131 #define dblClickCount   (*(char*)0x0258)
132 #define system_date     (*(struct s_date*)0xf200)
133 #define sysDBData       (*(char*)0x0259)
134 #define dlgBoxRamBuf    (*(char*)0xf381)
135
136 #define firstBoot       (*(char*)0x0281)
137 #define inputDevName    ((nameBuf)0x08cc)
138 #define DrCCurDkNm      ((nameBuf)0xfac7)
139 #define DrDCurDkNm      ((nameBuf)0xfad7)
140
141 #define mobenble        (*(char*)0x0818)
142 #define moby2           (*(char*)0x081a)
143 #define mobx2           (*(char*)0x0819)
144
145 #else /* #ifdef __GEOS_APPLE__ */
146
147 #define nameBuf         char[17]
148 #define blockBuf        char[256]
149
150 #define CPU_DDR         (*(char*)0x00)
151 #define CPU_DATA        (*(char*)0x01)
152
153 #define R_BASE          0x02
154
155 #define curPattern      (*(unsigned*)0x22)
156 #define string          (*(unsigned*)0x24)
157 #define curFontDesc     (*(struct fontdesc*)0x26)
158 #define currentMode     (*(char*)0x2e)
159 #define dispBufferOn    (*(char*)0x2f)
160 #define mouseOn         (*(char*)0x30)
161 #define msePicPtr       (*(unsigned*)0x31)
162 #define curWindow       (*(struct window*)0x33)
163 #define pressFlag       (*(char*)0x39)
164 #define mousePos        (*(struct pixel*)0x3a)
165 #define returnAddress   (*(unsigned*)0x3d)
166 #define graphMode       (*(char*)0x3f)
167 #define STATUS          (*(char*)0x90)
168 #define curDevice       (*(char*)0xba)
169
170 #define irqvec          (*(void_func*)0x0314)
171 #define bkvec           (*(void_func*)0x0316)
172 #define nmivec          (*(void_func*)0x0318)
173
174 #define APP_RAM         ((char*)0x0400)
175 #define BACK_SCR_BASE   ((char*)0x6000)
176 #define PRINTBASE       ((char*)0x7900)
177 #define OS_VARS         ((char*)0x8000)
178
179 #define diskBlkBuf      ((blockBuf)0x8000)
180 #define fileHeader      (*(struct fileheader*)0x8100)
181 #define curDirHead      ((blockBuf)0x8200)
182 #define fileTrScTab     ((struct tr_se[128])0x8300)
183 #define dirEntryBuf     (*(struct filehandle*)0x8400)
184
185 #define DrACurDkNm      ((nameBuf)0x841e)
186 #define DrBCurDkNm      ((nameBuf)0x8430)
187 #define dataFileName    ((nameBuf)0x8442)
188 #define dataDiskName    ((nameBuf)0x8453)
189 #define PrntFileName    ((nameBuf)0x8465)
190 #define PrntDiskName    ((nameBuf)0x8476)
191
192 #define curDrive        (*(char*)0x8489)
193 #define diskOpenFlg     (*(char*)0x848a)
194 #define isGEOS          (*(char*)0x848b)
195 #define interleave      (*(char*)0x848c)
196 #define NUMDRV          (*(char*)0x848d)
197
198 #define driveType       ((char[4])0x848e)
199 #define turboFlags      ((char[4])0x8492)
200
201 #define VLIRInfo        (*(struct VLIR_info*)0x8496)
202
203 #define appMain         (*(void_func*)0x849b)
204 #define intTopVector    (*(void_func*)0x849d)
205 #define intBotVector    (*(void_func*)0x849f)
206 #define mouseVector     (*(void_func*)0x84a1)
207 #define keyVector       (*(void_func*)0x84a3)
208 #define inputVector     (*(void_func*)0x84a5)
209 #define mouseFaultVec   (*(void_func*)0x84a7)
210 #define otherPressVec   (*(void_func*)0x84a9)
211 #define StringFaultVec  (*(void_func*)0x84ab)
212 #define alarmTmtVector  (*(void_func*)0x84ad)
213 #define BRKVector       (*(void_func*)0x84af)
214 #define RecoverVector   (*(void_func*)0x84b1)
215
216 #define selectionFlash  (*(char*)0x84b3)
217 #define alphaFlag       (*(char*)0x84b4)
218 #define iconSelFlg      (*(char*)0x84b5)
219 #define faultData       (*(char*)0x84b6)
220 #define menuNumber      (*(char*)0x84b7)
221 #define mouseWindow     (*(struct window*)0x84b8)
222 #define stringXY        (*(struct pixel*)0x84be)
223 #define mousePicData    (*(char*)0x84c1)
224
225 #define maxMouseSpeed   (*(char*)0x8501)
226 #define minMouseSpeed   (*(char*)0x8502)
227 #define mouseAccel      (*(char*)0x8503)
228 #define keyData         (*(char*)0x8504)
229 #define mouseData       (*(char*)0x8505)
230 #define inputData       (*(char*)0x8506)
231 #define mouseSpeed      (*(char*)0x8507)
232 #define random          (*(char*)0x850a)
233 #define saveFontTab     (*(struct fontdesc*)0x850c)
234
235 #define dblClickCount   (*(char*)0x8515)
236 #define system_date     (*(struct s_date*)0x8516)
237 #define alarmSetFlag    (*(char*)0x851c)
238 #define sysDBData       (*(char*)0x851d)
239 #define screencolors    (*(char*)0x851e)
240 #define dlgBoxRamBuf    (*(char*)0x851f)
241
242 #define savedmoby2      (*(char*)0x88bb)
243 #define scr80polar      (*(char*)0x88bc)
244 #define scr80colors     (*(char*)0x88bd)
245 #define vdcClrMode      (*(char*)0x88be)
246 #define driveData       ((char[4])0x88bf)
247 #define ramExpSize      (*(char*)0x88c3)
248 #define sysRAMFlg       (*(char*)0x88c4)
249 #define firstBoot       (*(char*)0x88c5)
250 #define curType         (*(char*)0x88c6)
251 #define ramBase         (*(char*)0x88c7)
252 #define inputDevName    ((nameBuf)0x88cb)
253 #define DrCCurDkNm      ((nameBuf)0x88dc)
254 #define DrDCurDkNm      ((nameBuf)0x88ee)
255 #define dir2Head        ((blockBuf)0x8900)
256 #define SPRITE_PICS     ((char*)0x8a00)
257 #define sprpic          ((char[8][64])0x8a00)
258 #define COLOR_MATRIX    ((char[1000])0x8c00)
259 #define objPointer      ((char[8])0x8ff8)
260
261 #define DISK_BASE       ((char*)0x9000)
262 #define SCREEN_BASE     ((char*)0xa000)
263 #define OS_ROM          ((char*)0xc000)
264 #define OS_JUMPTAB      ((char*)0xc100)
265 #define EXP_BASE        ((char*)0xdf00)
266 #define MOUSE_BASE_128  ((char*)0xfd00)
267 #define MOUSE_JMP_128   ((char*)0xfd00)
268 #define END_MOUSE_128   ((char*)0xfe80)
269 #define MOUSE_BASE      ((char*)0xfe80)
270 #define MOUSE_JMP       ((char*)0xfe80)
271
272 #define config          (*(char*)0xff00)
273 #define END_MOUSE       ((char*)0xfffa)
274
275 #define NMI_VECTOR      (*(void_func*)0xfffa)
276 #define RESET_VECTOR    (*(void_func*)0xfffc)
277 #define IRQ_VECTOR      (*(void_func*)0xfffe)
278
279 #define vicbase         ((char*)0xd000)
280 #define sidbase         ((char*)0xd400)
281 #define mmu             ((char*)0xd500)
282 #define VDC             ((char*)0xd600)
283 #define ctab            ((char*)0xd800)
284 #define cia1base        ((char*)0xdc00)
285 #define cia2base        ((char*)0xdd00)
286
287 #define mob0xpos        (*(char*)0xd000)
288 #define mob0ypos        (*(char*)0xd001)
289 #define mob1xpos        (*(char*)0xd002)
290 #define mob1ypos        (*(char*)0xd003)
291 #define mob2xpos        (*(char*)0xd004)
292 #define mob2ypos        (*(char*)0xd005)
293 #define mob3xpos        (*(char*)0xd006)
294 #define mob3ypos        (*(char*)0xd007)
295 #define mob4xpos        (*(char*)0xd008)
296 #define mob4ypos        (*(char*)0xd009)
297 #define mob5xpos        (*(char*)0xd00a)
298 #define mob5ypos        (*(char*)0xd00b)
299 #define mob6xpos        (*(char*)0xd00c)
300 #define mob6ypos        (*(char*)0xd00d)
301 #define mob7xpos        (*(char*)0xd00e)
302 #define mob7ypos        (*(char*)0xd00f)
303 #define msbxpos         (*(char*)0xd010)
304 #define grcntrl1        (*(char*)0xd011)
305 #define rasreg          (*(char*)0xd012)
306 #define lpxpos          (*(char*)0xd013)
307 #define lpypos          (*(char*)0xd014)
308 #define mobenble        (*(char*)0xd015)
309 #define grcntrl2        (*(char*)0xd016)
310 #define grmemptr        (*(char*)0xd018)
311 #define grirq           (*(char*)0xd019)
312 #define grirqen         (*(char*)0xd01a)
313 #define moby2           (*(char*)0xd017)
314 #define mobprior        (*(char*)0xd01b)
315 #define mobmcm          (*(char*)0xd01c)
316 #define mobx2           (*(char*)0xd01d)
317 #define mobmobcol       (*(char*)0xd01e)
318 #define mobbakcol       (*(char*)0xd01f)
319 #define extclr          (*(char*)0xd020)
320 #define bakclr0         (*(char*)0xd021)
321 #define bakclr1         (*(char*)0xd022)
322 #define bakclr2         (*(char*)0xd023)
323 #define bakclr3         (*(char*)0xd024)
324 #define mcmclr0         (*(char*)0xd025)
325 #define mcmclr1         (*(char*)0xd026)
326 #define mob0clr         (*(char*)0xd027)
327 #define mob1clr         (*(char*)0xd028)
328 #define mob2clr         (*(char*)0xd029)
329 #define mob3clr         (*(char*)0xd02a)
330 #define mob4clr         (*(char*)0xd02b)
331 #define mob5clr         (*(char*)0xd02c)
332 #define mob6clr         (*(char*)0xd02d)
333 #define mob7clr         (*(char*)0xd02e)
334 #define keyreg          (*(char*)0xd02f)
335 #define clkreg          (*(char*)0xd030)
336
337 #define vdcreg          (*(char*)0xd600)
338 #define vdcdata         (*(char*)0xd601)
339
340 #endif /* #ifdef __GEOS_APPLE__ */
341
342 #endif