mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 05:49:19 +00:00
214 lines
8.4 KiB
C
214 lines
8.4 KiB
C
/*
|
|
File: Lomem.h
|
|
|
|
Contains: Low memory C language definitions.
|
|
|
|
Written by: Erich Ringewald
|
|
|
|
Copyright: © 1986-1992 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<4> 7/8/92 gbm #1035120,<csd>: Add macro for LastFOND low memory global.
|
|
<2> 12/5/90 DFH Added PHYSMEMTOP.
|
|
<0> 9/2/86 PYG New Today.
|
|
|
|
*/
|
|
|
|
#ifndef __EXPANDMEMPRIV__
|
|
#include "ExpandMemPriv.h"
|
|
#endif
|
|
|
|
#define XCEPTIONVECTORS ((Ptr *) 0x4) /* 68xxx exception vectors base - 4*/
|
|
#define ID_BUSERR 1
|
|
#define ID_ADDRERR 2
|
|
#define ID_ILGLERR 3
|
|
#define ID_ZEROERR 4
|
|
#define ID_CHKERROR 5
|
|
#define ID_TRAPVERR 6
|
|
#define ID_PRIVILEG 7
|
|
#define ID_TRACE 8
|
|
#define ID_LINE1010 9
|
|
#define ID_LINE1111 10
|
|
#define ID_MISCERR 11
|
|
#define ID_COPRERR 12
|
|
#define ID_INTERR 13
|
|
#define ID_UNINITINT 14
|
|
#define ID_SPURINT 23
|
|
#define ID_INT4ERR 27
|
|
#define ID_INT5ERR 28
|
|
#define ID_INT6ERR 29
|
|
#define ID_INT7ERR 30
|
|
#define ID_TRAP5 36
|
|
#define ID_TRAP6 37
|
|
#define ID_TRAP7 38
|
|
#define ID_TRAPF 46
|
|
#define NotImplemented (-1) /* value of low memory locations that are not implemented */
|
|
#define LOCATIONZERO (*(unsigned long *)(0x0)) /* bottom o' memory */
|
|
#define TRAPTBLEPTR ((char *) 0x80) /* table of 68xxx trap vectors */
|
|
#define MONKEYLIVES (*(short *)(0x100))
|
|
#define SCREENROW (*(unsigned short *)(0x106))
|
|
#define MEMTOP (*(char **)(0x108)) /* Size of 'physical' memory */
|
|
#define BUFPTR (*(char **)(0x10C))
|
|
#define STKLOWPT (*(char **)(0x110))
|
|
#define HEAPEND (*(char **)(0x114)) /* current zone limit */
|
|
#define THEZONE (*(THz *)(0x118)) /* current zone start */
|
|
#define UNITTABLE (*(Handle **)(0x11C))
|
|
#define MACJMP (*(Ptr *)(0x120))
|
|
#define MACJMPFLAG (*(char *)(0xBFF)) /* flags formerly in MACJMP high byte */
|
|
#define CPUFLAG (*(char *)(0x12F))
|
|
#define APPLLIMIT (*(char **)(0x130)) /* limit of applzone */
|
|
#define SYSEVTMASK (*(short *)(0x144))
|
|
#define SYSVERSION (*(short *)(0x15A))
|
|
#define SEVTENB (*(unsigned char *)(0x15C))
|
|
#define DSWNDUPDATE (*(unsigned char *)(0x15D))
|
|
#define FONTFLAG (*(unsigned char *)(0x15E))
|
|
#define INTFLAG (*(unsigned char *)(0x15F))
|
|
#define VBLQHDR ((struct QHdr *)(0x160))
|
|
#define TICKS (*(unsigned long *)(0x16A)) /* Time since last boot */
|
|
#define KEYMAP ((unsigned char *)(0x174))
|
|
#define UNITNTRYCNT (*(short *)(0x1D2))
|
|
#define SCRATCH20 ((char *)0x1E4)
|
|
#define PCDESKPAT (*(char *)(0x20B))
|
|
#define BOOTVOL (*(short *)(0x210))
|
|
#define SFSAVEDISK (*(short *)(0x214))
|
|
#define CURDIRSTORE (*(long *)(0x398))
|
|
#define ALARMSTATE (*(char *)(0x21F))
|
|
#define MEMERROR (*(short *)(0x220))
|
|
#define SOUNDACTIVE (*(char *)(0x27E))
|
|
#define SWITCHDATA (*(char **)(0x282))
|
|
#define PROCESSMGRGLOBALS (*(unsigned long *)(0xB7C))
|
|
/* ROM85: BIT 7 0=>128K roms, 1=> 64K roms */
|
|
/* ROM85: BIT 6 0=> machine has soft power switch, 1 => it doesn't */
|
|
#define ROM85 (*(short *)(0x28E))
|
|
#define SYSZONE (*(THz *)(0x2A6)) /* syszone start */
|
|
#define APPLZONE (*(THz *)(0x2AA)) /* applzone start */
|
|
#define ROMBASE (*(Ptr *)(0x2AE)) /* ptr to rom */
|
|
#define EXPANDMEM (*(ExpandMemRec **)(0x2B6))
|
|
#define DSALERTTAB (*(char **)(0x2BA))
|
|
#define FINDERNAME ( (char *)(0x2E0))
|
|
|
|
#define FKEYENB (*(short *)(0x2F8))
|
|
#define MACPGM (*(long *)(0x316))
|
|
#define LO3BYTES (*(unsigned long *)(0x31A))
|
|
#define MINSTACK (*(unsigned long *)(0x31E))
|
|
#define DEFLTSTACK (*(unsigned long *)(0x322))
|
|
#define MMDEFFLAGS (*(unsigned short *)(0x326))
|
|
#define GZROOTHND (*(Handle *)(0x328))
|
|
#define GZROOTPTR (*(char **)(0x32C))
|
|
#define GZMOVEHND (*(Handle *)(0x330))
|
|
#define DSDRAWPROC (*(void (**)())(0x334))
|
|
#define EJECTNOTIFY (*(void (**)())(0x338))
|
|
#define IAZNOTIFY (*(void (**)())(0x33C))
|
|
#define FCBSPTR (*(Ptr *)(0x34E))
|
|
#define DEFVCBPTR (*(char **)(0x352))
|
|
#define FSBUSY (*(short *)(0x360))
|
|
#define WDCBSPTR (*(char **)(0x372))
|
|
#define DEFVREFNUM (*(short *)(0x384))
|
|
#define PMSPPTR (*(char **)(0x386))
|
|
#define PMSPHOOKINDEX (-6) /* Index off of PMSPPtr to get to hook */
|
|
#define FSQUEUEHOOK (*(void (**)())(0x3E2))
|
|
#define DSALERTRECT (*(Rect *)(0x3F8))
|
|
|
|
#define SCRNBASE (*(unsigned long *)(0x824))
|
|
#define MTEMP (*(Point *)(0x828))
|
|
#define RAWMOUSE (*(Point *)(0x82C))
|
|
#define MOUSE (*(Point *)(0x830))
|
|
#define THECRSR (*(Cursor *)(0x844))
|
|
#define DEVICELIST (*(GDHandle *)(0x8A8))
|
|
|
|
#define CRSRVIS (*(unsigned char *)(0x8CC))
|
|
#define CRSRNEW (*((Boolean *)0x8CE))
|
|
#define WIDTHLISTHAND (*(Handle *)(0x8E4))
|
|
#define WWEXIST (*(char *)(0x8F2))
|
|
#define QDEXIST (*(char *)(0x8F3))
|
|
#define CURAPREFNUM (*(short *)(0x900))
|
|
#define CURRENTA5 (*(unsigned long *)(0x904))
|
|
#define CURSTACKBASE (*(char **)(0x908))
|
|
#define CURAPNAME ( (char *)(0x910)) /* POINTER to apname */
|
|
#define SAVESEGHANDLE (*(Handle *)(0x930))
|
|
#define CURJTOFFSET (*(unsigned short *)(0x934)) /* A5 offset of the jump table */
|
|
|
|
#define PRINTVARS (*(unsigned long *)(0x944)) /* God only knows... */
|
|
|
|
#define SCRAPINFO (*(long *)(0x960)) /* length of scrap */
|
|
#define SCRAPHANDLE (*(Handle *)(0x964)) /* handle to scrap */
|
|
#define SCRAPCOUNT (*(short *)(0x968)) /* validation byte */
|
|
#define SCRAPSTATE (*(short *)(0x96A)) /* scrap state */
|
|
#define SCRAPNAME (*(char **)(0x96C)) /* POINTER to scrap file name */
|
|
|
|
#define SCRAPHANDLE (*(Handle *)(0x964)) /* handle to scrap */
|
|
#define WINDOWLIST (*(WindowPeek *)(0x9D6))
|
|
#define SAVEUPDATE (*(short *)(0x9DA))
|
|
#define PAINTWHITE (*(short *)(0x9DC))
|
|
#define WMGRPORT (*(WindowPeek *)(0x9DE))
|
|
#define GRAYRGN (*(RgnHandle *)(0x9EE))
|
|
|
|
#define DRAGHOOK (*(void (**)())(0x9F6))
|
|
#define TOPMENUITEM (*(short *)(0xA0A))
|
|
#define MENULIST (*(Handle *)(0xA1C))
|
|
#define CURDEKIND (*(short *)(0xA22))
|
|
#define THEMENU (*(short *)(0xA26))
|
|
#define DESKPATTERN (*(Pattern *)(0xA3C))
|
|
#define DRAGFLAG (*(short *)(0xA44))
|
|
#define TOPMAPHANDLE (*(Handle *)(0xA50))
|
|
#define SYSMAPHANDLE (*(Handle *)(0xA54))
|
|
#define SYSMAP (*(short *)(0xA58))
|
|
#define CURMAP (*(short *)(0xA5A))
|
|
#define RESLOAD (*(Boolean *)(0xA5E))
|
|
#define RESERR (*(short *)(0xA60))
|
|
#define TASKLOCK (*(unsigned char *)(0xA62))
|
|
#define FSCALEDISABLE (*(unsigned char *)(0xA63))
|
|
#define CURACTIVATE (*(WindowPeek *)(0xA64))
|
|
#define CURDEACTIVATE (*(WindowPeek *)(0xA68))
|
|
#define DESKHOOK (*(void (**)())(0xA6C))
|
|
#define GHOSTWINDOW (*(WindowPeek *)(0xA84))
|
|
#define CLOSEORNHOOK (*(void (**)())(0xA88))
|
|
#define RESUMEPROC (*(void (**)())(0xA8C))
|
|
#define CURLAYER (*(void (**)())(0xA90))
|
|
#define DASTRINGS ( (Handle *)(0xAA0))
|
|
#define SOUNDGLUE (*(Handle *)(0xAE8))
|
|
#define APPPARMHANDLE (*(Handle *)(0xAEC))
|
|
#define DSERRCODE (*(short *)(0xAF0))
|
|
#define RESERRPROC (*(void (**)())(0xAF2))
|
|
|
|
#define EXTENSIONSENABLEBYTE (*(char *)(0xB20))
|
|
#define SWITCHEDBITS (*(char *)(0xB21)) /* general purpose flags */
|
|
#define HWCWFLAGS (*(short *)(0xB22)) /* Hardware flags */
|
|
#define WIDTHTABHANDLE (*(Handle *)(0xB2A))
|
|
#define LASTSPEXTRA (*(long *)(0xB4C))
|
|
#define SLIMEOPHORE (*(unsigned long *)(0xB50)) /* for Patrick's PRLocking */
|
|
#define NMQHDRPTR (*(struct QHdr **)(0xB60))
|
|
#define RMGRCACHE (*(Handle *)(0xB84))
|
|
#define ROMMAPINSERT (*(short *)(0xB9E))
|
|
#define RMGRPERM (*(char *)(0xBA4))
|
|
#define MBARHEIGHT (*(short *)(0xBAA))
|
|
#define HIHEAPMARK (*(Ptr *)(0xBAE))
|
|
#define SEGHIENABLE (*(char *)(0xBB2))
|
|
#define LASTFOND (*(Handle *)(0xBC2))
|
|
#define RGBBLACK (*(RGBColor *)(0xC10))
|
|
#define RGBWHITE (*(RGBColor *)(0xC16))
|
|
#define NMIFLAG (*(char *)(0xC2C))
|
|
|
|
#define MMUFLAGS (*(char *)(0xCB0)) /* memory management muck */
|
|
#define MMUTYPE (*(char *)(0xCB1))
|
|
#define MMU32BIT (*(char *)(0xCB2))
|
|
#define MMUFLUFF (*(char *)(0xCB3))
|
|
|
|
#define AUXWINHEAD (*(AuxWinHandle *)(0xCD0))
|
|
#define AUXCTLHEAD (*(AuxCtlHandle *)(0xCD4))
|
|
#define DESKCPAT (*(PixPatHandle *)(0xCD8))
|
|
#define WMGRCPORT (*(GrafPtr *)(0xD2C))
|
|
#define SYNLISTHANDLE (*(Handle *)(0xD32))
|
|
#define FMEXIST (*(char *)(0xD42))
|
|
#define MENUCINFO (*(Handle *)(0xD50))
|
|
#define PORTLIST (*(Handle *)(0xD66))
|
|
#define PMGRHANDLE (*(Handle *)(0xDC8))
|
|
#define LAYERPALETTE (*(Handle *)(0xDCC))
|
|
#define PHYSMEMTOP (*(char**)(0x1EF8))
|
|
#define MMFLAGS (*(char *)(0x1EFC)) /* MMU flags */
|
|
#define MMSTARTMODE 0 /* .... ...n, n=0 for 24 bit, n=1 for 32 bit */
|
|
#define MMMIXED 1 /* .... ..n., n=0 for no mixed mode, n=1 for mixed 23/32 mode */
|
|
#define MMSYSHEAP 2 /* .... .n.., n=0 for 24 bit system heap, n=1 for 32 bit system heap */
|
|
#define MMROZHEAP 3 /* .... n..., n=0 for 24 bit ROZ heap, n=1 for 32 bit ROZ heap */
|