[net.micro.att] command.com internals - summary

gt6294b@gitpyr.UUCP (SCHEUTZOW,MICHAEL J) (04/23/86)

>
>OK MS-DOS hackers - here's a tough one.  Can anyone tell me what the purpose of
>the different fields in the ms-dos command table are:
>
>It consists of:  1 byte - number char in command name + 1
>                 x byte - the command name
>                 1 byte - 00 or 01, purpose unknown
>                 2 byte - an address/offset of some sort
>


The third field in that table is an indication as to whether the first
parameter of the command should be interpreted as a file name.  The fourth
parameter is the offset to the command routine in the transient portion
of COMMAND.COM.  I would like to thank Craig Jackson for this information.


Example: (The following comments apply to MS-DOS 2.11)

The command strings are located at about xxxx:39A0, where xxxx is the CS segment
set up by debug.

xxxx:39A0 04 D I R 01 2B 0F

If the file is DEBUGed using: A>debug command.com   then the beginning of the
code that will later become the transient section occurs 0F80 bytes into the
file.  I prefer to adjust the CS register by adding 00F8 to it; then the offsets
correspond to the addresses to use with Unassemble. 

To check out the code for DIR, use  -u 0f2b


Mike Scheutzow                     # include <disclaimer.c>
Georgia Tech                       
(404) 355-6871
                 Lyrics: "My wife ran off with my best friend,
                          and I sure do miss him..."
       
 ...!{allegra,ihnp4,seismo}!gatech!gitpyr!gt6294b