    IFND EXEC_ALERTS_I
EXEC_ALERTS_I SET 1
**********************************************************************
*
*   Commodore Amiga -- 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

;------ 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 $84010003   ; item plane alloc, no memory
AN_SubAlloc   equ $84010004   ; 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
