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

  1. VIM version 1.01PD   Copyright (c) 1986, 1987 by DDI.
  2.  
  3. This version of VIM is placed in the public domain by DDI for free,
  4. non-commercial distribution.  All other rights are reserved by DDI.
  5.  
  6. VIM stands for VIrtual Machine.  The program is an interpreter whose language
  7. is 8088 machine code extended with the real-mode instructions of an 80286,
  8. with provisions to simulate and/or allow access to the hardware of an XT or
  9. AT in an addressing space independent of the normal hardware.
  10.  
  11. VIM was created because a program gone wrong can, and usually will, take out
  12. everything it can, including the interrupt vector table.  This renders even
  13. debuggers that use NMI (Non-Maskable Interrupt) hardware useless.  The
  14. hardware solution to this problem is either a logic analyzer or an in-circuit
  15. emulator, both of which are very expensive and require hardware attachments t
  16. the system under test.  VIM, on the other hand, presents a simple software
  17. solution with most of the power of complex hardware.
  18.  
  19. The recommended configuration is an AT and 640K of RAM.
  20.  
  21. The minimum requirements for running VIM are a PC and 320K of RAM.
  22.  
  23. The VIM interpreter can stop execution at any point, examine or alter memory
  24. or registers, examine the program, determine where the program has been, and
  25. much more.  Unlike normal debuggers (such as the well-known DOS DEBUG) these
  26. functions are accomplished by a program OUTSIDE the addressing space of the
  27. program or system under test, so that VIM can never be altered or destroyed
  28. by the errant program.  Unlike DEBUG and other debuggers, VIM also has the
  29. ability to trace DOS itself, or the ROMs, and set breakpoints within ROM or
  30. on data.  In fact, ANY location or I/O port may be used as a breakpoint.
  31.  
  32. Breakpoints in VIM are bus level events, and do not interfere with or modify
  33. any code or data.  Also, breakpoints occur BEFORE the execution of the event
  34. that causes the breakpoint (e.g. placing a breakpoint on a memory location
  35. will break VIM before an instruction like MOV AX,[mem] changes AX).
  36.  
  37. Memory breakpoints are not limited to a single byte, but instead may be set
  38. on a memory range of up to 64K in length.
  39.  
  40. Unlike other debuggers, VIM's virtual approach allows it to debug programs
  41. that others can't, including TSR (Terminate and Stay Resident) programs and
  42. device drivers.  A TSR with a defective keyboard handler, for example, may
  43. be loaded and run, with a breakpoint set on the questionable code (or even
  44. the keyboard interrupt vector).  When the faulty interrupt code is reached,
  45. the breakpoint will stop VIM, so that code may be traced and variables can
  46. be examined.
  47.  
  48. Device drivers may also be debugged.  If they are present in the regular DOS,
  49. they will be available in the virtual DOS used by VIM, and can be debugged
  50. like any other part of DOS.  If the device driver is too unstable to be
  51. installed in the regular DOS, VIM is capable of booting the system virtually
  52. by executing the BIOS call INT 19H, so that VIM has its own DOS with the
  53. device driver, which may then be debugged.
  54.  
  55. Along with breakpoints, VIM establishes a "hotkey," invisible to the
  56. program running under VIM, which can be used at any time to return to VIM.
  57. The default hotkey is the combination of the Right-Shift key followed by
  58. the ESC key.  This hotkey is enabled when VIM is executing a program by
  59. means of the G, P, or X commands.
  60.  
  61. A second hotkey of Left-Shift and ESC is also available, which stops the
  62. interpreter without returning to VIM.  Pressing any key except ESC will
  63. re-start the program.  Pressing ESC will return to the VIM debugger.
  64.  
  65. To facilitate debugging, VIM can establish a virtual screen, to be used by
  66. the program, while VIM maintains its own debugging screen.  This screen
  67. swapping allows the program being debugged to have complete freedom with
  68. with the video hardware without affecting the debugging display.
  69.  
  70. Screen swapping does not just swap the contents of a text screen, instead it
  71. extends down to the programming of the video hardware.  This means that an
  72. application can use a custom programmed graphics mode, without affecting
  73. VIM's debugging display.
  74.  
  75. As a complement to this screen swapping ability, VIM can also display the
  76. contents of the video display registers, including the contents of the
  77. write-only registers.  This allows the programmer to observe the details of
  78. programming a custom video mode, and to find the mistakes in an improperly
  79. programmed video display.
  80.  
  81. The commercial version of VIM, complete with 120+ page manual (includes
  82. examples of tracing DOS, device drivers, resident programs, and copy
  83. protection), is available for $49 from:
  84.  
  85.    DDI
  86.    1580 Rice Creek Road
  87.    Minneapolis, MN  55432
  88.    (800) 221-8091    (612) 571-7400
  89.  
  90. DDI is a quality programming shop.  Take advantage of our low rates and
  91. guaranteed work on your next demanding project.
  92. Fortune 500 references are available upon request.
  93.  
  94.