Abort, Retry, Fail?
||This article possibly contains original research. (July 2010) (Learn how and when to remove this template message)|
"Abort, Retry, Fail?" is a computer error message found in the DOS operating systems, which prompts the end-user for a course of action to follow. The message has been used as an example of poor usability design in computer user interfaces.
A primary design consideration for the DOS family of operating systems (such as MS-DOS, PC DOS and DR-DOS) was that software written for CP/M be portable to DOS without changes. In most CP/M systems, attempting to read a floppy disk drive with the door open hung, waiting for a signal from the disk until the disk drive door was closed. On some hardware, it would hang until an actual physical disk was in the drive. Many users of CP/M were accustomed to this as a method of managing multiple disks, by opening the disk drive to stop the reading operation, until the correct disk could be inserted. Even the first IBM PC had more advanced hardware, such that the central processing unit (CPU) could tell that the disk drive door was open, but returning an error would break software that assumed that opening a file would wait until the user had inserted the correct disk.
Still, it was desirable to improve the experience if possible, in particular, by giving the user a way to get out of the hang without having to find a disk to insert in the drive. For this reason, the prompt was invented in DOS.
A missing disk (or disk drive door opened) was defined by DOS as a critical error and would call the critical error handler. The default critical error handler was part of COMMAND.COM. It printed the "Abort, Retry, ..." prompt and waited for user input. Other problems (in particular, a checksum error while reading data from a disk) were also defined as a "critical error", thus causing the prompt to appear for reasons other than a missing disk or opened disk drives. Users responded to these prompts by pressing a keyboard key corresponding to action they would rather take. Available options included:
- Abort (shortcut key A): Terminates the operation or program, and return to the command prompt. In hindsight, this was not a good idea as the program would not do any cleanup (such as completing writing of other files). "Abort" was necessary, because early DOS did not implement "Fail". It may have remained necessary for poorly written software for which "Fail" would have caused a loop that would have repeatedly invoked the critical error handler with no other way to exit.
- Retry (shortcut key R): Attempts the operation again. "Retry" made sense if the user could rectify the problem. For example, if the user simply forgot to close the drive latch, they could close it, retry, and the system would continue where it left off. On early hardware, retrying a disk read error would sometimes be successful, but as disk drives improved, this became far less likely, although the message itself appeared less often.
- Ignore (shortcut key I) in older versions of DOS: Return success status to the calling program or routine, despite the failure of the operation. For instance, a disk read error could be ignored and DOS would return whatever data was in the read buffer, which might contain some of the correct data from the disk. "Ignore" did not appear in cases where it was impossible for the data to be used; for instance, a missing disk could not be ignored.
- Fail (shortcut key F): Starting with MS-DOS/PC DOS 3.3, the ability to return "Fail" from the critical error handler was added. "Fail" returned an error code to the program, similar to other errors such as "file not found". The program could then gracefully recover from the problem. This removed the biggest problem with the prompt (which earlier was known as "Abort, Retry, Ignore?") in that there was now a useful value to return that did not crash the program or repeat the prompt. DOS 3.3 COMMAND.COM provided the startup option
/Fin order to force the default critical error handler to return "Fail" on all errors. Starting with version 4.0, the alternative command line processors 4DOS and NDOS supported
/Fand the corresponding
NDOS.INIas well. The option was also supported by the COMMAND.COM of PTS-DOS 6.51 and S/DOS 1.0, as well as by DR-DOS 7.02 and higher. OpenDOS 7.01, COMMAND.COM provides a similar feature with
/N(described as "do not install a critical error handler") which is still supported in newer versions. All modern operating systems (including Windows) always act as though "Fail" is returned without user interaction.
A program could install its own critical error handler while running, and many of the more sophisticated programs, in particular, full screen programs, did so in order to avoid the messages disturbing the normal output of the program. Some programs faked the missing "Fail" response in DOS 2.0 by jumping back to the calling program, skipping the return stack in DOS. This was a risky hack.[why?]
In popular culture
These messages have become an example of frustrating and useless computer messages in popular culture. The computer would not allow the user to proceed unless they picked one of the options, but none of them produced a desirable result: in most cases, "Retry" would just repeat the message, and all the others would cause the program to exit and lose all work. (For "Ignore" this was due to a crash.)
In the Sid Meier's Alpha Centauri video game, this term is used in the technology tree quotation for Nanomatter Editation: "'Abort, Retry, Fail?' was the phrase some wormdog scrawled next to the door of the Edit Universe project room. And when the new dataspinners started working, fabricating their worlds on the huge organic comp systems, we'd remind them: if you see this message, always choose 'Retry.' "
A humorous poem based on Poe's The Raven tells of a computer user doing spreadsheets late into the night, who is faced with the message "Abort, Retry, Ignore?" on attempting to save his work on a floppy disk. After reluctantly considering the available options ("These were choices undesired, ones I'd never faced before"), attacking ("I tried to catch the chips off guard, I pressed again but twice as hard"), then pleading with the machine ("I begged and cried and then I swore"), he takes a break. At this time, a lightning bolt erases the computer's memory, leaving the user flabbergasted. The poem ends by considering what has become of the lost data, and warning that the reader, too, will one day be left in this situation. The author is believed[by whom?] to be "Cool4u2view" (real name withheld). It is dated August 1996.
- Randy Hyde (29 Sep 1996). "19.1.3: Exception Handling in DOS: The Critical Error Handler". The Art of Assembly Language Programming.
- "Action Taken on Abort, Retry, Ignore, Fail (67586)". Microsoft Knowledge Base. Microsoft. 2006-11-16. Retrieved 2009-04-18.
- Howe, Neil; Bill Strauss (1993). 13th Gen: Abort, Retry, Ignore, Fail? (1st ed.). New York: Vintage Books. ISBN 978-0679743651.
- "Abort, Retry, Fail?_ Your Woman". discogs. Retrieved 2008-04-18.
- Louderback, Jim (2006-05-03). "PC Magazine's Extreme Makeover". Retrieved 2008-07-27.
- "*Abort, Retry, Ignore?*". home.utah.edu/~msm25/. Self-published. Retrieved 14 October 2016.