
/************************************************************

Created: Friday, November 15, 1991 at 9:29 AM
 SysEqu.h
 C Interface to the Macintosh Libraries


  Copyright Apple Computer, Inc. 1985-1992
  All rights reserved


	Change History (most recent first):

	   <SM6>	11/10/93	fau		Update from SuperMunggio <SMG2>.
	  <SMG2>	 8/26/93	chp		Added the 680x0 exception vectors.
		 <5>	 11/5/93	IH		Sync with Excelsior.
	   <SM4>	  9/6/93	pdw		Added SCSI2Base.
		<13>	 2/24/93	JDR		Added HWCfgFlags since it's in Inside Mac, it's necessary at
									time to look at this, and it also in the asm interfaces.
		<12>	 4/16/92	DCL		For New Inside Mac: Added SysDirection as a synonym for
									TESysJust.
		<11>	 4/14/92	DCL		Added new improved names in the continued pursuit of
									name-nirvana in IM 2nd Edition.
		<10>	 2/17/92	MH		Corrected value of timeSCSIDB from 0DA6 to 0B24
		 <9>	11/19/91	JL		Added ToolScratch and ApplScratch as per I.M. vol. I p. 85.
		 <8>	 7/31/91	JL		Updated Copyright.
		 <7>	 6/14/91	JL		Checked in official MPW 3.2Ä version. Removed the comma after
									the constant declarations of: SdVolume, JIODone, ScrapName,
									CurActivate, and ResErrProc because the cmarker tool was dying.
		 <6>	 1/28/91	LN		Checked in Database generate file from DSG. Grouping enums into
									groups of 20.
		 <5>	10/24/90	JL		This file should be casted not anonymous enums.
		 <4>	10/24/90	JL		Changed all #defines to anonymous enums.

	To Do:
************************************************************/


#ifndef __SYSEQU__
#define __SYSEQU__


