    IFND EXEC_ALERTS_I
EXEC_ALERTS_I SET 1
**********************************************************************
*
* Commodore-Amiga, Inc. -- ROM Operating System Executive Include File
*
**********************************************************************
*
*   Source Control:
*
*  $Header: alerts.i,v 1.0 85/08/28 15:05:58 carl Exp $
*
*  $Locker:  $
*
**********************************************************************

    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
      move.l  4,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

;------ 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_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

;------ graphics.library
AN_GraphicsLib equ $02000000
AN_CopDisplay  equ $82010001  ; copper display list, no memory
AN_CopInstr    equ $82010002  ; copper instruction list, no memory
AN_CopListOver equ $82000003  ; copper list overload
AN_CopIListOver equ $82000004 ; copper intermediate list overload
AN_CopListHead equ $82010005  ; copper list head, no memory
AN_LongFrame   equ $82010006  ; long frame, no memory
AN_ShortFrame  equ $82010007  ; short frame, no memory
AN_FloodFill   equ $82010008  ; flood fill, no memory
AN_TextTmpRas  equ $02010009  ; text, no memory for TmpRas
AN_BltBitMap   equ $8201000A  ; BltBitMap, no memory

;------ layers.library
AN_LayersLib   equ $03000000

;------ 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

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

;------ 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

;------ 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

    ENDC !EXEC_ALERTS_I
