	IFND	EXEC_ALERTS_I
EXEC_ALERTS_I	EQU	1
**
**	$Filename: exec/alerts.i $
**	$Release: 1.3 $
**
**	
**
**	(C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
**	    All Rights Reserved
**

	BITDEF	S,ALERTWACK,1	* in ExecBase.SysFlags


**********************************************************************
*
*  Format of the alert error number:
*
*    +---------------+----------------+--------------------------------+  
*    |D|  SubSysId   |	General Error |	   SubSystem Specific Error    |
*    +---------------+----------------+--------------------------------+
*
*		     D:	 DeadEnd alert
*	      SubSysId:	 indicates ROM subsystem number.
*	 General Error:	 roughly indicates what the error was
*	Specific Error:	 indicates more detail
***********************************************************************

*
*  Use this macro for causing an alert.	 THIS MACRO MAY CHANGE!
*  It is very sensitive to memory corruption.... like stepping on
*  location 4!	But it should work for now.
*
ALERT	macro	(alertNumber, paramArray, scratch)
	movem.l	d7/a5/a6,-(sp)
	move.l	#\1,d7
	IFNC	'\2',''
	lea	(\2),a5
	ENDC
	movea.l	(4).w,a6		; (use proper name!!!)
	jsr	(_LVOAlert,a6)
	movem.l	(sp)+,d7/a5/a6
	endm


**********************************************************************
*
*  General Dead-End Alerts
*
*  For example:	 timer.device cannot open math.library:
*
*	ALERT  (AN_TimerDev!AG_OpenLib!AO_MathLib),(A0),A1
*
**********************************************************************

;------ alert types
AT_DeadEnd	equ	$80000000
AT_Recovery	equ	$00000000

;------ general purpose alert codes
AG_NoMemory	equ	$00010000
AG_MakeLib	equ	$00020000
AG_OpenLib	equ	$00030000
AG_OpenDev	equ	$00040000
AG_OpenRes	equ	$00050000
AG_IOError	equ	$00060000
AG_NoSignal	equ	$00070000

;------ alert objects:
AO_ExecLib	equ	$00008001
AO_GraphicsLib	equ	$00008002
AO_LayersLib	equ	$00008003
AO_Intuition	equ	$00008004
AO_MathLib	equ	$00008005
AO_CListLib	equ	$00008006
AO_DOSLib	equ	$00008007
AO_RAMLib	equ	$00008008
AO_IconLib	equ	$00008009
AO_ExpansionLib	equ	$0000800A
AO_AudioDev	equ	$00008010
AO_ConsoleDev	equ	$00008011
AO_GamePortDev	equ	$00008012
AO_KeyboardDev	equ	$00008013
AO_TrackDiskDev	equ	$00008014
AO_TimerDev	equ	$00008015
AO_CIARsrc	equ	$00008020
AO_DiskRsrc	equ	$00008021
AO_MiscRsrc	equ	$00008022
AO_BootStrap	equ	$00008030
AO_Workbench	equ	$00008031


**********************************************************************
*
*   Specific Dead-End Alerts:
*
*   For example:   exec.library -- corrupted memory list
*
*	    ALERT  AN_MemCorrupt,(A0),A1
*
**********************************************************************

;------ exec.library
AN_ExecLib	equ	$01000000
AN_ExcptVect	equ	$81000001	; 68000 exception vector checksum
AN_BaseChkSum	equ	$81000002	; execbase checksum
AN_LibChkSum	equ	$81000003	; library checksum failure
AN_LibMem	equ	$81000004	; no memory to make library
AN_MemCorrupt	equ	$81000005	; corrupted memory list
AN_IntrMem	equ	$81000006	; no memory for interrupt servers
AN_InitAPtr	equ	$81000007	; InitStruct() of an APTR source
AN_SemCorrupt	equ	$81000008	; a semaphore is in illegal state
AN_FreeTwice	equ	$81000009	; freeing memory that is already free
AN_BogusExcpt	equ	$8100000A	; illegal 68k exception taken

;------ graphics.library
AN_GraphicsLib	equ	$02000000
AN_GfxNoMem	equ	$82010000	; graphics out of memory
AN_LongFrame	equ	$82010006	; long frame, no memory
AN_ShortFrame	equ	$82010007	; short frame, no memory
AN_TextTmpRas	equ	$02010009	; text, no memory for TmpRas
AN_BltBitMap	equ	$8201000A	; BltBitMap, no memory
AN_RegionMemory	equ	$8201000B	; regions, memory not available
AN_MakeVPort	equ	$82010030	; MakeVPort, no memory
AN_GfxNoLCM	equ	$82011234	; emergency memory not available

;------ layers.library
AN_LayersLib	equ	$03000000
AN_LayersNoMem	equ	$83010000	; layers out of memory

;------ intuition.library
AN_Intuition	equ	$04000000
AN_GadgetType	equ	$84000001	; unknown gadet type
AN_BadGadget	equ	$04000001	; Recovery form of AN_GadgetType
AN_CreatePort	equ	$84010002	; create port, no memory
AN_ItemAlloc	equ	$04010003	; item plane alloc, no memory
AN_SubAlloc	equ	$04010004	; sub alloc, no memory
AN_PlaneAlloc	equ	$84010005	; plane alloc, no memory
AN_ItemBoxTop	equ	$84000006	; item box top < RelZero
AN_OpenScreen	equ	$84010007	; open screen, no memory
AN_OpenScrnRast	equ	$84010008	; open screen, raster alloc, no memory
AN_SysScrnType	equ	$84000009	; open sys screen, unknown type
AN_AddSWGadget	equ	$8401000A	; add SW gadgets, no memory
AN_OpenWindow	equ	$8401000B	; open window, no memory
AN_BadState	equ	$8400000C	; Bad State Return entering Intuition
AN_BadMessage	equ	$8400000D	; Bad Message received by IDCMP
AN_WeirdEcho	equ	$8400000E	; Weird echo causing incomprehension
AN_NoConsole	equ	$8400000F	; couldn't open the Console Device

;------ math.library
AN_MathLib	equ	$05000000

;------ clist.library
AN_CListLib	equ	$06000000

;------ dos.library
AN_DOSLib	equ	$07000000
AN_StartMem	equ	$07010001	; no memory at startup 
AN_EndTask	equ	$07000002	; EndTask didn't 
AN_QPktFail	equ	$07000003	; Qpkt failure 
AN_AsyncPkt	equ	$07000004	; Unexpected packet received 
AN_FreeVec	equ	$07000005	; Freevec failed 
AN_DiskBlkSeq	equ	$07000006	; Disk block sequence error 
AN_BitMap	equ	$07000007	; Bitmap corrupt 
AN_KeyFree	equ	$07000008	; Key already free 
AN_BadChkSum	equ	$07000009	; Invalid checksum 
AN_DiskError	equ	$0700000A	; Disk Error 
AN_KeyRange	equ	$0700000B	; Key out of range 
AN_BadOverlay	equ	$0700000C	; Bad overlay

;------ ramlib.library
AN_RAMLib	equ	$08000000
AN_BadSegList	equ	$08000001	; overlays are illegal for library segments

;------ icon.library
AN_IconLib	equ	$09000000

;------ expansion.library
AN_ExpansionLib	equ	$0A000000
AN_BadExpansionFree	equ	$0A000001

;------ audio.device
AN_AudioDev	equ	$10000000

;------ console.device
AN_ConsoleDev	equ	$11000000

;------ gameport.device
AN_GamePortDev	equ	$12000000

;------ keyboard.device
AN_KeyboardDev	equ	$13000000

;------ trackdisk.device
AN_TrackDiskDev	equ	$14000000
AN_TDCalibSeek	equ	$14000001	; calibrate: seek error
AN_TDDelay	equ	$14000002	; delay: error on timer wait

;------ timer.device
AN_TimerDev	equ	$15000000
AN_TMBadReq	equ	$15000001	; bad request
AN_TMBadSupply	equ	$15000002	; power supply does not supply ticks

;------ cia.resource
AN_CIARsrc	equ	$20000000

;------ disk.resource
AN_DiskRsrc	equ	$21000000
AN_DRHasDisk	equ	$21000001	: get unit: already has disk
AN_DRIntNoAct	equ	$21000002	; interrupt: no active unit

;------ misc.resource
AN_MiscRsrc	equ	$22000000

;------ bootstrap
AN_BootStrap	equ	$30000000
AN_BootError	equ	$30000001	; boot code returned an error

;------ workbench
AN_Workbench	equ	$31000000

;------ DiskCopy
AN_DiskCopy	equ	$32000000

	ENDC	; EXEC_ALERTS_I
