Program Segment Prefix: Difference between revisions

Content deleted Content added
Swapped 05-09 and 50-52; the CP/M call is at offset 5.
Table formatting
Line 2:
It has the following structure:
 
<table border="1">
Offset Size Contents
<tr><td>Offset</td><td>Size</td><td>Contents</td></tr>
--------------------------------------------------------------------
<tr><td>00-01 </td><td>Code </td><td>CP/M exit (always contain INT 20)</td></tr>
<tr><td>02-03 </td><td>Word </td><td>Memory size in paragraphs</td></tr>
<tr><td>04</td><td> </td><td>Reserved</td></tr>
<tr><td>05-09 </td><td>Code </td><td>Far call to CP/M compatibility code within DOS</td></tr>
<tr><td>0A-0D </td><td>DWord </td><td>Terminate address of previous program (old INT 22)</td></tr>
<tr><td>0E-11 </td><td>DWord </td><td>Break address of previous program (old INT 23)</td></tr>
<tr><td>12-15 </td><td>DWord </td><td>Critical error address of previous program (old INT 24)</td></tr>
<tr><td>16-17 </td><td>Word </td><td>Parent psp segment (PSP of caller - usually command.com - internal)</td></tr>
<tr><td>18-2B </td><td>Bytes </td><td>[[Job File Table]](JFT) (internal) </td></tr>
command.com - internal)
<tr><td>2C-2D </td><td>Word </td><td>Environment segment</td></tr>
18-2B Bytes [[Job File Table]](JFT) (internal)
<tr><td>2E-31 </td><td>DWord </td><td>SS:SP on entry to last INT 21 call (Internal)</td></tr>
2C-2D Word Environment segment
<tr><td>32-33</td><td>Word</td><td>Max open files (Internal - see below)</td></tr>
2E-31 DWord SS:SP on entry to last INT 21 call (Internal)
32<tr><td>34-33 Word Max open37</td><td>DWord</td><td>Handle-entries filesaddress (Internal - see below)</td></tr>
<tr><td>38-4F</td><td> </td><td>Reserved</td></tr>
34-37 DWord Handle-entries address (Internal - see below)
<tr><td>50-52 </td><td>Code </td><td>Far call to DOS (always contain INT 21 + RETF)</td></tr>
38-4F Reserved
<tr><td>53-5B</td><td> </td><td>Reserved</td></tr>
50-52 Code Far call to DOS (always contain INT 21 + RETF)
<tr><td>5C-6B</td><td> </td><td>Unopened Standard FCB 1</td></tr>
53-5B Reserved
<tr><td>6C-7F</td><td> </td><td>Unopened Standard FCB 2 (overwritten if FCB 1 is opened)</td></tr>
5C-6B Unopened Standard FCB 1
<tr><td>80 </td><td>Byte </td><td>Number of characters on command-line (excl. filename and trailing blanks but including leading blanks)</td></tr>
6C-7F Unopened Standard FCB 2 (overwritten if FCB 1
<tr><td>81-FF </td><td>Bytes </td><td>Command-line (terminated by a 0Dh)</td></tr>
is opened)
</table>
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)
 
[[Category:DOS on IBM PC compatibles]]