	IFND	EXEC_EXECBASE_I
EXEC_EXECBASE_I SET	1
**
**	$VER: execbase.i 39.3 (31.07.92)
**	Includes Release 39.108
**
**	Definition of the exec.library base structure.
**
**	(C) Copyright 1985-1992 Commodore-Amiga, Inc.
**	    All Rights Reserved
**

    IFND EXEC_TYPES_I
    INCLUDE "exec/types.i"
    ENDC	; EXEC_TYPES_I

    IFND EXEC_LISTS_I
    INCLUDE "exec/lists.i"
    ENDC	; EXEC_LISTS_I

    IFND EXEC_INTERRUPTS_I
    INCLUDE "exec/interrupts.i"
    ENDC	; EXEC_INTERRUPTS_I

    IFND EXEC_LIBRARIES_I
    INCLUDE "exec/libraries.i"
    ENDC	; EXEC_LIBRARIES_I



** Definition of the Exec library base structure (pointed to by location 4).
** Most fields are not to be viewed or modified by user programs.  Use
** extreme caution.
**
 STRUCTURE  ExecBase,LIB_SIZE		; Standard library node

******* Static System Variables *********************************************

	UWORD	SoftVer	; kickstart release number (obs.)
	WORD	LowMemChkSum	; checksum of 68000 trap vectors
	ULONG	ChkBase	; system base pointer complement
	APTR	ColdCapture	; coldstart soft capture vector
	APTR	CoolCapture	; coolstart soft capture vector
	APTR	WarmCapture	; warmstart soft capture vector
	APTR	SysStkUpper	; system stack base   (upper bound)
	APTR	SysStkLower	; top of system stack (lower bound)
	ULONG	MaxLocMem	; top of chip memory
	APTR	DebugEntry	; global debugger entry point
	APTR	DebugData	; global debugger data segment
	APTR	AlertData	; alert data segment
	APTR	MaxExtMem	; top of extended mem, or null if none

	WORD	ChkSum		; for all of the above (minus 2)


******* Interrupt Related ********************************************

	LABEL	IntVects
	STRUCT	IVTBE,IV_SIZE
	STRUCT	IVDSKBLK,IV_SIZE
	STRUCT	IVSOFTINT,IV_SIZE
	STRUCT	IVPORTS,IV_SIZE
	STRUCT	IVCOPER,IV_SIZE
	STRUCT	IVVERTB,IV_SIZE
	STRUCT	IVBLIT,IV_SIZE
	STRUCT	IVAUD0,IV_SIZE
	STRUCT	IVAUD1,IV_SIZE
	STRUCT	IVAUD2,IV_SIZE
	STRUCT	IVAUD3,IV_SIZE
	STRUCT	IVRBF,IV_SIZE
	STRUCT	IVDSKSYNC,IV_SIZE
	STRUCT	IVEXTER,IV_SIZE
	STRUCT	IVINTEN,IV_SIZE
	STRUCT	IVNMI,IV_SIZE


******* Dynamic System Variables *************************************

	APTR	ThisTask	; pointer to current task (readable)

	ULONG	IdleCount	; idle counter
	ULONG	DispCount	; dispatch counter
	UWORD	Quantum	; time slice quantum
	UWORD	Elapsed	; current quantum ticks
	UWORD	SysFlags	; misc internal system flags
	BYTE	IDNestCnt	; interrupt disable nesting count
	BYTE	TDNestCnt	; task disable nesting count

	UWORD	AttnFlags	; special attention flags (readable)

	UWORD	AttnResched	; rescheduling attention
	APTR	ResModules	; pointer to resident module array
	APTR	TaskTrapCode	; default task trap routine
	APTR	TaskExceptCode	; default task exception code
	APTR	TaskExitCode	; default task exit code
	ULONG	TaskSigAlloc	; preallocated signal mask
	UWORD	TaskTrapAlloc	; preallocated trap mask


******* System List Headers (private!) ********************************

	STRUCT	MemList,LH_SIZE
	STRUCT	ResourceList,LH_SIZE
	STRUCT	DeviceList,LH_SIZE
	STRUCT	IntrList,LH_SIZE
	STRUCT	LibList,LH_SIZE
	STRUCT	PortList,LH_SIZE
	STRUCT	TaskReady,LH_SIZE
	STRUCT	TaskWait,LH_SIZE

	STRUCT	SoftInts,SH_SIZE*5


