home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
system
/
alerthelp
/
source.lha
/
source
/
AlertHelp.s
next >
Wrap
Text File
|
1995-01-10
|
13KB
|
426 lines
;
; AlertHelp V0.55 Thursday, 23-Sep-1993
;
; (c) 1993 by Jan Hagqvist
;
;
; V0.05 Monday, 28-Jun-1993
; V0.35 Tuesday, 29-Jun-1993
; V0.40 Saturday, 03-Jul-1993 Now includes task name & address
; V0.45 Sunday, 19-Sep-1993 Guru, Reboot, Suspend / Thank you!
; V0.50 Monday, 20-Sep-1993 Some more specifics
; V0.55 Thursday, 20-Sep-1993 The rest of the specifics from exec/alerts.i
;
XREF _LVOOldOpenLibrary
XREF _LVOCloseLibrary
XREF _LVOEasyRequestArgs
XREF _LVOSetFunction
XREF _LVOWait
XREF _LVOFindTask
XREF _LVOSignal
XREF _LVOAllocSignal
XREF _LVOFreeSignal
XREF _LVOSetTaskPri
XREF _LVOColdReboot
SECTION 1,CODE
InstallAlertHelp
move.l 4,a6
lea IntuitionName,a1
jsr _LVOOldOpenLibrary(a6)
move.l d0,IntuitionBase
tst.l d0
beq RemoveAlertHelp
lea TaskName,a1
jsr _LVOFindTask(a6)
move.l d0,a5
tst.l d0
bne.s TaskFound
sub.l a1,a1
jsr _LVOFindTask(a6)
move.l d0,a5
move.l #TaskName,10(a5)
move.l a5,a1
move.b #-5,d0
jsr _LVOSetTaskPri(a6)
move.l #AlertHelp,d0
move.l a6,a1
move.w #-$6c,a0
jsr _LVOSetFunction(a6)
move.l d0,OldAlert
move.l #-1,d0
jsr _LVOAllocSignal(a6)
move.l d0,88(a5)
DummyLoop
jsr _LVOWait(a6)
move.l OldAlert(pc),d0
move.l a6,a1
move.w #-$6c,a0
jsr _LVOSetFunction(a6)
move.l 88(a5),d0
jsr _LVOFreeSignal(a6)
RemoveAlertHelp
move.l 4,a6
tst.l IntuitionBase
beq.s RemoveAlertHelp2
move.l IntuitionBase,a1
jsr _LVOCloseLibrary(a6)
RemoveAlertHelp2
moveq.l #0,d0
rts
TaskFound
move.l IntuitionBase,a6
sub.l a0,a0
lea EasyStruct2,a1
move.l a0,a2
lea ArgList2,a3
jsr _LVOEasyRequestArgs(a6)
cmp.b #1,d0
beq.s TaskFound2
move.l 4,a6
move.l 88(a5),d0
move.l a5,a1
jsr _LVOSignal(a6)
TaskFound2
bra.s RemoveAlertHelp
AlertHelp
move.l d7,AlertNum
movem.l d0-d7/a0-a6,-(sp)
move.l 4,a6
move.l $114(a6),a0
move.l a0,AlertTask
move.l 10(a0),AlertTaskName
move.l #GadgetFormat1,EasyStruct1Gadget
move.l #Recovery,AlertType
cmp.l #$80000000,d7
bmi.s ParseAlert
sub.l #$80000000,d7
move.l #DeadEnd,AlertType
move.l #GadgetFormat0,EasyStruct1Gadget
ParseAlert
lea SpecificAlerts,a0
ParseAlert2
cmp.l #0,(a0)
beq.s ParseAlert3
cmp.l (a0)+,d7
beq.s Specific
addq.l #4,a0
bra.s ParseAlert2
ParseAlert3
lea GeneralAlerts,a0
move.l d7,d6
and.l #$00ff0000,d6
ParseAlert4
cmp.l #0,(a0)
beq.s Unknown
cmp.l (a0)+,d6
beq.s Specific
addq.l #4,a0
bra.s ParseAlert4
Unknown
move.l #UnknownAlert,AlertText
bra.s ParseSource
Specific
move.l (a0),AlertText
ParseSource
move.l #UnknownSource,AlertSource
move.l d7,d6
and.l #$ff000000,d6
swap d6
asr.l #8,d6
lea Sources,a0
ParseSource2
cmp.l #$ffffffff,(a0)
beq.s ParseSource4
cmp.l (a0)+,d6
beq.s ParseSource3
addq.l #4,a0
bra.s ParseSource2
ParseSource3
move.l (a0),AlertSource
ParseSource4
Inform
move.l IntuitionBase,a6
sub.l a0,a0
lea EasyStruct,a1
move.l a0,a2
lea ArgList,a3
jsr _LVOEasyRequestArgs(a6)
tst.b d0 ; Suspend (Thank you!)?
beq.s Quit2 ; Yep
cmp.b #2,d0 ; Reboot?
beq.s Quit3 ; Yep
Quit
movem.l (sp)+,d0-d7/a0-a6
dc.w $4EF9 ; jmp
OldAlert
dc.l 0
Quit2
movem.l (sp)+,d0-d7/a0-a6
rts
Quit3
move.l 4,a6
jsr _LVOColdReboot(a6) ; Never returns!
SECTION 2,DATA
IntuitionBase dc.l 0
EasyStruct dc.l 20,0,AlertTitle,TextFormat
EasyStruct1Gadget dc.l GadgetFormat1
EasyStruct2 dc.l 20,0,AlertTitle,TextFormat2,GadgetFormat2
ArgList
AlertTaskName dc.l 0
AlertNum dc.l 0
AlertTask dc.l 0
AlertSource dc.l 0
AlertText dc.l 0
AlertType dc.l 0
dc.l 0
ArgList2 dc.l 0
Sources
dc.l $0,Processor,$1,Exec,$2,Graphics,$3,Layers,$4,Intuition,$5,Math
dc.l $7,Dos,$8,Ram,$9,Icon,$A,Expansion,$B,DiskFont,$C,Utility
dc.l $10,Audio,$11,Console,$12,GamePort,$13,Keyboard,$14,TrackDisk
dc.l $15,Timer,$20,Cia,$21,Disk,$22,Misc,$30,BootStrap,$31,Workbench
dc.l $32,DiskCopy,$33,GadTools
dc.l $ffffffff
GeneralAlerts
dc.l $00010000,NoMemory,$00020000,MakeLib,$00030000,OpenLib
dc.l $00040000,OpenDev,$00050000,OpenRes,$00060000,IOError
dc.l $00070000,NoSignal,$00080000,BadParm,$00090000,CloseLib
dc.l $000A0000,CloseDev,$000B0000,ProcCreate
dc.l 0
SpecificAlerts
; Processor
dc.l $00000002,BusError,$00000003,AddrError,$00000004,IllegalInst
dc.l $00000005,DivZero,$00000006,ChkError,$00000007,TrapError
dc.l $00000008,Supervisor,$00000009,Trace
; Exec
dc.l $01000001,ExcptVect,$01000002,BaseChkSum,$01000003,LibChkSum
dc.l $01000005,MemCorrupt,$01000006,IntrMem,$01000007,InitAPtr
dc.l $01000008,SemCorrupt,$01000009,FreeTwice,$0100000A,BogusExcpt
dc.l $0100000B,IOUsedTwice,$0100000C,MemoryInsane,$0100000D,IOAfterClose
dc.l $0100000E,StackProbe,$0100000F,BadFreeAddr
; Graphics
dc.l $02010000,GfxNoMem,$02010001,GfxNoMemMspc,$02010006,LongFrame
dc.l $02010007,ShortFrame,$02010009,TextTmpRas,$0201000A,BltBitMap
dc.l $0201000B,RegionMemory,$02010030,MakeVPort,$0200000C,GfxNewError
dc.l $0200000D,GfxFreeError,$02011234,GfxNoLCM,$02000401,ObsoleteFont
; Layers
dc.l $03010000,LayersNoMem
; Intuition
dc.l $04000001,GadgetType,$04010002,CreatePort,$04010003,ItemAlloc
dc.l $04010004,SubAlloc,$04010005,PlaneAlloc,$04010006,ItemBoxTop
dc.l $04010007,OpenScreen,$04010008,OpenScrnRast,$04010009,SysScrnType
dc.l $0401000A,AddSWGadget,$0401000B,OpenWindow,$0400000C,BadState
dc.l $0400000D,BadMessage,$0400000E,WeirdEcho,$0400000F,NoConsole
; Dos
dc.l $07010001,StartMem,$07000002,EndTask,$07000003,QPktFail
dc.l $07000004,AsyncPkt,$07000005,FreeVec,$07000006,DiskBlkSeq
dc.l $07000007,BitMap,$07000008,KeyFree,$07000009,BadChkSum
dc.l $0700000A,DiskError,$0700000B,KeyRange,$0700000C,BadOverlay
dc.l $0700000D,BadInitFunc,$0700000E,FileReclosed
; RamLib
dc.l $08000001,BadSegList
; Expansion
dc.l $0A000001,BadExpansionFree
; Console
dc.l $11000001,NoWindow
; Trackdisk
dc.l $14000001,TDCalibSeek,$14000002,TDDelay
; Timer
dc.l $15000001,TMBadReq,$15000002,TMBadSupply
; Disk
dc.l $21000001,DRHasDisk,$21000002,DRIntNoAct
; BootStrap
dc.l $30000001,BootError
; Workbench
dc.l $31000001,WBBadStartupMsg1,$31000002,WBBadStartupMsg2,$31000003,WBBadIOMsg
dc.l $31010004,WBInitPotionAllocDrawer,$31010005,WBCreateWBMenusCreateMenus1,$31010006,WBCreateWBMenusCreateMenus2
dc.l $31010007,WBLayoutWBMenusLayoutMenus,$31010008,WBAddToolMenuItem,$31010009,WBReLayoutToolMenu
dc.l $3101000A,WBinitTimer,$3101000B,WBInitLayerDemon,$3101000C,WBinitWbGels
dc.l $3101000D,WBInitScreenAndWindows1,$3101000E,WBInitScreenAndWindows2,$3101000F,WBInitScreenAndWindows3
dc.l $31010010,WBMAlloc
TaskName dc.b 'AlertHelpTask',0
IntuitionName dc.b 'intuition.library',0
VersionString dc.b '$VER: AlertHelp V0.55 (23.09.93/13:33:00/055) ©1993 by Jan Hagqvist',0
AlertTitle dc.b 'AlertHelp V0.55 23-Sep-1993',0
Recovery dc.b 'RECOVERY',0
DeadEnd dc.b 'DEADEND',0
Processor dc.b 'The Processor',0
Exec dc.b 'Exec',0
Graphics dc.b 'Graphics',0
Layers dc.b 'Layers',0
Intuition dc.b 'Intuition',0
Math dc.b 'Math',0
Dos dc.b 'Dos',0
Ram dc.b 'Ram',0
Icon dc.b 'Icon',0
Expansion dc.b 'Expansion',0
DiskFont dc.b 'Diskfont',0
Utility dc.b 'Utility',0
Audio dc.b 'Audio',0
Console dc.b 'Console',0
GamePort dc.b 'Gameport',0
Keyboard dc.b 'Keyboard',0
TrackDisk dc.b 'Trackdisk',0
Timer dc.b 'Timer',0
Cia dc.b 'Cia',0
Disk dc.b 'Disk',0
Misc dc.b 'Misc',0
BootStrap dc.b 'Bootstrap',0
Workbench dc.b 'Workbench',0
DiskCopy dc.b 'Diskcopy',0
GadTools dc.b 'Gadtools',0
UnknownSource dc.b 'an unknown source',0
UnknownAlert dc.b 'Sorry, but I cannot help you',0
GadgetFormat0 dc.b ' Guru |Reboot|Suspend',0
GadgetFormat1 dc.b 'Thank you!',0
TextFormat dc.b 'Notice:',10
dc.b '-------',10,10
dc.b 'A software failure has occurred in',10
dc.b '%s.',10,10
dc.b 'The alertnumber is #%08lx.',10
dc.b 'Task address is #%08lx.',10,10
dc.b 'The message from %s:',10
dc.b '%s.',10,10
dc.b 'This is a %s alert.',0
GadgetFormat2 dc.b 'Cancel|Remove',0
TextFormat2 dc.b 'AlertHelp already installed.',10
dc.b 'Do you want to remove it?',0
NoMemory dc.b 'No memory',0
MakeLib dc.b 'Unable to create library',0
OpenLib dc.b 'Unable to open library',0
OpenDev dc.b 'Unable to open device',0
OpenRes dc.b 'Unable to open resource',0
IOError dc.b 'Input/Output error',0
NoSignal dc.b 'NoSignal',0
BadParm dc.b 'Bad parameters',0
CloseLib dc.b 'Unable to close library',0
CloseDev dc.b 'Unable to close device',0
ProcCreate dc.b 'Process creation failed',0
BusError dc.b 'Bus error',0
AddrError dc.b 'Address error',0
IllegalInst dc.b 'Illegal instruction',0
DivZero dc.b 'Division by zero',0
ChkError dc.b 'Chk-instruction',0
TrapError dc.b 'Trapv-instruction',0
Supervisor dc.b 'Supervisor instruction from',10,'User state',0
Trace dc.b 'Trace',0
ExcptVect dc.b '68000 exception vector checksum',0
BaseChkSum dc.b 'Execbase checksum',0
LibChkSum dc.b 'Library checksum failure',0
MemCorrupt dc.b 'Corrupt memory list detected in',10,'FreeMem',0
IntrMem dc.b 'No memory for interrupt servers',0
InitAPtr dc.b 'InitStruct() of an APTR source',0
SemCorrupt dc.b 'A semaphore is in an illegal state',10,'at ReleaseSemaphore()',0
FreeTwice dc.b 'Freeing memory already freed',0
BogusExcpt dc.b 'Illegal 68xxx exception taken',0
IOUsedTwice dc.b 'Attempt to reuse active IORequest',0
MemoryInsane dc.b 'Sanity check on memory list failed',10,'during AvailMem(MEMF_LARGEST)',0
IOAfterClose dc.b 'IO attempted on closed IORequest',0
StackProbe dc.b 'Stack appears to extend out of range',0
BadFreeAddr dc.b 'Memory header not located. [Usually',10,'an invalid address passed to FreeMem()]',0
GfxNoMem dc.b 'Graphics out of memory',0
GfxNoMemMspc dc.b 'MonitorSpec alloc, no memory',0
LongFrame dc.b 'Long frame, no memory',0
ShortFrame dc.b 'Short frame, no memory',0
TextTmpRas dc.b 'Text, no memory for TmpRas',0
BltBitMap dc.b 'BltBitMap, no memory',0
RegionMemory dc.b 'Regions, memory not available',0
MakeVPort dc.b 'MakeVPort, no memory',0
GfxNewError dc.b 'GfxNewError',0
GfxFreeError dc.b 'GfxFreeError',0
GfxNoLCM dc.b 'Emergency memory not available',0
ObsoleteFont dc.b 'Unsupported font description used',0
LayersNoMem dc.b 'Layers out of memory',0
GadgetType dc.b 'Unknown gadget type',0
CreatePort dc.b 'Create port, no memory',0
ItemAlloc dc.b 'Item plane alloc, no memory',0
SubAlloc dc.b 'Sub alloc, no memory',0
PlaneAlloc dc.b 'Plane alloc, no memory',0
ItemBoxTop dc.b 'Item box top < RelZero',0
OpenScreen dc.b 'Open screen, no memory',0
OpenScrnRast dc.b 'Open screen, raster alloc, no memory',0
SysScrnType dc.b 'Open sys screen, unknown type',0
AddSWGadget dc.b 'Add SW gadgets, no memory',0
OpenWindow dc.b 'Open window, no memory',0
BadState dc.b 'Bad State Return entering Intuition',0
BadMessage dc.b 'Bad Message received by IDCMP',0
WeirdEcho dc.b 'Weird echo causing incomprehension',0
NoConsole dc.b 'Could not open the Console Device',0
StartMem dc.b 'No memory at startup',0
EndTask dc.b 'EndTask did not',0
QPktFail dc.b 'Qpkt failure',0
AsyncPkt dc.b 'Unexpected packet received',0
FreeVec dc.b 'Freevec failed',0
DiskBlkSeq dc.b 'Disk block sequence error',0
BitMap dc.b 'Bitmap corrupt',0
KeyFree dc.b 'Key already free',0
BadChkSum dc.b 'Invalid checksum',0
DiskError dc.b 'Disk error',0
KeyRange dc.b 'Key out of range',0
BadOverlay dc.b 'Bad overlay',0
BadInitFunc dc.b 'Invalid init packet for CLI/Shell',0
FileReclosed dc.b 'A filehandle was closed more than',10,'once',0
BadSegList dc.b 'Overlays are illegal for library',10,'segments',0
BadExpansionFree dc.b 'Freeed free region',0
NoWindow dc.b 'Console cannot open initial window',0
TDCalibSeek dc.b 'Calibrate: Seek error',0
TDDelay dc.b 'Delay: Error on timer wait',0
TMBadReq dc.b 'Bad request',0
TMBadSupply dc.b 'Power supply -- no 50/60hz ticks',0
DRHasDisk dc.b 'Get unit: Already has disk',0
DRIntNoAct dc.b 'Interrupt: No active unit',0
BootError dc.b 'Boot code returned an error',0
WBBadStartupMsg1 dc.b 'Bad startup message 1',0
WBBadStartupMsg2 dc.b 'Bad startup message 2',0
WBBadIOMsg dc.b 'Bad IO message',0
WBInitPotionAllocDrawer dc.b 'Init Potion Alloc Drawer',0
WBCreateWBMenusCreateMenus1 dc.b 'Create WBMenus 1',0
WBCreateWBMenusCreateMenus2 dc.b 'Create WBMenus 2',0
WBLayoutWBMenusLayoutMenus dc.b 'Layout WBMenus',0
WBAddToolMenuItem dc.b 'Add ToolMenu-Item',0
WBReLayoutToolMenu dc.b 'ReLayout ToolMenu',0
WBinitTimer dc.b 'Init timer',0
WBInitLayerDemon dc.b 'Init layer demon',0
WBinitWbGels dc.b 'Init Workbench gels',0
WBInitScreenAndWindows1 dc.b 'Init screen and windows 1',0
WBInitScreenAndWindows2 dc.b 'Init screen and windows 2',0
WBInitScreenAndWindows3 dc.b 'Init screen and windows 3',0
WBMAlloc dc.b 'MAlloc',0
END