*---------------------------------------------------------------------* | | | Leonard6, the Crash Handler | | by John Eidsvoog | | Copyright 1990 John Eidsvoog | | Release date: Friday, July 5, 1991 | | | | This software and the accompanying documentation are freeware and | | may be distributed freely as long as they remain intact, complete, | | and unaltered. It may not be sold or included with any commercial | | package without the written consent of the author. | | | *---------------------------------------------------------------------* * This version of Leonard6 has a new "reboot" function -- See below. THE INSPIRATION BEHIND LEONARD6 ------------------------------- An official at Atari (who shall remain nameless) has joked publicly that Atari plans to have a head with little ones and zeros appear whenever a program crashes on the TT. The more we thought about it, the more we realized that it might actually be a good advertising gimmick, not only on the TT but also on the ST. To show that we at CodeHead Software have a sense of humor, I decided to create a program that would replace the usual Atari "bombs" with little heads with ones and zeros in them. Since this program works on all STs _and_ the TT, it further shows that we do indeed know how to make our software TT-compatible. The little head-shaped bomb replacements have been nicknamed leonards after the movie "Leonard - Part VI", which was quite a bomb itself. Any similarities between the name or images used in Leonard6 and any real or imaginary figures or persons are purely coincidental. This package was also created with a definite tongue planted in a rather large cheek. HOW TO SET IT UP ---------------- Leonard6 is a resident program. It can be installed from the desktop or from your AUTO folder. You can install it from the desktop (or HotWire) by simply running the program, at which time the installation message will quickly flash on the screen and return you to the desktop (or HotWire). If you want to permanently add Leonard6 to your normal setup, simply copy it into your AUTO folder. It will then be installed every time you boot up from that disk. A brief message will appearing showing you that it is installed. If you use a resident debugger such as TEMPLMON.PRG or AMONST.PRG, you should install LEONARD6.PRG so that it runs after that debugger in your AUTO folder. That way every time a system error occurs, the appropriate number of leonards will appear and your debugger will be invoked. You'll be able to view the leonards by flipping to your view screen (F2 in TempleMon, or 'V' in AmonST). HOW IT WORKS ------------ Leonard6 installs itself in the first 8 exception vectors, which normally point to the system's bomb-handler routine. It replaces the routine which shows bombs on the screen for those vectors. The vectors handled by Leonard6 and the respective number of leonards that will appear are: 2 - Bus error 3 - Address error 4 - Illegal instruction 6 - Chk instruction 7 - Trapv instruction 8 - Privilege violation 9 - Trace mode These are the most frequent types of system errors. Exceptions with larger numbers will be handled by the normal system bomb-handler routine. If you have a resident debugger, Leonard6 will fall through to the debugger routines, otherwise it will handle errors the same as the operating system does by terminating the current program (with a Pterm). NEW "REBOOT" FUNCTION --------------------- You can now set Leonard6 to cause a cold reset when a system crash occurs instead of just displaying leonards. When you run Leonard6 from the desktop, an alert box will appear showing the current function of Leonard6 (reboot or display system errors). You can choose to change the function, just install, or exit. If you change the function and either exit or install, the new function will be written into LEONARD6.PRG so you must not change the name of the program if you want to change the function. An alert box will inform you if the change could not be made. Why would you want to reboot upon system errors? This function was added for BBS usage. If a system crash happens while a BBS is operating it is usually more desirable if the system is rebooted so that the BBS can be re-installed. The CodeHead Quarters BBS is run using the Michtron BBS software. We can even take advantage of a bug in the sysop commands which causes the system to crash. If you perform the "SCR x" command without entering a valid number ("SCR 0") the software will bomb. We can use this to reinstall resident programs on the BBS from a remote location. A new program can be uploaded to the system AUTO folder and then "SCR" can be used to reboot, installing the program. VERSION 1.2 ----------- Version 1.2 fixes a bug that caused crashing on the TT030. CRASHER.PRG ----------- CRASHER.PRG is a program which simulates an illegal instruction error with Leonard6 installed so that you don't have to install Leonard6 and wait for a system error to occur. This will help you decide if you want to install Leonard6 in your system or not. CRASHER.PRG will not harm your system or create any problems with resident programs or accessories. It will simply display four leonards and wait for you to press a key to terminate the program. POINTS TO NOTE -------------- 1. Due to the larger size of the leonards compared to the size of a bomb image, on a color monitor you will only see the first 6 leonards. Up to nine leonards are supported on a monochrome monitor. 2. A divide-by-zero exception is ignored and will be immediately processed by an 'rte' instruction. This is useful because some programs have divide-by-zero errors which TOS will ignore but TEMPLMON will intercept. Since this can be quite irritating, Leonard6 will pass you directly back to the program without displaying any errors. If you want to test your programs for divide-by-zero errors, you should remove Leonard6. COPYRIGHT STUFF --------------- LEONARD6.PRG, CRASHER.PRG, and this document are Copyright 1990 John Eidsvoog. They are freeware and may be distributed freely as long as they are unaltered and not included with any commercial products without the written consent of the author. Please note that Leonard6 is not a CodeHead Software product. All CodeHead Software products are commercial programs which must be purchased through normal commercial channels. Neither this document file (LEONARD6.TXT) nor the program files (LEONARD6.PRG and CRASHER.PRG) may be altered in any way. Copies of these files may not be sold, and this document may not be reprinted, without the express written permission of John Eidsvoog. I've tried to make Leonard6 as bug-free as possible. Nevertheless, I cannot be responsible for any damages which may occur as a result of the use (or misuse) of Leonard6. ******************************************************************** * * * ANY SIMILARITIES BETWEEN THE NAME OR IMAGES USED IN LEONARD6 AND * * ANY REAL OR IMAGINARY FIGURES OR PERSONS IS PURELY COINCIDENTAL. * * * ********************************************************************