+#define r0 (*(unsigned*)(R_BASE + 0x00))
+#define r0L (*(char*)(R_BASE + 0x00))
+#define r0H (*(char*)(R_BASE + 0x01))
+#define r1 (*(unsigned*)(R_BASE + 0x02))
+#define r1L (*(char*)(R_BASE + 0x02))
+#define r1H (*(char*)(R_BASE + 0x03))
+#define drawWindow (*(struct window*)(R_BASE + 0x04))
+#define r2 (*(unsigned*)(R_BASE + 0x04))
+#define r2L (*(char*)(R_BASE + 0x04))
+#define r2H (*(char*)(R_BASE + 0x05))
+#define r3 (*(unsigned*)(R_BASE + 0x06))
+#define r3L (*(char*)(R_BASE + 0x06))
+#define r3H (*(char*)(R_BASE + 0x07))
+#define r4 (*(unsigned*)(R_BASE + 0x08))
+#define r4L (*(char*)(R_BASE + 0x08))
+#define r4H (*(char*)(R_BASE + 0x09))
+#define r5 (*(unsigned*)(R_BASE + 0x0a))
+#define r5L (*(char*)(R_BASE + 0x0a))
+#define r5H (*(char*)(R_BASE + 0x0b))
+#define r6 (*(unsigned*)(R_BASE + 0x0c))
+#define r6L (*(char*)(R_BASE + 0x0c))
+#define r6H (*(char*)(R_BASE + 0x0d))
+#define r7 (*(unsigned*)(R_BASE + 0x0e))
+#define r7L (*(char*)(R_BASE + 0x0e))
+#define r7H (*(char*)(R_BASE + 0x0f))
+#define r8 (*(unsigned*)(R_BASE + 0x10))
+#define r8L (*(char*)(R_BASE + 0x10))
+#define r8H (*(char*)(R_BASE + 0x11))
+#define r9 (*(unsigned*)(R_BASE + 0x12))
+#define r9L (*(char*)(R_BASE + 0x12))
+#define r9H (*(char*)(R_BASE + 0x13))
+#define r10 (*(unsigned*)(R_BASE + 0x14))
+#define r10L (*(char*)(R_BASE + 0x14))
+#define r10H (*(char*)(R_BASE + 0x15))
+#define r11 (*(unsigned*)(R_BASE + 0x16))
+#define r11L (*(char*)(R_BASE + 0x16))
+#define r11H (*(char*)(R_BASE + 0x17))
+#define r12 (*(unsigned*)(R_BASE + 0x18))
+#define r12L (*(char*)(R_BASE + 0x18))
+#define r12H (*(char*)(R_BASE + 0x19))
+#define r13 (*(unsigned*)(R_BASE + 0x1a))
+#define r13L (*(char*)(R_BASE + 0x1a))
+#define r13H (*(char*)(R_BASE + 0x1b))
+#define r14 (*(unsigned*)(R_BASE + 0x1c))
+#define r14L (*(char*)(R_BASE + 0x1c))
+#define r14H (*(char*)(R_BASE + 0x1d))
+#define r15 (*(unsigned*)(R_BASE + 0x1e))
+#define r15L (*(char*)(R_BASE + 0x1e))
+#define r15H (*(char*)(R_BASE + 0x1f))
+
+#ifdef __GEOS_APPLE__
+
+#define nameBuf char[16]
+#define blockBuf char[512]
+
+#define R_BASE 0x00
+
+#define curPattern (*(unsigned*)0x022c)
+#define string (*(unsigned*)0x53)
+#define curFontDesc (*(struct fontdesc*)0x0218)
+#define currentMode (*(char*)0x021c)
+#define dispBufferOn (*(char*)0x021d)
+#define mouseOn (*(char*)0x5d)
+#define curWindow (*(struct window*)0x021e)
+#define pressFlag (*(char*)0x08fe)
+#define mousePos (*(struct pixel*)0x0241)
+#define returnAddress (*(unsigned*)0x64)
+
+#define diskBlkBuf ((blockBuf)0xf659)
+#define fileHeader (*(struct fileheader*)0xf859)
+#define curDirHead ((char[39])0xfa80)
+#define dirEntryBuf (*(struct filehandle*)0xfa59)
+
+#define DrACurDkNm ((nameBuf)0xfaa7)
+#define DrBCurDkNm ((nameBuf)0xfab7)
+#define dataFileName ((nameBuf)0x02a4)
+#define dataDiskName ((nameBuf)0x02b4)
+#define PrntFileName ((nameBuf)0x08ac)
+
+#define curDrive (*(char*)0xf60d)
+#define diskOpenFlg (*(char*)0xf617)
+#define NUMDRV (*(char*)0xf60e)
+
+#define driveType ((char[4])0xfaf3)
+
+#define VLIRInfo (*(struct VLIR_info*)0xf618)
+
+#define appMain (*(void_func*)0x0200)
+#define intTopVector (*(void_func*)0x0202)
+#define intBotVector (*(void_func*)0x0204)
+#define mouseVector (*(void_func*)0x0206)
+#define keyVector (*(void_func*)0x0208)
+#define inputVector (*(void_func*)0x020a)
+#define mouseFaultVec (*(void_func*)0x020c)
+#define otherPressVec (*(void_func*)0x020e)
+#define StringFaultVec (*(void_func*)0x0210)
+#define alarmTmtVector (*(void_func*)0x0212)
+#define BRKVector (*(void_func*)0x0214)
+#define RecoverVector (*(void_func*)0x0216)
+
+#define selectionFlash (*(char*)0x0224)
+#define alphaFlag (*(char*)0x0225)
+#define iconSelFlg (*(char*)0x0226)
+#define faultData (*(char*)0x0227)
+#define menuNumber (*(char*)0x0228)
+#define mouseWindow (*(struct window*)0x57)
+#define stringXY (*(struct pixel*)0x022e)
+
+#define maxMouseSpeed (*(char*)0x027d)
+#define minMouseSpeed (*(char*)0x027e)
+#define mouseAccel (*(char*)0x027f)
+#define keyData (*(char*)0x0245)
+#define mouseData (*(char*)0x0246)
+#define inputData (*(char*)0x0247)
+#define random (*(char*)0x024c)
+#define saveFontTab (*(struct fontdesc*)0x024e)
+
+#define dblClickCount (*(char*)0x0258)
+#define system_date (*(struct s_date*)0xf200)
+#define sysDBData (*(char*)0x0259)
+#define dlgBoxRamBuf (*(char*)0xf381)
+
+#define firstBoot (*(char*)0x0281)
+#define inputDevName ((nameBuf)0x08cc)
+#define DrCCurDkNm ((nameBuf)0xfac7)
+#define DrDCurDkNm ((nameBuf)0xfad7)
+
+#define mobenble (*(char*)0x0818)
+#define moby2 (*(char*)0x081a)
+#define mobx2 (*(char*)0x0819)
+
+#else /* #ifdef __GEOS_APPLE__ */
+