enum {
 ResetSP = 0x00,				/*[EXCEPTION VECTOR]  (long) reset initial interrupt SP*/
 ResetPC = 0x04,				/*[EXCEPTION VECTOR]  (long) reset initial Program counter*/
 BusErrVct = 0x08,				/*[EXCEPTION VECTOR]  (long) bus error vector*/
 AddrVector = 0x0C,				/*[EXCEPTION VECTOR]  (long) address error*/
 IlglVector = 0x10,				/*[EXCEPTION VECTOR]  (long) illegal instruction*/
 ZeroVector = 0x14,				/*[EXCEPTION VECTOR]  (long) divide by 0*/
 CheckVector = 0x18,			/*[EXCEPTION VECTOR]  (long) check bounds error*/
 TrapVVector = 0x1C,			/*[EXCEPTION VECTOR]  (long) trapv location*/
 PrivlgVector = 0x20,			/*[EXCEPTION VECTOR]  (long) privilege violation*/
 TraceVector = 0x24,			/*[EXCEPTION VECTOR]  (long) trace exception vector*/
 Line1010 = 0x28,				/*[EXCEPTION VECTOR]  (long) 1010 emulator trap (system routines)*/
 Line1111 = 0x2C,				/*[EXCEPTION VECTOR]  (long) 1111 emulator trap (reserved)*/
 DebugVector = Line1111,		/*[EXCEPTION VECTOR]  (long) debug instructions*/
 FmtErrVect = 0x38,				/*[EXCEPTION VECTOR]  (long) format error vector for 68010/68020*/
 BadIntVector = 0x60,			/*[EXCEPTION VECTOR]  (long) spurious interrupt*/
 AutoInt1 = 0x64,				/*[EXCEPTION VECTOR]  (long) level 1 auto-vector*/
 AutoInt2 = 0x68,				/*[EXCEPTION VECTOR]  (long) level 2 auto-vector*/
 AutoInt3 = 0x6C,				/*[EXCEPTION VECTOR]  (long) level 3 auto-vector*/
 AutoInt4 = 0x70,				/*[EXCEPTION VECTOR]  (long) level 4 auto-vector*/
 AutoInt5 = 0x74,				/*[EXCEPTION VECTOR]  (long) level 5 auto-vector*/
 AutoInt6 = 0x78,				/*[EXCEPTION VECTOR]  (long) level 6 auto-vector*/
 AutoInt7 = 0x7C,				/*[EXCEPTION VECTOR]  (long) level 7 auto-vector*/
 BkptVector = 0xB8,				/*[EXCEPTION VECTOR]  (long) break loc*/
 BSUNVector = 0xC0,				/*[EXCEPTION VECTOR]  (long) BSUN for FP Emulation Code*/
 UNFLVector = 0xCC,				/*[EXCEPTION VECTOR]  (long) Underflow for FP Emulation Code*/
 OPERRVector = 0xD0,			/*[EXCEPTION VECTOR]  (long) Operand Error for FP Emulation Code*/
 OVFLVector = 0xD4,				/*[EXCEPTION VECTOR]  (long) Overflow for FP Emulation Code*/
 SNANVector = 0xD8,				/*[EXCEPTION VECTOR]  (long) Signal NAN for FP Emulation Code*/
 UNIMPDTVector = 0xDC			/*[EXCEPTION VECTOR]  (long) 040 Unimplemented Data Type for FP Emulation Code*/
};
enum {
 PCDeskPat = 0x20B,				/*[GLOBAL VAR]  desktop pat, top bit only! others are in use*/
 HiKeyLast = 0x216,				/*[GLOBAL VAR]  Same as KbdVars*/
 KbdLast = 0x218,				/*[GLOBAL VAR]  Same as KbdVars+2*/
 ExpandMem = 0x2B6,				/*[GLOBAL VAR]  pointer to expanded memory block*/
 SCSIBase = 0x0C00,				/*[GLOBAL VAR]  (long) base address for SCSI chip read*/
 SCSI2Base = 0x1FF0,			/*[GLOBAL VAR]  (long) base address for 2nd SCSI chip read*/
 SCSIDMA = 0x0C04,				/*[GLOBAL VAR]  (long) base address for SCSI DMA*/
 SCSIHsk = 0x0C08,				/*[GLOBAL VAR]  (long) base address for SCSI handshake*/
 SCSIGlobals = 0x0C0C,			/*[GLOBAL VAR]  (long) ptr for SCSI mgr locals*/
 RGBBlack = 0x0C10,				/*[GLOBAL VAR]  (6 bytes) the black field for color*/
 RGBWhite = 0x0C16,				/*[GLOBAL VAR]  (6 bytes) the white field for color*/
 RowBits = 0x0C20,				/*[GLOBAL VAR]  (word) screen horizontal pixels*/
 ColLines = 0x0C22,				/*[GLOBAL VAR]  (word) screen vertical pixels*/
 ScreenBytes = 0x0C24,			/*[GLOBAL VAR]  (long) total screen bytes*/
 NMIFlag = 0x0C2C,				/*[GLOBAL VAR]  (byte) flag for NMI debounce*/
 VidType = 0x0C2D,				/*[GLOBAL VAR]  (byte) video board type ID*/
 VidMode = 0x0C2E,				/*[GLOBAL VAR]  (byte) video mode (4=4bit color)*/
 SCSIPoll = 0x0C2F,				/*[GLOBAL VAR]  (byte) poll for device zero only once.*/
 SEVarBase = 0x0C30,			/*[GLOBAL VAR] */
 MMUFlags = 0x0CB0,				/*[GLOBAL VAR]  (byte) cleared to zero (reserved for future use)*/
 MMUType = 0x0CB1				/*[GLOBAL VAR]  (byte) kind of MMU present*/
};
enum {
 MMU32bit = 0x0CB2,				/*[GLOBAL VAR]  (byte) boolean reflecting current machine MMU mode*/
 MMUFluff = 0x0CB3,				/*[GLOBAL VAR]  (byte) fluff byte forced by reducing MMUMode to MMU32bit.*/
 MMUTbl = 0x0CB4,				/*[GLOBAL VAR]  (long) pointer to MMU Mapping table*/
 MMUTblSize = 0x0CB8,			/*[GLOBAL VAR]  (long) size of the MMU mapping table*/
 SInfoPtr = 0x0CBC,				/*[GLOBAL VAR]  (long) pointer to Slot manager information*/
 ASCBase = 0x0CC0,				/*[GLOBAL VAR]  (long) pointer to Sound Chip*/
 SMGlobals = 0x0CC4,			/* (long) pointer to Sound Manager Globals*/
 TheGDevice = 0x0CC8,			/*[GLOBAL VAR]  (long) the current graphics device*/
 CQDGlobals = 0x0CCC,			/* (long) quickDraw global extensions*/
 ADBBase = 0x0CF8,				/*[GLOBAL VAR]  (long) pointer to Front Desk Buss Variables*/
 WarmStart = 0x0CFC,			/*[GLOBAL VAR]  (long) flag to indicate it is a warm start*/
 TimeDBRA = 0x0D00,				/*[GLOBAL VAR]  (word) number of iterations of DBRA per millisecond*/
 TimeSCCDB = 0x0D02,			/*[GLOBAL VAR]  (word) number of iter's of SCC access & DBRA.*/
 SlotQDT = 0x0D04,				/*[GLOBAL VAR]  ptr to slot queue table*/
 SlotPrTbl = 0x0D08,			/*[GLOBAL VAR]  ptr to slot priority table*/
 SlotVBLQ = 0x0D0C,				/*[GLOBAL VAR]  ptr to slot VBL queue table*/
 ScrnVBLPtr = 0x0D10,			/*[GLOBAL VAR]  save for ptr to main screen VBL queue*/
 SlotTICKS = 0x0D14,			/*[GLOBAL VAR]  ptr to slot tickcount table*/
 TableSeed = 0x0D20,			/*[GLOBAL VAR]  (long) seed value for color table ID's*/
 SRsrcTblPtr = 0x0D24			/*[GLOBAL VAR]  (long) pointer to slot resource table.*/
};
enum {
 JVBLTask = 0x0D28,				/*[GLOBAL VAR]  vector to slot VBL task interrupt handler*/
 WMgrCPort = 0x0D2C,			/*[GLOBAL VAR]  window manager color port */
 VertRRate = 0x0D30,			/*[GLOBAL VAR]  (word) Vertical refresh rate for start manager. */
 ChunkyDepth = 0x0D60,			/*[GLOBAL VAR]  depth of the pixels*/
 CrsrPtr = 0x0D62,				/*[GLOBAL VAR]  pointer to cursor save area*/
 PortList = 0x0D66,				/*[GLOBAL VAR]  list of grafports*/
 MickeyBytes = 0x0D6A,			/*[GLOBAL VAR]  long pointer to cursor stuff*/
 QDErrLM = 0x0D6E,				/*[GLOBAL VAR] QDErr has name conflict w/ type. QuickDraw error code [word]*/
 VIA2DT = 0x0D70,				/*[GLOBAL VAR]  32 bytes for VIA2 dispatch table for NuMac*/
 SInitFlags = 0x0D90,			/*[GLOBAL VAR]  StartInit.a flags [word]*/
 DTQueue = 0x0D92,				/*[GLOBAL VAR]  (10 bytes) deferred task queue header*/
 DTQFlags = 0x0D92,				/*[GLOBAL VAR]  flag word for DTQueue*/
 DTskQHdr = 0x0D94,				/*[GLOBAL VAR]  ptr to head of queue*/
 DTskQTail = 0x0D98,			/*[GLOBAL VAR]  ptr to tail of queue*/
 JDTInstall = 0x0D9C,			/*[GLOBAL VAR]  (long) ptr to deferred task install routine*/
 HiliteRGB = 0x0DA0,			/*[GLOBAL VAR]  6 bytes: rgb of hilite color*/
 HWCfgFlags = 0x0B22,			/*[GLOBAL VAR]  (word) hardware configuration flags*/
 TimeSCSIDB = 0x0B24,			/*[GLOBAL VAR]  (word) number of iter's of SCSI access & DBRA*/
 DSCtrAdj = 0x0DA8,				/*[GLOBAL VAR]  (long) Center adjust for DS rect.*/
 IconTLAddr = 0x0DAC,			/*[GLOBAL VAR]  (long) pointer to where start icons are to be put.*/
 VideoInfoOK = 0x0DB0			/*[GLOBAL VAR]  (long) Signals to CritErr that the Video card is ok*/
};
enum {
 EndSRTPtr = 0x0DB4,			/*[GLOBAL VAR]  (long) Pointer to the end of the Slot Resource Table (Not the SRT buffer).*/
 SDMJmpTblPtr = 0x0DB8,			/*[GLOBAL VAR]  (long) Pointer to the SDM jump table*/
 JSwapMMU = 0x0DBC,				/*[GLOBAL VAR]  (long) jump vector to SwapMMU routine*/
 SdmBusErr = 0x0DC0,			/*[GLOBAL VAR]  (long) Pointer to the SDM busErr handler*/
 LastTxGDevice = 0x0DC4,		/*[GLOBAL VAR]  (long) copy of TheGDevice set up for fast text measure*/
 NewCrsrJTbl = 0x88C,			/*[GLOBAL VAR]  location of new crsr jump vectors*/
 JAllocCrsr = 0x88C,			/*[GLOBAL VAR]  (long) vector to routine that allocates cursor*/
 JSetCCrsr = 0x890,				/*[GLOBAL VAR]  (long) vector to routine that sets color cursor*/
 JOpcodeProc = 0x894,			/*[GLOBAL VAR]  (long) vector to process new picture opcodes*/
 CrsrBase = 0x898,				/*[GLOBAL VAR]  (long) scrnBase for cursor*/
 CrsrDevice = 0x89C,			/*[GLOBAL VAR]  (long) current cursor device*/
 SrcDevice = 0x8A0,				/*[GLOBAL VAR]  (LONG) Src device for Stretchbits*/
 MainDevice = 0x8A4,			/*[GLOBAL VAR]  (long) the main screen device*/
 DeviceList = 0x8A8,			/*[GLOBAL VAR]  (long) list of display devices*/
 CrsrRow = 0x8AC,				/*[GLOBAL VAR]  (word) rowbytes for current cursor screen*/
 QDColors = 0x8B0,				/*[GLOBAL VAR]  (long) handle to default colors*/
 HiliteMode = 0x938,			/*[GLOBAL VAR]  used for color highlighting*/
 RestProc = 0xA8C,				/*[GLOBAL VAR]  Resume procedure f InitDialogs [pointer]*/
 ROM85 = 0x28E,					/*[GLOBAL VAR]  (word) actually high bit - 0 for ROM vers $75 (sic) and later*/
 ntsc = 0xB3E					/*[GLOBAl VAR]	(byte) Decides fate of menubarÕs squareness: 0 for square, non-zero for round.*/
};
enum {
 ROMMapHndl = 0xB06,			/*[GLOBAL VAR]  (long) handle of ROM resource map*/
 ScrVRes = 0x102,				/*[GLOBAL VAR] Pixels per inch vertically (word)
   screen vertical dots/inch [word]*/
 ScrHRes = 0x104,				/*[GLOBAL VAR] Pixels per inch horizontally (word)
   screen horizontal dots/inch [word]*/
 ScrnBase = 0x824,				/*[GLOBAL VAR] Address of main screen buffer
   Screen Base [pointer]*/
 ScreenRow = 0x106,				/*[GLOBAL VAR]  rowBytes of screen [word]*/
 MBTicks = 0x16E,				/*[GLOBAL VAR]  tick count @ last mouse button [long]*/
 JKybdTask = 0x21A,				/*[GLOBAL VAR]  keyboard VBL task hook [pointer]*/
 KeyLast = 0x184,				/*[GLOBAL VAR]  ASCII for last valid keycode [word]*/
 KeyTime = 0x186,				/*[GLOBAL VAR]  tickcount when KEYLAST was rec'd [long]*/
 KeyRepTime = 0x18A,			/*[GLOBAL VAR]  tickcount when key was last repeated [long]*/
 SPConfig = 0x1FB,				/*[GLOBAL VAR] Use types for serial ports (byte)
   config bits: 4-7 A, 0-3 B (see use type below)*/
 SPPortA = 0x1FC,				/*[GLOBAL VAR] Modem port configuration (word)
   SCC port A configuration [word]*/
 SPPortB = 0x1FE,				/*[GLOBAL VAR] Printer port configuration (word)
   SCC port B configuration [word]*/
 SCCRd = 0x1D8,					/*[GLOBAL VAR] SCC read base address
   SCC base read address [pointer]*/
 SCCWr = 0x1DC,					/*[GLOBAL VAR] SCC write base address
   SCC base write address [pointer]*/
 DoubleTime = 0x2F0,			/*[GLOBAL VAR] Double-click interval in ticks (long)
   double click ticks [long]*/
 CaretTime = 0x2F4,				/*[GLOBAL VAR] Caret-blink interval in ticks (long)
   caret blink ticks [long]*/
 KeyThresh = 0x18E,				/*[GLOBAL VAR] Auto-key threshold (word)
   threshold for key repeat [word]*/
 KeyRepThresh = 0x190,			/*[GLOBAL VAR] Auto-key rate (word)
   key repeat speed [word]*/
 SdVolume = 0x260				/*[GLOBAL VAR] Current speaker volume (byte:  low-order three bits only)
   Global volume(sound) control [byte]*/
};
enum {
 Ticks = 0x16A,					/*[GLOBAL VAR] Current number of ticks since system startup (long)
   Tick count, time since boot [unsigned long]*/
 TimeLM = 0x20C,				/*[GLOBAL VAR] Time has name conflict w/ type. Clock time (extrapolated) [long]*/
 MonkeyLives = 0x100,			/*[GLOBAL VAR]  monkey lives if >= 0 [word]*/
 SEvtEnb = 0x15C,				/*[GLOBAL VAR] 0 if SystemEvent should return FALSE (byte)
   enable SysEvent calls from GNE [byte]*/
 JournalFlag = 0x8DE,			/*[GLOBAL VAR] Journaling mode (word)
   journaling state [word]*/
 JournalRef = 0x8E8,			/*[GLOBAL VAR] Reference number of journaling device driver (word)
   Journalling driver's refnum [word]*/
 BufPtr = 0x10C,				/*[GLOBAL VAR] Address of end of jump table
   top of application memory [pointer]*/
 StkLowPt = 0x110,				/*[GLOBAL VAR]  Lowest stack as measured in VBL task [pointer]*/
 TheZone = 0x118,				/*[GLOBAL VAR] Address of current heap zone
   current heap zone [pointer]*/
 ApplLimit = 0x130,				/*[GLOBAL VAR] Application heap limit
   application limit [pointer]*/
 SysZone = 0x2A6,				/*[GLOBAL VAR] Address of system heap zone
   system heap zone [pointer]*/
 ApplZone = 0x2AA,				/*[GLOBAL VAR] Address of application heap zone
   application heap zone [pointer]*/
 HeapEnd = 0x114,				/*[GLOBAL VAR] Address of end of application heap zone
   end of heap [pointer]*/
 HiHeapMark = 0xBAE,			/*[GLOBAL VAR]  (long) highest address used by a zone below sp<01Nov85 JTC>*/
 MemErr = 0x220,				/*[GLOBAL VAR]  last memory manager error [word]*/
 UTableBase = 0x11C,			/*[GLOBAL VAR] Base address of unit table
   unit I/O table [pointer]*/
 UnitNtryCnt = 0x1D2,			/*[GLOBAL VAR]  count of entries in unit table [word]*/
 JFetch = 0x8F4,				/*[GLOBAL VAR] Jump vector for Fetch function
   fetch a byte routine for drivers [pointer]*/
 JStash = 0x8F8,				/*[GLOBAL VAR] Jump vector for Stash function
   stash a byte routine for drivers [pointer]*/
 JIODone = 0x8FC				/*[GLOBAL VAR] Jump vector for IODone function
   IODone entry location [pointer]*/
};
enum {
 DrvQHdr = 0x308,				/*[GLOBAL VAR] Drive queue header (10 bytes)
   queue header of drives in system [10 bytes]*/
 BootDrive = 0x210,				/*[GLOBAL VAR]  drive number of boot drive [word]*/
 EjectNotify = 0x338,			/*[GLOBAL VAR]  eject notify procedure [pointer]*/
 IAZNotify = 0x33C,				/*[GLOBAL VAR]  world swaps notify procedure [pointer]*/
 SFSaveDisk = 0x214,			/*[GLOBAL VAR] Negative of volume reference number used by Standard File Package (word)
   last vRefNum seen by standard file [word]*/
 CurDirStore = 0x398,			/*[GLOBAL VAR]  save dir across calls to Standard File [long]*/
 OneOne = 0xA02,				/*[GLOBAL VAR] $00010001
   constant $00010001 [long]*/
 MinusOne = 0xA06,				/*[GLOBAL VAR] $FFFFFFFF
   constant $FFFFFFFF [long]*/
 Lo3Bytes = 0x31A,				/*[GLOBAL VAR] $00FFFFFF
   constant $00FFFFFF [long]*/
 ROMBase = 0x2AE,				/*[GLOBAL VAR] Base address of ROM
   ROM base address [pointer]*/
 RAMBase = 0x2B2,				/*[GLOBAL VAR] Trap dispatch table's base address for routines in RAM
   RAM base address [pointer]*/
 SysVersion = 0x15A,			/*[GLOBAL VAR]  version # of RAM-based system [word]*/
 RndSeed = 0x156,				/*[GLOBAL VAR] Random number seed (long)
   random seed/number [long]*/
 Scratch20 = 0x1E4,				/*[GLOBAL VAR] 20-byte scratch area
   scratch [20 bytes]*/
 Scratch8 = 0x9FA,				/*[GLOBAL VAR] 8-byte scratch area
   scratch [8 bytes]*/
 ToolScratch = 0x9CE,			/*[GLOBAL VAR] 8-byte scratch area
   scratch [8 bytes]*/
 ApplScratch = 0xA78,			/*[GLOBAL VAR] 12-byte application scratch area
   scratch [12 bytes]*/
 ScrapSize = 0x960,				/*[GLOBAL VAR] Size in bytes of desk scrap (long)
   scrap length [long]*/
 ScrapHandle = 0x964,			/*[GLOBAL VAR] Handle to desk scrap in memory
   memory scrap [handle]*/
 ScrapCount = 0x968				/*[GLOBAL VAR] Count changed by ZeroScrap (word)
   validation byte [word]*/
};
enum {
 ScrapState = 0x96A,			/*[GLOBAL VAR] Tells where desk scrap is (word)
   scrap state [word]*/
 ScrapName = 0x96C,				/*[GLOBAL VAR] Pointer to scrap file name (preceded by length byte)
   pointer to scrap name [pointer]*/
 IntlSpec = 0xBA0,				/*[GLOBAL VAR]  (long) - ptr to extra Intl data */
 SwitcherTPtr = 0x286,			/*[GLOBAL VAR]  Switcher's switch table */
 CPUFlag = 0x12F,				/*[GLOBAL VAR]  $00=68000, $01=68010, $02=68020 (old ROM inits to $00)*/
 VIA = 0x1D4,					/*[GLOBAL VAR] VIA base address
   VIA base address [pointer]*/
 IWM = 0x1E0,					/*[GLOBAL VAR]  IWM base address [pointer]*/
 Lvl1DT = 0x192,				/*[GLOBAL VAR] Level-1 secondary interrupt vector table (32 bytes)
   Interrupt level 1 dispatch table [32 bytes]*/
 Lvl2DT = 0x1B2,				/*[GLOBAL VAR] Level-2 secondary interrupt vector table (32 bytes)
   Interrupt level 2 dispatch table [32 bytes]*/
 ExtStsDT = 0x2BE,				/*[GLOBAL VAR] External/status interrupt vector table (16 bytes)
   SCC ext/sts secondary dispatch table [16 bytes]*/
 SPValid = 0x1F8,				/*[GLOBAL VAR] Validity status (byte)
   validation field ($A7) [byte]*/
 SPATalkA = 0x1F9,				/*[GLOBAL VAR] AppleTalk node ID hint for modem port (byte)
   AppleTalk node number hint for port A*/
 SPATalkB = 0x1FA,				/*[GLOBAL VAR] AppleTalk node ID hint for printer port (byte)
   AppleTalk node number hint for port B*/
 SPAlarm = 0x200,				/*[GLOBAL VAR] Alarm setting (long)
   alarm time [long]*/
 SPFont = 0x204,				/*[GLOBAL VAR] Application font number minus 1 (word)
   default application font number minus 1 [word]*/
 SPKbd = 0x206,					/*[GLOBAL VAR] Auto-key threshold and rate (byte)
   kbd repeat thresh in 4/60ths [2 4-bit]*/
 SPPrint = 0x207,				/*[GLOBAL VAR] Printer connection (byte)
   print stuff [byte]*/
 SPVolCtl = 0x208,				/*[GLOBAL VAR] Speaker volume setting in parameter RAM (byte)
   volume control [byte]*/
 SPClikCaret = 0x209,			/*[GLOBAL VAR] Double-click and caret-blink times (byte)
   double click/caret time in 4/60ths[2 4-bit]*/
 SPMisc1 = 0x20A				/*[GLOBAL VAR]  miscellaneous [1 byte]*/
};
enum {
 SPMisc2 = 0x20B,				/*[GLOBAL VAR] Mouse scaling, system startup disk, menu blink (byte)
   miscellaneous [1 byte]*/
 GetParam = 0x1E4,				/*[GLOBAL VAR]  system parameter scratch [20 bytes]*/
 SysParam = 0x1F8,				/*[GLOBAL VAR] Low-memory copy of parameter RAM (20 bytes)
   system parameter memory [20 bytes]*/
 CrsrThresh = 0x8EC,			/*[GLOBAL VAR] Mouse-scaling threshold (word)
   delta threshold for mouse scaling [word]*/
 JCrsrTask = 0x8EE,				/*[GLOBAL VAR]  address of CrsrVBLTask [long]*/
 MTemp = 0x828,					/*[GLOBAL VAR]  Low-level interrupt mouse location [long]*/
 RawMouse = 0x82C,				/*[GLOBAL VAR]  un-jerked mouse coordinates [long]*/
 CrsrRect = 0x83C,				/*[GLOBAL VAR]  Cursor hit rectangle [8 bytes]*/
 TheCrsr = 0x844,				/*[GLOBAL VAR]  Cursor data, mask & hotspot [68 bytes]*/
 CrsrAddr = 0x888,				/*[GLOBAL VAR]  Address of data under cursor [long]*/
 CrsrSave = 0x88C,				/*[GLOBAL VAR]  data under the cursor [64 bytes]*/
 CrsrVis = 0x8CC,				/*[GLOBAL VAR]  Cursor visible? [byte]*/
 CrsrBusy = 0x8CD,				/*[GLOBAL VAR]  Cursor locked out? [byte]*/
 CrsrNew = 0x8CE,				/*[GLOBAL VAR]  Cursor changed? [byte]*/
 CrsrState = 0x8D0,				/*[GLOBAL VAR]  Cursor nesting level [word]*/
 CrsrObscure = 0x8D2,			/*[GLOBAL VAR]  Cursor obscure semaphore [byte]*/
 KbdVars = 0x216,				/*[GLOBAL VAR]  Keyboard manager variables [4 bytes]*/
 KbdType = 0x21E,				/*[GLOBAL VAR]  keyboard model number [byte]*/
 MBState = 0x172,				/*[GLOBAL VAR]  current mouse button state [byte]*/
 KeyMapLM = 0x174				/*[GLOBAL VAR] KeyMap has name conflict w/ type. Bitmap of the keyboard [4 longs]*/
};
enum {
 KeypadMap = 0x17C,				/*[GLOBAL VAR]  bitmap for numeric pad-18bits [long]*/
 Key1Trans = 0x29E,				/*[GLOBAL VAR]  keyboard translator procedure [pointer]*/
 Key2Trans = 0x2A2,				/*[GLOBAL VAR]  numeric keypad translator procedure [pointer]*/
 JGNEFilter = 0x29A,			/*[GLOBAL VAR]  GetNextEvent filter proc [pointer]*/
 KeyMVars = 0xB04,				/*[GLOBAL VAR]  (word) for ROM KEYM proc state*/
 Mouse = 0x830,					/*[GLOBAL VAR]  processed mouse coordinate [long]*/
 CrsrPin = 0x834,				/*[GLOBAL VAR]  cursor pinning rectangle [8 bytes]*/
 CrsrCouple = 0x8CF,			/*[GLOBAL VAR]  cursor coupled to mouse? [byte]*/
 CrsrScale = 0x8D3,				/*[GLOBAL VAR]  cursor scaled? [byte]*/
 MouseMask = 0x8D6,				/*[GLOBAL VAR]  V-H mask for ANDing with mouse [long]*/
 MouseOffset = 0x8DA,			/*[GLOBAL VAR]  V-H offset for adding after ANDing [long]*/
 AlarmState = 0x21F,			/*[GLOBAL VAR]  Bit7=parity, Bit6=beeped, Bit0=enable [byte]*/
 VBLQueue = 0x160,				/*[GLOBAL VAR] Vertical retrace queue header (10 bytes)
   VBL queue header [10 bytes]*/
 SysEvtMask = 0x144,			/*[GLOBAL VAR] System event mask (word)
   system event mask [word]*/
 SysEvtBuf = 0x146,				/*[GLOBAL VAR]  system event queue element buffer [pointer]*/
 EventQueue = 0x14A,			/*[GLOBAL VAR] Event queue header (10 bytes)
   event queue header [10 bytes]*/
 EvtBufCnt = 0x154,				/*[GLOBAL VAR]  max number of events in SysEvtBuf - 1 [word]*/
 GZRootHnd = 0x328,				/*[GLOBAL VAR] Handle to relocatable block not to be moved by grow zone function
   root handle for GrowZone [handle]*/
 GZRootPtr = 0x32C,				/*[GLOBAL VAR]  root pointer for GrowZone [pointer]*/
 GZMoveHnd = 0x330				/*[GLOBAL VAR]  moving handle for GrowZone [handle]*/
};
enum {
 MemTop = 0x108,				/*[GLOBAL VAR] Address of end of RAM (on Macintosh XL, end of RAM available to applications)
   top of memory [pointer]*/
 MmInOK = 0x12E,				/*[GLOBAL VAR]  initial memory mgr checks ok? [byte]*/
 HpChk = 0x316,					/*[GLOBAL VAR]  heap check RAM code [pointer]*/
 MaskBC = 0x31A,				/*[GLOBAL VAR]  Memory Manager Byte Count Mask [long]*/
 MaskHandle = 0x31A,			/*[GLOBAL VAR]  Memory Manager Handle Mask [long]*/
 MaskPtr = 0x31A,				/*[GLOBAL VAR]  Memory Manager Pointer Mask [long]*/
 MinStack = 0x31E,				/*[GLOBAL VAR] Minimum space allotment for stack (long)
   min stack size used in InitApplZone [long]*/
 DefltStack = 0x322,			/*[GLOBAL VAR] Default space allotment for stack (long)
   default size of stack [long]*/
 MMDefFlags = 0x326,			/*[GLOBAL VAR]  default zone flags [word]*/
 DSAlertTab = 0x2BA,			/*[GLOBAL VAR] Pointer to system error alert table in use
   system error alerts [pointer]*/
 DSAlertRect = 0x3F8,			/*[GLOBAL VAR] Rectangle enclosing system error alert (8 bytes)
   rectangle for disk-switch alert [8 bytes]*/
 DSDrawProc = 0x334,			/*[GLOBAL VAR]  alternate syserror draw procedure [pointer]*/
 DSWndUpdate = 0x15D,			/*[GLOBAL VAR]  GNE not to paintBehind DS AlertRect? [byte]*/
 WWExist = 0x8F2,				/*[GLOBAL VAR]  window manager initialized? [byte]*/
 QDExist = 0x8F3,				/*[GLOBAL VAR]  quickdraw is initialized [byte]*/
 ResumeProc = 0xA8C,			/*[GLOBAL VAR] Address of resume procedure
   Resume procedure from InitDialogs [pointer]*/
 DSErrCode = 0xAF0,				/*[GLOBAL VAR] Current system error ID (word)
   last system error alert ID*/
 IntFlag = 0x15F,				/*[GLOBAL VAR]  reduce interrupt disable time when bit 7 = 0*/
 SerialVars = 0x2D0,			/*[GLOBAL VAR]  async driver variables [16 bytes]*/
 ABusVars = 0x2D8				/*[GLOBAL VAR] Pointer to AppleTalk variables
  ;Pointer to AppleTalk local variables*/
};
enum {
 ABusDCE = 0x2DC,				/*[GLOBAL VAR] ;Pointer to AppleTalk DCE*/
 PortAUse = 0x290,				/*[GLOBAL VAR]  bit 7: 1 = not in use, 0 = in use*/
 PortBUse = 0x291,				/*[GLOBAL VAR] Current availability of serial port B (byte)
   port B use, same format as PortAUse*/
 SCCASts = 0x2CE,				/*[GLOBAL VAR]  SCC read reg 0 last ext/sts rupt - A [byte]*/
 SCCBSts = 0x2CF,				/*[GLOBAL VAR]  SCC read reg 0 last ext/sts rupt - B [byte]*/
 DskErr = 0x142,				/*[GLOBAL VAR]  disk routine result code [word]*/
 PWMBuf2 = 0x312,				/*[GLOBAL VAR]  PWM buffer 1 (or 2 if sound) [pointer]*/
 SoundPtr = 0x262,				/*[GLOBAL VAR] Pointer to four-tone record
   4VE sound definition table [pointer]*/
 SoundBase = 0x266,				/*[GLOBAL VAR] Pointer to free-form synthesizer buffer
   sound bitMap [pointer]*/
 SoundVBL = 0x26A,				/*[GLOBAL VAR]  vertical retrace control element [16 bytes]*/
 SoundDCE = 0x27A,				/*[GLOBAL VAR]  sound driver DCE [pointer]*/
 SoundActive = 0x27E,			/*[GLOBAL VAR]  sound is active? [byte]*/
 SoundLevel = 0x27F,			/*[GLOBAL VAR] Amplitude in 740-byte buffer (byte)
   current level in buffer [byte]*/
 CurPitch = 0x280,				/*[GLOBAL VAR] Value of count in square-wave synthesizer buffer (word)
   current pitch value [word]*/
 DskVerify = 0x12C,				/*[GLOBAL VAR]  used by 3.5 disk driver for read/verify [byte]*/
 TagData = 0x2FA,				/*[GLOBAL VAR]  sector tag info for disk drivers [14 bytes]*/
 BufTgFNum = 0x2FC,				/*[GLOBAL VAR] File tags buffer:  file number (long)
   file number [long]*/
 BufTgFFlg = 0x300,				/*[GLOBAL VAR] File tags buffer:  flags (word:  bit 1=1 if resource fork)
   flags [word]*/
 BufTgFBkNum = 0x302,			/*[GLOBAL VAR] File tags buffer:  logical block number (word)
   logical block number [word]*/
 BufTgDate = 0x304				/*[GLOBAL VAR] File tags buffer:  date and time of last modification (long)
   time stamp [word]*/
};
enum {
 ScrDmpEnb = 0x2F8,				/*[GLOBAL VAR] 0 if GetNextEvent shouldn't process Command-Shift-number combinations (byte)
   screen dump enabled? [byte]*/
 ScrDmpType = 0x2F9,			/*[GLOBAL VAR]  FF dumps screen, FE dumps front window [byte]*/
 ScrapVars = 0x960,				/*[GLOBAL VAR]  scrap manager variables [32 bytes]*/
 ScrapInfo = 0x960,				/*[GLOBAL VAR]  scrap length [long]*/
 ScrapEnd = 0x980,				/*[GLOBAL VAR]  end of scrap vars*/
 ScrapTag = 0x970,				/*[GLOBAL VAR]  scrap file name [STRING[15]]*/
 LaunchFlag = 0x902,			/*[GLOBAL VAR]  from launch or chain [byte]*/
 SaveSegHandle = 0x930,			/*[GLOBAL VAR]  seg 0 handle [handle]*/
 CurJTOffset = 0x934,			/*[GLOBAL VAR] Offset to jump table from location pointed to by A5 (word)
   current jump table offset [word]*/
 CurPageOption = 0x936,			/*[GLOBAL VAR] Sound/screen buffer configuration passed to Chain or Launch (word)
   current page 2 configuration [word]*/
 LoaderPBlock = 0x93A,			/*[GLOBAL VAR]  param block for ExitToShell [10 bytes]*/
 CurApRefNum = 0x900,			/*[GLOBAL VAR] Reference number of current application's resource file (word)
   refNum of application's resFile [word]*/
 CurrentA5 = 0x904,				/*[GLOBAL VAR] Address of boundary between application globals and application parameters
   current value of A5 [pointer]*/
 CurStackBase = 0x908,			/*[GLOBAL VAR] Address of base of stack; start of application globals
   current stack base [pointer]*/
 CurApName = 0x910,				/*[GLOBAL VAR] Name of current application (length byte followed by up to 31 characters)
   name of application [STRING[31]]*/
 LoadTrap = 0x12D,				/*[GLOBAL VAR]  trap before launch? [byte]*/
 SegHiEnable = 0xBB2,			/*[GLOBAL VAR]  (byte) 0 to disable MoveHHi in LoadSeg*/

/* Window Manager Globals */
 WindowList = 0x9D6,			/*[GLOBAL VAR] Pointer to first window in window list; 0 if using events but not windows
  Z-ordered linked list of windows [pointer]*/
 PaintWhite = 0x9DC,			/*[GLOBAL VAR] Flag for whether to paint window white before update event (word)
  erase newly drawn windows? [word]*/
 WMgrPort = 0x9DE				/*[GLOBAL VAR] Pointer to Window Manager port
  window manager's grafport [pointer]*/
};
enum {
 GrayRgn = 0x9EE,				/*[GLOBAL VAR] Handle to region drawn as desktop
  rounded gray desk region [handle]*/
 CurActivate = 0xA64,			/*[GLOBAL VAR] Pointer to window to receive activate event
  window slated for activate event [pointer]*/
 CurDeactive = 0xA68,			/*[GLOBAL VAR] Pointer to window to receive deactivate event
  window slated for deactivate event [pointer]*/
 DragHook = 0x9F6,				/*[GLOBAL VAR] Address of procedure to execute during TrackGoAway, DragWindow, GrowWindow, DragGrayRgn, TrackControl, and DragControl
  user hook during dragging [pointer]*/
 DeskPattern = 0xA3C,			/*[GLOBAL VAR] Pattern with which desktop is painted (8 bytes)
  desk pattern [8 bytes]*/
 DeskHook = 0xA6C,				/*[GLOBAL VAR] Address of procedure for painting desktop or responding to clicks on desktop
  hook for painting the desk [pointer]*/
 GhostWindow = 0xA84,			/*[GLOBAL VAR] Pointer to window never to be considered frontmost
  window hidden from FrontWindow [pointer]*/

/* Text Edit Globals */
 TEDoText = 0xA70,				/*[GLOBAL VAR] Address of TextEdit multi-purpose routine
  textEdit doText proc hook [pointer]*/
 TERecal = 0xA74,				/*[GLOBAL VAR] Address of routine to recalculate line starts for TextEdit
  textEdit recalText proc hook [pointer]*/
 TEScrapLength = 0xAB0,			/*[GLOBAL VAR] Size in bytes of TextEdit scrap (long)
  textEdit Scrap Length [word]*/
 TEScrpLength = 0xAB0,			/*[GLOBAL VAR] Size in bytes of TextEdit scrap (long)
  textEdit Scrap Length [word]*/
 TEScrpHandle = 0xAB4,			/*[GLOBAL VAR] Handle to TextEdit scrap
  textEdit Scrap [handle]*/
 TEWdBreak = 0xAF6,				/*[GLOBAL VAR] default word break routine [pointer]*/
 TEWordBreak = 0xAF6,				/*[GLOBAL VAR] default word break routine [pointer]*/
 WordRedraw = 0xBA5,			/*[GLOBAL VAR] (byte) - used by TextEdit RecalDraw*/
 TESysJust = 0xBAC,				/*[GLOBAL VAR] (word) system justification (intl. textEdit)       obsolete */
 SysDirection = 0xBAC,				/*[GLOBAL VAR] (word) system justification (intl. textEdit)*/

/* Resource Manager Globals */
 TopMapHndl = 0xA50,			/*[GLOBAL VAR] Handle to resource map of most recently opened resource file
  topmost map in list [handle]*/
 SysMapHndl = 0xA54,			/*[GLOBAL VAR] Handle to map of system resource file
  system map [handle]*/
 SysMap = 0xA58,				/*[GLOBAL VAR] Reference number of system resource file (word)
  reference number of system map [word]*/
 CurMap = 0xA5A,				/*[GLOBAL VAR] Reference number of current resource file (word)
  reference number of current map [word]*/
 ResReadOnly = 0xA5C,			/*[GLOBAL VAR] Read only flag [word]*/
 ResLoad = 0xA5E				/*[GLOBAL VAR] Current SetResLoad state (word)
  Auto-load feature [word]*/
};
enum {
 ResErr = 0xA60,				/*[GLOBAL VAR] Current value of ResError (word)
  Resource error code [word]*/
 ResErrProc = 0xAF2,			/*[GLOBAL VAR] Address of resource error procedure
  Resource error procedure [pointer]*/
 SysResName = 0xAD8,			/*[GLOBAL VAR] Name of system resource file (length byte followed by up to 19 characters)
  Name of system resource file [STRING[19]]*/
 RomMapInsert = 0xB9E,			/*[GLOBAL VAR] (byte) determines if we should link in map*/
 TmpResLoad = 0xB9F,			/*[GLOBAL VAR] second byte is temporary ResLoad value.*/

/* Menu Mgr globals */
 MBarHeight = 0xBAA,			/*[GLOBAL VAR] height of the menu bar*/

/* CommToolbox Global */
 CommToolboxGlobals = 0x0BB4	/*[GLOBAL VAR] pointer to CommToolbox globals */
};


#endif
