2 GEOS system addresses and locations
4 reassembled by Maciej 'YTM/Elysium' Witkowiak
11 #include <geos/gstruct.h>
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))
66 #define nameBuf char[17]
67 #define blockBuf char[256]
69 #define CPU_DDR (*(char*)0x00)
70 #define CPU_DATA (*(char*)0x01)
74 #define curPattern (*(unsigned*)0x22)
75 #define string (*(unsigned*)0x24)
76 #define curFontDesc (*(struct fontdesc*)0x26)
77 #define currentMode (*(char*)0x2e)
78 #define dispBufferOn (*(char*)0x2f)
79 #define mouseOn (*(char*)0x30)
80 #define msePicPtr (*(unsigned*)0x31)
81 #define curWindow (*(struct window*)0x33)
82 #define pressFlag (*(char*)0x39)
83 #define mousePos (*(struct pixel*)0x3a)
84 #define returnAddress (*(unsigned*)0x3d)
85 #define graphMode (*(char*)0x3f)
86 #define STATUS (*(char*)0x90)
87 #define curDevice (*(char*)0xba)
89 #define irqvec (*(void_func*)0x0314)
90 #define bkvec (*(void_func*)0x0316)
91 #define nmivec (*(void_func*)0x0318)
93 #define APP_RAM ((char*)0x0400)
94 #define BACK_SCR_BASE ((char*)0x6000)
95 #define PRINTBASE ((char*)0x7900)
96 #define OS_VARS ((char*)0x8000)
98 #define diskBlkBuf ((blockBuf)0x8000)
99 #define fileHeader (*(struct fileheader*)0x8100)
100 #define curDirHead ((blockBuf)0x8200)
101 #define fileTrScTab ((struct tr_se[128])0x8300)
102 #define dirEntryBuf (*(struct filehandle*)0x8400)
104 #define DrACurDkNm ((nameBuf)0x841e)
105 #define DrBCurDkNm ((nameBuf)0x8430)
106 #define dataFileName ((nameBuf)0x8442)
107 #define dataDiskName ((nameBuf)0x8453)
108 #define PrntFileName ((nameBuf)0x8465)
109 #define PrntDiskName ((nameBuf)0x8476)
111 #define curDrive (*(char*)0x8489)
112 #define diskOpenFlg (*(char*)0x848a)
113 #define isGEOS (*(char*)0x848b)
114 #define interleave (*(char*)0x848c)
115 #define NUMDRV (*(char*)0x848d)
117 #define driveType ((char[4])0x848e)
118 #define turboFlags ((char[4])0x8492)
120 #define VLIRInfo (*(struct VLIR_info*)0x8496)
122 #define appMain (*(void_func*)0x849b)
123 #define intTopVector (*(void_func*)0x849d)
124 #define intBotVector (*(void_func*)0x849f)
125 #define mouseVector (*(void_func*)0x84a1)
126 #define keyVector (*(void_func*)0x84a3)
127 #define inputVector (*(void_func*)0x84a5)
128 #define mouseFaultVec (*(void_func*)0x84a7)
129 #define otherPressVec (*(void_func*)0x84a9)
130 #define StringFaultVec (*(void_func*)0x84ab)
131 #define alarmTmtVector (*(void_func*)0x84ad)
132 #define BRKVector (*(void_func*)0x84af)
133 #define RecoverVector (*(void_func*)0x84b1)
135 #define selectionFlash (*(char*)0x84b3)
136 #define alphaFlag (*(char*)0x84b4)
137 #define iconSelFlg (*(char*)0x84b5)
138 #define faultData (*(char*)0x84b6)
139 #define menuNumber (*(char*)0x84b7)
140 #define mouseWindow (*(struct window*)0x84b8)
141 #define stringXY (*(struct pixel*)0x84be)
142 #define mousePicData (*(char*)0x84c1)
144 #define maxMouseSpeed (*(char*)0x8501)
145 #define minMouseSpeed (*(char*)0x8502)
146 #define mouseAccel (*(char*)0x8503)
147 #define keyData (*(char*)0x8504)
148 #define mouseData (*(char*)0x8505)
149 #define inputData (*(char*)0x8506)
150 #define mouseSpeed (*(char*)0x8507)
151 #define random (*(char*)0x850a)
152 #define saveFontTab (*(struct fontdesc*)0x850c)
154 #define dblClickCount (*(char*)0x8515)
155 #define system_date (*(struct s_date*)0x8516)
156 #define alarmSetFlag (*(char*)0x851c)
157 #define sysDBData (*(char*)0x851d)
158 #define screencolors (*(char*)0x851e)
159 #define dlgBoxRamBuf (*(char*)0x851f)
161 #define savedmoby2 (*(char*)0x88bb)
162 #define scr80polar (*(char*)0x88bc)
163 #define scr80colors (*(char*)0x88bd)
164 #define vdcClrMode (*(char*)0x88be)
165 #define driveData ((char[4])0x88bf)
166 #define ramExpSize (*(char*)0x88c3)
167 #define sysRAMFlg (*(char*)0x88c4)
168 #define firstBoot (*(char*)0x88c5)
169 #define curType (*(char*)0x88c6)
170 #define ramBase (*(char*)0x88c7)
171 #define inputDevName ((nameBuf)0x88cb)
172 #define DrCCurDkNm ((nameBuf)0x88dc)
173 #define DrDCurDkNm ((nameBuf)0x88ee)
174 #define dir2Head ((blockBuf)0x8900)
175 #define SPRITE_PICS ((char*)0x8a00)
176 #define sprpic ((char[8][64])0x8a00)
177 #define COLOR_MATRIX ((char[1000])0x8c00)
178 #define objPointer ((char[8])0x8ff8)
180 #define DISK_BASE ((char*)0x9000)
181 #define SCREEN_BASE ((char*)0xa000)
182 #define OS_ROM ((char*)0xc000)
183 #define OS_JUMPTAB ((char*)0xc100)
184 #define EXP_BASE ((char*)0xdf00)
185 #define MOUSE_BASE_128 ((char*)0xfd00)
186 #define MOUSE_JMP_128 ((char*)0xfd00)
187 #define END_MOUSE_128 ((char*)0xfe80)
188 #define MOUSE_BASE ((char*)0xfe80)
189 #define MOUSE_JMP ((char*)0xfe80)
191 #define config (*(char*)0xff00)
192 #define END_MOUSE ((char*)0xfffa)
194 #define NMI_VECTOR (*(void_func*)0xfffa)
195 #define RESET_VECTOR (*(void_func*)0xfffc)
196 #define IRQ_VECTOR (*(void_func*)0xfffe)
198 #define vicbase ((char*)0xd000)
199 #define sidbase ((char*)0xd400)
200 #define mmu ((char*)0xd500)
201 #define VDC ((char*)0xd600)
202 #define ctab ((char*)0xd800)
203 #define cia1base ((char*)0xdc00)
204 #define cia2base ((char*)0xdd00)
206 #define mob0xpos (*(char*)0xd000)
207 #define mob0ypos (*(char*)0xd001)
208 #define mob1xpos (*(char*)0xd002)
209 #define mob1ypos (*(char*)0xd003)
210 #define mob2xpos (*(char*)0xd004)
211 #define mob2ypos (*(char*)0xd005)
212 #define mob3xpos (*(char*)0xd006)
213 #define mob3ypos (*(char*)0xd007)
214 #define mob4xpos (*(char*)0xd008)
215 #define mob4ypos (*(char*)0xd009)
216 #define mob5xpos (*(char*)0xd00a)
217 #define mob5ypos (*(char*)0xd00b)
218 #define mob6xpos (*(char*)0xd00c)
219 #define mob6ypos (*(char*)0xd00d)
220 #define mob7xpos (*(char*)0xd00e)
221 #define mob7ypos (*(char*)0xd00f)
222 #define msbxpos (*(char*)0xd010)
223 #define grcntrl1 (*(char*)0xd011)
224 #define rasreg (*(char*)0xd012)
225 #define lpxpos (*(char*)0xd013)
226 #define lpypos (*(char*)0xd014)
227 #define mobenble (*(char*)0xd015)
228 #define grcntrl2 (*(char*)0xd016)
229 #define grmemptr (*(char*)0xd018)
230 #define grirq (*(char*)0xd019)
231 #define grirqen (*(char*)0xd01a)
232 #define moby2 (*(char*)0xd017)
233 #define mobprior (*(char*)0xd01b)
234 #define mobmcm (*(char*)0xd01c)
235 #define mobx2 (*(char*)0xd01d)
236 #define mobmobcol (*(char*)0xd01e)
237 #define mobbakcol (*(char*)0xd01f)
238 #define extclr (*(char*)0xd020)
239 #define bakclr0 (*(char*)0xd021)
240 #define bakclr1 (*(char*)0xd022)
241 #define bakclr2 (*(char*)0xd023)
242 #define bakclr3 (*(char*)0xd024)
243 #define mcmclr0 (*(char*)0xd025)
244 #define mcmclr1 (*(char*)0xd026)
245 #define mob0clr (*(char*)0xd027)
246 #define mob1clr (*(char*)0xd028)
247 #define mob2clr (*(char*)0xd029)
248 #define mob3clr (*(char*)0xd02a)
249 #define mob4clr (*(char*)0xd02b)
250 #define mob5clr (*(char*)0xd02c)
251 #define mob6clr (*(char*)0xd02d)
252 #define mob7clr (*(char*)0xd02e)
253 #define keyreg (*(char*)0xd02f)
254 #define clkreg (*(char*)0xd030)
256 #define vdcreg (*(char*)0xd600)
257 #define vdcdata (*(char*)0xd601)
259 #else /* #ifdef __GEOS_CBM__ */
261 #define nameBuf char[16]
262 #define blockBuf char[512]
266 #define curPattern (*(unsigned*)0x022c)
267 #define string (*(unsigned*)0x53)
268 #define curFontDesc (*(struct fontdesc*)0x0218)
269 #define currentMode (*(char*)0x021c)
270 #define dispBufferOn (*(char*)0x021d)
271 #define mouseOn (*(char*)0x5d)
272 #define curWindow (*(struct window*)0x021e)
273 #define pressFlag (*(char*)0x08fe)
274 #define mousePos (*(struct pixel*)0x0241)
275 #define returnAddress (*(unsigned*)0x64)
277 #define diskBlkBuf ((blockBuf)0xf659)
278 #define fileHeader (*(struct fileheader*)0xf859)
279 #define curDirHead ((char[39])0xfa80)
280 #define dirEntryBuf (*(struct filehandle*)0xfa59)
282 #define DrACurDkNm ((nameBuf)0xfaa7)
283 #define DrBCurDkNm ((nameBuf)0xfab7)
284 #define dataFileName ((nameBuf)0x02a4)
285 #define dataDiskName ((nameBuf)0x02b4)
286 #define PrntFileName ((nameBuf)0x08ac)
288 #define curDrive (*(char*)0xf60d)
289 #define diskOpenFlg (*(char*)0xf617)
290 #define NUMDRV (*(char*)0xf60e)
292 #define driveType ((char[4])0xfaf3)
294 #define VLIRInfo (*(struct VLIR_info*)0xf618)
296 #define appMain (*(void_func*)0x0200)
297 #define intTopVector (*(void_func*)0x0202)
298 #define intBotVector (*(void_func*)0x0204)
299 #define mouseVector (*(void_func*)0x0206)
300 #define keyVector (*(void_func*)0x0208)
301 #define inputVector (*(void_func*)0x020a)
302 #define mouseFaultVec (*(void_func*)0x020c)
303 #define otherPressVec (*(void_func*)0x020e)
304 #define StringFaultVec (*(void_func*)0x0210)
305 #define alarmTmtVector (*(void_func*)0x0212)
306 #define BRKVector (*(void_func*)0x0214)
307 #define RecoverVector (*(void_func*)0x0216)
309 #define selectionFlash (*(char*)0x0224)
310 #define alphaFlag (*(char*)0x0225)
311 #define iconSelFlg (*(char*)0x0226)
312 #define faultData (*(char*)0x0227)
313 #define menuNumber (*(char*)0x0228)
314 #define mouseWindow (*(struct window*)0x57)
315 #define stringXY (*(struct pixel*)0x022e)
317 #define maxMouseSpeed (*(char*)0x027d)
318 #define minMouseSpeed (*(char*)0x027e)
319 #define mouseAccel (*(char*)0x027f)
320 #define keyData (*(char*)0x0245)
321 #define mouseData (*(char*)0x0246)
322 #define inputData (*(char*)0x0247)
323 #define random (*(char*)0x024c)
324 #define saveFontTab (*(struct fontdesc*)0x024e)
326 #define dblClickCount (*(char*)0x0258)
327 #define system_date (*(struct s_date*)0xf200)
328 #define sysDBData (*(char*)0x0259)
329 #define dlgBoxRamBuf (*(char*)0xf381)
331 #define firstBoot (*(char*)0x0281)
332 #define inputDevName ((nameBuf)0x08cc)
333 #define DrCCurDkNm ((nameBuf)0xfac7)
334 #define DrDCurDkNm ((nameBuf)0xfad7)
336 #define mobenble (*(char*)0x0818)
337 #define moby2 (*(char*)0x081a)
338 #define mobx2 (*(char*)0x0819)
340 #endif /* #ifdef __GEOS_CBM__ */