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