TO:	Recipients of the MTOS-86/PC Package.
FROM:	Francis W. Porretto, 8086 Products Manager.
RE:	Extra features in the Dynamic Debugger not described in the
	MTOS-86 User's Guide.


	Because of a slight lag in the preparation of new manuals to reflect
recent developments, several minor features of the Dynamic Debugger are not
yet described in the section of the User's Guide dealing with that utility.
Those features are:

	1)Abbreviated keywords: any keyword may be entered in abbreviated
form, assuming that some left-justified subset of the keyword is distinct from
all other keywords. For example, the BREAKS keyword can be abbreviated as BR,
BRE, BREA, or BREAK; the QUALIFY keyword can be abbreviated as QUA, QUAL, QUALI
or QUALIF, but not QU because that cannot be distinguished from QUERY. There
are no legal abbreviations shorter than two characters.

	2)Availability of lower-case: keywords may be entered in either upper
or lower-case.

	3)TCD command: this undocumented command, which takes as its argument
a task number, causes part of the specified task's TCD to be displayed on the
console. Thus, after MS-DOS loads MTOS and starts it, the Debugger's TCD com-
mand is available to determine just where MS-DOS has located the task(s) to be
debugged.

	4)BASE command and short-addressing convention: There has been a change
in the formulation of addresses specified as offsets only. Any address speci-
fied by the DEBUG operator as an offset only, whether by the entry of a hexa-
decimal value or by the entry of a register name, is formulated by DEBUG thus:

	CS:<current BASE value>+<offset value specified>

Thus, a BASE of 0 (which is what the BASE starts out at before altered by a
BASE command) leaves the original addressing conventions unchanged, and any
other BASE entered relocates offset-only addresses as indicated. This is parti-
cularly convenient when debugging tasks whose code is spread across several
source files, the listing for each of which naturally displays the code in that
module as beginning at relative offset 0.

	5)Extended GO command: The syntax of the GO command has been extended
to allow zero, one or two address arguments. The form with zero arguments is
identical in function to the original GO command. The form with one argument
causes the Debugger to set a soft breakpoint named $X at the specified address
before GOing back into the task. The form with two arguments causes the Debug-
ger to set two soft breakpoints, $X and $Y, at the two addresses specified.
When the Debugger is next entered, breakpoints $X and $Y are automatically
killed regardless of whether either was executed. In all other respects these
two breakpoints function identically to all other soft breakpoints. This fea-
ture permits the use of debugging methods such as those supported by most firm-
ware debugging monitors, instead of the sometimes annoyingly cumbersome tech-
nique of SETting breakpoints in a separate command.

	A typical debugging session exploiting these new facilities might run
thus: The Debugger is configured as the system's startup task, and announces
its arrival at the console. The operator, who is interested in debugging task
12, types:

TCD 0C

and in response, the Debugger types that that task's entry point is 0467:3AE.
The operator now types:

SET $1,467:3AE
START 0C
EXIT

and when the Debugger responds:

$1, TASK: 000C

the operator then types:

BASE 3AE
GO 27,3B

which sets soft breakpoint $X at 0467:3D5 and soft breakpoint $Y at 0467:3E9,
and re-enters the task.

	The combination of the TCD, BASE and extended GO commands seems to us
to improve the convenience and friendliness levels of the Debugger consider-
ably. Please experiment with them as appropriate and return any comments or
criticism to me.

					Best regards,
					Fran.
