home *** CD-ROM | disk | FTP | other *** search
- VIM version 1.01PD Copyright (c) 1986, 1987 by DDI.
-
- This version of VIM is placed in the public domain by DDI for free,
- non-commercial distribution. All other rights are reserved by DDI.
-
- VIM stands for VIrtual Machine. The program is an interpreter whose language
- is 8088 machine code extended with the real-mode instructions of an 80286,
- with provisions to simulate and/or allow access to the hardware of an XT or
- AT in an addressing space independent of the normal hardware.
-
- VIM was created because a program gone wrong can, and usually will, take out
- everything it can, including the interrupt vector table. This renders even
- debuggers that use NMI (Non-Maskable Interrupt) hardware useless. The
- hardware solution to this problem is either a logic analyzer or an in-circuit
- emulator, both of which are very expensive and require hardware attachments t
- the system under test. VIM, on the other hand, presents a simple software
- solution with most of the power of complex hardware.
-
- The recommended configuration is an AT and 640K of RAM.
-
- The minimum requirements for running VIM are a PC and 320K of RAM.
-
- The VIM interpreter can stop execution at any point, examine or alter memory
- or registers, examine the program, determine where the program has been, and
- much more. Unlike normal debuggers (such as the well-known DOS DEBUG) these
- functions are accomplished by a program OUTSIDE the addressing space of the
- program or system under test, so that VIM can never be altered or destroyed
- by the errant program. Unlike DEBUG and other debuggers, VIM also has the
- ability to trace DOS itself, or the ROMs, and set breakpoints within ROM or
- on data. In fact, ANY location or I/O port may be used as a breakpoint.
-
- Breakpoints in VIM are bus level events, and do not interfere with or modify
- any code or data. Also, breakpoints occur BEFORE the execution of the event
- that causes the breakpoint (e.g. placing a breakpoint on a memory location
- will break VIM before an instruction like MOV AX,[mem] changes AX).
-
- Memory breakpoints are not limited to a single byte, but instead may be set
- on a memory range of up to 64K in length.
-
- Unlike other debuggers, VIM's virtual approach allows it to debug programs
- that others can't, including TSR (Terminate and Stay Resident) programs and
- device drivers. A TSR with a defective keyboard handler, for example, may
- be loaded and run, with a breakpoint set on the questionable code (or even
- the keyboard interrupt vector). When the faulty interrupt code is reached,
- the breakpoint will stop VIM, so that code may be traced and variables can
- be examined.
-
- Device drivers may also be debugged. If they are present in the regular DOS,
- they will be available in the virtual DOS used by VIM, and can be debugged
- like any other part of DOS. If the device driver is too unstable to be
- installed in the regular DOS, VIM is capable of booting the system virtually
- by executing the BIOS call INT 19H, so that VIM has its own DOS with the
- device driver, which may then be debugged.
-
- Along with breakpoints, VIM establishes a "hotkey," invisible to the
- program running under VIM, which can be used at any time to return to VIM.
- The default hotkey is the combination of the Right-Shift key followed by
- the ESC key. This hotkey is enabled when VIM is executing a program by
- means of the G, P, or X commands.
-
- A second hotkey of Left-Shift and ESC is also available, which stops the
- interpreter without returning to VIM. Pressing any key except ESC will
- re-start the program. Pressing ESC will return to the VIM debugger.
-
- To facilitate debugging, VIM can establish a virtual screen, to be used by
- the program, while VIM maintains its own debugging screen. This screen
- swapping allows the program being debugged to have complete freedom with
- with the video hardware without affecting the debugging display.
-
- Screen swapping does not just swap the contents of a text screen, instead it
- extends down to the programming of the video hardware. This means that an
- application can use a custom programmed graphics mode, without affecting
- VIM's debugging display.
-
- As a complement to this screen swapping ability, VIM can also display the
- contents of the video display registers, including the contents of the
- write-only registers. This allows the programmer to observe the details of
- programming a custom video mode, and to find the mistakes in an improperly
- programmed video display.
-
- The commercial version of VIM, complete with 120+ page manual (includes
- examples of tracing DOS, device drivers, resident programs, and copy
- protection), is available for $49 from:
-
- DDI
- 1580 Rice Creek Road
- Minneapolis, MN 55432
- (800) 221-8091 (612) 571-7400
-
- DDI is a quality programming shop. Take advantage of our low rates and
- guaranteed work on your next demanding project.
- Fortune 500 references are available upon request.
-