Assembly Language Help (alang.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.
Interrupt 27h
◄Summary► ◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
This function performs the following actions:
■ 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 interpreted; otherwise a prompt is issued for
the next user command.
This function call is typically used to allow user-written
utilities, drivers, or interrupt handlers to be loaded as ordinary
.COM or .EXE programs, and then remain resident. Subsequent
entrance to the code is via a hardware or software interrupt.
This function attempts to set the initial memory allocation block
to the length in bytes specified in register DX. If other memory
blocks have been requested by the application via Int 21h Function
48h, they will not be released by this function.
Other methods of performing a final exit are Int 20h,
Int 21h Function 00h, Int 21h Function 31h, and Int 21h
Function 4Ch.
This function should not be called by .EXE programs that are
loaded at the high end of the transient program area (linked with
the /HIGH switch) because doing so reserves the memory that is
normally used by the transient part of COMMAND.COM. If COMMAND.COM
cannot be reloaded, the system will fail.
This function does not work correctly when DX contains values in
the range 0FFF1h-0FFFFh. In this case, MS-DOS discards the high
bit of the value in DX, resulting in the reservation of 32K less
memory than was requested by the program.
Int 21h Function 31h should be used instead of this function
because it supports return codes, allows larger amounts of memory
to be reserved, and does not require CS to contain the segment of
the program segment prefix.
[Version 3.0+]
If the program is running on a network, it should remove all locks
it has placed on file regions before terminating.
-♦-