home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l353 / 1.img / BIN / MDB.BOD < prev    next >
Encoding:
Text File  |  1991-04-08  |  82.1 KB  |  3,059 lines

  1.                   MDB Command Syntax Summary
  2.  
  3.   Command keywords that are longer than 3 letters may be uniquely
  4.   specified by their first three characters or the letters shown in 
  5.   upper case.
  6.  
  7.   ! - Invokes an operating system command or shell.
  8.   # - Indicates a variable outside the current scope or a line number.
  9.   ## - Indicates a procedure outside the current scope.
  10.   $ - Prefix to distinguish module names from other symbol names.
  11.   & - Prefix to get the address of a symbolic name.
  12.   // - Specifies a comment line.
  13.   : - Invokes a macro or defines an address label.
  14.   :: - Allows for line continuation when placed at the end of a line.
  15.   = - Evaluates an expression.  Same as EVAluate.
  16.   ? - Examines a symbol, including arrays and structures.
  17.   @ - Executes commands from a command file.  Same as INClude.
  18.   B - Displays, sets, clears, enables or disables breakpoints.
  19.   BEEp - Enables or disables the error beeper.
  20.   BINary - Sets the default input radix to binary.
  21.   BREak - Causes an immediate exit from a control loop or block.
  22.   BYTe - Displays or sets byte (8-bit) object memory.
  23.   CALlstack - Displays current chain of procedure calls.
  24.   CASe - Specifies a choice in a SWITCH statement.
  25.   CAUse -  Displays reason for breaking execution.
  26.   CHAr - Displays or sets char (ASCII) object memory.
  27.   CLOse - Closes previously opened file.
  28.   CODe - Enables or disables hex code display during disassembly.
  29.   COMpare - Compares two regions of memory.
  30.   CONtinue - Causes the next iteration of a control loop to begin.
  31.   COPy - Copies a block of contents from one location to another.
  32.   CRRepeat - Enables or disables repeating commands with C/R.
  33.   CW - Displays or sets the value of the 80387 control word.
  34.   DASm - Disassembles machine code.
  35.   DECimal - Sets the default input radix to decimal.
  36.   DEFault - Specifies the default choice in a SWITCH statement.
  37.   DIRectory MACro - Displays directory of macros.
  38.   DIRectory MODule - Displays directory of object modules.
  39.   DIRectory STRucture - Displays directory of structures.
  40.   DISplay MACro - Displays contents of macro body.
  41.   DISplay STRucture - Displays members of data structure.
  42.   DISplay TRAce - Displays contents of the trace buffer.
  43.   DOUble - Displays or sets double (64-bit floating point) object memory.
  44.   DOWn - Walks down the call stack.
  45.   DT - Displays or sets segment descriptors in descriptor tables.
  46.   DWOrd - Displays or sets dword (32-bit) object memory.
  47.   E - Enters a symbol examination window.  Same as EXAmine.
  48.   ED - Edits a file.  Same as EDIT.
  49.   ED MACro - Edits or creates a file or macro.  Same as EDIT MACro.
  50.   EDIT - Edits a file.  Same as ED.
  51.   EDIT MACro - Edits or creates a file or macro.  Same as ED MACro.
  52.   EFOr - Terminates a FOR loop.
  53.   EGA - Enables or disables EGA-43 or VGA-50 line display.
  54.   EIF - Terminates an IF statement.
  55.   ELSe - Specifies an alternate path in an IF statement.
  56.   EMAcro - Terminates a macro definition.
  57.   ENV - Displays or saves parameters of the configurable environment.
  58.   ESCape - Aborts processing of macro.
  59.   ESWitch - Terminates a SWITCH statement.
  60.   EVAluate - Evaluates an expression.  Same as =.
  61.   EWHile - Terminates a WHILE loop.
  62.   EXAmine - Enters a symbol examination window.  Same as E.
  63.   EXIt - Exits the debugger.
  64.   FINd - Searches for a value or string in memory.
  65.   FLAg - Displays or sets the 80386 flags register.
  66.   FLIp - Enables or disables display of application output on execution.
  67.   FLOat - Displays or sets float (32-bit floating point) object memory.
  68.   FOR - Starts a FOR loop.
  69.   FREe - Displays remaining free memory.
  70.   GDT - Displays or sets descriptors in the global descriptor table.  
  71.   GLObal - Displays all global symbols and their values.
  72.   Go - Starts program execution.
  73.   GOTo - Transfers macro control to a label.
  74.   HALt - Halts remote execution.
  75.   HELp - Invokes command line help.
  76.   HEX - Sets the default input radix to hexadecimal.
  77.   HOMe - Sets the home window for command input.
  78.   IDT - Displays or sets descriptors in the interrupt descriptor table.
  79.   IF - Starts an IF statement or displays the interrupt flag.
  80.   INClude - Executes commands from a command file.  Same as @.
  81.   INPut - Reads contents from the specified input port.
  82.   JOUrnal - Creates text file to record command entries.
  83.   KEEpheap - Displays or sets the minimum initial heap size for a program.
  84.   L - Executes one source statement at a time.  Same as LINe.
  85.   LDT - Displays or sets descriptors in the local descriptor table.
  86.   LINe - Executes one source statement at a time.  Same as L.
  87.   LNE or LiNEar - Converts an address to a linear address.
  88.   LISt - Creates a text file to record console display.
  89.   LOAd - Loads an object file from the host into the target memory. 
  90.   LOCal - Displays all active local symbols and their values.
  91.   MACro - Begins a macro definition.
  92.   MEMory - Enters memory window.
  93.   MLIst - Displays contents of macros during macro processing.
  94.   NO JOUrnal - Closes the journal file.
  95.   NO LISt - Closes the session log file.
  96.   NUMber - Enables or disables line number display in the source window.
  97.   OCTal - Sets the default input radix to octal.
  98.   OPEn - Opens a text file.
  99.   ORIf - Specifies alternate decision path in an IF statement.
  100.   OUTput - Assigns a value to the specified output port.
  101.   P - Like L but treats a called procedure as one statement.
  102.   PAUse - Sets or clears scrolling effect in the dialog window.
  103.   PD - Displays page directory.
  104.   PHYsical - Converts an address to a physical address. 
  105.   PLIne - Like LINe but treats a called procedure as one statement.
  106.   POInter - Displays or sets pointer (16/32/48-bit) object memory.
  107.   PROlog - Enables or disables automatic prolog execution.
  108.   PS - Like STEp but treats calls as one instruction.  Same as PSTep.
  109.   PSTep - Like STEp but treats calls as one instruction.  Same as PS.
  110.   PUT - Writes macro definitions to a specified file.
  111.   QUIt - Exits the debugger leaving the remote monitor running.
  112.   QWOrd - Displays or sets qword (64-bit) object memory.
  113.   R287 - Displays 80287 status.
  114.   R387 - Displays 80387 status.
  115.   RADix - Displays or sets input radix.
  116.   REAd - Reads in symbol values from an opened file.
  117.   REEvaluate - Enables or disables expression reevaluation for EXAmine
  118.   REGister - Displays or sets 80386 register values.
  119.   RELoad - Reloads the program, leaving breakpoints set.
  120.   REMove MACro - Deletes a macro definition.
  121.   REPeat - Starts a REPEAT loop.
  122.   RERun - Repeats the last LOAd and RUN commands.
  123.   RESet - Resets the processor registers to CPU reset values.
  124.   RUN - Sets command-line arguments for a program and executes.
  125.   S - Single-steps program execution.  Same as STEp.
  126.   SENsitive - Sets case sensitivity for matching symbol names.
  127.   SET - Associates a source file with an object module.
  128.   SOUrce - Enters source window.
  129.   SPAth - Displays or sets search path for source files.
  130.   ST - ST0 to ST7.  Displays or sets the 80387 stack elements and tag words.
  131.   STEp - Single-steps program execution.  Same as S.
  132.   STRucture - Defines a data structure.
  133.   SW - Displays or sets the value of the 80387 status word.
  134.   SWItch - Starts a SWITCH control statement.
  135.   SYMbol - Displays symbols and controls symbolic disassembly.
  136.   TIMe - Displays the current time and date.
  137.   TRAce - Enables or disables execution trace.
  138.   TREal - Displays or sets treal (80-bit) object memory.
  139.   TSS - Displays or sets contents of a task state segment.  
  140.   TW - Displays or sets the value of the 80387 tag word.
  141.   TYPe - Declares or redefines symbols.
  142.   U - Disassembles machine code.  Same as DASm.
  143.   UNTil - Terminates a REPEAT loop.
  144.   UP - Walks up the call stack.
  145.   USC - Displays the user (application output) screen.
  146.   USE - Selects 16- or 32-bit code disassembly.
  147.   VRF or VeRiFy - Verifies that memory segment accesses are valid.
  148.   VERsion - Displays debugger and target monitor version number.
  149.   VIEw - Displays or sets mode of source display in source window.
  150.   WAIt - Pauses command processing for input from keyboard.
  151.   WHIle - Starts a WHILE loop.
  152.   WIDth - Selects 16- or 32-bit code disassembly.  Same as USE.
  153.   WORd - Displays or sets word object (32-bit) memory.
  154.   WRIte - Writes values to opened file.
  155. Syntax:
  156.     !  [command_string]  
  157.  
  158.     The ! command lets you escape to the operating system's
  159. command shell.  To leave the shell and return to the debugger, type
  160. EXIT from the shell.  You can directly spawn a command by specifying
  161. the command after the !.
  162.  
  163. Examples:    
  164.     ->!             //Escapes to DOS shell.
  165.     C>dir           //DOS command to display file directory.
  166.     C>exit          //Returns to the debugger.
  167.     ->!cc test.c    //Spawns "cc test.c" directly.
  168. Syntax:
  169.     [$module_name][##procedure_name]#variable_name
  170.     [$module_name]#number
  171.  
  172.     # is a parser operator which can be used to access a variable
  173. outside of the current scope.  It is also used as a prefix for line-
  174. numbers.
  175.  
  176.     When used as a variable name prefix with no other prefix,
  177. i.e., "#variable", the variable is searched for using the normal
  178. scoping rules.  This provides a method to circumvent conflicts with
  179. commands or keywords.
  180.  
  181.     A module name and procedure name may be optionally specified
  182. in order to access a specific variable outside of the current scope.
  183. To access a global symbol, use the root module $, e.g., $#foo refers
  184. to the public instance of variable foo.
  185.  
  186.     Finally, when used as a numeric prefix, # indicates a
  187. line-number.
  188.  
  189. Examples:
  190.     ->#USER = 4             // Assigns 4 to a variable called USER.
  191.     ->$#USER = 4            // Assign to the global variable USER.
  192.     ->? $MOD1##PROC1#VAR1   // Display a local variable to a procedure.
  193.     ->$MOD1#STATIC1 = 3     // Assign to a variable local to a module.
  194.     ->G #14                 // Go to line 14 in the current module.
  195.     ->B $MOD1#14            // Break at line 14 in another module.
  196.  
  197. See Also:
  198.     ##, $, &, SYMbol, EXAmine, EVAluate
  199. Syntax:
  200.     [$module_name]##procedure_name[#variable_name]
  201.  
  202.     ## is a parser operator which allows the specification
  203. of a procedure name outside of the current scope.
  204.  
  205.     If a module name precedes the ## operator, only procedure
  206. names within that module are searched.    If no leading module name
  207. is specified, only procedure names in the current module are
  208. searched.
  209.  
  210.     Typically, ## is needed only if two or more modules have
  211. local procedures with the same name.
  212.  
  213. Examples:
  214.     ->B $MODULE1##PROC3     // set a breakpoint at proc3 in module1
  215.     ->GO FROM $##foo        // go from global procedure foo
  216.  
  217. See Also:
  218.     #, $, &, SYMbol, Go, B
  219. Syntax:
  220.     $module_name
  221.  
  222.     $ is a parser operator which distinguishes module names
  223. from other symbolic names.  If no module_name is specified and $
  224. is used in conjunction with # or ##, then $ refers to the root
  225. module containing only global symbols.
  226.  
  227. Examples:
  228.     ->SET $mod2 = source.c  // Associate a source file with a module.
  229.     ->? $MOD1##PROC1#VAR1   // Display a local variable to a procedure.
  230.  
  231. See Also:
  232.     #, ##, $, &, SYMbol, EVAluate, DIRectory MODule, SET
  233. Syntax:
  234.     &symbol
  235.  
  236.     & is an address operator which gives the address of a 
  237. symbolic object.
  238.  
  239. Examples:
  240.     ->GO FROM &START FOREVER
  241.     ->POINTER &POINTER_BUF LENGTH 20
  242.     ->TYPE long *ptr_to_long, long_buf[8] at &buf
  243.  
  244. See Also:    
  245.     #, ##, $, &, SYMbol, EVAluate, Go, B
  246. Syntax:
  247.     // comment
  248.  
  249.     Indicates that everything that follows // till the end of a
  250. line is a comment, and should not be interpreted as part of the command.
  251.  
  252. Examples:
  253.     ->// A comment line
  254.     ->DIR MAC  // display directory of macros
  255. Syntax:
  256.     :macro_name  [actual_parameter_list]  
  257.  
  258.     Executes the specified macro.  "<*" and "*>" can be used 
  259. as parentheses in the actual parameter list.
  260.     The colon character is also used in macro definitions to
  261. specify a label.
  262.     You can also execute a macro by entering the macro name without
  263. the colon prefix.
  264.  
  265. Examples:
  266.     ->:AA 34, <* AX,BX,CL *>, #20   //3 actual parameters
  267.     ->:BB                           //No parameter
  268.     ->:AA :BB, <* AL,5,3.5*BX *>, :CC
  269.  
  270.     ->MACRO TEST1                  //Define a macro.
  271.     MD>a = 8;
  272.     MD>aa:
  273.     MD>if( c >= 999 )
  274.     MD>   goto aa
  275.     MD>orif( c <= 0 )
  276.     MD>   goto bb
  277.     MD>eif
  278.     MD>bb:                         //Specify a label called bb.
  279.     MD>EMACRO
  280.     ->
  281.  
  282. See Also:
  283.     MACro, DIRectory MACro, DISplay MACro, REMove MACro, PUT,
  284.     INClude, EDIT, MLIst
  285. Syntax:
  286.     command_line ::
  287.     continuation_of_line
  288.  
  289.     Allows the continuation of a command line to the next line.
  290.  
  291. Examples:
  292.     ->BYT &array[12] = 1941, 42, 1776, 1812, ::
  293.     ::>1492, 2001
  294. Syntax:
  295.     = expression
  296.     EVALuate expression
  297.  
  298.     Evaluates an expression. All register and flag names are 
  299. recognized.  Full C syntax, including function calls, is supported.
  300.  
  301. Examples:  
  302.     ->='A'
  303.     ->= ++data
  304.     ->= *(byte *)ptr_to_short + *val
  305.     ->=AX+1
  306.  
  307. See Also:
  308.     ?, SYMbol
  309. Syntax:
  310.     ? lvalue
  311.  
  312.     Displays the type, value, and address of an lvalue.  An
  313. lvalue is any C expression which can be used on the left-hand side
  314. of an assignment statement.
  315.  
  316.     The value is displayed in a format consistent with the
  317. type.  Alternative formats may be selected when the value is
  318. displayed using the EXAmine command.
  319.  
  320. Example:
  321.     ->? *(char *)0    // display value at address 0 as a character
  322.     ->? foo        // display value of foo
  323.  
  324. See Also:
  325.     =, EXAmine, SYMbol
  326. Syntax:
  327.     @ filename [LISt]  
  328.  
  329.     Executes the commands from the specified file.  If LISt is 
  330. specified, the commands in the command file are displayed on the
  331. console as they are being executed (default is NO LIST).  This
  332. command is identical to the INClude command.
  333.  
  334. Examples:  
  335.     ->@ "INIT.MAC" LIS
  336.     ->@ C:\TMP\GR1.INC
  337.  
  338. See Also:
  339.     MACro, JOUrnal, LISt
  340. Syntax:
  341.     B [n] [OFF  ]
  342.           [ON   ]
  343.           [CLEar]
  344.     B [n] [=] addr [type] [COUnt num] [IF (expr)] [THEN command]
  345.  
  346.     where n = 0 to 31, and type = {REAd,WRIte,ACCess,EXEcute}
  347.  
  348.     Breakpoints are used to specify addresses at which program
  349. execution is halted.  The breakpoints are effective in all execution
  350. commands except for GO FOREVER.
  351.  
  352.     B by itself will display all breakpoints; specifying n alone
  353. will display a specific breakpoint.  OFF, ON, and CLEar are used to
  354. disable, enable, or remove a breakpoint, respectively.  A disabled
  355. breakpoint will be inactive until enabled.  Normally, a breakpoint
  356. is enabled when first set, but if an error occurs when setting a
  357. breakpoint, the breakpoint may be defined but disabled.
  358.  
  359.     If no breakpoint number is specified when setting a breakpoint,
  360. the first unused breakpoint is allocated.  If no breakpoint number
  361. is specified with the CLEar qualifier, all breakpoints are cleared.
  362. The assignment operator (=) is only required when the distinction
  363. between a breakpoint number and an address is ambiguous.
  364.  
  365.     The REAd and ACCess types are equivalent and cause a break
  366. if data is read or written at the specified address.  The default
  367. access type is EXEcute.
  368.  
  369.     If COUnt is specified, a break does not occur until an
  370. event is detected num times.
  371.  
  372.     A conditional breakpoint condition may be specified using
  373. the IF qualifier.  The condition can be any expression accepted by
  374. the EVALuate command.  If the expression evaluates to non-zero
  375. after the rest of the break condition is satisfied, then execution
  376. will be halted, otherwise execution continues.
  377.  
  378.     A command may be specified which is executed after a breakpoint
  379. is hit using the THEN qualifier.  IF and THEN qualifiers are not
  380. evaluated until after all other conditions are satisfied, including
  381. the COUnt condition.  Complex command sequences may be invoked after
  382. a breakpoint by invoking a macro in the THEN statement.
  383.  
  384. Examples:
  385.     ->B        // Display all breakpoints.
  386.     ->B 0        // Displays contents of breakpoint 0.
  387.     ->B 0 CLE    // Clears contents of and disables breakpoint 0.
  388.     ->B 0 OFF    // Disables breakpoint 0 but leaves it defined.
  389.     ->B 0 ON        // Re-enables breakpoint 0.
  390.     ->B 0 = 100h        // Sets breakpoint 0.
  391.     ->B #12            // Sets an arbitrary breakpoint to line 12.
  392.     ->B &FOO WRI COUNT 2    // Breaks after FOO is written twice.
  393.     ->B subr1 IF (i > 3)    // Breaks if i > 3 when entering subr1
  394.     ->B cs:100h THEN ? i    // Display i before executing at 100h
  395.     ->B subr3 IF (i > 3) THEN :mac1 a,42
  396.  
  397. See Also:
  398.     Go, Step, PStep, Line, Pline, CAUse
  399. Syntax:
  400.     BEEp [ON]
  401.          [OFF]
  402.  
  403.     Enables, disables, or displays the status of the error beeper.
  404.  
  405. Examples:
  406.     ->BEEP
  407.     ->BEEP ON
  408.     ->BEEP OFF
  409. Syntax:
  410.     BINary
  411.  
  412.     Sets the default input radix to binary.
  413.  
  414. Example:
  415.     ->BIN
  416.  
  417. See Also:
  418.     DECimal, HEX, OCTal, RADix
  419. Syntax:
  420.     BREak  
  421.  
  422.     Causes an immediate exit from the REPEAT-UNTIL, WHILE-EWHILE,
  423. FOR-EFOR loop or SWITCH-ESWITCH block.
  424.       
  425. Examples:  
  426.     ->MACRO TEST1        //Define a macro.
  427.     MD>switch( c )
  428.     MD>  case 30:
  429.     MD>  case 20:
  430.     MD>      c = a + b * c;
  431.     MD>      d = d / c + 8;
  432.     MD>      break;
  433.     MD>  default:
  434.     MD>      c >>= 1;       
  435.     MD>eswitch
  436.     MD>EMACRO
  437.  
  438.     ->WHILE 1
  439.     CD>  C = A - 1
  440.     CD>  IF !C
  441.     CD>     BREAK
  442.     CD>EWHILE
  443.  
  444. See Also:
  445.     CONtinue, GOTo
  446. Syntax:
  447.     BYTe [address] [= expression [, expression]...]
  448.                    [= "string"                    ]
  449.                    [[TO] address [= expression   ]]
  450.                    [LENgth n   [= expression     ]]
  451.  
  452.     Displays or alters memory contents in byte scope.  
  453. The base of two addresses that define an address range must be 
  454. the same. For example, BYT 200:40 TO 300:300 is invalid.
  455.  
  456. Examples:
  457.     ->BYT 40    //Display byte content of address DS:40
  458.     ->BYTE 100:40 TO 100:200
  459.     ->BYTE &BUF LENGTH 20
  460.     ->BYTE DS:SI = 23, 234Q, 4+6, AL, 38T
  461.     ->BYT ARRAY LEN 100 = 0
  462.     ->BYTE &string = "\tThis is a test program\n"
  463.  
  464. See Also:
  465.     CHAr, WORd, DWOrd, FLOat, DOUble, QWOrd, POInter, TREal
  466. Syntax:
  467.     CALlstack [expression]
  468.  
  469.     For use with high-level languages.  Displays the current 
  470. chain of procedure calls in the program being executed.  A CALLSTACK 
  471. is a fully qualified list of references to procedures.  The reference 
  472. listed first is the current execution address.  The second entry is 
  473. the current address for the procedure that called the current 
  474. procedure, etc.  CALLSTACK shows the dynamic, run-time nesting of 
  475. the program as opposed to the static, lexical nesting.
  476.  
  477.     The CALLSTACK display may be incorrect if invoked before
  478. a valid stack frame is built.
  479.  
  480. Example:
  481.     ->CAL
  482.  
  483. See Also:
  484.     Go, TRAce, UP, DOWn
  485. Syntax:
  486.     SWItch [(] expression [)]
  487.     CASe constant expression:
  488.     [command]
  489.        .
  490.        .
  491.     [CASe constant expression:]
  492.     [command]
  493.        .
  494.        .
  495.     [DEFault:]
  496.     [command]
  497.        .
  498.        .
  499.     ESWitch
  500.  
  501.     The CASe command is used in the SWItch command.
  502.  
  503. Examples:
  504.     ->MACRO TEST1    //Define a macro
  505.     MD>SWITCH A
  506.     MD> CASE 0:
  507.     MD>    B = 10H
  508.     MD>    BREAK
  509.     MD> CASE 1:
  510.     MD>    B = B * B
  511.     MD>    BREAK
  512.     MD> DEFAULT:
  513.     MD>    LINE 5  //Execute 5 lines
  514.     MD>ESWITCH
  515.     MD>EMACRO
  516.     ->
  517.  
  518. See Also:
  519.     SWItch, DEFault
  520. Syntax:
  521.     CAUse
  522.  
  523.     Reports the cause of the last break in execution.
  524.  
  525. Example:
  526.     ->CAUse
  527.  
  528. See Also:
  529.     Go, B
  530. Syntax:
  531.     CHAr [address] [= expression [, expression]...]
  532.                    [= "string"                    ]
  533.                    [[TO] address [= expression   ]]
  534.                    [LENgth n   [= expression     ]]
  535.  
  536.     Displays or alters memory contents in byte scope.  The base 
  537. of two addresses that define an address range must be the same. For
  538. example, CHA 200:40 TO 300:300 is invalid.
  539.  
  540. Examples:
  541.     ->CHA    40    //Display byte content of address DS:40
  542.     ->CHAR 100:40 TO 100:200
  543.     ->CHAR &BUF LENGTH 20
  544.     ->CHAR DS:SI = 23, 234Q, 4+6, AL, 38T
  545.     ->CHA    ARRAY LEN 100 = 0
  546.     ->CHAR &string = "\tThis is a test program\n"
  547.  
  548. See Also:
  549.     BYTe, WORd, DWOrd, FLOat, DOUble, QWOrd, POInter, TREal
  550. Syntax:
  551.     CLOse  [n [, n]...]  
  552.  
  553.     where n = 0, 1, 2, 3, 4 or 5
  554.  
  555.     Closes previously opened file. If no file number n is 
  556. specified, all the opened files are closed.  Files are opened
  557. using the OPEN command.
  558.  
  559. Examples:  
  560.     ->CLOSE 1,2    //Closes file 1 and 2.
  561.     ->CLOSE        //Closes all opened files.
  562.  
  563. See Also:
  564.     OPEn, REAd, WRIte
  565. Syntax:
  566.     CODe [ON ]
  567.          [OFF]
  568.  
  569.     Enables or disables hex code display during code disassembly
  570. for both the source window and the command line.  Disabling hex code
  571. display allows other windows to overlap the right side of the source
  572. window without completely obscuring useful disassembly information.
  573.  
  574. Examples:
  575.     ->COD ON
  576.     ->COD OFF
  577.  
  578. See Also:
  579.     DASm, SOUrce, NUMber, VIEw    
  580. Syntax:
  581.     COMpare addr1 addr2 [[TO] addr3]
  582.                         [LENgth n  ]
  583.  
  584.     Compares two regions of memory and reports all differences.
  585.  
  586. Examples:
  587.     ->COM &byte1 &char1    // Compare char1 to byte1
  588.     ->COM 200:200 30:50 TO 30:300     // Compare memory from between
  589.     -> // 30:50 and 30:300 inclusive to that at 200:200 to 200:450.
  590.     ->COM ARRAY_BUF 40:50 len 50
  591.     ->COM &STRING1 &STRING2 LEN 20
  592.  
  593. See Also:
  594.     COPy, FINd
  595. Syntax:
  596.     CONtinue  
  597.  
  598.     Causes the next iteration of the REPEAT-UNTIL, WHILE-EWHILE,
  599. FOR-EFOR loop to begin. In the REPEAT-UNTIL and WHILE-EWHILE loop, 
  600. the test part is  executed immediately.  In the FOR-EFOR loop, control
  601. passes to the re-initialization step.
  602.       
  603. Examples:  
  604.     ->MACRO TEST1        //Define a macro.
  605.     MD>while( a )
  606.     MD>  b = subr( &c, d );
  607.     MD>  if( b == a )
  608.     MD>     continue;
  609.     MD>  else
  610.     MD>     c = c << 3;
  611.     MD>     d = d % 3;
  612.     MD>  eif
  613.     MD>ewhile  
  614.     MD>EMACRO
  615.     ->WHILE I--
  616.     CD>   IF A != SUB( I, D )
  617.     CD>    CONTINUE
  618.     CD>   ORIF
  619.     CD>      D = A
  620.     CD>   EIF
  621.     CD>EWH
  622.  
  623. See Also:
  624.     BREak, GOTo
  625. Syntax:
  626.     COPy dest_addr = src_start_addr [[TO] src_end_addr]  
  627.                                     [LENgth n         ]
  628.  
  629.     Copies a block of memory contents from one location to 
  630. another.
  631.  
  632. Examples:
  633.     ->COPY &byte1 = &char1 //Copy one byte from char1 to byte1
  634.     ->COPY 200:200=30:50 TO 30:300  //Copy from memory between
  635.     -> //30:50 and 30:300 inclusive to destination starting at 
  636.     -> //200:200.
  637.     ->COPY ARRAY_BUF = 40:50 len 50
  638.     ->COPY &STRING1=&STRING2 LEN 20
  639.  
  640. See Also:
  641.     COMpare, FINd
  642. Syntax:
  643.     CRRepeat [ON ]
  644.              [OFF]
  645.  
  646.     Enables, disables, or displays the status of command repeating
  647. on C/R.  If enabled, the Enter key will repeat the last execution,
  648. disassembly, or memory display command from the point where the last
  649. command left off.  Otherwise, Enter does nothing.  CRRepeat is disabled
  650. by default.
  651.  
  652. Example:
  653.     ->CRR ON
  654.  
  655. See Also:
  656.     ENV
  657. Syntax:
  658.     CW
  659.  
  660.     Displays or changes the value of the 80387 control word.
  661. The value of the control word is displayed followed by a slash.
  662. The contents can be altered by entering a new hexadecimal value.
  663. A carriage return alone will preserve the contents.
  664.  
  665. Examples:
  666.     ->CW
  667.       CONTROL WORD = 0000H / 1324H
  668.     ->CW
  669.       CONTROL WORD = 1324H / <CR>
  670.  
  671. See Also:
  672.     R387, ST, SW, TW
  673. Syntax:
  674.     DASm [addr1 [TO  addr2]]  [MIX]
  675.                 [LENgth n ]
  676.  
  677.     Displays a block of memory in 80386 assembly mnemonic form.
  678. The MIX qualifier causes source to be mixed in with the disassembly
  679. display.  This command is identical to the U command.
  680.  
  681. Examples:
  682.     ->DASM       //Default address is CS:EIP
  683.     ->DASM CS:(EIP+5) MIX
  684.     ->DASM &MAIN LEN 20
  685.  
  686. See Also:
  687.     VIEw, SOUrce, USE
  688. Syntax:
  689.     DECimal
  690.  
  691.     Sets the default input radix to decimal.
  692.  
  693. Example:
  694.     ->DEC
  695.  
  696. See Also:
  697.     BINary, HEX, OCTal, RADix
  698. Syntax:
  699.     SWItch [(] expression [)]
  700.     CASe constant expression:
  701.     [command]
  702.        .
  703.        .
  704.     [CASe constant expression:]
  705.     [command]
  706.        .
  707.        .
  708.     [DEFault:]
  709.     [command]
  710.        .
  711.        .
  712.     ESWitch
  713.  
  714.     The DEFault command is used in the SWItch command.
  715.  
  716. Examples:
  717.     ->MACRO TEST1    //Define a macro
  718.     MD>SWITCH A
  719.     MD> CASE 0:
  720.     MD>    B = 10H
  721.     MD>    BREAK
  722.     MD> CASE 1:
  723.     MD>    B = B * B
  724.     MD>    BREAK
  725.     MD> DEFAULT:
  726.     MD>    LINE 5  //Execute 5 lines
  727.     MD>ESWITCH
  728.     MD>EMACRO
  729.     ->
  730.  
  731. See Also:
  732.     SWItch, CASe
  733. Syntax:
  734.     There are three kinds of "DIRECTORY" commands:
  735.  
  736.     DIRectory MACro, DIRectory MODule, DIRectory STRucture.
  737.           
  738.     Please enter the command again.
  739.  
  740. See Also:
  741.     DISplay
  742. Syntax:
  743.     DIRectory MACro  
  744.  
  745.     Lists the names of all defined macros.
  746.  
  747. Example:
  748.     ->DIR MAC
  749.  
  750. See Also:
  751.     :, DISplay MACro, MACro, PUT, INClude, REMove MACro,
  752.     EDIT, MLIst
  753. Syntax:
  754.     DIRectory MODule  
  755.  
  756.     Lists all module names and corresponding source filenames.
  757.  
  758. Example:
  759.     ->DIR MODULE
  760.  
  761. See Also:
  762.     $, SET, SOUrce, SYMbol
  763. Syntax:
  764.     DIRectory STRucture
  765.  
  766.     Lists all structure names which have been defined or loaded.
  767.  
  768. Example:
  769.     ->DIR STR
  770.  
  771. See Also:
  772.     STRucture, DISplay STRucture
  773. Syntax:
  774.     There are three kinds of "DISPLAY" commands:
  775.  
  776.     DISplay MACro, DISplay STRucture, DISplay TRAce.
  777.  
  778.     Please enter the command again.
  779.  
  780. See Also:
  781.     DIRectory, TRAce
  782. Syntax:
  783.     DISplay MACro [macro_name  [, macro_name]...]  
  784.  
  785.     Displays all or some macro definitions.
  786.  
  787. Examples:
  788.     ->DIS MAC         //Displays all macro definitions.
  789.     ->DIS MAC AA, BB, CC //Displays macros AA, BB, CC.
  790.  
  791. See Also:
  792.     :, MACro, DIRectory MACro, REMove MACro, PUT, INClude,
  793.     EDIT, MLIst
  794. Syntax:
  795.     DISplay STRucture [structure_name  [, structure_name]...] 
  796.  
  797.     Lists the contents of the specified structures. If no 
  798. structure name is specified, all structure definitions in the 
  799. structure directory are listed.
  800.  
  801. Examples:  
  802.     ->DISPLAY STRUCTURE  //Lists all structure definitions.
  803.     ->DIS STR STR1, STR2
  804.  
  805. See Also:
  806.     STRucture, DIRectory STRucture
  807. Syntax:
  808.     DISplay TRAce [LINe ]       [ALL]
  809.                   [INStruction] [n]
  810.  
  811.     Displays the trace buffer.  LINe and INStruction displays 
  812. execution history in high level language statements and assembly
  813. language mnemonics, respectively.  The default is LINe.
  814.  
  815.     ALL displays the entire trace buffer.  n displays the last
  816. n steps.  The default is ALL.
  817.  
  818.     Note that tracing is enabled by the TRACE command.
  819.  
  820. Examples:
  821.     ->DIS TRA ALL  //Prints the whole trace buffer in line mode.
  822.     ->DIS TRA INS 6 //Prints last 6 machine instructions.
  823.  
  824. See Also:
  825.     TRAce
  826. Syntax:
  827.     DOUble [address] [= expression [, expression]...]
  828.                      [[TO] address [= expression   ]]
  829.                      [LENgth n   [= expression     ]]
  830.  
  831.     Displays or alters memory contents in double scope. The base
  832. of two addresses that define an address range must be the same. For 
  833. example, DOUBLE 200:40 TO 300:300 is invalid.
  834.  
  835. Examples:
  836.     ->DOUBLE 40
  837.     ->DOUBLE 100:40 TO 100:200
  838.     ->DOUBLE &double_buf LENGTH 20
  839.     ->DOUBLE DS:SI = 9.9, 8.8, 1.2+3.5
  840.     ->DOUBLE double_array LEN 100 = 0.0
  841.  
  842. See Also:
  843.     BYTe, CHAr, WORd, DWOrd, FLOat, QWOrd, POInter, TREal
  844. Syntax:
  845.     DOWn [n   ]
  846.          [HOMe]
  847.  
  848.     Walks down the call stack allowing access to the source and
  849. local variables of any active procedure.  If no argument is specified,
  850. the stack is walked down one level.  If HOMe is specified, the active
  851. scope returns to what it was before any UP or DOWN command was issued.
  852.  
  853.     If any execution command or command that directly changes
  854. the CS:EIP or EBP is given by the user while an UP or DOWN command
  855. is in effect, a DOWN HOME action is automatically performed before
  856. the command is executed.
  857.  
  858. Examples:
  859.     ->DOWN        // walk down one level
  860.     ->DOWN 3    // walk down three levels
  861.     ->DOWN HOME    // return to the initial scope
  862.  
  863. See Also:
  864.     UP, CALlstack, SOUrce, SYMbol
  865. Syntax:
  866.        DT \[selector_expr\] [.seg_element [= expr] ]
  867.  
  868.        where selector_expr is an expression that computes to a 16-bit number 
  869. or the name of a 16-bit register (such as TR, LDTR, CS, DS, etc.) which is 
  870. interpreted as a selector; seg_element is BASe, LIMit, G, B, P, D, DPL, C, 
  871. R, W, A, E, V, WCO, SOFf, SSEl, or TYPe; expr is an expression.  The
  872. notations \[ and \] indicate that the square bracket pair is part of
  873. the required syntax.
  874.  
  875.        Displays or modifies descriptors, descriptor components or 
  876. descriptor tables.  
  877.  
  878.        The descriptor components are as follows:
  879.  
  880.        Name          Size           Description
  881.        ---------------------------------------------------------------
  882.        BASe          32 bits        Segment base linear address
  883.        LIMit         20 bits        Segment limit
  884.        G             1 bit          Segment granularity, 0 = byte; 1 = page
  885.        B             1 bit          Stack pointer size, 0 = 16 bits
  886.        P             1 bit          Segment present, 1 = present
  887.        D             1 bit          Default operand lengths, 0 = 16 bits
  888.        DPL           2 bits         Descriptor privilege level
  889.        C             1 bit          Conforming segment
  890.        R             1 bit          Readable segment
  891.        W             1 bit          Writable segment
  892.        A             1 bit          Segment accessed
  893.        E             1 bit          Expand down segment
  894.        V             1 bit          User definable
  895.        WCO           5 bits         Gate dword count
  896.        SOFf          32 bits        Gate segment offset
  897.        SSEl          16 bits        Gate segment selector
  898.        TYPe          5 bits         Descriptor type
  899.          
  900. Examples:
  901.        ->DT[0CH]  //Displays the descriptor referenced by a 
  902.                 //selector value of 0CH.
  903.        ->DT[cs]  //Displays the descriptor referenced by cs register.
  904.        ->DT[cs].base  //Displays the base value of segment referenced by 
  905.                  //cs register.
  906.        ->DT[ldtr]  //Displays the LDT descriptor referenced by ldtr register.
  907.        ->DT[tr]  //Displays the task state segment (TSS) referenced by 
  908.                  //the TR register.
  909.  
  910. See Also:
  911.        GDT, IDT, LDT, TSS, PD, REGister
  912. Syntax:
  913.     DWOrd [address] [= expression [, expression]...]
  914.                     [[TO] address [= expression   ]]
  915.                     [LENgth n   [= expression     ]]
  916.  
  917.     Displays or alters memory contents in double word scope. 
  918. The base of two addresses that define an address range must be the 
  919. same. For example, DWORD 200:40 TO 300:300 is invalid.
  920.  
  921. Examples:
  922.     ->DWORD 40 //Display double word at address DS:40
  923.     ->DWORD 100:40 TO 100:200
  924.     ->DWORD &unsigned_long_buf LENGTH 20
  925.     ->DWORD DS:SI = 23, 234Q, 4+6, AL, 38T
  926.     ->DWORD unsigned_long_array LEN 100 = 0
  927.  
  928. See Also:
  929.     BYTe, CHAr, WORd, FLOat, DOUble, QWOrd, POInter, TREal
  930. Syntax:
  931.     E lvalue
  932.     EXAmine lvalue
  933.  
  934.     Opens a symbol examination window.
  935.  
  936. Example:
  937.     ->e *(char *)0
  938.     ->e foo
  939.  
  940. See Also:
  941.     ?, SYMbol, =
  942. Syntax:
  943.     ED filename
  944.  
  945.     Invokes the editor defined in the debugger EDITOR environment
  946. variable to edit the specified file.  It should be noted that editing
  947. a source file of the program being debugged can cause source line-
  948. number information to be rendered incorrect.
  949.  
  950. Example:
  951.     ->ED foo.c
  952.  
  953. See Also:
  954.     SOUrce
  955. Syntax:
  956.     ED MACro name
  957.  
  958.     Invokes the editor defined in the debugger EDITOR environment
  959. variable for the creation or editing of a macro.
  960.  
  961. Note:
  962.     You should not use macro names that conflict with the debugger's
  963. commands or symbol names in your program.  Otherwise, the macro definitions 
  964. will override them.
  965.     You can execute macros by typing the macro names with or without
  966. the colon prefix.
  967.  
  968. Example:
  969.     ->ED MAC FOO
  970.  
  971. See Also:
  972.     :, MACro, DIRectory MACro, DISplay MACro, REMove MACro,
  973.     PUT, INClude, MLIst, ENV
  974. Syntax:
  975.     EDIT filename
  976.  
  977.     Invokes the editor defined in the debugger EDITOR environment
  978. variable to edit the specified file.  It should be noted that editing
  979. a source file of the program being debugged can cause source line-
  980. number information to be rendered incorrect.
  981.  
  982. Example:
  983.     ->EDIT foo.c
  984.  
  985. See Also:
  986.     SOUrce
  987. Syntax:
  988.     EDIT MACro name
  989.  
  990.     Invokes the editor defined in the debugger EDITOR environment
  991. variable for the creation or editing of a macro.
  992.  
  993. Note:
  994.     You should not use macro names that conflict with the debugger's
  995. commands or symbol names in your program.  Otherwise, the macro definitions 
  996. will override them.
  997.     You can execute macros by typing the macro names with or without
  998. the colon prefix.
  999.  
  1000. Example:
  1001.     ->EDIT MAC FOO
  1002.  
  1003. See Also:
  1004.     :, MACro, DIRectory MACro, DISplay MACro, REMove MACro,
  1005.     PUT, INClude, MLIst, ENV
  1006. Syntax:
  1007.     FOR [expression1-1,...];[expression2];[expression3-1,...]  
  1008.     [command]
  1009.        :
  1010.     EFOr  
  1011.  
  1012.     The EFOr command is used to terminate a FOR loop.
  1013.  
  1014. Example:
  1015.     ->MACRO TEST2    //Define macro TEST2
  1016.     MD>FOR (A=0,B=0; A<=0; A++)
  1017.     MD>  C=ABC(&B, *PTR)
  1018.     MD>  C = C >> 4
  1019.     MD>EFOR
  1020.     MD>EMACRO
  1021.  
  1022. See Also:
  1023.     FOR, EIF, EWHile, ESWitch
  1024. Syntax:
  1025.     EGA [ON ]
  1026.         [OFF]
  1027.  
  1028.     Enable or display EGA-43 line or VGA-50 line display mode.
  1029.  
  1030. Examples:
  1031.     ->EGA ON
  1032.     ->EGA OFF
  1033. Syntax:
  1034.     IF expression
  1035.     [command]
  1036.        .
  1037.        .
  1038.     [ORIf expression]
  1039.     [command]
  1040.        .
  1041.        .
  1042.     [ELSe]
  1043.     [command]
  1044.        .
  1045.        .
  1046.     EIF
  1047.  
  1048.     The EIF command is used to terminate an IF statement.
  1049.  
  1050. Example:
  1051.     ->MACRO TEST1
  1052.     MD>IF (A>0)
  1053.     MD>    IF(B++ != 0)
  1054.     MD>    C--
  1055.     MD>    ORIF(B < 3)
  1056.     MD>    D += 2
  1057.     MD>    EIF
  1058.     MD>ELSE
  1059.     MD>    A=0
  1060.     MD>EIF
  1061.     MD>EMACRO
  1062.     ->
  1063.  
  1064. See Also:
  1065.     IF, EFOr, EWHIle, ESWitch
  1066. Syntax:
  1067.     IF expression
  1068.     [command]
  1069.        .
  1070.        .
  1071.     [ORIf expression]
  1072.     [command]
  1073.        .
  1074.        .
  1075.     [ELSe]
  1076.     [command]
  1077.        .
  1078.        .
  1079.     EIF
  1080.  
  1081.     The ELSe command is used in the IF statement.
  1082.  
  1083. Example:
  1084.     ->MACRO TEST1
  1085.     MD>IF (A>0)
  1086.     MD>    IF(B++ != 0)
  1087.     MD>    C--
  1088.     MD>    ORIF(B < 3)
  1089.     MD>    D += 2
  1090.     MD>    EIF
  1091.     MD>ELSE
  1092.     MD>    A=0
  1093.     MD>EIF
  1094.     MD>EMACRO
  1095.     ->
  1096.  
  1097. See Also:
  1098.     IF, ORIF, EIF
  1099. Syntax:
  1100.     MACro  macro_name  
  1101.     [command]
  1102.        :
  1103.     EMAcro  
  1104.  
  1105.     The EMAcro command is used to complete a macro definition.
  1106.  
  1107. Example:
  1108.     ->MAC AA        //Define macro AA
  1109.     MD>%0
  1110.     MD>LINE %1
  1111.     MD>BYT 50:3 to %2
  1112.     MD>GO TIL %3
  1113.     MD>EMA
  1114.     ->
  1115.  
  1116. See Also:
  1117.     :, MACro, DIRectory MACro, DISplay MACro, REMove MACro, PUT,
  1118.     INClude, EDIt, MLIst
  1119. Syntax:
  1120.     ENV [filename]
  1121.  
  1122.     ENV displays parameters of the configurable environment, and
  1123. optionally allows the environment to be saved to a file.  Environment
  1124. parameters displayed include:
  1125.  
  1126.     BAUD = n        baud rate for remote debugging
  1127.     PORT = n        communications port number for remote debugging
  1128.     HISTORY = n     maximum depth of the history window
  1129.     DIALOG = n      maximum depth of the dialog window
  1130.     TAB = n         tab expansion size
  1131.     KEEPHEAP = n    minimum start-up heap size in 4 Kbyte pages
  1132.         BARLINE = n     vertical position of Source/Dialog separator bar
  1133.     STARF = file    start-up command filename
  1134.     COLOR = file    color values file for windows
  1135.     EDITOR = file    editor to be used for macro editing
  1136.     REGWN = win     register window size and position
  1137.     MEMWN = win     memory window size and position
  1138.     RTRACEWN = win  run-trace window size and position
  1139.     CSTACKWN = win  call-stack window size and position
  1140.     BREAKWN = win   break window size and position
  1141.     BEEP bool       audible error beep setting
  1142.     CODE bool       source-window object code display setting
  1143.     CRREPEAT bool   command repeat on C/R setting
  1144.     EGA bool        EGA-43/VGA-50 line mode setting
  1145.     FLIP bool       display program output during execution setting
  1146.     MAIN bool       start-debugging-at-function-main setting
  1147.     MLIST bool      macro list setting
  1148.     NUMBER bool     source-window line-number setting
  1149.     PROLOG bool     automatic prolog execution setting
  1150.     SENSITIVE bool  case-sensitive symbol matching setting
  1151.     TANDEM bool     dual-monitor debugging setting
  1152.     SPATH path      source file search path (comma separated)
  1153.     HOME name       home window, name can be SOURCE or COMMAND
  1154.     RADIX base      input number base setting (HEX, DEC, OCT, or BIN)
  1155.     <key> = string  key macro definitions
  1156.  
  1157. The start-up environment file's name can be set in the MDBENV MS-DOS
  1158. environment variable.  The default name is MDB.ENV.
  1159.  
  1160. Examples:
  1161.     ->ENV
  1162.     ->ENV MDB.ENV
  1163.  
  1164. See Also:
  1165.     SPAth, HOMe, RADix, CODe, NUMber, EGA, SENsitive, BEEp, EDIT
  1166. Syntax:
  1167.     ESCape  
  1168.  
  1169.     The ESCape command stops macro processing.  It is used in
  1170. macro definitions to abort processing.
  1171.  
  1172. Example:  
  1173.     ->IF AX > 0
  1174.     CD>ESCAPE   //Returns to command mode.
  1175.     CD>ELSE
  1176.     CD>AX++
  1177.     CD>EIF
  1178.     ->
  1179.  
  1180. See Also:
  1181.     BREak, CONtinue, GOTo
  1182. Syntax:
  1183.     SWItch expression
  1184.     CASe constant expression:
  1185.     [command]
  1186.        .
  1187.        .
  1188.     [CASe constant expression:]
  1189.     [command]
  1190.        .
  1191.        .
  1192.     [DEFault:]
  1193.     [command]
  1194.        .
  1195.        .
  1196.     ESWitch
  1197.  
  1198.     The ESWitch command is used to terminate a SWItch statement.
  1199.  
  1200. Examples:
  1201.     ->MACRO TEST1    //Define a macro
  1202.     MD>SWITCH A
  1203.     MD> CASE 0:
  1204.     MD>    B = 10H
  1205.     MD>    BREAK
  1206.     MD> CASE 1:
  1207.     MD>    B = B * B
  1208.     MD>    BREAK
  1209.     MD> DEFAULT:
  1210.     MD>    LINE 5  //Execute 5 lines
  1211.     MD>ESWITCH
  1212.     MD>EMACRO
  1213.     ->
  1214.  
  1215. See Also:
  1216.     SWItch, EFOr, EIF, EWHile
  1217. Syntax:
  1218.     EVAluate expression  
  1219.  
  1220.     Evaluates an expression.  All register and flag names are 
  1221. recognized.  Full C syntax, including function calls, is supported.
  1222.  
  1223. Examples:  
  1224.     ->EVA 'A'
  1225.     ->EVA ++data
  1226.     ->EVA a = 1, b = 2, c = a << b
  1227.     ->EVA *(byte *)ptr_to_short + *val
  1228.     ->EVA AX+1
  1229.  
  1230. See Also:
  1231.     =, ?, SYMbol
  1232. Syntax:
  1233.     WHIle expression
  1234.     [command]
  1235.        .
  1236.        .
  1237.     EWHile
  1238.  
  1239.     The EWHile command is used to terminate a WHIle statement.
  1240.  
  1241. Example:
  1242.     ->MACRO TEST1    //Define a macro
  1243.     MD>WHILE A
  1244.     MD> LINE
  1245.     MD> A
  1246.     MD>EWHILE
  1247.     MD>EMACRO
  1248.     ->
  1249.  
  1250. See Also:
  1251.     WHIle, EFOr, EIF, ESWitch
  1252. Syntax:
  1253.     E lvalue
  1254.  
  1255.     Opens a symbol examination window.
  1256.  
  1257. Example:
  1258.     ->e *(char *)0
  1259.     ->e foo
  1260.  
  1261. See Also:
  1262.     ?, SYMbol, =
  1263. Syntax:
  1264.     EXAmine lvalue
  1265.     E lvalue
  1266.  
  1267.     Opens a symbol examination window.
  1268.  
  1269. Example:
  1270.     ->e *(char *)0
  1271.     ->e foo
  1272.  
  1273. See Also:
  1274.     ?, SYMbol, =
  1275. Syntax:
  1276.     EXIt  
  1277.  
  1278.     Exits from the debugger.  This command closes all opened files
  1279. and deletes all temporary files that are created by the debugger.  When
  1280. in remote mode, unlike QUIT, EXIT causes the remote monitor to terminate.
  1281.  
  1282. Example:  
  1283.     ->EXIT
  1284.  
  1285. See Also:
  1286.     QUIt
  1287. Syntax:
  1288.     FINd addr1 {[TO] addr2} {"string"       }
  1289.                {LENgth n  } {expr [,expr]...}
  1290.  
  1291.     Searches the specified memory range for the specified value
  1292. or string of values.
  1293.  
  1294. Examples:
  1295.     ->FIN &buf[12] LEN 8192 "Copyright"
  1296.     ->FIN DS:100H TO DS:0FFFFH 1941,2001
  1297.  
  1298. See Also:
  1299.     COMpare, COPy
  1300. Syntax:
  1301.     FLAg
  1302.  
  1303.     status_flag [= value]  [, status_flag [= value]]...
  1304.  
  1305.     where status_flag may be: 
  1306.     AF, CF, DF, IF, IOPL, NT, OF, PF, RF, SF, TF, VM, or ZF.
  1307.  
  1308.     Displays or alters the 80386 flags register.  When a new
  1309. flag value is specified, any non-zero value is treated as 1.  Note
  1310. that IOPL is two bits; the other flags are one bit.
  1311.  
  1312. Examples:
  1313.     ->FLA                //Display all flags
  1314.     ->CF, OF, PF            //Display CF, OF, PF
  1315.     ->CF = 1, IF = 1, AF = 1    //Set flag value
  1316.  
  1317. See Also:
  1318.     REGister
  1319. Syntax:
  1320.     FLIp [ON ]
  1321.          [OFF]
  1322.  
  1323.     Enables, disables, or displays the status of application output
  1324. during application execution.  If disabled, output from the program being
  1325. debugged is not displayed until explicitly requested via the USC (user-
  1326. screen display) command.  If enabled, the output from the program being
  1327. debugged is displayed whenever it is executing.  This may cause a flicker
  1328. effect during single-step operation.  FLIP is enabled by default.
  1329.  
  1330. The flip mode will be enabled whenever a monochrome display is
  1331. detected and when EGA mode is enabled.  It should not be disabled
  1332. when debugging graphics applications or other applications which
  1333. write directly to video RAM.
  1334.  
  1335. Example:
  1336.     ->FLIP OFF
  1337.  
  1338. See Also:
  1339.     ENV, EGA
  1340. Syntax:
  1341.     FLOat [address] [= expression [, expression]...]
  1342.                     [[TO] address [= expression   ]]
  1343.                     [LENgth n   [= expression     ]]
  1344.  
  1345.     Displays or alters memory contents in float scope. The base 
  1346. of two addresses that define an address range must be the same. For 
  1347. example, FLOAT 200:40 TO 300:300 is invalid.
  1348.  
  1349. Examples:
  1350.     ->FLOAT 40
  1351.     ->FLOAT 100:40 TO 100:200
  1352.     ->FLOAT &float_buf LENGTH 20
  1353.     ->FLOAT DS:SI = 9.9, 8.8, 1.2+3.5
  1354.     ->FLOAT float_array LEN 100 = 0.0
  1355.  
  1356. See Also:
  1357.     BYTe, CHAr, WORd, DWOrd, DOUble, QWOrd, POInter, TREal
  1358. Syntax:
  1359.     FOR [expression1];[expression2];[expression3]  
  1360.     [command]
  1361.        :
  1362.     EFOr  
  1363.  
  1364.     The FOR-EFOr loop command is equivalent to:
  1365.        [expression1]
  1366.         :
  1367.        WHILE  expression2
  1368.        [command]
  1369.         :
  1370.        [expression3]
  1371.         :
  1372.        EWHILE
  1373.  
  1374.     Note: If expression2 is not specified, it is taken as TRUE.
  1375.  
  1376. Examples:  
  1377.     ->MACRO TEST1            //Define a macro. 
  1378.     MD>for( a=0,b=0; a<=0; a++ )
  1379.     MD>   c=abc( &b, *ptr )          
  1380.     MD>   c = c >> 4             
  1381.     MD>   d |= b          
  1382.     MD>efor               
  1383.     MD>EMACRO
  1384.     ->MACRO TEST2            //Define a macro.
  1385.     MD>for(;;)
  1386.     MD>   if( !( c = get_data() ) )
  1387.     MD>       break;
  1388.     MD>   else
  1389.     MD>       buf[i++] = c;
  1390.     MD>   eif
  1391.     MD>efor
  1392.     MD>EMACRO
  1393.     ->FOR I = 0; I < 10; I++
  1394.     CD>   BUF[I] = 0;
  1395.     CD>EFOR
  1396.  
  1397. See Also:
  1398.     IF, WHIle, REPeat, EFOr, MACro, INClude
  1399. Syntax:
  1400.     FREe
  1401.  
  1402.     Displays the size of remaining free memory.  In remote
  1403. mode, FREe displays both the host's and target's free memory.
  1404.  
  1405. Example:
  1406.     ->FRE
  1407.  
  1408. See Also:
  1409.     LOAd
  1410. Syntax:
  1411.        GDT [ \[index_expr\] [.LDT\[expr\] ] [.seg_element [= expr] ] ]
  1412.  
  1413.        where index_expr is an index into the table; seg_element is 
  1414. BASe, LIMit, G, B, P, D, DPL, C, R, W, A, E, V, WCO, SOFf, SSEl, or TYPe;
  1415. expr is an expression.  The notations \[ and \] indicate that the square 
  1416. bracket pair is part of the required syntax.
  1417.  
  1418.        Displays or modifies descriptors or descriptor components of 
  1419. the global descriptor table.  The index value is the upper 13 bits of a
  1420. 16-bit selector.  A selector that references the GDT has bit 2 equals 0.
  1421. You can obtain the corresponding table index by dividing the selector by 8.
  1422.  
  1423.        The descriptor components are as follows:
  1424.  
  1425.        Name          Size           Description
  1426.        ---------------------------------------------------------------
  1427.        BASe          32 bits        Segment base linear address
  1428.        LIMit         20 bits        Segment limit
  1429.        G             1 bit          Segment granularity, 0 = byte; 1 = page
  1430.        B             1 bit          Stack pointer size, 0 = 16 bits
  1431.        P             1 bit          Segment present, 1 = present
  1432.        D             1 bit          Default operand lengths, 0 = 16 bits
  1433.        DPL           2 bits         Descriptor privilege level
  1434.        C             1 bit          Conforming segment
  1435.        R             1 bit          Readable segment
  1436.        W             1 bit          Writable segment
  1437.        A             1 bit          Segment accessed
  1438.        E             1 bit          Expand down segment
  1439.        V             1 bit          User definable
  1440.        WCO           5 bits         Gate dword count
  1441.        SOFf          32 bits        Gate segment offset
  1442.        SSEl          16 bits        Gate segment selector
  1443.        TYPe          5 bits         Descriptor type
  1444.  
  1445. Examples:
  1446.        ->GDT  //Displays all the entries in the GDT.
  1447.        ->GDT[1T].P=1  //Writes the present bit of GDT[1].
  1448.        ->GDT[CS/8] // Displays the entry in GDT referenced by
  1449.                  // the CS register.
  1450.        ->GDT[10]=GDT[5].LDT[7] //Makes one table entry the same 
  1451.              //as another.
  1452.        ->GDT[7T].LDT  //Displays the LDT whose descriptor is the
  1453.              //seventh entry in the GDT.
  1454.        ->GDT[7].LDT[4].LIMIT=12345H  //Writes the limit field of 
  1455.              //entry four in the LDT whose descriptor is entry 
  1456.              //seven in the GDT.
  1457.  
  1458. See Also:
  1459.        IDT, LDT, DT, TSS, PD, REGister (GDTLIM, GDTBAS)
  1460. Syntax:
  1461.     GLObal  
  1462.  
  1463.     Displays all global symbols and their values.
  1464.  
  1465. Example:
  1466.     ->GLOBAL
  1467.  
  1468. See Also:
  1469.     SYMbol, LOCal, EVAluate
  1470. Syntax:
  1471.         G [FROm address] [FORever]
  1472.                      [[TILl] address]  
  1473.                      [[TILl] RETurn [level]]
  1474.                      [[TILl] CALl]
  1475.  
  1476.     Starts target program execution.  If no argument is specified,
  1477. program execution begins from the current program counter.  Program
  1478. execution will be halted if a breakpoint is reached.
  1479.  
  1480.     The "FROM address" parameter is used to specify the starting
  1481. address for program execution.  The address must be a virtual address
  1482. or an offset into the current code segment.  It can neither be a
  1483. physical nor a linear address.
  1484.  
  1485.     If the argument is FORever, all previously specified breakpoints
  1486. (see B) are disabled, and the CPU executes forever (or until the program
  1487. is killed).
  1488.  
  1489.     If RETurn is specified, execution terminates after the code
  1490. has returned from the specified number of levels of call nesting.  The
  1491. default is to return from the current procedure (i.e., 1 level).
  1492.  
  1493.     If CALl is specified, execution continues until a CALL or INT
  1494. instruction is executed.
  1495.  
  1496. Examples:  
  1497.     ->G FROM &START FOREVER
  1498.     ->G TIL #40
  1499.     ->G RET
  1500.     ->G CALL
  1501.  
  1502. See Also:
  1503.     B, Step, PStep, Line, Pline, CALlstack, LOAd, RUN
  1504. Syntax:
  1505.         GO [FROm address] [FORever]
  1506.                       [[TILl] address]  
  1507.                       [[TILl] RETurn [level]]
  1508.                       [[TILl] CALl]
  1509.  
  1510.     Starts target program execution.  If no argument is specified,
  1511. program execution begins from the current program counter.  Program
  1512. execution will be halted if a breakpoint is reached.
  1513.  
  1514.     The "FROM address" parameter is used to specify the starting
  1515. address for program execution.  The address must be a virtual address
  1516. or an offset into the current code segment.  It can neither be a
  1517. physical nor a linear address.
  1518.  
  1519.     If the argument is FORever, all previously specified breakpoints
  1520. (see B) are disabled, and the CPU executes forever (or until the program
  1521. is killed).
  1522.  
  1523.     If RETurn is specified, execution terminates after the code
  1524. has returned from the specified number of levels of call nesting.  The
  1525. default is to return from the current procedure (i.e., 1 level).
  1526.  
  1527.     If CALl is specified, execution continues until a CALL or INT
  1528. instruction is executed.
  1529.  
  1530. Examples:  
  1531.     ->GO FROM &START FOREVER
  1532.     ->GO TIL #40
  1533.     ->GO RET
  1534.     ->GO CALL
  1535.  
  1536. See Also:
  1537.     B, Step, PStep, Line, Pline, CALlstack, LOAd, RUN
  1538. Syntax:    
  1539.     GOTo macro_label
  1540.  
  1541.     Causes program execution to be transferred to the specified
  1542. macro-label.
  1543.     Note that GOTO command cannot be used to jump into 
  1544. REPEAT-UNTIL, WHILE-EWHILE, FOR-EFOR loop, or IF-EIF, SWITCH-ESWITCH
  1545. block, but can be used to jump out of these loops or blocks.
  1546.       
  1547. Examples:  
  1548.     ->MACRO TEST1        //Define a macro.
  1549.     MD>a = 8;
  1550.     MD>aa:
  1551.     MD>if( c >= 999 )
  1552.     MD>   goto aa
  1553.     MD>orif( c <= 0 )
  1554.     MD>   goto bb
  1555.     MD>eif
  1556.     MD>bb:   
  1557.     MD>EMACRO
  1558.     ->
  1559.  
  1560. See Also:
  1561.     BREak, CONtinue, ESCape, MACro
  1562. Syntax:
  1563.     HALt
  1564.  
  1565.     In remote execution mode, halts the remote program.
  1566.  
  1567. Example:
  1568.     ->HALt
  1569.  
  1570. See Also:
  1571.     Go, CAUse
  1572. Syntax:
  1573.     HELp  ["command_keyword"]  
  1574.           [ command_keyword ]
  1575.  
  1576.     Shows you how to use debugger commands.  If no parameter
  1577. is specified, the command summary will be displayed.  If a command
  1578. keyword is given, the syntax and example of usage of the command
  1579. will be displayed.
  1580.  
  1581. Examples:  
  1582.     ->HELP            
  1583.     ->HELP EVALUATE
  1584.     ->HELP "BYTE"
  1585. Syntax:
  1586.     HEX
  1587.  
  1588.     Sets the default input radix to hexadecimal.
  1589.  
  1590. Example:
  1591.     ->HEX
  1592.  
  1593. See Also:
  1594.     BINary, DECimal, OCTal, RADix
  1595. Syntax:
  1596.     HOMe [COMmand]
  1597.          [SOUrce ]
  1598.  
  1599.     Sets the default window from which commands are issued and
  1600. to which commands return after execution.  COMmand specifies the
  1601. command-line, and SOUrce specifies the source window as the home
  1602. base.  The command-line is the default home base, but the default may
  1603. be changed in the environment file.
  1604.  
  1605. Examples:
  1606.     ->HOM SOU    // issue commands from the source window
  1607.     ->HOM COM    // issue commands from the command-line
  1608.  
  1609. See Also:
  1610.     SOUrce, ENV
  1611. Syntax:
  1612.        IDT [ \[index_expr\] [.seg_element [= expr] ] ]
  1613.  
  1614.        where index_expr is an index into the table; seg_element is 
  1615. BASe, LIMit, G, B, P, D, DPL, C, R, W, A, E, V, WCO, SOFf, SSEl, or TYPe;
  1616. expr is an expression.  The notations \[ and \] indicate that the square 
  1617. bracket pair is part of the required syntax.
  1618.  
  1619.        Displays or modifies descriptors or descriptor components 
  1620. of the interrupt descriptor table.  
  1621.  
  1622.        The descriptor components are as follows:
  1623.  
  1624.        Name          Size           Description
  1625.        ---------------------------------------------------------------
  1626.        BASe          32 bits        Segment base linear address
  1627.        LIMit         20 bits        Segment limit
  1628.        G             1 bit          Segment granularity, 0 = byte; 1 = page
  1629.        B             1 bit          Stack pointer size, 0 = 16 bits
  1630.        P             1 bit          Segment present, 1 = present
  1631.        D             1 bit          Default operand lengths, 0 = 16 bits
  1632.        DPL           2 bits         Descriptor privilege level
  1633.        C             1 bit          Conforming segment
  1634.        R             1 bit          Readable segment
  1635.        W             1 bit          Writable segment
  1636.        A             1 bit          Segment accessed
  1637.        E             1 bit          Expand down segment
  1638.        V             1 bit          User definable
  1639.        WCO           5 bits         Gate dword count
  1640.        SOFf          32 bits        Gate segment offset
  1641.        SSEl          16 bits        Gate segment selector
  1642.        TYPe          5 bits         Descriptor type
  1643.  
  1644. Examples:
  1645.        ->IDT  //Displays all entries in the IDT.
  1646.        ->IDT[1T]  //Displays the second entry in the IDT.
  1647.  
  1648. See Also:
  1649.        DT, GDT, LDT, TSS, PD, REGister (IDTLIM, IDTBAS)
  1650. Syntax:
  1651.     IF expression  
  1652.     [command]
  1653.        :
  1654.     [ORIf expression]  
  1655.     [command]
  1656.        :
  1657.     [ELSe]  
  1658.     [command]
  1659.        :
  1660.     EIF  
  1661.  
  1662.     If any expression is TRUE (non-zero), the commands 
  1663. associated with it are executed. If all of the expressions are 
  1664. FALSE (zero), either no action at all or the commands associated 
  1665. with ELSE are executed,  This command can be formed by an IF-EIF, 
  1666. IF-ELSE-EIF, IF-ORIF-EIF, or IF-ORIF-ELSE-EIF clause. 
  1667.  
  1668. Examples:  
  1669.     ->MACRO TESTIF      //Define a macro.
  1670.     MD>IF A + B >= %0    
  1671.     MD>LINE          
  1672.     MD>ORIF A + B < %1       
  1673.     MD>GO TIL %2
  1674.     MD>ELSE          
  1675.     MD>A             
  1676.     MD>B             
  1677.     MD>EIF           
  1678.     MD>EMACRO        
  1679.     ->MACRO TTT
  1680.     MD>if( a > 0 )
  1681.     MD>    if( b++ != 0 )
  1682.     MD>    c--
  1683.     MD>    d--
  1684.     MD>    orif( b < -3 )
  1685.     MD>    c >>= 2;
  1686.     MD>    eif
  1687.     MD>else
  1688.     MD>    a = 0
  1689.     MD>eif
  1690.     MD>EMACRO
  1691.     ->
  1692.  
  1693. See Also:
  1694.     SWItch, FOR, WHIle, REPeat, EIF, MACro, INClude
  1695. Syntax:
  1696.     INClude filename [LISt]  
  1697.  
  1698.     Execute the commands from the specified file.  If LISt is 
  1699. specified, the commands in the command file are displayed on the 
  1700. console as they are being executed (default is NO LIST).  This
  1701. command is identical to the @ command.
  1702.  
  1703. Examples:  
  1704.     ->INC "INIT.MAC" LIS
  1705.     ->INC C:\TMP\GR1.INC
  1706.  
  1707. See Also:
  1708.     MACro, JOUrnal, LISt
  1709. Syntax:
  1710.     INPut  [address =] port_no  [W]  
  1711.                                 [D]
  1712.  
  1713.     Reads the contents from the specified input port and displays 
  1714. it on the console.  The contents are the data involved in the last 
  1715. I/O operation performed via the port.  If the qualifier "W" is 
  1716. specified, the port is 16-bit.  Otherwise, it is 8-bit.  If the 
  1717. qualifier "D" is specified, the port is 32-bit.  If an "address" is 
  1718. specified, the contents of the input port will be stored at the 
  1719. specified address.
  1720.  
  1721. Examples:
  1722.     ->INPUT 20H
  1723.     ->INP port_index W
  1724.  
  1725. See Also:
  1726.     OUTput
  1727. Syntax:
  1728.     JOUrnal filename [KEYboard] [APPend]
  1729.  
  1730.     Creates a text file with the specified filename and records 
  1731. the user's entered commands into the specified file.  The command file 
  1732. created may be used in the INClude command.
  1733.  
  1734.     If KEYboard is specified, the journal file will store all
  1735. entered keystrokes, including those used in windows, rather than
  1736. only the commands entered on the command line.
  1737.  
  1738.     If the specified file already exists, and the APPend qualifier
  1739. is specified, then the existing file will be appended rather than
  1740. over-written.
  1741.  
  1742.     This command may be disabled with the NO JOUrnal command.
  1743.  
  1744. Example:  
  1745.     ->JOURNAL MYDEBUG.LOG
  1746.  
  1747. See Also:
  1748.     LISt, INClude, NO JOUrnal
  1749. Syntax:
  1750.     KEEpheap [number_of_pages]
  1751.  
  1752.     Displays or sets the minimum initial heap size for a program
  1753. in pages of 4 Kbytes.  The default is 2 pages.  Normally, programs will
  1754. grow their heap at run-time for dynamic memory allocation.  If your
  1755. program is built with the assumption that a large heap will be available
  1756. at start-up, you may use this command to reserve the amount of memory
  1757. necessary for your heap.
  1758.  
  1759. Example:
  1760.     ->KEEP 10 // reserve 10 pages (40 Kbytes) of program heap space
  1761.  
  1762. See Also:
  1763.     LOAd, ENV
  1764. Syntax:
  1765.        LDT [ \[index_expr\] [.seg_element [= expr] ] ]
  1766.  
  1767.        where index_expr is an index into the table; seg_element is BASe, 
  1768. LIMit, G, B, P, D, DPL, C, R, W, A, E, V, WCO, SOFf, SSEl, or TYPe;
  1769. expr is an expression.  The notations \[ and \] indicate that the square 
  1770. bracket pair is part of the required syntax.
  1771.  
  1772.        Displays or modifies descriptors or descriptor components 
  1773. of the local descriptor tables.  The index value is the upper 13 bits of a
  1774. 16-bit selector.  A selector that references the LDT has bit 2 equals 1.
  1775. You can obtain the corresponding table index by dividing the selector by 8.
  1776.  
  1777.        The descriptor components are as follows:
  1778.  
  1779.        Name          Size           Description
  1780.        ---------------------------------------------------------------
  1781.        BASe          32 bits        Segment base linear address
  1782.        LIMit         20 bits        Segment limit
  1783.        G             1 bit          Segment granularity, 0 = byte; 1 = page
  1784.        B             1 bit          Stack pointer size, 0 = 16 bits
  1785.        P             1 bit          Segment present, 1 = present
  1786.        D             1 bit          Default operand lengths, 0 = 16 bits
  1787.        DPL           2 bits         Descriptor privilege level
  1788.        C             1 bit          Conforming segment
  1789.        R             1 bit          Readable segment
  1790.        W             1 bit          Writable segment
  1791.        A             1 bit          Segment accessed
  1792.        E             1 bit          Expand down segment
  1793.        V             1 bit          User definable
  1794.        WCO           5 bits         Gate dword count
  1795.        SOFf          32 bits        Gate segment offset
  1796.        SSEl          16 bits        Gate segment selector
  1797.        TYPe          5 bits         Descriptor type
  1798.  
  1799. Examples:
  1800.        ->LDT  //Displays all entries in the LDT.
  1801.        ->LDT[12H]  //Displays an entry in the LDT.
  1802.        ->LDT[CS/8] // Displays the entry in LDT referenced by
  1803.                  // the CS register.
  1804.        ->LDT[2T].BASE=12345678H //Writes base field of LDT(2).
  1805.  
  1806. See Also:
  1807.        DT, GDT, IDT, TSS, PD, REGister
  1808. Syntax:
  1809.     LINe [n] 
  1810.     L    
  1811.  
  1812.     The abbreviated forms of the LINE command are LIN and L.
  1813. LINe causes the program to execute n statements before halting 
  1814. for debugging purposes.  If n is not specified, the default is 1, 
  1815. which allows single-statement debugging.
  1816.  
  1817.     If you do not want to step through the called procedure, 
  1818. use the PLINE or P command instead.
  1819.  
  1820. Examples:  
  1821.     ->LINE 10       // Execute 10 statements and stop.
  1822.     ->L        // Execute one statement and stop.
  1823.     ->LIN
  1824.     ->L  5        // Execute five statements and stop.
  1825.  
  1826. Notes:
  1827.     The abbreviation for the LINEAR command is LNE
  1828.  
  1829. See Also:
  1830.     Go, Pline, Step, PStep, B, RUN, LOAd
  1831. Syntax:
  1832.     LINe [n] 
  1833.     L    
  1834.  
  1835.     The abbreviated forms of the LINE command are LIN and L.
  1836. LINe causes the program to execute n statements before halting 
  1837. for debugging purposes.  If n is not specified, the default is 1, 
  1838. which allows single-statement debugging.
  1839.  
  1840.     If you do not want to step through the called procedure, 
  1841. use the PLINE or P command instead.
  1842.  
  1843. Examples:  
  1844.     ->LINE 10       // Execute 10 statements and stop.
  1845.     ->L        // Execute one statement and stop.
  1846.     ->LIN
  1847.     ->L  5        // Execute five statements and stop.
  1848.  
  1849. Notes:
  1850.     The abbreviation for the LINEAR command is LNE
  1851.  
  1852. See Also:
  1853.     Go, Pline, Step, PStep, B, RUN, LOAd
  1854. Syntax:
  1855.     LiNEar address
  1856.  
  1857.     Converts the address to a linear address.  Note that
  1858. the abbreviation for this command is LNE and not LIN, in order
  1859. to distinguish it from the LINE command.
  1860.  
  1861. Examples:
  1862.     ->LNE 0D420000HP   //Converts a physical address to a linear 
  1863.         // address, suffix P indicates a physical address.
  1864.     ->LNE 1444:5678    //Converts a real mode virtual address.
  1865.     ->LNE 170H:14H:0    //Converts a protected mode virtual address.
  1866.       // The leftmost field is the local descriptor table field,
  1867.       // the middle field is the segment selector field
  1868.       // the rightmost field is the offset field.
  1869.  
  1870. See Also:
  1871.     PHYsical
  1872. Syntax:
  1873.     LISt filename [APPend]
  1874.  
  1875.     Creates a text file with the specified filename and records 
  1876. the console display into the specified file.  This command enables 
  1877. you to make a copy of a debugging session.
  1878.  
  1879.     If the APPend qualifier is given and the specified file
  1880. already exists, then the logged data will be appended to the
  1881. specified file.
  1882.  
  1883.     This command is disabled with the NO LIST command.
  1884.  
  1885. Examples:  
  1886.     ->LIST MYDEBUG.LOG
  1887.     ->NO LIS
  1888.  
  1889. See Also:
  1890.     NO LISt, JOUrnal
  1891. Syntax:
  1892.     LOAd filename [NOCode] [NOSource] [NOPurge] [EXTension="string"]  
  1893.  
  1894.     Loads an object file from the host into the target memory. 
  1895. The file must be a Phar Lap executable (.EXP, either "flat" or multi-
  1896. segment) with extended CodeView debug information.
  1897.  
  1898.     If NOCode is specified, executable code is not loaded into
  1899. memory; only symbol, line number and type information is loaded into
  1900. the the debugger.
  1901.  
  1902.     If NOSource is specified, the source listing display feature 
  1903. is disabled.
  1904.  
  1905.     If NOPurge is specified, symbol and type information from the
  1906. previous program remain available.
  1907.  
  1908.     The default file extension of source files is ".c";
  1909. EXTension can be used to specify an alternate source file extension.
  1910.  
  1911. Examples:  
  1912.     ->LOAD MYPROG.EXP
  1913.     ->LOA MYPROG NOCODE
  1914.     ->LOAD TEST NOSOURCE NOCODE
  1915.     ->LOAD C:\PROG\TSTPRO EXT = "pas"
  1916.  
  1917. See Also:
  1918.     RUN, RERun, Go
  1919. Syntax:
  1920.     LOCal  
  1921.  
  1922.     Displays all active local symbols and their addresses.
  1923.  
  1924. Example:
  1925.     ->LOC
  1926.  
  1927. See Also:
  1928.     GLObal, SYMbol, EVAluate
  1929. Syntax:
  1930.     MACro  macro_name  
  1931.     [command]
  1932.        :
  1933.     EMAcro  
  1934.  
  1935.     Defines a macro, %0 ... %9 are the formal parameters.
  1936.  
  1937. Note:
  1938.     You should not use macro names that conflict with the debugger's
  1939. commands or symbol names in your program.  Otherwise, the macro definitions 
  1940. will override them.
  1941.     You can execute macros by typing the macro names with or without
  1942. the colon prefix.
  1943.  
  1944. Example:
  1945.     ->MAC AA        //Define macro AA
  1946.     MD>%0
  1947.     MD>REG    %1
  1948.     MD>BYT 50:3 to %2
  1949.     MD>GO TIL %3
  1950.     MD>EMA
  1951.     ->
  1952.  
  1953. See Also:
  1954.     :, DIRectory MACro, DISplay MACro, REMove MACro, PUT,
  1955.     INClude, EDIt, MLIst
  1956. Syntax:
  1957.     MEMory [address]
  1958.  
  1959.     Enters the memory window.  If no address is specified, the
  1960. last specified address will be used.
  1961.  
  1962. Examples:
  1963.     ->MEM
  1964.     ->MEM ds:100h
  1965.     ->MEM big_array
  1966.  
  1967. See Also:
  1968.     BYTe, CHAr, WORd, DWOrd, FLOat, DOUble, QWOrd, POInter, TREal
  1969. Syntax:
  1970.     MLIst [ON ]
  1971.           [OFF]
  1972.  
  1973.     Causes the macro bodies to be displayed on the console as
  1974. the macros are expanded.  The MLIST OFF command may be used to 
  1975. disable this command.  On start up the default is MLIST OFF.
  1976.  
  1977. Example:
  1978.     ->MLI ON
  1979.  
  1980. See Also:
  1981.     MACro, LISt, INClude
  1982. Syntax:
  1983.     There are two kinds of "NO" commands, they are:
  1984.  
  1985.     NO JOUrnal, NO LISt.
  1986.  
  1987.     Please enter the command again.
  1988. Syntax:
  1989.     NO JOUrnal  
  1990.  
  1991.     Closes the journal file.
  1992.  
  1993. Example:  
  1994.     ->NO JOURNAL
  1995.  
  1996. See Also:
  1997.     JOUrnal, LISt
  1998. Syntax:
  1999.     NO LISt  
  2000.  
  2001.     Closes the listing file.
  2002.  
  2003. Example:  
  2004.     ->NO LIST
  2005.  
  2006. See Also:
  2007.     LISt, JOUrnal
  2008. Syntax:
  2009.     NUMber [ON ]
  2010.            [OFF]
  2011.  
  2012.     Enables or disables the displaying of line numbers in the
  2013. source window.
  2014.  
  2015. Examples:
  2016.     ->NUM ON
  2017.     ->NUM OFF
  2018.  
  2019. See Also:
  2020.     #, VIEw, B, Go
  2021. Syntax:
  2022.     OCTal
  2023.  
  2024.     Sets the default input radix to octal.
  2025.  
  2026. Example:
  2027.     ->OCT
  2028.  
  2029. See Also:
  2030.     BINary, DECimal, HEX, RADix
  2031. Syntax:
  2032.     OPEn n = filename
  2033.  
  2034.     where n = 0, 1, 2, 3, 4 or 5
  2035.  
  2036.     Opens a file and associates it with a number n. The opened 
  2037. file may later be used in READ or WRITE commands to read/write data
  2038. from/to the file.  If the specified file does not exist, it will be
  2039. created.
  2040.  
  2041. Examples:  
  2042.     ->OPEN 1 = INPUT.DAT
  2043.     ->OPEN 2 = OUTPUT.DAT
  2044.     ->READ A, B FROM 1
  2045.     ->WRITE "A = ", A TO 2
  2046.  
  2047. See Also:
  2048.     CLOse, REAd, WRIte, INClude, MACro
  2049. Syntax:
  2050.     IF expression
  2051.     [command]
  2052.        .
  2053.        .
  2054.     [ORIf expression]
  2055.     [command]
  2056.        .
  2057.        .
  2058.     [ELSe]
  2059.     [command]
  2060.        .
  2061.        .
  2062.     EIF
  2063.  
  2064.     The ORIf command is used in the IF statement.
  2065.  
  2066. Example:
  2067.     ->MACRO TEST1
  2068.     MD>IF (A>0)
  2069.     MD>    IF(B++ != 0)
  2070.     MD>    C--
  2071.     MD>    ORIF(B < 3)
  2072.     MD>    D += 2
  2073.     MD>    EIF
  2074.     MD>ELSE
  2075.     MD>    A=0
  2076.     MD>EIF
  2077.     MD>EMACRO
  2078.     ->
  2079.  
  2080. See Also:
  2081.     IF, EIF, ELSE
  2082. Syntax:
  2083.     OUTput  port_no  = value [W]
  2084.                              [D]
  2085.  
  2086.     Assigns an 8-bit value to the specified output port.  If the
  2087. qualifier "W" is specified, a 16-bit value will be assigned.
  2088. If the qualifier "D" is specified, a 32-bit value will be assigned.
  2089.  
  2090. Examples:
  2091.     ->OUTPUT 20H = 0C2H
  2092.     ->OUT out_port_index = 1011H W
  2093.     ->OUT out_port_index + 6 = 10H
  2094.     ->OUT out_port_buf[8] = 10008000H D
  2095.  
  2096. See Also:
  2097.     INPut
  2098. Syntax:
  2099.     PAUse [ON]
  2100.           [OFF]
  2101.  
  2102.     Enables or disables the scrolling of the display in the
  2103. dialog window.  When PAUse ON is in effect, the display will
  2104. stop if the display lines fill up the dialog window.  The display
  2105. will continue to scroll after any key is pressed.  PAUse OFF
  2106. turns off the effect such that the display will continue scrolling
  2107. without any pause.
  2108.  
  2109.     The default is PAUse ON.  PAUse OFF is needed if the 
  2110. debugging session must be run unattended using a command file.
  2111. PAUse without any parameter will display the current setting.
  2112.  
  2113. Examples:
  2114.     ->PAUse        //Displays current setting.
  2115.     ->PAU OFF    //No pause during text scrolling.
  2116.  
  2117. See Also:
  2118.     WAIt, INClude, LISt
  2119. Syntax:
  2120.     PD  [ \[index_expr\] [.PT[ \[index_expr\] ] ] [.element [= expr] ] ]
  2121.  
  2122.     where index_expr is an index into the table; element is PTA, 
  2123. PFA, AVL, P, RW, US, D or A; expr is an expression.  The notations \[ and 
  2124. \] indicate that the square bracket pair is part of the required syntax.
  2125.  
  2126.     Displays or modifies the components of a page directory or
  2127. page table.  PD displays all the present entries in the page directory.
  2128. PT displays all the present entries in the page table corresponding to
  2129. the indexed page directory.  The element argument specifies a component 
  2130. of a page directory or page table entry.
  2131.  
  2132.        The components of page directory/page table entries are as follows:
  2133.  
  2134.        Name          Size           Description
  2135.        ---------------------------------------------------------------
  2136.        PTA           20 bits        Page table address (in page directory)
  2137.        PFA           20 bits        Page frame address (in page table)
  2138.        AVL           3 bits         Available (user-defined)
  2139.        P             1 bit          Present; P = 1
  2140.        RW            1 bit          Page writable; RW = 1
  2141.        US            1 bit          User level; US = 1, Supervisor; US = 0
  2142.        D             1 bit          Dirty page; D = 1
  2143.        A             1 bit          Page accessed; A = 1
  2144.          
  2145. Examples:
  2146.        ->PD  //Displays all the present entries in the page directory.
  2147.        ->PD[0]  //Displays the first entry in the page directory.
  2148.        ->PD[0].PTA  //Displays the page table address of the first entry 
  2149.          //in the page directory.
  2150.        ->PD[0].PT  //Displays all the present entries in the page table
  2151.          //which is pointed to by the first entry in the page directory.
  2152.        ->PD[0].PT[4] //Displays the 5th entry in the first page table.
  2153.        ->PD[0].PT[4].A = 1 //Modifies the page access bit in the 5th entry 
  2154.                  // in the first page table.
  2155.  
  2156. See Also:
  2157.        DT, GDT, IDT, LDT, TSS, REGister
  2158. Syntax:
  2159.     PHYsical address
  2160.  
  2161.     Converts the address to a physical address. 
  2162.  
  2163. Examples:
  2164.     ->PHYSICAL 1234:8767     //Converts a real mode virtual 
  2165.                  //address.
  2166.     ->PHY 12898778HN     //Converts a linear address, suffix
  2167.                  //  N indicates a linear address.
  2168.     ->PHY 170H:14H:0    //Converts a protected mode virtual address.
  2169.       // The leftmost field is the local descriptor table field,
  2170.       // the middle field is the segment selector field
  2171.       // the rightmost field is the offset field.
  2172.  
  2173. See Also:
  2174.     LiNEar
  2175. Syntax:
  2176.     PLIne [n] 
  2177.     P     
  2178.  
  2179.     The abbreviated forms of the PLINE command are PLI and P.
  2180. PLINE executes the next n high-level program statements (default is 
  2181. one high-level statement).  If a statement contains a call to a 
  2182. procedure, the entire process of procedure entry and procedure return 
  2183. is treated as one statement.  
  2184.     If you want to step into the called procedure, use the LINE
  2185. command instead.
  2186.  
  2187. Examples:  
  2188.     ->PLINE 10            
  2189.     ->PLI
  2190.     ->P 5
  2191.  
  2192. See Also:
  2193.     Go, Step, PStep, Line, LOAd, RUN, B
  2194. Syntax:
  2195.     PLIne [n] 
  2196.     P     
  2197.  
  2198.     The abbreviated forms of the PLINE command are PLI and P.
  2199. PLINE executes the next n high-level program statements (default is 
  2200. one high-level statement).  If a statement contains a call to a 
  2201. procedure, the entire process of procedure entry and procedure return 
  2202. is treated as one statement.
  2203.  
  2204.     If you want to step into the called procedure, use the LINE
  2205. command instead.
  2206.  
  2207. Examples:  
  2208.     ->PLINE 10            
  2209.     ->PLI
  2210.     ->P 5
  2211.  
  2212. See Also:
  2213.     Go, Step, PStep, Line, LOAd, RUN, B
  2214. Syntax:
  2215.     POInter [address] [= expression [, expression]...]
  2216.                       [[TO] address [= expression   ]]
  2217.                       [LENgth n   [= expression     ]]
  2218.  
  2219.     Displays or alters memory contents in pointer scope.  The 
  2220. base of two addresses that define an address range must be the same. 
  2221. For example, POINTER 200:40 TO 300:300 is invalid.
  2222.  
  2223.     Depending on the current setting of the USE command, the 
  2224. offset of the pointer may be 16-bit or 32-bit.
  2225.  
  2226. Examples:
  2227.     ->POI 40
  2228.     ->POINTER 100:40 TO 100:200
  2229.     ->POI &pointer_buf LENGTH 20
  2230.     ->POINTER DS:SI = 9:6, CS:IP, SS:BP+SP
  2231.     ->POI pointer_array LEN 100 = 0:0
  2232.  
  2233. See Also:
  2234.     BYTe, CHAr, WORd, DWOrd, FLOat, DOUble, QWOrd, TREal
  2235. Syntax:
  2236.     PROlog [ON ]
  2237.            [OFF]
  2238.  
  2239.     Enables, disables, or displays the status of automatic prolog
  2240. execution.  If enabled, function prolog code will be automatically
  2241. executed whenever the function is entered via Go, Line, or Pline.
  2242. PROLOG is disabled by default.
  2243.  
  2244. Example:
  2245.     ->PRO ON
  2246.  
  2247. See Also:
  2248.     ENV, Go, Line, Pline, B
  2249. Syntax:
  2250.     PSTep [n]
  2251.     PS
  2252.  
  2253.     PSTEP executes the next n assembly-level instructions (the
  2254. default is one instruction).  If a CALL or INT instruction is PSTEPed,
  2255. the entire subroutine is executed as if it were a single instruction.
  2256.  
  2257. Examples:
  2258.     ->PS
  2259.     ->PS 3
  2260.  
  2261. See Also:
  2262.     Go, Step, Line, Pline, LOAd, RUN, B
  2263. Syntax:
  2264.     PSTep [n]
  2265.     PS
  2266.  
  2267.     PSTEP executes the next n assembly-level instructions (the
  2268. default is one instruction).  If a CALL or INT instruction is PSTEPed,
  2269. the entire subroutine is executed as if it were a single instruction.
  2270.  
  2271. Examples:
  2272.     ->PS
  2273.     ->PS 3
  2274.  
  2275. See Also:
  2276.     Go, Step, Line, Pline, LOAd, RUN, B
  2277. Syntax:
  2278.     PUT filename MACro [macro_name  [, macro_name]...]  
  2279.  
  2280.     Writes some or all macro definitions to a specified file.
  2281.  
  2282. Examples:
  2283.     ->PUT mac.inc MAC  //Write all macro definitions
  2284.                 //to the file MAC.INC
  2285.     ->PUT ABC.INC MAC AA,BB,CC     //Write macro 
  2286.         //definitions AA,BB, CC TO the file ABC.INC
  2287.  
  2288. See Also:
  2289.     MACro, DIRectory MACro, REMove MACro, DISplay MACro,
  2290.     INClude, EDIt, MLIst
  2291.     Type PUT for help.
  2292. Syntax:
  2293.     QUIt
  2294.  
  2295.     Exits from the debugger.  This command closes all opened files
  2296. and deletes all temporary files that are created by the debugger.  When
  2297. in remote mode, unlike EXIT, QUIT leaves the remote monitor running and
  2298. ready to connect to another remote debugger invocation.
  2299.  
  2300. Example:  
  2301.     ->QUIT
  2302.  
  2303. See Also:
  2304.     EXIt
  2305. Syntax:
  2306.     QWOrd [address] [= expression [, expression]...]
  2307.                     [[TO] address [= expression   ]]
  2308.                     [LENgth n   [= expression     ]]
  2309.  
  2310.     Displays or alters memory contents in double quad-word scope.
  2311. The base of two addresses that define an address range must be the 
  2312. same. For example, QWORD 200:40 TO 300:300 is invalid.
  2313.  
  2314. Examples:
  2315.     ->QWORD 40 //Display quad-word content of address DS:40
  2316.     ->QWORD 100:40 TO 100:200
  2317.     ->QWORD &unsigned_long_buf LENGTH 20
  2318.     ->QWORD DS:SI = 23, 234Q, 4+6, AL, 38T
  2319.     ->QWORD unsigned_long_array LEN 100 = 0
  2320.  
  2321. See Also:
  2322.     BYTe, CHAr, WORd, DWOrd, FLOat, DOUble, POInter, TREal
  2323. Syntax:
  2324.     R287
  2325.  
  2326.     Displays 80287 status and registers.
  2327.  
  2328. Example:
  2329.     ->R287
  2330.  
  2331. See Also:
  2332.     R387, REGister
  2333. Syntax:
  2334.     R387
  2335.  
  2336.     Displays 80387 status and registers.
  2337.  
  2338. Example:
  2339.     ->R387
  2340.  
  2341. See Also:
  2342.     R287, REGister
  2343. Syntax:
  2344.     RADix [HEX    ] 
  2345.           [DECimal]
  2346.           [OCTal  ]
  2347.           [BINary ]
  2348.  
  2349.     Examines or sets radix.  Default radix is decimal.  The 
  2350. qualifiers HEX, DEC, OCT, and BIN indicate hexadecimal, decimal, octal 
  2351. and binary, respectively.
  2352.  
  2353. Examples:
  2354.     ->RAD        // Examines current radix
  2355.     ->RAD HEX    // Sets radix to hexadecimal
  2356.  
  2357. See Also:
  2358.     BINary, DECimal, HEX, OCTal
  2359. Syntax:
  2360.     REAd symbol [, symbol]... [FROm n]  
  2361.  
  2362.     Reads in symbol values from specified file n which is opened
  2363. using the OPEN command.  Default is from user's terminal.
  2364.  
  2365. Examples:  
  2366.     ->READ a, *ptr_to_byte, array[4][3] FROM 2
  2367.     ->READ struct.member, ptr_str->field
  2368.  
  2369. See Also:
  2370.     WRIte, OPEn, CLOse, INClude
  2371. Syntax:
  2372.     REEvaluate [ON ]
  2373.                [OFF]
  2374.  
  2375.     Enables or disables expression reevaluation for the EXAmine
  2376. command and the Symbol:Examine window.  If neither ON nor OFF is
  2377. specified, the current state of reevaluation is displayed.
  2378.  
  2379.     If enabled, examined expressions are reevaluated every
  2380. time that the value of an expression may have changed.  Otherwise,
  2381. the expressions are evaluated only once and the address of the
  2382. resulting lvalues are watched for a change of contents.  By default,
  2383. REEvaluate is OFF.
  2384.  
  2385.     As an example, consider examining the expression foo[i]
  2386. when i = 3.  With REEvaluate ON, when i changes, a different
  2387. element of foo will be displayed.  With REEvaluate OFF, a change
  2388. in i will have no effect, and foo[3] will still be displayed.
  2389.  
  2390. Examples:
  2391.     ->REEVAL ON    // reevaluate watched lvalues
  2392.  
  2393. See Also:
  2394.     EXAmine, EVAluate
  2395. Syntax:
  2396.     REGister
  2397.     reg_name[=expression] [, reg_name[=expression]]...
  2398.     reg_name:reg_name[=expression:expression]
  2399.  
  2400.     Displays or changes 80386 register values.  
  2401.  
  2402. GENERAL PURPOSE REGISTERS
  2403.     EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP,
  2404.     AX, BX, CX, DX, SI, DI, BP, SP,
  2405.     AH, AL, BH, BL, CH, CL, DH, DL.
  2406. SEGMENT REGISTERS
  2407.     DS, ES, FS, GS, SS, CS.
  2408. INSTRUCTION POINTER
  2409.     EIP, IP.
  2410. STATUS REGISTERS
  2411.     AF, CF, DF, IF, IOPL, NT, OF, PF, RF, SF, TF, VM, ZF,
  2412.     EFG.
  2413. SYSTEM TABLE REGISTERS
  2414.     GDTBAS, GDTLIM, IDTBAS, IDTLIM, LDTR, TR.
  2415. CONTROL REGISTERS
  2416.     CR0, CR2, CR3.
  2417. 80287/387 REGISTERS
  2418.     CW, TW, SW, ST0..ST7
  2419.  
  2420. Examples:
  2421.     ->REG  //Displays current register values
  2422.     ->AX, BL, CH      //Displays register AX, BL, AND CH
  2423.     ->AH=56Q, CL=101Y, IP=78t //Changes register values
  2424.     ->GDTLIM
  2425.     ->cs:ip
  2426.     ->AX:BL = (678 + 6) : 4445
  2427.     ->CS:IP = &START
  2428.  
  2429. See Also:
  2430.     DT, GDT, IDT, LDT, PD, TSS
  2431. Syntax:
  2432.     RELoad
  2433.  
  2434.     Reloads the last program loaded, but unlike LOAd, breakpoints
  2435. are not cleared.
  2436.  
  2437. Example:
  2438.     ->REL
  2439.  
  2440. See Also:
  2441.     LOAd, RERun, B
  2442.     Type REMove MACro for help.
  2443. Syntax:
  2444.     REMove MACro [macro_name [, macro_name]...]  
  2445.  
  2446.     Removes all or some macro definitions.
  2447.  
  2448. Examples:
  2449.     ->REM MAC        //Remove all macro definitions
  2450.     ->REM MAC AA, BB, CC  //Remove macro AA, BB, and CC
  2451.  
  2452. See Also:
  2453.     :, MACro, DIRectory MACro, DISplay MACro, INClude,
  2454.     EDIt, MLIst
  2455. Syntax:
  2456.     REPeat  [n]  
  2457.     [command]
  2458.        :
  2459.     UNTil expression  
  2460.  
  2461.     Executes the group of commands included between REPEAT and
  2462. UNTIL, then evaluates the expression. If it is FALSE (zero), the
  2463. group of commands are executed again and the expression is 
  2464. reevaluated. The loop continues until the termination condition is
  2465. satisfied, i.e. the expression becomes TRUE (non-zero) or has looped n 
  2466. times if n is specified.
  2467.  
  2468. Examples:
  2469.     ->MACRO test1    //Define a macro that
  2470.     MD>REPEAT %0     //at most repeats %0 times.
  2471.     MD>A1 = A1 / 2.          
  2472.     MD>B = ROUTINE( A )  //Call routine, return value to B
  2473.     MD>UNTIL B == %1     //Break if B equals to %1
  2474.     MD>EMACRO
  2475.     ->
  2476.  
  2477. See Also:
  2478.     UNTil, IF, FOR, WHIle, MACro, INClude
  2479. Syntax:
  2480.     RERun
  2481.  
  2482.     Repeats the last LOAd and RUN commands.
  2483.  
  2484. Example:
  2485.     ->RER
  2486.  
  2487. See Also:
  2488.     RUN, LOAd, RELoad, Go
  2489. Syntax:
  2490.     RESet
  2491.  
  2492.     Resets the processor registers to initial system values.
  2493.  
  2494. Example:
  2495.     ->RESET
  2496.  
  2497. See Also:
  2498.     REGister
  2499. Syntax:
  2500.     RUN [command_line]
  2501.  
  2502.     Specify command-line arguments for a program and execute,
  2503. reloading if necessary.
  2504.  
  2505. Examples:
  2506.     ->RUN
  2507.     ->RUN one two three
  2508.  
  2509. See Also:
  2510.     RERun, LOAd, Go
  2511. Syntax:
  2512.     SENsitive [ON ]
  2513.               [OFF]
  2514.  
  2515.     Sets, disables, or examines the status of case sensitivity in 
  2516. matching symbol names.
  2517.  
  2518.     If SENsitive is off, symbolic reference will be case insensitive.
  2519. If SENsitive is on, symbolic reference will be case sensitive.  The
  2520. default setting is SENsitive OFF.
  2521.  
  2522. Examples:
  2523.     ->SEN     //Examines case sensitivity.
  2524.     ->SEN ON  //Makes symbolic reference case sensitive.
  2525.     ->SEN OFF //Makes symbolic reference case insensitive.
  2526.  
  2527. See Also:
  2528.     EVAluate, SYMbol
  2529. Syntax:   
  2530.     SET $module_name = filename
  2531.  
  2532.     Associates the specified file to the specified module name.  
  2533. The specified file is treated as the source listing file for the 
  2534. specified module.
  2535.  
  2536. Examples: 
  2537.     ->SET $MAIN = START.C      //Default is MAIN.C
  2538.     ->SET $MEMORY = STORAGE.C  //Default is MEMORY.C
  2539.  
  2540. See Also:
  2541.     SOUrce, DIRectory MODule
  2542. Syntax:
  2543.     SOUrce [procedure_name]
  2544.            [$module_name  ]
  2545.            ["filename"    ]
  2546.  
  2547.     Enters the source window for the specified procedure, module,
  2548. or file.
  2549.  
  2550. Examples:
  2551.     ->SOU $MAIN
  2552.     ->SOU RFREE
  2553.     ->SOU "prog.c"
  2554.  
  2555. See Also:
  2556.     DIRectory MODule, SET, SPAth, VIEw, NUMber, #
  2557. Syntax:
  2558.     SPAth [=] [[drive:]path [; [drive:]path]...]
  2559.  
  2560.     Displays or sets the search path for source files.  Source
  2561. files are always searched for in the current directory first.  A comma
  2562. or a semicolon may be used to separate the directories.
  2563.  
  2564. Examples:
  2565.     ->SPA    // display the current path
  2566.     ->SPA c:\proj1\src;d:\proj2\src
  2567.     ->SPA c:\,c:\src
  2568.  
  2569. See Also:
  2570.     SOUrce, DIRectory MODule, SET
  2571. Syntax:
  2572.     STEp [n] 
  2573.     S    
  2574.  
  2575.     The abbreviated forms of the STEP command are STE and S.
  2576. STEP causes the program to execute n instructions before breaking.
  2577. If n is not specified, the default is 1.
  2578.  
  2579. Examples:  
  2580.     ->STEP 10    // Execute 10 program instructions.
  2581.     ->STE        // Execute one instruction only.
  2582.     ->S          // Execute one instruction only.
  2583.     ->S 5         // Execute 5 instructions.
  2584.  
  2585. See Also:
  2586.     PStep, Line, Pline, Go, RUN, LOAd
  2587. Syntax:          
  2588.     STn 
  2589.  
  2590.     where n = 0 to 7.
  2591.  
  2592.     Displays or updates the 80387 stack elements and the
  2593. corresponding tag words.  The value of the stack element is first
  2594. displayed as a treal number.  It can be altered by entering a new
  2595. value. A carriage return will preserve the contents.  If a carriage
  2596. return is entered, the stack element is once again displayed, but
  2597. this time it is displayed as ten hexadecimal values. It can be
  2598. altered by entering a new set of ten hexadecimal values.  A carriage
  2599. return will preserve the contents.  Next, the tag word that
  2600. corresponds to the stack element is displayed.  It can be altered by
  2601. entering a new value. A carriage return will preserve the contents.
  2602.  
  2603. Examples:
  2604.     ->ST4
  2605.       ST(4) = 0./ <CR>
  2606.       ST(4) = 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 
  2607.             / 0F1H,0FFH,0F7H,98H,00H,56H,43H,69H,8AH,7CH
  2608.       TAG(4) = 3 / 0
  2609.     ->ST3
  2610.       ST(3) = 7.8 / 0.0
  2611.       TAG(3) = 0 / 3
  2612.  
  2613. See Also:
  2614.     CW, R387, SW, TW
  2615. Syntax:
  2616.     STEp [n] 
  2617.     S    
  2618.  
  2619.     The abbreviated forms of the STEP command are STE and S.
  2620. STEP causes the program to execute n instructions before breaking.
  2621. If n is not specified, the default is 1.
  2622.  
  2623. Examples:  
  2624.     ->STEP 10    // Execute 10 program instructions.
  2625.     ->STE        // Execute one instruction only.
  2626.     ->S          // Execute one instruction only.
  2627.     ->S 5         // Execute 5 instructions.
  2628.  
  2629. See Also:
  2630.     PStep, Line, Pline, Go, RUN, LOAd
  2631. Syntax:
  2632.     STRucture structure_name \{
  2633.         {data_type}  field_name  [, field_name]...  
  2634.         {<symbol> }                  
  2635.              :                       
  2636.              :                       
  2637.     \}
  2638.  
  2639.     Defines a data structure.
  2640.  
  2641. Example:
  2642.     ->STR STRTYP {
  2643.     STR>WORD AA, BB, CC
  2644.     STR>CHAR *P_TO_CHAR, CHAR_ARRAY[7][8]
  2645.     STR>LONG *LL[6], (*FF)[5]
  2646.     STR>STR STRTYP *LINK
  2647.     STR><AA> ZZ
  2648.     STR>}
  2649.     ->
  2650.  
  2651. See Also:
  2652.     DIRectory STRucture, DISplay STRucture, SYMbol, TYPe
  2653. Syntax:
  2654.     SW
  2655.  
  2656.     Displays or changes the value of the 80387 status word. The
  2657. value of the status word is displayed followed by a slash.  The
  2658. contents can be altered by entering a new hexadecimal value.  A 
  2659. carriage return will preserve the contents.
  2660.  
  2661. Examples:
  2662.     ->SW
  2663.       STATUS WORD = 0000H / 1324H
  2664.     ->SW
  2665.       STATUS WORD = 1324H / <CR>
  2666.  
  2667. See Also:
  2668.     CW, R387, ST, TW
  2669. Syntax:
  2670.     SWItch expression
  2671.     CASe  constant_expression :  
  2672.     [command]
  2673.        :
  2674.     [CASe constant_expression :  ]
  2675.     [command]
  2676.        :
  2677.     [DEFault :  ]
  2678.     [command]
  2679.        :
  2680.     ESWitch  
  2681.  
  2682.     A multi-way decision maker that tests whether an expression
  2683. matches one of a number of constant values, and branches accordingly.
  2684. If none is matched, control flow is branched to the DEFAULT case. 
  2685. After having executed the group of commands associated with the 
  2686. matched case, control flow falls through to the next CASE/DEFAULT 
  2687. unless a BREAK command is encountered.  The BREAK command causes an 
  2688. immediate exit from the SWITCH.
  2689.       
  2690. Examples:  
  2691.     ->MACRO TEST1        //Define a macro. 
  2692.     MD>SWITCH A
  2693.     MD>  CASE 0 :
  2694.     MD>       B = 10
  2695.     MD>       BREAK
  2696.     MD>  CASE 1 :
  2697.     MD>       B = B * B
  2698.     MD>       BREAK
  2699.     MD>  DEFAULT:
  2700.     MD>       LINE 5
  2701.     MD>ESWITCH                
  2702.     MD>EMACRO
  2703.     ->
  2704.  
  2705. See Also:
  2706.     ESWitch, IF, FOR, WHIle, REPeat, MACro, INClude
  2707. Syntax:
  2708.     SYMbol  [GLObal      ]
  2709.             [LOCal       ]
  2710.             [$module_name]
  2711.             [symbol_name ]
  2712.             [address     ]
  2713.             ["reg_exp"   ]
  2714.  
  2715.     SYMbol  [ON ]
  2716.             [OFF]
  2717.  
  2718.     Displays symbol declarations and controls the display of
  2719. symbols in disassembly.  If GLOBAL is specified, only the global
  2720. symbols are displayed.  Likewise, if LOCal is specified, only
  2721. the currently active local symbols are displayed.
  2722.  
  2723.     If a module name is specified, the symbols belonging to
  2724. the specified module are displayed.  If a symbol name is specified,
  2725. the declaration for that symbol is displayed.
  2726.  
  2727.     If an address is specified, the global symbol with the
  2728. closest matching address is displayed.  If a string is specified,
  2729. the symbols matching the regular expression in quotes will be
  2730. displayed.
  2731.  
  2732.     ON and OFF enable and disable the display of symbolic
  2733. addresses in disassembly listings.  The default is SYMbol ON.
  2734.  
  2735. Examples:
  2736.     ->SYMBOL 
  2737.     ->SYM GLO
  2738.     ->SYM LOC
  2739.     ->SYM $MODULE_AA
  2740.     ->SYM main
  2741.     ->SYM CS:100H
  2742.     ->SYM "i38[67]"
  2743.     ->SYM OFF
  2744.  
  2745. See Also:
  2746.     EVAluate, TYPe, STRucture, DASm
  2747. Syntax:
  2748.     TIMe
  2749.  
  2750.     Displays the current time and date.
  2751.  
  2752. Example:
  2753.     ->TIME
  2754. Syntax:
  2755.     TRAce [ON ]
  2756.           [OFF]
  2757.  
  2758.     Enables or disables data collection in the trace buffer
  2759. during program execution.
  2760.  
  2761. Examples:
  2762.     ->TRA
  2763.     ->TRA ON
  2764.     ->TRA OFF
  2765.  
  2766. See Also:
  2767.     DISplay TRAce
  2768. Syntax:
  2769.     TREal [address] [= expression [, expression]...]
  2770.                     [[TO] address [= expression   ]]
  2771.                     [LENgth n   [= expression     ]]
  2772.  
  2773.     Displays or alters memory contents in treal scope.  The 
  2774. base of two addresses that define an address range must be the same.
  2775. For example, TREAL 200:40 TO 300:300 is invalid.
  2776.  
  2777. Examples:
  2778.     ->TRE 40
  2779.     ->TREAL 100:40 TO 100:200
  2780.     ->TRE &REAL LENGTH 20
  2781.     ->TREAL DS:SI = 8.8, 3.5+1, 0.0
  2782.     ->TRE pointer_to_treal LEN 100 = 0:0
  2783.  
  2784. See Also:
  2785.     FLOat, DOUble
  2786. Syntax:
  2787.        TSS [ \[selector_expr\] [.tss_element [=expr] ] ]
  2788.  
  2789.        where selector_expr is an expression that computes to a 16-bit number 
  2790. or the name of the TR register which is interpreted as a selector;
  2791. tss_element is LINk, {[E]SP|SS}{0|1|2}, or a register; expr is an 
  2792. expression.  The notations \[ and \] indicate that the square bracket 
  2793. pair is part of the required syntax.
  2794.  
  2795.        Displays or modifies the contents of a task state segment.  TSS 
  2796. descriptors may reside only in the GDT.  A selector that references a
  2797. TSS descriptor in the GDT has bit 2 equals 0.  If you know the GDT entry 
  2798. index which contains the TSS descriptor, you can obtain the corresponding 
  2799. selector by multiplying the index by 8.
  2800.  
  2801. Example:
  2802.        ->TSS  //Displays the current TSS.
  2803.        ->TSS[TR]  //Displays the current TSS.  Same as TSS.
  2804.        ->TSS[31t*8] //Displays the TSS whose descriptor is at GDT[31t].
  2805.        ->TSS[31t*8].eax //Displays the EAX field of the TSS whose descriptor 
  2806.                           //is at GDT[31t].
  2807.        ->TSS[8].LINK=6890  //Modifies the link field of the TSS
  2808.              //whose descriptor is at GDT[1].
  2809.  
  2810. See Also:
  2811.        DT, GDT, IDT, LDT, PD, REGister
  2812. Syntax:
  2813.     TYPe {data_type} symbol [, symbol]... [AT address]  
  2814.          {<symbol> }
  2815.  
  2816.     Declares or redefines symbols. The data type can be BYTe, 
  2817. CHAr, WORd, SHOrt, DWOrd, LONg, INTeger, FLOat, DOUble, TREal,
  2818. or a STRuct.  Note that QWOrd is not supported in this command.
  2819.  
  2820.     The <...> construct can be used to declare the variable to be
  2821. of the same type as the variable enclosed in the <...> pair.
  2822.  
  2823. If no AT address is specified, the symbol uses internal debugger memory.
  2824.  
  2825. If a POInter is declared, the size of offset, 16-bit or 32-bit, depends
  2826. on the setting of the USE or WIDth command.
  2827.  
  2828. Examples:  
  2829.     ->TYPE long *ptr_to_long, long_buf[8] at &buf
  2830.     ->TYPE CHAR CH1, CH2[3][4], (*CH3)[7]
  2831.     ->TYPE struct str_aa str1, *str2, str3[7] at &str_buf
  2832.     ->TYPE <yy> xx AT 200:10              
  2833.     ->type char $m##pro#a, ##pp#b, #c at 8:9
  2834.  
  2835. See Also:
  2836.     SYMbol, STRucture
  2837. Syntax:
  2838.     TW
  2839.  
  2840.     Displays or changes the value of the 80387 tag word. The
  2841. value of the tag word is displayed followed by a slash.  The contents
  2842. can be altered by entering a new hexadecimal value.  A carriage return
  2843. will preserve the contents.
  2844.  
  2845. Examples:
  2846.     ->TW
  2847.       TAG WORD = 0000H / 0FFFFH
  2848.     ->TW
  2849.       TAG WORD = FFFFH / <CR>
  2850.  
  2851. See Also:
  2852.     CW, R387, ST, SW
  2853. Syntax:
  2854.     U [addr1 [TO addr2]] [MIX]
  2855.              [LENgth n]
  2856.  
  2857.     Displays a block of memory in 80386 assembly mnemonic form.
  2858. The MIX qualifier causes source to be mixed in with the disassembly
  2859. display.  This command is identical to the DASM command.
  2860.  
  2861. Examples:
  2862.     ->U       //Default address is CS:EIP
  2863.     ->U CS:(EIP+5) MIX
  2864.     ->U &MAIN LEN 20
  2865.  
  2866. See Also:
  2867.     VIEw, SOUrce, USE
  2868. Syntax:
  2869.     REPeat  [n]  
  2870.     [command]
  2871.        :
  2872.     UNTil expression  
  2873.  
  2874.     The UNTil command is used to terminate a REPeat loop.
  2875.  
  2876. Example:   
  2877.     ->MACRO test1    //Define a macro that
  2878.     MD>REPEAT %0     //at most repeats %0 times.
  2879.     MD>A1 = A1 / 2.          
  2880.     MD>B = ROUTINE( A )  //Call routine, return value to B
  2881.     MD>UNTIL B == %1     //Break if B equals to %1
  2882.     MD>EMACRO
  2883.     ->
  2884.  
  2885. See Also:
  2886.     REPeat, WHIle, FOR, IF
  2887. Syntax:
  2888.     UP [n]
  2889.  
  2890.     Walks up the call stack allowing access to the source and
  2891. local variables of any active procedure.  If no argument is specified,
  2892. the stack is walked up one level.
  2893.  
  2894.     If any execution command or command that directly changes
  2895. the CS:EIP or EBP is given by the user while an UP or DOWN command
  2896. is in effect, a DOWN HOME action is automatically performed before
  2897. the command is executed.
  2898.  
  2899. Examples:
  2900.     ->UP    // walk up one level
  2901.     ->UP 3    // walk up three levels
  2902.  
  2903. See Also:
  2904.     DOWn, CALlstack, SOUrce, SYMbol
  2905. Syntax:
  2906.     USC
  2907.  
  2908.     Displays the user's application output screen when using the
  2909. same display for both debugger and application.
  2910.  
  2911. Example:
  2912.     ->USC
  2913. Syntax:
  2914.     USE  [16]
  2915.          [32]
  2916.  
  2917.     Displays or modifies the default setting for disassembling 
  2918. code.  This setting causes the debugger to (1) assume 16-bit 
  2919. or 32-bit code when disassembling code from linear or physical 
  2920. addresses using the DASM command, (2) assume 16-bit or 32-bit offset 
  2921. when handling POInter type, (3) assume 16-bit or 32-bit offset when 
  2922. a symbol is declared as pointer type using the TYPE command.  This
  2923. command is identical to the WIDTH command.
  2924.  
  2925. Examples:
  2926.     ->USE 16    //Sets to 16-bit code.
  2927.     ->USE        //Displays the current setting.
  2928.  
  2929. See Also:
  2930.     DASm, TYPe, STRucture, POInter
  2931. Syntax:
  2932.     VERsion  
  2933.  
  2934.     Displays the debugger version number.
  2935.  
  2936. Example:  
  2937.     ->VER
  2938. Syntax:
  2939.     VIEw [HL ]
  2940.          [ASM]
  2941.          [MIX]
  2942.  
  2943.     Displays or modifies the mode of source line display in
  2944. the source window.  HL sets the source window to display high level
  2945. language source statements only.  ASM sets the source window to 
  2946. display assembly language mnemonics only.  MIX sets the source
  2947. window to display high level language source statements interleaved
  2948. with assembly language mnemonics.  If no parameter is specified,
  2949. it displays the current display mode of the source window.
  2950.  
  2951. Example:
  2952.     ->VIEW    //Displays current setting.
  2953.     ->VIEW MIX //Displays high level source and assembly.
  2954.  
  2955. See Also:
  2956.     SOUrce, NUMber, #
  2957. Syntax:
  2958.     VeRiFy [ON ]
  2959.            [OFF]
  2960.  
  2961.     Displays, enables or disables the verification of memory
  2962. segment accesses.
  2963.  
  2964. Examples:
  2965.     ->VRF
  2966.     ->VRF ON
  2967.     ->VRF OFF
  2968.  
  2969. See Also:
  2970.     BYTe, CHAr, WORd, DWOrd, FLOat, DOUble, QWOrd, POInter, TREal
  2971. Syntax:
  2972.     WAIt
  2973.  
  2974.     Stops command processing, resumes when user presses any key
  2975. from the keyboard.  The WAIt command is useful in command files for 
  2976. demonstrations or interactive automated testing.  A typical usage is
  2977. to halt the display until the user presses a key.
  2978.  
  2979. Example:
  2980.     ->WAIT
  2981.  
  2982. See Also:
  2983.     PAUse, INClude
  2984. Syntax:
  2985.     WHIle expression  
  2986.     [command]
  2987.        :
  2988.     EWHile  
  2989.  
  2990.     In the WHILE-EWHILE loop command, the expression is 
  2991. evaluated first.  If it is TRUE (non-zero), the group of commands 
  2992. listed between WHILE and EWHILE are executed and the expression 
  2993. is evaluated again. This loop is repeated until the expression 
  2994. becomes FALSE (zero).
  2995.  
  2996. Examples:  
  2997.     ->MACRO TEST1       //Define a macro.
  2998.     MD>WHILE NOT_ZERO
  2999.     MD>LINE         //Single line.
  3000.     MD>NOT_ZERO         //Display NOT_ZERO value.
  3001.     MD>EWHILE                
  3002.     MD>EMACRO
  3003.     ->
  3004.  
  3005. See Also:
  3006.     EWHile, REPeat, FOR, IF, SWItch, MACro, INClude
  3007. Syntax:
  3008.     WIDth  [16]
  3009.            [32]
  3010.  
  3011.     Displays or modifies the default setting for disassembling 
  3012. code.  The default setting causes the debugger to (1) assume 16-bit 
  3013. or 32-bit code when disassembling code from linear or physical 
  3014. addresses using the DASM command, (2) assume 16-bit or 32-bit offset 
  3015. when handling POInter type, (3) assume 16-bit or 32-bit offset when 
  3016. a symbol is declared as pointer type using the TYPE command.  This
  3017. command is identical to the USE command.
  3018.  
  3019. Examples:
  3020.     ->WID 16    //Sets to 16-bit code.
  3021.     ->WID        //Displays the current setting.
  3022.  
  3023. See Also:
  3024.     DASm, TYPe, STRucture, POInter
  3025. Syntax:
  3026.     WORd [address] [= expression [, expression]...]
  3027.                    [TO address [= expression     ]]
  3028.                    [LENgth n   [= expression     ]]
  3029.  
  3030.     Displays or alters memory contents in word scope. The base 
  3031. of two addresses that define an address range must be the same. 
  3032. For example, WORD 200:40 TO 300:300 is invalid.
  3033.  
  3034. Examples:
  3035.     ->WORD 40
  3036.     ->WOR 100:40 TO 100:200
  3037.     ->WORD pointer_to_word LENGTH 20
  3038.     ->WOR DS:SI = 5, 8*6, AX+BX
  3039.     ->WORD word_array LEN 100 = 0:0
  3040.  
  3041. See Also:
  3042.     BYTe, CHAr, DWOrd, FLOat, DOUble, QWOrd, POInter, TREal
  3043. Syntax:
  3044.     WRIte  { "string" }  [, { "string" }]...  [TO  n]  
  3045.            {expression}     {expression}
  3046.  
  3047.     Writes strings or values of expressions to the specified 
  3048. file n which must have been opened using the OPEN command. Default 
  3049. is to the console.
  3050.  
  3051. Examples:  
  3052.     ->WRITE "\tIOPB=", IOPB      //"\t" is a tab.
  3053.     ->WRITE "\nVALUE OF X IS", X      //"\n" is a newline.
  3054.     ->WRITE a[6] + *ptr_to_short + struct.a1 to 3
  3055.     ->WRITE "a1 = ", a1, "a2 = ", a2, "a3 = ", a3
  3056.  
  3057. See Also:
  3058.     REAd, OPEn, CLOse, INClude
  3059.