******* Other Globals ******************************************************

	STRUCT	LastAlert,4*4

	;------ these next two variables are provided to allow
	;------ system developers to have a rough idea of the
	;------ period of two externally controlled signals --
	;------ the time between vertical blank interrupts and the
	;------ external line rate (which is counted by CIA A's
	;------ "time of day" clock).  In general these values
	;------ will be 50 or 60, and may or may not track each
	;------ other.  These values replace the obsolete AFB_PAL
	;------ and AFB_50HZ flags.
	UBYTE	VBlankFrequency 	;(readable)
	UBYTE	PowerSupplyFrequency	;(readable)

	STRUCT	SemaphoreList,LH_SIZE

	;------ these next two are to be able to kickstart into user ram.
	;------ KickMemPtr holds a singly linked list of MemLists which
	;------ will be removed from the memory list via AllocAbs.	If
	;------ all the AllocAbs's succeeded, then the KickTagPtr will
	;------ be added to the rom tag list.
	APTR	KickMemPtr	; ptr to queue of mem lists
	APTR	KickTagPtr	; ptr to rom tag queue
	APTR	KickCheckSum	; checksum for mem and tags


******* V36 Exec additions start here ***************************************

	UWORD	ex_Pad0		; Private internal use
	ULONG	ex_LaunchPoint	; Private to Launch/Switch
	APTR	ex_RamLibPrivate
	;* The next ULONG contains the system "E" clock frequency,
	;* expressed in Hertz.	The E clock is used as a timebase for
	;* the Amiga's 8520 I/O chips. (E is connected to "02").
	;* Typical values are 715909 for NTSC, or 709379 for PAL.
	;*
	ULONG	ex_EClockFrequency ;(readable)
	ULONG	ex_CacheControl	   ;Private to the CacheControl call
	ULONG	ex_TaskID	   ;Next available task ID

	STRUCT	ex_Reserved1,5*4

	APTR	ex_MMULock	   ;Private

	STRUCT	ex_Reserved2,3*4

******* V39 Exec additions start here ***************************************

	;* The following list and data element are used for
	;* V39 exec's low memory handler.
	STRUCT	ex_MemHandlers,MLH_SIZE		;* List of handlers
	APTR	ex_MemHandler			;* Handler pointer (PRIVATE!)

	LABEL	SYSBASESIZE


******* Bit defines for AttnFlags (see above) *******************************

*  Processors and Co-processors:
	BITDEF	AF,68010,0	; also set for 68020
	BITDEF	AF,68020,1	; also set for 68030
	BITDEF	AF,68030,2	; also set for 68040
	BITDEF	AF,68040,3
	BITDEF	AF,68881,4	; also set for 68882
	BITDEF	AF,68882,5
	BITDEF	AF,FPU40,6	; Set if 68040 FPU
;
; The AFB_FPU40 bit is set when a working 68040 FPU
; is in the system.  If this bit is set and both the
; AFB_68881 and AFB_68882 bits are not set, then the 68040
; math emulation code has not been loaded and only 68040
; FPU instructions are available.  This bit is valid *ONLY*
; if the AFB_68040 bit is set.
;
;	BITDEF	AF,RESERVED8,8
;	BITDEF	AF,RESERVED9,9
	BITDEF	AF,PRIVATE,15	; Just what it says


******* Selected bit definitions for Cache manipulation calls **************

	BITDEF	CACR,EnableI,0		;Enable instruction cache
	BITDEF	CACR,FreezeI,1		;Freeze instruction cache
	BITDEF	CACR,ClearI,3		;Clear instruction cache
	BITDEF	CACR,IBE,4		;Instruction burst enable
	BITDEF	CACR,EnableD,8		;68030 Enable data cache
	BITDEF	CACR,FreezeD,9		;68030 Freeze data cache
	BITDEF	CACR,ClearD,11		;68030 Clear data cache
	BITDEF	CACR,DBE,12		;68030 Data burst enable
	BITDEF	CACR,WriteAllocate,13	;68030 Write-Allocate mode (must
					;always be set)
	BITDEF	CACR,EnableE,30		;Master enable for external caches
					;External caches should track the
					;state of the internal caches
					;such that they do not cache anything
					;that the internal cache turned off
					;for.
	BITDEF	CACR,CopyBack,31	;Master enable for copyback caches


	BITDEF	DMA,Continue,1		;Continuation flag for CachePreDMA
	BITDEF	DMA,NoModify,2		;Set if DMA does not update memory

	ENDC	; EXEC_EXECBASE_I
