Program Segment Prefix

This is an old revision of this page, as edited by Ae-a (talk | contribs) at 11:24, 2 February 2006 (Category:DOS changed to Category:DOS on IBM PC compatibles). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Program Segment Prefix (PSP) is a data structure used in DOS systems to store the state of a program. It has the following structure:

Offset Size    Contents
--------------------------------------------------------------------
00-01  Code    CP/M exit (always contain INT 20)
02-03  Word    Memory size in paragraphs
04             Reserved
05-09  Code    Far call to DOS (internal)
0A-0D  DWord   Terminate address of previous program (old INT 22)
0E-11  DWord   Break address of previous program (old INT 23)
12-15  DWord   Critical error address of previous program (old INT 24)
16-17  Word    Parent psp segment (PSP of caller - usually
               command.com - internal)
18-2B  Bytes   Job File Table(JFT) (internal) 
2C-2D  Word    Environment segment
2E-31  DWord   SS:SP on entry to last INT 21  call (Internal)
32-33  Word    Max open files (Internal - see below)
34-37  DWord   Handle-entries address (Internal - see below)
38-4F          Reserved
50-52  Code    CP/M function call (always contain INT 21 + RETF)
53-5B          Reserved
5C-6B          Unopened Standard FCB 1
6C-7F          Unopened Standard FCB 2 (overwritten if FCB 1
               is opened)
80     Byte    Number of characters on command-line (excl. filename
               and trailing blanks but including leading blanks)
81-FF  Bytes   Command-line (terminated by a 0Dh)