qa.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Int 20H
   Summary  Notes  Back
──────────────────────────────────────────────────────────────────────────────
 
  If the program is returning to COMMAND.COM, control transfers to the
  resident portion, and the transient portion is reloaded if necessary.
  If a batch file is in progress, the next line of the file is fetched
  and interpreted; otherwise, a prompt is issued for the next user
  command.
 
  MS-DOS then takes the following actions:
 
  ■ All memory belonging to the process is released.
 
  ■ File buffers are flushed, and any open handles for files or devices
    owned by the process are closed.
 
  ■ The termination handler vector (Int 22H) is restored from
    PSP:000AH.
 
  ■ The CTRL+C handler vector (Int 23H) is restored from
    PSP:000EH.
 
  ■ The critical-error handler vector (Int 24H) is restored from
    PSP:0012H (MS-DOS versions 2.0 and later).
 
  ■ Control is transferred to the termination handler.
 
▀ Any files that have been written to using FCBs should be closed
  before performing this exit call; otherwise, data may be lost.
 
▀ Other methods of performing a final exit are:
   - Int 21H Function 00H
   - Int 21H Function 31H
   - Int 21H Function 4CH
   - Int 27H
 
▀ [3] If the program is running on a network, it should remove all locks
  it has placed on file regions before terminating.
 
▀ Int 21H Functions 31H and 4CH are the preferred method for termination
  because they allow a return code to be passed to the parent process.
                                    -♦-