
-------------------------------------------------------------------------------
                            WUDEBUG 0.1 Alpha
-------------------------------------------------------------------------------

################################ CREDITS ######################################

  Thanks to Simon Tatham and Julian Hall for the instruction decode routine!
  It was taken from the NASM 0.93 source code distribution and works without
  any kind of modification in the debugger. Thanks again!



################################# LEGAL #######################################

  THIS SOFTWARE IS FREEWARE. PROVIDED YOU AGREE TO ALL OF THE TERMS OF THIS
  "LEGAL" SECTION, PERMISSION FOR USING THIS SOFTWARE FREE OF CHARGE IS HEREBY
  GRANTED. YOU MAY COPY AND REDISTRIBUTE THIS SOFTWARE, BUT ONLY IN ITS
  UNMODIFIED FORM, INCLUDING A VERBATIM COPY OF THIS DOCUMENTATION. YOU MAY NOT
  CHARGE FOR THIS SOFTWARE EXCEPT FOR A SMALL FEE COVERING THE REDISTRIBUTION
  COSTS.

  THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY KIND OF WARRANTY INCLUDING BUT
  NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANDABILITY OR FITNESS FOR A
  PARTICULAR PURPOSE.

  I, THE AUTHOR, SHALL NOT BE LIABLE FOR ANY KIND OF DAMAGE ARSISING OUT OF THE
  USE, ABUSE OR INABILITY TO USE THIS SOFTWARE, NEITHER SHALL CO-AUTHORS AND
  CONTRIBUTORS.

  YOUR JURISTDICTION MAY NOT ALLOW THE LIMITATION OF WARRANTY OR LIABILITY AS
  STATED ABOVE. IN THESE CASES YOU ARE NOT ALLOWED TO USE THE SOFTWARE AT ALL!
  (sorry!)


################################## Usage ######################################

  WUDEBUG <Filename.Extension> [parameters]

  Optional parameters are taken as parameters for your program. The debugger
  itself does not accept other parameters than the filename of the program
  you want to debug.

  There is a small hack "DB.BAT" you might want to use instead. It allowes you
  to reload the debuggee pressing CTRL F2. Wudebug will exit then with an
  exit code of F2(hex). The batch file checks for this. This is a hack,
  admittedly...


############################# Key definitions #################################

- Global Keys:

  ALT X         -    EXIT
  ALT F5        -    USER SCREEN
  TAB           -    NEXT WINDOW
  SHIFT TAB     -    PREV. WINDOW
  F1            -    HELP
  F7            -    TRACE
  F8            -    SINGLE STEP (SKIP CALLS)
  F9            -    RUN

- Disassembly window:

  UP/DOWN ARROW -    MOVE CURSOR
  PGUP/PGDOWN   -    AS EXPECTED
  CTRL O        -    MOVE CURSOR TO EIP
  CTRL N        -    SET EIP TO CURSOR POS.
  CTRL G        -    MOVE CURSOR TO LOCATION XXXXXXXX
  F2            -    TOGGLE BREAKPOINT
  F4            -    "HERE" (EXECUTE TO CURSOR)

- Register window:

  UP/DOWN ARROW -    AS EXPECTED
  HOME          -    TOP OF WINDOW
  END           -    BOTTOM OF WINDOW
  ENTER         -    ENTER NEW VALUE

- Flags Window  -

  UP/DOWN ARROW -    AS EXPECTED
  HOME          -    TOP OF WINDOW
  END           -    BOTTOM OF WINDOW
  ENTER         -    TOGGLE FLAG

- Memory Dump Window

  ARROW KEYS    -    ...GUESS!
  PAGE UP/DOWN  -    ditto
  ALT C         -    GOTO CS:0
  ALT D         -    GOTO DS:0
  ALT E         -    GOTO ES:0
  ALT F         -    GOTO FS:0
  ALT G         -    GOTO GS:0
  ALT 0 (zero)  -    GOTO LINEAR ADDRESS 0 (zero)
  CTRL G        -    GOTO OFFSET XXXXXXXX
  ENTER         -    ENTER DATA BYTE

- Stack Window

  UP/DOWN ARROW -    AS EXPECTED
  PAGE UP/DOWN  -    ditto
  CTRL O        -    GOTO SS:ESP
  CTRL G        -    GOTO SS:XXXXXXXX
  ENTER         -    ENTER DWORD



################################## Bug reports ###############################

This is an alpha version. If you feel the need to report non-obvious bugs to
me anyway, contact me at tippachm@dialin.deh.de.

Have fun!
Wuschel
