home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / RSCOPE2.ZIP / RAMSCOPE.DOC < prev    next >
Text File  |  1989-01-15  |  9KB  |  206 lines

  1.             ╔═════════════════════════════════════════════════╗
  2.             ║                                                 ║
  3.             ║            >>> R A M S C O P E <<<              ║
  4.             ║        Absolute Physical Memory Viewer          ║
  5.             ║   Copyright (c) 1988, 1989  Farpoint Software   ║
  6.             ║                  Version 2.0                    ║
  7.             ║     -------------------------------------       ║
  8.             ║                                                 ║
  9.             ║               A debugging tool                  ║
  10.             ║       for the OS/2 Presentation Manager         ║
  11.             ║                                                 ║
  12.             ╚═════════════════════════════════════════════════╝
  13.  
  14.  
  15. Introduction
  16. ------------
  17.  
  18. RamScope is a debugging tool written specifically for the OS/2 Presentation
  19. Manager. Its purpose is to allow you to do something that is not normally
  20. allowed for a "user" (i.e. ring 2 or ring 3) program: You can roam freely
  21. through all of the system's physical memory space without regard for segment
  22. limits, access privilege, or descriptor tables.
  23.  
  24. There are three active areas of the RamScope display: The left side of the
  25. window shows the starting address in hex of each line of data. These addresses
  26. are always expressed as true physical memory locations. The middle section
  27. of the window shows sixteen lines of sixteen bytes each in hex format. The
  28. right-hand section of the window shows the same data area in character format
  29. rather than hex.
  30.  
  31. The displayed memory area is "live"; i.e. the memory block is re-read and the
  32. display is updated about six times per second. Therefore, if an area of memory
  33. is actively changing, this activity can be visually monitored. The updating
  34. of the display can be stopped (frozen) with a single-keystroke command.
  35.  
  36. It is possible to run multiple copies of RamScope simultaneously in order to
  37. monitor multiple separate areas of memory.
  38.  
  39.  
  40. Operating Instructions
  41. ----------------------
  42.  
  43. All the display manipulation commands are accessible both with the mouse and
  44. as "accelerator" keys. Each command will be described individually.
  45.  
  46. Specify address <Ctrl-A>:
  47.     This produces a dialog box into which the desired starting address of the
  48.     display area may be entered. As always, the address must be in hex and
  49.     must be expressed as a physical address.
  50.  
  51. Scan Forward <Ctrl-F>:
  52.     This causes the start address of the displayed memory area to be increased
  53.     by 10 hex at each update interval (about 6 Hz), allowing a "hands-off"
  54.     visual search through memory. The scan can be stopped with <F8> or <F9>.
  55.  
  56. Scan Backward <Ctrl-B>:
  57.     Same as Scan Forward, except that 10 hex is subtracted from the starting
  58.     address each update interval.
  59.  
  60. ┌─
  61. │Subtract 1000 hex   <Home>:
  62. │     Add 1000 hex    <End>:
  63. │Subtract 100 hex    <PgUp>:
  64. │     Add 100 hex    <PgDn>:
  65. │Subtract 10 hex <Up-arrow>:
  66. │     Add 10 hex <Dn-arrow>:
  67. │Subtract 1    <Left-arrow>:
  68. │     Add 1   <Right-arrow>:
  69. └─
  70.     All of these perform the indicated action on the starting address of the
  71.     displayed memory area.
  72.  
  73. Find Global Descriptor Table <Ctrl-G>:
  74.     Sets the display start address to the address of the system's global
  75.     descriptor table. This is the master descriptor table used by the
  76.     system kernel. User programs always operate through their individual
  77.     Local Descriptor Tables, not the GDT.
  78.  
  79. Find Interrupt Descriptor Table <Ctrl-I>:
  80.     Sets the display start address to the address of the system hardware
  81.     interrupt descriptor table. All hardware and software interrupts are
  82.     vectored through this table.
  83.  
  84. Find Text String <Ctrl-T>:
  85.     Produces a dialog box into which may be entered: a text string to be
  86.     searched for, a starting memory address, and an ending memory address.
  87.     The specified area is searched for an exact match to the text string.
  88.     If a match is found, then the starting address for the display area
  89.     is set to the address of the matching string.
  90.  
  91. Find Hex Byte Sequence <Ctrl-H>:
  92.     This works the same way as "Find Text String", except that the data to
  93.     be searched for is entered in hex.
  94.  
  95. Find Next Text String <Ctrl-N>:
  96.     Finds the text string previously specified, with the search starting at
  97.     the currently displayed address + 1.
  98.  
  99. Find Next Hex Byte Sequence <Ctrl-X>:
  100.     Finds the hex sequence previously specified, with the search starting at
  101.     the currently displayed address + 1.
  102.  
  103. Stop Scan <F8>:
  104.     Stops the auto-incrementing or auto-decrementing started by one of the
  105.     "Scan" commands. The display continues to refresh at 6 Hz.
  106.  
  107. Freeze <F9>:
  108.     Stops the display refresh process. If the content of the memory area
  109.     changes, this will NOT be reflected in the display. It will continue to
  110.     show conditions present at the time <F9> was pressed. If a scan was in
  111.     progress, it will be stopped.
  112.  
  113. UnFreeze <F10>:
  114.     Restores the display refresh, previously stopped by "Freeze".
  115.  
  116. About <F1>:
  117.     Produces a dialog box containing a short description of RamScope and
  118.     a copyright notice.
  119.  
  120.  
  121. Changes in Version 1.1
  122. -----------------------------
  123.     The "find next" functions and pull-down menu shadow boxes (just to be
  124.     fancy). The search routine has been modified to reduce the probability
  125.     of falsing while searching through areas of non-existant memory
  126.     (floating bus).
  127.  
  128.  
  129. Changes in Version 2.0:
  130. -----------------------
  131.     This version runs correctly under the IBM release of OS/2 version 1.1
  132.     (the previous versions of RamScope ran only under Microsoft's SDK 1.05).
  133.     A change in the message sequence sent to submenus required a more
  134.     clunky (and slow) method of creating those cute shadow boxes, so they
  135.     have been removed.
  136.  
  137.  
  138. Installation
  139. ------------
  140.  
  141. In order to do its magic, RamScope needs its own device driver so that
  142. privilege level zero code can be executed. This device driver is supplied
  143. as PHYSMEM.SYS. Installation of the device driver proceeds as follows:
  144.  (1) Copy the file PHYSMEM.SYS into the root directory of the boot (C:) drive.
  145.  (2) Edit CONFIG.SYS in the root directory. Insert the following line
  146.      anywhere in the file:
  147.  
  148.                            DEVICE=C:\PHYSMEM.SYS
  149.  
  150.  (3) Reboot the system.
  151.  
  152. PHYSMEM won't bother anything else in the system, and it only uses 1k.
  153.  
  154. To start RamScope, either type its name at an OS/2 command line prompt, or
  155. install it as an entry in the Program Starter. It takes no command line
  156. parameters. The working directory is irrelevant. The program type is
  157. "Presentation Manager", not "Other".
  158.  
  159. Since the default configuration of OS/2 allows memory segments to be moved,
  160. discarded, and swapped to disk whenever the kernel code deems appropriate,
  161. using RamScope could be a little tricky under some conditions. The data
  162. segment you were watching could unexpectedly disappear from memory or
  163. move to another location. To prevent this, change the MEMMAN line in
  164. CONFIG.SYS from "MEMMAN=SWAP,MOVE" to "MEMMAN=NOSWAP,NOMOVE". Normally,
  165. this is unnecessary unless you are either short on memory or run a lot of
  166. other programs while debugging. Be sure to restore CONFIG.SYS to its
  167. normal state when not debugging.
  168.  
  169.  
  170. PHYSMEM source code
  171. -------------------
  172.  
  173. The complete source code to the PHYSMEM device driver is included in this
  174. package as an example of a simple non-interrupt device driver. PHYSMEM does
  175. not in fact drive a device at all, but rather is a means by which a ring 3
  176. program can call ring zero code. Examples of how to call the driver are
  177. shown in the comment block at the beginning of PHYSMEM.ASM.
  178.  
  179.  
  180. OS/2 Bug Note:
  181. --------------
  182.  
  183. Any "accelerator" keys which are combinations of the control key and a
  184. letter key (such as ^A to set the address) will not work if Caps Lock is
  185. in effect. Just be sure to turn off Caps Lock if you are using keyboard
  186. commands. The function keys F1 thru F12 are not affected.
  187.  
  188.  
  189. SHAREWARE NOTICE
  190. ----------------
  191.  
  192. Please remember that RamScope is Shareware, not free software. It costs $35.
  193. For this you get: A version that doesn't start up with the About Box, support
  194. via telephone or CompuServe, a few other small-but-useful OS/2 programs,
  195. and free updates whenever they become available. If you're  going to use
  196. this program, please pay for it. In any event, give copies of the unregistered
  197. version to all takers. Thanks for your support. Shareware publishers would
  198. starve without it.
  199.  
  200. Our mailing address is:
  201.                         Farpoint Software
  202.                         2501 Afton Court
  203.                         League City, Texas 77573
  204.  
  205. Messages may be sent through Compuserve E-mail to:  Alan Jones [74030,554].
  206.