EXE Extension
The EXE programs can be any size from 200 bytes to 640k bytes. The PSP must be setup by the programmer, when the program is assembled. The programmer determines where the first instruction is in the program. The EXE program uses separate segments for the data, code and stack area in memory.
From the comparison of EXE and COM file properties, you can see it is much more difficult to assemble an EXE program than it is a COM program. The debug utility program was designed to work only with a COM program by setting up the PSP area each time we enter debug.
Once in DEBUG, we can start assembly of a program at offset 100 and not be concerned with PSP or where the data, code, and stack is located. It is possible to look at an EXE program with DEBUG if we rename the program with a different extension before we load it into memory.
After DEBUG starts, type ? to display a list of debugging commands. To get out of DEBUG you need to "Q" and enter. To execute the DEBUG routine you need to do "G" and enter.
Let us see an example:
DEBUG <return>
D40:00 <return>
Information about your computer ports would be displayed if any port is absent or not responding the status of that port will be shown as 00.
Now enter Q to return.
Q <return>
Once DEBUG has been called, the somewhat cryptic "DEBUG prompt", a hyphen (-), is displayed. At the prompt, the following "DEBUG commands" are valid:
Command |
Parameters |
Action |
? |
|
This list of DEBUG commands. |
A |
[address] |
Assemble |
C |
range address |
Compare |
D |
[start address [end address | L range]] |
Displays a segment of memory. By default start address is offset 100 of the first free segment of memory, or offset 100 of the segment containing a file loaded by DEBUG. The default end address is 017F ( a range of 128 bytes). |
E |
address [list] |
Enter |
F |
range list |
Fill |
G |
[=address] [addresses] |
Go |
H |
value1 value2 |
Hex |
I |
Port |
Input |
L |
- |
Loads a previously "named" (by N command) file into memory where it can be viewed /edited. |
L |
Number |
Used with commands accepting a "range" argument to denote a number of bytes. Typically used in arguments as: start address L number. If number should take end address past the end of the segment, then number is truncated so the end address is the last byte of the segment. |
M |
range address |
Move |
N |
[path] filename [arglist] |
"Names" a file for DEBUG. A file must be "named" before it can be loaded for viewing/editing. |
O |
port byte |
Output |
P |
[=address] [number] |
Proceed |
Q |
|
Exit DEBUG. |
R |
[register] |
Register |
S |
range list |
Search |
T |
[=address] [value] |
Trace |
U |
[range] |
Unassembled |
W |
[address] [drive] [first sector] [number] |
Write |
XA |
[#pages] |
Allocate expanded memory |
XD |
[handle] |
de-allocate expanded memory |
XM |
[Lpage] [Ppage] [handle] |
Map expanded memory pages |
XS |
|
Display expanded memory status |
DEL (or ERASE)
Deletes named files. DEL and ERASE are synonymous.
Syntax:
To delete a file:
DEL [path] filename [/P]
Filename Name of file to delete.
/P Forces confirmation before deleting each file
To delete all files in a directory with confirmation:
DEL path or
DEL path \*.*
To delete all files in a directory without confirmation:
DEL path \?*.*
DEL only accepts one parameter specifying what is to be deleted. However this parameter can be written using wildcards so that multiple files are deleted. If more than one parameter is detected, the command aborts and an error message is displayed.
DEL will be interpreted with a long file name with spaces as multiple parameters, causing an error. Enclosing the long file name with spaces in inverted commas solves the problem. Let us see an example:
D:\>del note 2.txt
Too many parameters - 2.txt
D:\>del "note 2.txt"
D:\>_
DEL does not delete files that have read-only, hidden, and/or system attributes set. To delete such files, one can use DELTREE or modify the necessary attributes with ATTRIB command.
|