@database GetLastAlert GetLastAlert.guide
@$VER: GetLastAlert.guide 1.1 (5.1.96)
@(c) David Gerber
@author David Gerber
@width 79

@node main "GetLastAlert Version 1.1"
			       @{"David Gerber" link cv}
                                 presents
                      @{b}@{fg highlight}GetLastAlert@{fg text}@{ub} @{i}Version 1.1 @{ui}(5-1-96)
                      ----------------------------------

			      @{fg highlight}1  @{fg text}@{"Introduction" link introduction}
			      @{fg highlight}2  @{fg text}@{"Features" link features}
   			      @{fg highlight}3  @{fg text}@{"Installation" link installation}
   			      @{fg highlight}4  @{fg text}@{"How to use it" link utilization}
   			      @{fg highlight}5  @{fg text}@{"Distribution" link distribution}
   			      @{fg highlight}6  @{fg text}@{"History" link history}
			      @{fg highlight}7  @{fg text}@{"Future releases/bugs" link future}
			      @{fg highlight}8  @{fg text}@{"The Guru list" link gurulist}
   			      @{fg highlight}9  @{fg text}@{"Contact the author" link address}
   			      @{fg highlight}10 @{fg text}@{"Greetings" link greets}


@{i}    Sorry for the bad spelling. English isn't my native language @{ui};-)
@{i}	I'm doing my best to be understood. @{ui}
@endnode

@node introduction "Introducing GetLastAlert"
@{fg highlight}A little story@{fg text}	

In december 1994, I bought the last CD³² in stock (in Switzerland the Amiga
is  not very present).  I was impressed by the powerful AGA chipset and the
amazing  speed  (compared to my unexpanded A500).  I was looking for a SX-1
but  I  didn't  find  it  here.  Fortunately a friend bought me one from UK
(thanks  Nadia  :-)  after  that,  I  made  an  Amiga  keyboard  (I HATE PC
keyboards)  with  an  A500  keyboard and an A2000 keyboard case (If you are
interested,  contact  me  and I will do a complete document about that).  I
plugged  drives  and  installed a 540Mb Hard Disk, I've bought 4mb FAST RAM
and did some hacks and more...
	I've  got the WorkBench 3.0 (surprisingly, it was hard to find) and
I found a problem in the Kickstart.


@{fg highlight}A problem ?@{fg text}

	Yes  man!   A  problem  (it's  not  really a bug).  In fact, when a
program  crashes  (frequent with bad coded Kick 1.2/3 applications) and the
system  is  not  able  to  display the Guru in a requester, the power light
blink  just  like  a  normal Amiga (A500, A600, A1200, etc...), the machine
resets  and...  nothing!  No Guru is displayed.  It is very anoying because
you can't know why the machine crashed (it's very important for me).


@{fg highlight}Why does this happen ?@{fg text}

	There  are  some hypotesis.  It's maybe due to the fact that a CD³²
