home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
emulate
/
vim
/
pdvim.doc
next >
Wrap
Text File
|
1987-09-08
|
5KB
|
94 lines
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.