F A T A L Resident Critical Error Handler FATAL14.ZIP v1.4 04-22-90 Copyright 1989, 1990 Samuel H. Smith All rights reserved. This program is a resident (TSR) utility that traps critical errors and attempts to handle them in an intelligent way. It replaces the normal "Retry, Ignore, Abort" prompt. The program automatically attempts to retry failed operations when you are not there to press the "R" key. It draws on all available information to present a complete error description to the user. If the operator does not respond within 10 seconds the program will automatically take the action suggested by DOS. DOS version 3.0 or later is required to use this program. Once resident, FATAL used about 3800 bytes of RAM. Usage: FATAL/I ;install FATAL in memory. FATAL/U ;un-install, remove FATAL from memory. FATAL/C ;display critical error counters. FATAL/Z ;reset error counters to zero. The FATAL program will take over critical errors that are not directly handled in a later program. It is careful to preserve any replacement error handler used by an application program. Because of this, it is advised to load FATAL as an early TSR, before any others that also set up critical error handlers. In multi-tasking systems you may need to load a copy of FATAL into each memory partition. NOTE: If you are running the LANtastic network, you must load FATAL *before* calls to SERVER and probably also before REDIR and LANBIOS. Otherwise a sharing violation will be trapped on the server rather than on the offending workstation! Example output -------------- FATAL/I FATAL v1.4 installed. FATAL/U FATAL unInstalled. FATAL/C FATAL v1.4 status: 10 Critical errors. 5 Automatic retries. Error: 3 Seek error! 6 Sharing violation! 1 Network device no longer exists! Class: 3 Hardware failure 6 Resource locked 1 Unknown Locus: 1 Unknown. 8 Block device (disk error). 1 Network. Drive: 2 I: 6 J: 2 U: Area: 5 Directory area. 5 Data area. Suggested action: 3 Retry the operation. 6 Delay and then retry. 1 Re-enter input. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ CRITICAL ERROR! ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Error: Drive not ready! º º Area: Reading from drive A: File allocation table. º º Class: Hardware failure in Block device (disk error). º º Suggested action: Retry after correcting the error. º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Action: (A)bort, (R)etry, (I)gnore, (F)ail? FATAL/Z Critical error counters zeroed. LICENSE ======= SourceWare: What is it? ----------------------- SourceWare is my name for a unique concept in user supported software. Programs distributed under the SourceWare concept always offer source code. This package can be freely distributed so long as it is not modified or sold for profit. If you find that this program is valuable, you can send me a donation for what you think it is worth. I suggest about $10. Send your registrations to: The Tool Shop BBS Samuel H. Smith (602) 264-3969 (2400) - Free node 5119 N. 11th Ave., #332 (602) 279-2673 (HST 9600) Phoenix AZ 85013 (602) 279-0230 (HAYES 9600) Why SourceWare? --------------- Why do I offer source code? Why isn't the donation manditory? The value of good software should be self-evident. The source code is the key to complete understanding of a program. You can read it to find out how things are done. You can also change it to suit your needs, so long as you do not distribute the modified version without my consent. Copyright --------- If you modify this program, I would appreciate a copy of the new source code. I am holding the copyright on the source code, so please don't delete my name from the program files or from the documentation. DISCLAIMER ========== I make no warranty of any kind, express or implied, including without limitation, any warranties of merchantability and/or fitness for a particular purpose. I shall not be liable for any damages, whether direct, indirect, special or consequential arising from a failure of this program to operate in the manner desired by the user. I shall not be liable for any damage to data or property which may be caused directly or indirectly by the use of this program. IN NO EVENT WILL I BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF YOUR USE OR INABILITY TO USE THE PROGRAM, OR FOR ANY CLAIM BY ANY OTHER PARTY. Revision History ---------------- 7-20-89 v1.0 Initial coding and release. 7-31-89 v1.1 Changed all display code to use BIOS calls exclusively. The initial version used the DOS function 9, but this caused problems when standard output was redirected: the FATAL messages were also redirected! Added screen save and restore operations; original user screen is now preserved after fatal error processing (text modes only). BIOS calls are used for compatibility with all system types. Corrected an error that caused application program error handlers to be replaced. FATAL is supposed to replace only the standard handler, leaving application error handlers in place. 8-2-89 v1.2 Changed keyboard input functions to use BIOS calls rather than DOS calls. This prevents a crash if standard input has been redirected from a file at the time a critical error takes place. Slight reduction in RAM requirement. FATAL now removes itself from memory if run a second time. Please don't do this if you have any resident programs loaded after FATAL. Added /L command line option to bypass license messages. 8-14-89 v1.3 Added internal counters for number of critical errors and number of automatic retries. Each possible error message is counted for later reporting. New FATAL/C option produces a detailed report of all error counters. New FATAL/I option performs initial installation. New FATAL/U option un-installs fatal if possible. Fatal now hooks the DOS services interrupt in addition to the timer tick interrupt. On very fast machines it was possible to miss a critical error during the first 55 miliseconds of program execution. 12-26-89 v1.4á1 Shortened automatic retry delay from 30 seconds to 10 seconds. New FATAL/Z option to zero all error counters. Added new logic to properly handle nested calls to COMMAND.COM and shells to COMMAND.COM from application programs. Improved the ability of FATAL/C to locate the resident portion, even when being called by an application that takes over the critical error interrupt. 03-29-90 v1.4á2 Added some additional error messages. Corrected "stray" character in prompt. Widened error display window to allow better formatting of longer error reports.