home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MOUSE / RIO11.ZIP / RIO.DOC next >
Encoding:
Text File  |  1990-09-10  |  11.5 KB  |  238 lines

  1. RIO - Rock Input/Output 1.1 BETA 9/10/90
  2.  
  3.     * Version 1.1 BETA!  Still not a fully-debugged, finished  *
  4.     * version, but on the other hand, it's still free!  Check  *
  5.     * CompuServe's IBMSYS forum, probably library 3, or lib 0  *
  6.     * (new uploads) for newer versions.                        *
  7.     *                                                          *
  8.     * Further documentation on how to read the log file soon!  *
  9.     * Also, this version can't be unloaded - use mark/release. *
  10.     * Any suggestions or ideas are welcome; e-mail Rob Argy on *
  11.     * CompuServe, CIS [71270,146], or call Rock Systems at     *
  12.     * (313) 971-9123                                           *
  13.  
  14.  
  15. Purpose
  16.  
  17.     RIO is a memory-resident program (takes about 30K) that logs
  18.     all DOS disk I/O operations and other functions to a file for
  19.     later study.  It can be useful in debugging software and
  20.     network problems by showing what DOS calls are made along
  21.     with their results, without the need to delve into a
  22.     program's source code.
  23.  
  24.     By listing read/write calls as well (the default is off), RIO
  25.     may be useful in "reverse-engineering" how a program
  26.     accomplishes certain tasks, or in decoding a data file
  27.     formats, as RIO can list the number of bytes read/written
  28.     during each DOS call.
  29.  
  30.  
  31. Syntax
  32.  
  33.     To install, type
  34.  
  35.          RIO [filename]
  36.  
  37.     The log file defaults to C:\RIO.  The log file is rewritten
  38.     when the TSR goes resident.
  39.  
  40.     Certain aspects of RIO can be controlled by pressing hot keys
  41.     after it has gone resident. The following table lists the hot
  42.     keys:
  43.  
  44.       LeftShift-RightShift-L  toggle logging            (def ON)
  45.       LeftShift-RightShift-W  toggle read/write logging (def OFF)
  46.       LeftShift-RightShift-F  toggle failure logging    (def OFF)
  47.       LeftShift-RightShift-C  clear log file
  48.  
  49.     When logging is off, no further I/O operations will be logged
  50.     until it is turned on again.  If your system is slowed down
  51.     with file accesses you're not interested in, you should turn
  52.     logging off.  After logging is resumed, new operations are
  53.     appended to the existing log file.
  54.  
  55.     The Read/Write toggle controls whether DOS functions $3F and
  56.     $40 are logged. In some cases, these calls are made quite
  57.     often, and logging them will both slow the current program's
  58.     execution, and create huge log files.
  59.  
  60.     The Failure toggle controls whether DOS calls with errors are
  61.     reported.  Failures generally do not represent bugs; for
  62.     example, to determine if a file exists, many programs try
  63.     opening the file, and if it fails, it knows it doesn't exist.
  64.     Since DOS itself generates many "failed" calls, the failure
  65.     toggle defaults to off. If failed DOS calls are logged, they
  66.     are denoted by an asterisk in the # column of the log.
  67.     Otherwise, failing calls do not appear at all.
  68.  
  69.     When toggling switches, RIO uses sound effects to signify
  70.     whether they're being turned on or off.  On is denoted by a
  71.     rising scale of tones, off by a falling scale. Clear the log
  72.     file results in a muddy warbling sound.
  73.  
  74.  
  75. Operation
  76.  
  77.     The log file is a text file showing information about each
  78.     DOS I/O call.  It lists the call, the associated file handle,
  79.     file name, and time/date stamp, as available.
  80.  
  81.     The # column shows the file handle, if the given DOS call
  82.     uses a file handle.  If a DOS call returns an error, a * is
  83.     shown in the # column (see the paragraph on "failure toggle"
  84.     above").
  85.  
  86.     Note that RIO does not log its own I/O operations.
  87.  
  88.     A ! on a blank line in the log file means RIO was unable to
  89.     log all the information.  RIO uses a memory buffer to hold
  90.     log information until it is safe to write it to disk.  If the
  91.     buffer overflows before it can be logged, the log file will
  92.     contain one or more lines showing just an exclamation point.
  93.  
  94.     For the technically minded, the folloging Int $21 functions
  95.     are currently logged: $01-$17, $1b-$1c, $21-$24, $26-$2E,
  96.     $30, $36, $38-$3E, $41-$43, $45-$46, $4D-$4E, $56-$57, and
  97.     $5A-$5C.
  98.  
  99.  
  100. Future Features
  101.  
  102.     In an upcoming version of RIO, the logging of each function
  103.     will be configurable, so the logging of particular Int $21
  104.     functions could be turned off.  Also, features such as
  105.     time/date stamping, logging of interrupt function numbers,
  106.     maximum width for the log file, more detailed return code
  107.     infromation, and more will be added.
  108.  
  109.     These options will be selectable from a separate non-TSR
  110.     program which communicates to RIO, so that the user interface
  111.     and other memory-filling code will not hog your system RAM
  112.     while you're running RIO.
  113.  
  114.     RIO 1.2 and its companion configuration program are under
  115.     development as of 9/10/90, though an initial release date
  116.     has not yet been set.
  117.  
  118.     The DOS functions to get and set interrupt vectors are not
  119.     currently logged, and will hopefully be included in the next
  120.     version (currently a tricky tech problem stands in the way).
  121.  
  122.  
  123. File Attributes
  124.  
  125.     Get Attr, Set Attr , and some other file-related calls are
  126.     followed by attribute codes, given in brackets as follows:
  127.  
  128.     Set Attrs         [RHSVDA]  C:\P\PAS\RIO.PAS
  129.  
  130.     In practice, only some of the letters appear in the brackets,
  131.     as some are mutually exclusive.  The letters stand for the
  132.     following file attributes:
  133.  
  134.         R - Read only
  135.         H - Hidden
  136.         S - System
  137.         V - Volume
  138.         D - Directory
  139.         A - Archive
  140.  
  141.     As an example of mutually exclusive file attributes, a Volume
  142.     cannot be a Directory, so V and D should never appear in the
  143.     same attribute brackets.
  144.  
  145.  
  146. Credits
  147.  
  148.     RIO is based on the public domain IOLOG 1.0 (12/88) by Kim
  149.     Kokkonen of TurboPower Software, and uses TurboPower's
  150.     (excellent!) Object Professional toolkit.  Mr. Kokkonen
  151.     credits Don Pearsall for program's inspiration.
  152.  
  153.     Rock's additions include time/date stamps, logging of many
  154.     interrupts that were not previously logged, and logging of
  155.     information returned from many interrupts.
  156.  
  157.     This version of RIO is being released to the public domain.
  158.     Future versions, when the program is more robust, reliable,
  159.     and has a nice configuration program, will probably be
  160.     distributed as shareware.
  161.  
  162. Example output - RIO with default parameters
  163.  
  164. Operation         # Information sent/returned        Date/Time
  165. ---------         - -------------------------        ---------
  166. Get return code     Normal $31 terminate, returned 0 09/10/90 15:57:41.01
  167. Get Country Data    United States                    09/10/90 15:57:42.33
  168. Display Character   $3E (>)                          09/10/90 15:57:42.33
  169. Parse file name     T                                09/10/90 15:57:57.05
  170. Parse file name                                      09/10/90 15:57:57.05
  171. Parse file name                                      09/10/90 15:57:57.05
  172. Findfile            [RH  D ] T.???                   09/10/90 15:57:57.05
  173. Findfile            [RH  D ] D:\B\T.???              09/10/90 15:57:57.16
  174. Findfile            [RH  D ] D:\B\T.BAT              09/10/90 15:57:57.16
  175. Get Country Data    United States                    09/10/90 15:57:57.22
  176. Open (Read-only)  5 D:\B\T.BAT                       09/10/90 15:57:57.22
  177. Seek File         5 To byte 0                        09/10/90 15:57:57.22
  178.  
  179. Example, continued....
  180.  
  181. Read File         5 32 bytes                         09/10/90 15:57:57.22
  182. Close File        5                                  09/10/90 15:57:57.22
  183. Display Character   $3E (>)                          09/10/90 15:57:57.22
  184. Parse file name     C:                               09/10/90 15:57:57.27
  185. Select Disk         Physical drive C:                09/10/90 15:57:57.27
  186. Get Country Data    United States                    09/10/90 15:57:57.27
  187. Open (Read-only)  5 D:\B\T.BAT                       09/10/90 15:57:57.27
  188. Seek File         5 To byte 4                        09/10/90 15:57:57.27
  189. Read File         5 32 bytes                         09/10/90 15:57:57.27
  190. Close File        5                                  09/10/90 15:57:57.27
  191. Display Character   $3E (>)                          09/10/90 15:57:57.33
  192. Parse file name     CD \P\PAS                        09/10/90 15:57:57.33
  193. Parse file name     \P\PAS                           09/10/90 15:57:57.33
  194. Parse file name                                      09/10/90 15:57:57.33
  195. Change Directory    \P\PAS                           09/10/90 15:57:57.44
  196. Get Country Data    United States                    09/10/90 15:57:57.44
  197. Open (Read-only)  5 D:\B\T.BAT                       09/10/90 15:57:57.44
  198. Seek File         5 To byte 15                       09/10/90 15:57:57.44
  199. Read File         5 32 bytes                         09/10/90 15:57:57.44
  200. Close File        5                                  09/10/90 15:57:57.44
  201. Display Character   $3E (>)                          09/10/90 15:57:57.49
  202. Parse file name     ..\TURBO                         09/10/90 15:57:57.49
  203. Parse file name                                      09/10/90 15:57:57.82
  204. Findfile            [RH  D ] ..\TURBO.???            09/10/90 15:57:57.82
  205. Get DOS version     4.0 (OEM #255)                   09/10/90 15:57:58.21
  206. Open (Read-only)  5 TURBO.TP                         09/10/90 15:57:58.43
  207. Seek File         5 To EOF (get file size)           09/10/90 15:57:58.43
  208. Close File        5                                  09/10/90 15:57:58.43
  209. Open (Read-only)  5 TURBO.TP                         09/10/90 15:57:58.48
  210. Read File         5 34 bytes                         09/10/90 15:57:58.53
  211. Read File         5 7 bytes                          09/10/90 15:57:58.53
  212. Close File        5                                  09/10/90 15:57:59.80
  213. Change Directory    C:\P\PAS                         09/10/90 15:58:00.24
  214. Change Directory    C:\P\PAS\..                      09/10/90 15:58:00.62
  215. Open (Read-only)  5 C:\P\PAS\..\TURBO.TPL            09/10/90 15:58:00.95
  216. Seek File         5 To EOF (get file size)           09/10/90 15:58:00.95
  217. Close File        5                                  09/10/90 15:58:00.95
  218. Open (Read-only)  5 C:\P\PAS\..\TURBO.TPL            09/10/90 15:58:00.95
  219. Get File Date     5 05/02/89 05:50:00                09/10/90 15:58:00.95
  220. Read File         5 65520 bytes                      09/10/90 15:58:01.06
  221. Close File        5                                  09/10/90 15:58:01.06
  222. Open (Read-only)  5 C:\P\PAS\TURBO.PCK               09/10/90 15:58:01.34
  223. Seek File         5 To EOF (get file size)           09/10/90 15:58:01.34
  224. Read File         5 4 bytes                          09/10/90 15:58:01.50
  225. Get system date     Mon Sep 10/90                    09/10/90 15:58:12.49
  226. Get system time     15:58:12.49                      09/10/90 15:58:12.49
  227. Findfile            [      ] C:\OPRODEMO\OPINLINE.TPU09/10/90 15:58:14.19
  228. Open (Read-only)  5 C:\OPRODEMO\OPINLINE.TPU         09/10/90 15:58:14.19
  229. Read File         5 64 bytes                         09/10/90 15:58:14.24
  230. Read File         5 3054 bytes                       09/10/90 15:58:14.30
  231. Close File        5                                  09/10/90 15:58:14.30
  232. Get return code     Normal $4C terminate, returned 0 09/10/90 15:58:36.71
  233. Open (Read-only)  5 C:\COMMAND.COM                   09/10/90 15:58:36.76
  234. Seek File         5 To byte 9792                     09/10/90 15:58:36.76
  235. Read File         5 27765 bytes                      09/10/90 15:58:36.87
  236. Close File        5                                  09/10/90 15:58:36.87
  237.  
  238.