PSP Structure

        Length
Offset  (bytes)     Description

00h        2        INT 20h instruction.
02h        2        Top of memory. Segment address of the top of the
current program's memory  allocation block.
04h        1        Reserved.
05h        1        INT 21h instruction.
06h        2        Available memory--the number of bytes available in
the segment.
08h        2        Reserved.
0Ah        4        Terminate address (IP,CS). Address of the
termination interrupt handler (INT 22h) inherited
by the current program. DOS uses this value to
restore the INT 22h vector when the program
terminates.
0Eh        4        Ctrl-Break address (IP,CS). Address of the Ctrl-
Break interrupt handler (INT 23h) inherited by the
current program. DOS uses this value to restore the
INT 23h vector when the program terminates.
12h        4        Critical error address (IP,CS). Address of the
Critical error interrupt handler (INT 24h)
inherited by the current program. DOS uses this
value to restore the INT 24h vector when the
program terminates.
16h       22        Reserved.
2Ch        2        Environment--the segment address of the DOS
environment.
2Eh       46        Reserved.
5Ch       16        Unopened standard FCB1, as parsed from the first
parameter in the command tail.
6Ch       20        Unopened standard FCB2, as parsed from the second
parameter in the command tail.
80h        1        Parameter length--the length, in bytes, of the
command tail.
81h      127        Command tail. Also used as default DTA for FCB
functions.

                                                                          

Notes:    Programs should not alter any of the data below 5Ch in the
PSP, since DOS uses this information when the program
exits.

The second FCB at 6Ch will be overwritten if the first FCB
is used to open a file.  This happens because the only 16
bytes are reserved for the first FCB, whereas an entire
FCB is 37 bytes long.

See also: FCB

DOS - PSP Description