HoldIt.exe -- The program basically does the same as the DOS command PAUSE. The first difference is that a timeout value can be given as a parameter specifying the number of seconds the program will wait for somebody to hit a key before continuing. (0 or no parameter at all makes the program wait indefinitely) But what would that be good for without the second difference: the returned errorlevels. If no user interaction is registered during the specified time, the program ends returning the errorlevel 0. If any key is pressed the program exits immediately and returns an errorlevel that depends on the key that has been hit. In the current version the following codes will be returned: Key: 1 2 3 4 5 6 7 8 9 0 ESC any other key Code: 1 2 3 4 5 6 7 8 9 10 200 100 The program was written in Turbo Pascal 6.0 with a tiny bit of assembler in it, as can easily be seen in the accompanying source code. The timeout delay is realized with the internal clock of the PC: that way 5 seconds are 5 seconds - no matter how 'slow' the machine is running. Since the date has not been incorporated into this check the timed delay might be shorter than specified if the time changes from 23:59 to 00:00 during the 'pause'. This program was uploaded by the author; I DO NOT claim any rights whatsoever and encourage everybody to adapt the code to his/her personal needs. No payments are asked for, you may use it for as long as you please and do with it whatever you like. I would however be glad if anyone testing, using and/or modifying this program would send me a short notice -- just because I'd like to have an idea of how far it is getting around. I cannot give a guarantee that the program will perform in the above outlined manner on a given system, but it has been tested under MSDOS 5.0 on 286/386/486 cpus. If an error should occur a recompila- tion of the provided source code should do the trick. Some points of interest: - Don't forget that in a batchfile you always have to check for the highest errorlevel first: "If errorlevel = 1" returns true even if the level actually is >= 2. - The message 'Press any key to continue' is written to standard output (normally the screen). This way it can be redirected to NUL if you'd rather have some other message displayed instead. (e.g. echo Press ESC to abort holdit 5 > NUL if errorlevel = 200 goto end ) - If you need other (or more) errorlevels, you can add the desired keys and levels to the CASE statement at the end of the program and recompile it afterwards. Or you can get in touch with me (preferrably via e-mail). - I'm open to suggestions. Feel free to contact me if you have any questions or ideas for improvements. Peter Strickler HWS, University of Zuerich Zuerich / Switzerland K267514@CZHRZU1A.BITNET