Adds of WDB: Menu: A menu bar is available by right-clicking on the very first screen line or by pressing . Key shortcuts are , where is in red upper case. The menus are: File: Aread *.COF Aread *.ABS Load *.DB Read *.DAT Reload Load WDB.RC Save WDB.RC Quit Context: Trace Overtrace Verbose trace Verbose overtrace Next Skip Go Go Until Continue Wait Stop Reset Open: Registers Disassembly Memory dump Source level Symbols Breakpoints Checkpoints Modules Directory Window: Close Full Iconify Duplicate Lock Cycle Close all Iconify all Activate: Top: Windows: Overview: The number of windows is constrained by you hard disk size :=). Windows are not bound to screen (except screen top). Windows cosmetic: A window is built as: - a title bar: [close] : ... [duplicate][iconify][full] - a left border - a right border where you can click to resize the window horizontally - a bottom border where you can click to resize the window vertically - at the cross of right border and bottom border, you can click to resize both horizontally and vertically. [close] closes the window. [duplicate] duplicates the window. [iconify] toggles icon/normal mode. [full] toggles full/normal mode. No resizing is allowed when iconified. Windows management: 1) Mouse: This is what you would expect. Click left on a gadget to activate its function. This will automatically top the window, unless you also right clicked. 2) Keyboard: Pressing [Esc] while in console window will lead you to Windows Keyboard Control. In this mode, some keys are active: [Tab] goto next window. [*],[/],[+],[-] resize window. [1] ~ [9] - [5] move window. [0] full/unfull window. [.] icon/unicon window. [5] duplicate window. [Esc] quit Windows Keyboard Control and return to console window. [Alt][1]~[9] goto window 1~9. Default windows: 0:Console window: It emulates RDBJAG's behaviour. One major difference is that when a context switching is detected, the registers value (x) are not printed, they are updated in the registers window instead (unless you've reset the xenable variable to 0). 1:Registers (68k) window: Contains about the same informations as the 'x' command. A7 means SSP. Click on a register value allows change of this value. 2:Disassembly (68k) window: Contains the 68K disassembly. Use <a> or click in the address field to set start address. Use <b> or click in the column to the right of address field to set or remove (toggle) a breakpoint. Use <j> to set the PC to the window start address. 3:Memory dump window: Contains the memory dump. Use <a> or click in the address field to set start address. Use <f> to find a value/string. Use <n> to find next occurence. Use <b>, <w>, <l> to set display type (Byte, Word, Long). Use <e> or click in hex field or ascii field to enter edit mode. In edit mode: in hex field: <0>-<9>/<A>-<F> to change values <+>/<-> increment/decrement the current field value. in ASCII field: any ASCII key to change values to toggle between hex and ASCII fields, press <tab>. to leave edit mode, press <esc> The associated menu contains toggles for <b>yte, <w>ord or <l>ong size, as well as the starting <a>ddress, <e>dit, <f>ind and find <n>ext options. 4:Source level window: Contains the program source files. Use <a> or click in the first line to change address/filename/line number. Use <b> or click in column to the right of line numbers field to set or remove (toggle) a breakpoint. 5:Symbols window: Contains the program' symbols. Single-click or use arrow keys to move the cursor. Double-click or press enter to open a memory dump window starting from the highlighted symbol's value. The associated menu allows to open a disassembly or memory dump window starting from the highlighted symbol's value. 6:Breakpoints window: Contains the breakpoints. The associated menu allows to create a new breakpoint, delete the highlighted breakpoint or all breakpoints. 7:Checkpoints window: Contains the memory checkpoints. The associated menu allows to create a new checkpoint, delete the highlighted checkpoint or all checkpoints. 8:Modules window: Contains the program's modules. Single-click or use arrow keys to move the cursor. Double-click or press enter to open a corresponding source level window. The associated menu allows to open or purge the highlighted module or to purge all modules. 9:Directory window: Browse files in a directory. Directories and drive letters are in upper case. Single-click or use arrow keys to move the cursor. Double-click or press enter on a file to aread, load or read it. Double-click or press enter on a directory to enter it. Single-click on the very first line (containing the browsed path) to change file mask selection (default is * on MS/DOS or *.* on Atari). Double-click on the very first line (containing the browsed path) to change wdb's current directory. The associated menu contains the file mask selection and wdb's current directory options. Script functions: WINDLIST will list currently opened windows. WINDOPEN will open a new window. WIND2TOP will top an opened window. WINDMOVE will move an opened window. WINDSIZE will resize an opened window. WINDFULL will toggle the window to its maximum size (usually screen size). WINDICON will iconify/uniconify an opened window. WINDDUPL will duplicate an opened window. WINDLOCK will lock to an expression an opened window ("pc" is special). WINDCLSE will close an opened window. All functions take as 1st argument the window number, except WINDLIST, WINDOPEN and eventually WINDLOCK. Syntaxes are: WINDLIST (no argument) WINDOPEN <type> [<x> <y> <w> <h>] ["expression"] where: type is one of: 1: 68K registers window 2: 68k disassembly window 3: memory dump window 4: source level window 5: symbols window 6: breakpoints window 7: checkpoints window 8: modules window 9: directory window <x> <y> <w> <h> are optionnal, "expression" is the optionnal lock expression (Disassembly and source level windows are default locked with "pc") or WINDOPEN <"title"> <x> <y> <w> <h> <proc_name> ["expression"] (see below: User windows) WIND2TOP <num> Ex: wind2top 3 WINDMOVE <num> <dx> <dy> Ex: windmove 3 -1 2 WINDSIZE <num> <dx> <dy> Ex: windsize 3 -4 1 WINDFULL <num> Ex: windfull 3 WINDICON <num> Ex: windicon 3 WINDDUPL <num> Ex: winddupl 3 WINDLOCK <num> "expression" Ex: windlock 3 "a0+4" will lock window 3 on the address "a0+4", or WINDLOCK <num> Ex: windlock 3 will unlock window 3, or WINDLOCK Ex: windlock will list locked windows. WINDCLSE <num> Ex: windclse 3 Variables (all read-only): screenw is the screen width in caracters. screenh is the screen height in caracters. windnum is the current window number (means: window currently printed). windmsg is the current window message. windw is the current window width in caracters. windh is the current window height in caracters. User windows: One can define a window where a script procedure can print informations. The way to do that is: windopen "my title" x y w h myproc and myproc is procedure myproc print "my informations" . PLEASE WATCH CAREFULLY THE SAMPLE SCRIPT WINS.DB. WARNING: if your script is endless, it will not work properly and you will have to abort with <ctrl_c>. For instance, the standard script "od.db" will not work properly inside a window. RC file for WDB: At start but after looking for the RDB.RC file, WDB searches its config file WDB.RC which should be a script file. It should contains windopen commands that will enable creation of any required windows at start. Only the console window is created before its execution. If the RC file is not found, WDB opens a standard screen containing window types 1, 2 and 3. It is always possible to reload or save this file from the File menu.