is considered as a game machine (the first game machine with a multitasking
system!)  and  Commodore  probably wouldn't confuse a player (lamer) with a
Guru  meditation  who  can  upset him (or her but it's rare).  Or it's also
because  the  CD³²  hasn't got a mouse as standard.  Or it's maybe really a
bug due to the CD³² intro screen (try to find the virus LAMER EXTERMINATOR.
It  will crash the machine, and you will find a A1200 intro screen with the
animated disk!!!  I'm trying to understand how it works).


@{fg highlight}Is there a solution ?@{fg text}

	Of  course  it  is.  I'm not writing all this guide for nothing :-)
The solution is:  @{b}GetLastAlert@{ub} by David Gerber (tatan!).  This program will
simply  show  you the last error message (Guru number and address).  Simple
but very useful (at least for me).
@EndNode

@Node features "Amazing features of GetLastAlert"
Here are some features of GetLastAlert:

	- Show Guru number and address of the error

	- Very nice Guru style presentation

	- Very easy to use (with the mouse buttons)

	- Compatible CLI or WorkBench

	- Only active if a Guru happened (useful for startup-sequence)

	- 100% hard coded in assembly language (it's of course optimized)

	- Very little (only 1308 bytes!)

	- Completely free (@{"mailware" link mailware} program)

	- Developed entirely on a CD³² (that's rare)

	- Coded by me    :-)


GetLastAlert has been successfully tested on the following machines:

		A500 (Kickstart 1.3, 512kb CHIP, 512kb FAST)
		CD³² (Kickstart 3.1, 2mb CHIP, 4mb FAST)



A BIT OF TECHNIQUE

GetLastAlert  is  entirely  programmed in assembly language and doesn't use
any  include  source  (anyway,  I  don't  have  them).  Because the lack of
documentation about the 2.0-3.1 systems, I use some stranges reset vectors.
Fortunatelly, they are correctly handled and are safe.
@EndNode

@Node installation "Installing GetLastAlert"
Use the supplied Installer script. You need the Commodore Installer program
(not supplied with the package) in one of your path.

This script will do:

	- Copy GetLastAlert to a drawer (default WBStartup)
	- Copy GetLastAlert.guide to a drawer (default Documents)
	- Copy either the normal icons or the MagicWB icons

@{i}Note: @{ui}Placing GetLastAlert in your WBStartup is highly recommended
because it will show you the last alert after every startup.
@EndNode

@Node utilization "Using GetLastAlert"
After the machine crashes, boot your system and launch GetLastAlert by:

	@{fg fill}CLI@{fg text}		Just type "GetLastAlert"

	@{fg fill}WORKBENCH@{fg text}	Double click on the GetLastAlert icon

@{fg highlight}Forget all that above if GetLastAlert is in your WBStartup drawer.@{fg text}

Now,  a  Guru  style  screen should apears (nice eh?  :-) there is the Guru
number  and  the  address where the error occured.  If you don't understand
these therms, click @{"here" link guru} for a short explanation.  To exit, click the left
mouse  button.   To  have  an "about" screen, click the right mouse button.
That's all you need to use GetLastAlert.

@{fg highlight}NOTE:@{fg text}   GetLastAlert open it's Guru request only if a DeadEnd alert occured
before.   So,  if  you  put GetLastAlert in your startup-sequence, it won't
irritate you because it will only appears if you need it.

      If  you  reboot  the  machine,  GetLastAlert  will  not emerge again.
@EndNode

@Node future "Future releases and bugs"
The  future  releases  of  GetLastAlert depend of you.  Please support this
program.   I  just  ask  for  a little e-mail.  Even if you don't like this
program please let me know.  What could be better, etc...

Things to implements:

	- A complete Guru analyser (give the problem and the solution, you
	  don't have to find the explanation of the Guru number)

	- An Intuition window telling the last alert



@{fg fill}Known bugs:@{fg text}

The  intuition  function  DisplayAlert()  turn  off the multitasking of the
Amiga.   Although  the  screen look nice, this is not really good since the
Workbench can't continue (ie loading patterns).  The answer is to implement
an Intuition window.  Will soon be fixed.

PointerX  doesn't work well if you use the About screen.  Solving the first
problem may also solve this one.
@EndNode

@Node distribution "Distribution"
GetLastAlert can be freely distributed under the following conditions:
@{fg fill}
	- GetLastAlert must be kept with its documentation
	  GetLastAlert.guide

	- No profit must be made with this program.  The price of
	  distribution must not exceed the cost of the media storage.

	- GetLastAlert don't have to be modified in any way.
@{fg text}
If  you  decide  to  distribute  GetLastAlert in any PD-DISK or CD, I'll be
grateful if you contact me (a simple e-mail).


	GetLastAlert   is  a  @{"mailware" link mailware}  program.   It  has  been  correctly
programmed  and shouldn't cause dataloses or failures but remember that @{bg fill}you
use it at your own risk!@{bg back}
@EndNode

@Node history "Versions of GetLastAlert"
@{u}Releases of GetLastAlert:@{uu}

       @{u}Version 1.0@{uu} (16-11-95): *First release of GetLastAlert.

       @{u}Version 1.1@{uu} (05-01-96): *Added STARTPRI and DONOTWAIT in the
				tooltypes of the icon.
			       *Now GetLastAlert don't rerun after a second
				reset. I think it's better for harddrive
				usage.
			       *Removed a bug wich caused sometimes
				GetLastAlert to do a guru itself :-(
			       *Added a WB 2.0 version string. Now you can
				check the version of GetLastAlert by typing
				"version GetLastAlert".
			       *Removed a nasty bug which only appears in
				the shell. The error code was the address
				of the dos.library.
			       *Removed a spelling mistake: "it's
				documentation" instead of "its
				documentation".
			       *Added an Installer script for instalation
			       *Two news MagicWB icons (that's nice!)

@Endnode

@Node address "David Gerber"
@{fg highlight}Remember:@{fg text} 		GetLastAlert is a @{"mailware" link mailware} program.	

@{fg highlight}Send:@{fg text}			mails, e-mails, bug reports, suggestions, mods,
			questions, moral support, programs, postcards and
			includes!

@{fg highlight}Others creations:@{fg text}	ZapDisk (the fastest disk eraser) Aminet disk/misc
			CD32_PSU (PC PSU for the CD³²) Aminet hard/misc
			Very good HARCORE mods available at:
			@{fg fill}http://eig.unige.ch/~gerber/welcome.html@{fg text}
			And more things are coming...

@{fg highlight}Contact methods:@{fg text}	1.@{"e-mail" link internet}  preferably
			2.@{"Web Server" link server}
			3.@{"Snail Mail" link snail}
			4.@{"IRC" link IRC}

@{fg highlight}Mailing list:@{fg text}		If you want to get some e-mails about my products,
			new versions and others cool things, send an e-mail
			with the words @{fg fill}subscribe gerber@{fg text} to my mail server
			@{fg fill}gerber@eig.unige.ch@{fg text} you will get a e-mail with
			a subscribtion confirmation and unsubscribtion
			instructions. I hope you will enjoy the service.

@{fg highlight}Special support:@{fg text}
			If anyone can send me some includes files (and
			the autodocs) I will send every new program I
			will made to him. If you do so, the next
			programs will have GadTools gadgets, OS 2.0+
			functions and much much more power.

							Thanks
@EndNode

@Node cv "David Gerber ???  Who is it?"
	For those who don't know me, I'm born in Switzerland the 6 of April
1978.   I live in Geneva and I'm studying engineering.  I started computing
with an old MSX-2 and with some old PC's.  When I was about 12 years old, I
bought an Amiga 500 and I discovered how great this machine was.  Now, I've
got  an  expanded CD³².  I'll probably set up a BBS named Strike BBS (it is
under testing actually).


	@{fg  fill}Likes:@{fg  text}  using  my  Amiga (programming, making
HARDCORE  musics, doing hacks, etc...), getting (e)mails, swimming, diving,
listening  HARDCORE  at  full  volume, calling some BBS, the Coca-Cola, the
motorbikes and the pretty girls with blue eyes and blond hair.

	@{fg fill}Dislikes:@{fg text} PCs (I HATE PCs!!!!!! Amiga is 10 years beyond it!!)

		
If you need some help or want to know me more, e-mail me.

@{fg highlight}Remember:@{fg fill} ONLY AMIGA MAKES IT POSSIBLE!!!@{fg text}
@endnode

@Node greets "Greetings"
@{fg highlight}Greetings to:@{fg text}

	- Juan for giving me another Amiga 500. What are you doing
	  with your fucking PC? It's only a 486? You need to buy a P7 and
	  Windoze 96 plus ten adds-on and a hundred of bugs!

	- BAP a loyal Amiga user. Alors, ça va ta CD³²?

	- Axl for his Action Replay MKIII (a very good cartridge)

	- Coca-Cola

	- ID&T

	- Motorola

	- Commodore (Thank you for supporting the Amiga. It's sade that
	  you have to produce fucking PC's now)

	- Escom for supporting the Amiga. All the Amiga community is
	  with you.

	- And all of the people who send me e-mails, bug reports and help.

@{fg highlight}Fuck's to:@{fg text}

	- Bill Gates for producing the stupide Windoze.

	- Intel for stupide CPU's with poor efficiency.

	- THI for beeing stupid.

	- All the fucking people who think that the Amiga is only a game
	  machine (Switzerland is a bad country for computers)
@EndNode



@Node internet "e-mail"
	 You'll get a fast reply of me (no more than one week)

                           @{fg fill} gerber@eig.unige.ch@{fg text}

                    I answer to ALL the e-mails I get!
@EndNode

@Node snail "Snail Mail"
                              @{fg fill} David Gerber
                          15 chemin de la Mairie
                               1223 Cologny
                                  Genève
                                  Suisse@{fg text}
@EndNode

@Node server "World Wide Web Server"
I've got my Web Server. You will find Amiga things here and hardcore mods.

                @{fg fill} http://eig.unige.ch/~gerber/welcome.html@{fg text}


This Web site is of course entirely done on my Amiga.
@EndNode

@Node guru "About the Guru requesters"
When  the  Amiga  crashes,  it give you some informations of what happened.
There  are two informations:  the Guru number and the address of the error.
The  Guru  number give you the type of the error. See @{"The Guru list" link gurulist} for an
explanation  of  the  principal  errors.   The  address of the error is the
address  of  where the  error  occured. Here is a short descriptions of the
memory areas:


	@{u}Range@{uu}			@{u}Memory type@{uu}
	
	$000000-$1fffff		CHIP RAM
	$200000-$9fffff		FAST RAM
	$c00000-$c7ffff		SLOW RAM
	$f00000-$ffffff		KICKSTART ROM
@EndNode

@Node gurulist "The most importants Guru Alerts"
@{fg highlight}Alert type:@{fg text}
		8xxxxxxx = Dead End Alert
		0xxxxxxx = Recovery Alert (not handled by GetLastAlert)

@{fg highlight}General alerts:@{fg text}
		xxx1xxxx = not enough memory
		xxx2xxxx = library destroyed
		xxx3xxxx = library can't be opened
		xxx4xxxx = library can't be used
		xxx5xxxx = resource can't be opened
		xxx6xxxx = I/O error
		xxx7xxxx = I/O not present

@{fg highlight}68000 alerts:@{fg text}
		xxxxxxx2 = data error or address error
		xxxxxxx3 = illegal addressing mode
		xxxxxxx4 = illegal instruction
		xxxxxxx5 = division by zero
		xxxxxxx6 = instruction CHK
		xxxxxxx7 = instruction TRAPV
		xxxxxxx8 = privilege violation
		xxxxxxx9 = mode single-step
		xxxxxxxA = line A emulator (1010)
		xxxxxxxB = line F emulator (1111)

@{fg highlight}exec.library:@{fg text}
		81000001 = 68000 exception vector checksum
		81000002 = execbase checksum
		81000003 = library checksum failure
		81000004 = no memory to make library
		81000005 = corrupted memory list
		81000006 = no memory for interrupt servers
		81000007 = InitStruct() of an APRT-source

@{fg highlight}graphics.library:@{fg text}
		82001001 = copper display list out of memory
		82001002 = copper instructions list out of memory
		82000003 = copper list overload
		82000004 = copper intermediate list overload
		82001005 = copper list head out of memory
		82001006 = long frame out of memory
		82001007 = short frame out of memory
		82001008 = flood fill out of memory
		82001009 = no memory for TmpRas for text
		82001010 = BltBitMap out of memory

@{fg highlight}intuition.library:@{fg text}
		84000001 = unknown gadget type
		84010002 = no memory for create port
		84010003 = item plane allocation, no memory
		84010004 = sub allocation out of memory
		84010005 = plane allocation out of memory
		84000006 = item box top smaller than RelZero
		84010007 = no memory for open screen
		84010008 = no memory for open screen raster allocation
		84000009 = open sys screen of unknown type
		8401000a = no memory for adding SW gadgets
		8401000b = no memory for open window
		8400000c = entering Intuition: bad state return
		8400000d = bad message received by Intuition DCP
		8400000e = wired echo causing incomprehension
		8400000f = console device couldn't be opened

@{fg highlight}dos.library:@{fg text}
		87010001 = no memory at startup
		87000002 = EndTask didn't end
		87000003 = packet failure
		87000004 = unexpected packet received
		87000005 = Freevec failed
		87000006 = disk block sequence error
		87000007 = bitmap corrupt
		87000008 = key already free
		87000009 = invalide checksum
		8700000a = disk error
		8700000b = key out of range
		8700000c = bad overlay

If you find another Guru and want a description of it, contact me and I
will try to help you.
@EndNode

@Node mailware "MailWare"
A mailware program is like a freeware program. If you use this program, you 
must send me a mail or a postcard.
@EndNode

@Node help "help"
Who  did  press the "HELP"?  Using AmigaGuide documentation is very easy so
you don't need help!
@Endnode

@Node IRC "Internet Relay Chat"
A  week  ago, I found a good way to have fun when I'm sacked from a lesson:
IRC.   You  will  probably  find  me  on  the #amiga channel with the @{bg fill}Zapek@{bg back}
nickname.  Otherwise, I'm on #france or #geneva.
@Endnode
