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 21H Function 4CH
   Summary  Notes  Example  Back
──────────────────────────────────────────────────────────────────────────────
 
  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.
 
  ■ Control is transferred to the termination handler.
 
  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 in-
  terpreted; otherwise, a prompt is issued for the next user command.
 
▀ This is the preferred method of termination for application programs be-
  cause it allows a return code to be passed to the parent program and
  does not rely on the contents of any segment register. Other methods of
  performing a final exit are:
  - Int 20H
  - Int 21H Function 00H
  - Int 21H Function 31H
  - Int 27H
 
▀ Any files that have been opened using FCBs and modified by the program
  should be closed before program termination; otherwise, data may be
  lost.
 
▀ The return code can be retrieved by the parent process with Int 21H Func-
  tion 4DH (Get Return Code). It can also be tested in a batch file with an
  IF ERRORLEVEL statement. By convention, a return code of zero indicates
  successful execution, and a non-zero return code indicates an error.
 
▀ [3.0+] If the program is running on a network, it should remove all locks
  it has placed on file regions before terminating.
                                    -♦-