home *** CD-ROM | disk | FTP | other *** search
- RIO - Rock Input/Output 1.1 BETA 9/10/90
-
- * Version 1.1 BETA! Still not a fully-debugged, finished *
- * version, but on the other hand, it's still free! Check *
- * CompuServe's IBMSYS forum, probably library 3, or lib 0 *
- * (new uploads) for newer versions. *
- * *
- * Further documentation on how to read the log file soon! *
- * Also, this version can't be unloaded - use mark/release. *
- * Any suggestions or ideas are welcome; e-mail Rob Argy on *
- * CompuServe, CIS [71270,146], or call Rock Systems at *
- * (313) 971-9123 *
-
-
- Purpose
-
- RIO is a memory-resident program (takes about 30K) that logs
- all DOS disk I/O operations and other functions to a file for
- later study. It can be useful in debugging software and
- network problems by showing what DOS calls are made along
- with their results, without the need to delve into a
- program's source code.
-
- By listing read/write calls as well (the default is off), RIO
- may be useful in "reverse-engineering" how a program
- accomplishes certain tasks, or in decoding a data file
- formats, as RIO can list the number of bytes read/written
- during each DOS call.
-
-
- Syntax
-
- To install, type
-
- RIO [filename]
-
- The log file defaults to C:\RIO. The log file is rewritten
- when the TSR goes resident.
-
- Certain aspects of RIO can be controlled by pressing hot keys
- after it has gone resident. The following table lists the hot
- keys:
-
- LeftShift-RightShift-L toggle logging (def ON)
- LeftShift-RightShift-W toggle read/write logging (def OFF)
- LeftShift-RightShift-F toggle failure logging (def OFF)
- LeftShift-RightShift-C clear log file
-
- When logging is off, no further I/O operations will be logged
- until it is turned on again. If your system is slowed down
- with file accesses you're not interested in, you should turn
- logging off. After logging is resumed, new operations are
- appended to the existing log file.
-
- The Read/Write toggle controls whether DOS functions $3F and
- $40 are logged. In some cases, these calls are made quite
- often, and logging them will both slow the current program's
- execution, and create huge log files.
-
- The Failure toggle controls whether DOS calls with errors are
- reported. Failures generally do not represent bugs; for
- example, to determine if a file exists, many programs try
- opening the file, and if it fails, it knows it doesn't exist.
- Since DOS itself generates many "failed" calls, the failure
- toggle defaults to off. If failed DOS calls are logged, they
- are denoted by an asterisk in the # column of the log.
- Otherwise, failing calls do not appear at all.
-
- When toggling switches, RIO uses sound effects to signify
- whether they're being turned on or off. On is denoted by a
- rising scale of tones, off by a falling scale. Clear the log
- file results in a muddy warbling sound.
-
-
- Operation
-
- The log file is a text file showing information about each
- DOS I/O call. It lists the call, the associated file handle,
- file name, and time/date stamp, as available.
-
- The # column shows the file handle, if the given DOS call
- uses a file handle. If a DOS call returns an error, a * is
- shown in the # column (see the paragraph on "failure toggle"
- above").
-
- Note that RIO does not log its own I/O operations.
-
- A ! on a blank line in the log file means RIO was unable to
- log all the information. RIO uses a memory buffer to hold
- log information until it is safe to write it to disk. If the
- buffer overflows before it can be logged, the log file will
- contain one or more lines showing just an exclamation point.
-
- For the technically minded, the folloging Int $21 functions
- are currently logged: $01-$17, $1b-$1c, $21-$24, $26-$2E,
- $30, $36, $38-$3E, $41-$43, $45-$46, $4D-$4E, $56-$57, and
- $5A-$5C.
-
-
- Future Features
-
- In an upcoming version of RIO, the logging of each function
- will be configurable, so the logging of particular Int $21
- functions could be turned off. Also, features such as
- time/date stamping, logging of interrupt function numbers,
- maximum width for the log file, more detailed return code
- infromation, and more will be added.
-
- These options will be selectable from a separate non-TSR
- program which communicates to RIO, so that the user interface
- and other memory-filling code will not hog your system RAM
- while you're running RIO.
-
- RIO 1.2 and its companion configuration program are under
- development as of 9/10/90, though an initial release date
- has not yet been set.
-
- The DOS functions to get and set interrupt vectors are not
- currently logged, and will hopefully be included in the next
- version (currently a tricky tech problem stands in the way).
-
-
- File Attributes
-
- Get Attr, Set Attr , and some other file-related calls are
- followed by attribute codes, given in brackets as follows:
-
- Set Attrs [RHSVDA] C:\P\PAS\RIO.PAS
-
- In practice, only some of the letters appear in the brackets,
- as some are mutually exclusive. The letters stand for the
- following file attributes:
-
- R - Read only
- H - Hidden
- S - System
- V - Volume
- D - Directory
- A - Archive
-
- As an example of mutually exclusive file attributes, a Volume
- cannot be a Directory, so V and D should never appear in the
- same attribute brackets.
-
-
- Credits
-
- RIO is based on the public domain IOLOG 1.0 (12/88) by Kim
- Kokkonen of TurboPower Software, and uses TurboPower's
- (excellent!) Object Professional toolkit. Mr. Kokkonen
- credits Don Pearsall for program's inspiration.
-
- Rock's additions include time/date stamps, logging of many
- interrupts that were not previously logged, and logging of
- information returned from many interrupts.
-
- This version of RIO is being released to the public domain.
- Future versions, when the program is more robust, reliable,
- and has a nice configuration program, will probably be
- distributed as shareware.
-
- Example output - RIO with default parameters
-
- Operation # Information sent/returned Date/Time
- --------- - ------------------------- ---------
- Get return code Normal $31 terminate, returned 0 09/10/90 15:57:41.01
- Get Country Data United States 09/10/90 15:57:42.33
- Display Character $3E (>) 09/10/90 15:57:42.33
- Parse file name T 09/10/90 15:57:57.05
- Parse file name 09/10/90 15:57:57.05
- Parse file name 09/10/90 15:57:57.05
- Findfile [RH D ] T.??? 09/10/90 15:57:57.05
- Findfile [RH D ] D:\B\T.??? 09/10/90 15:57:57.16
- Findfile [RH D ] D:\B\T.BAT 09/10/90 15:57:57.16
- Get Country Data United States 09/10/90 15:57:57.22
- Open (Read-only) 5 D:\B\T.BAT 09/10/90 15:57:57.22
- Seek File 5 To byte 0 09/10/90 15:57:57.22
-
- Example, continued....
-
- Read File 5 32 bytes 09/10/90 15:57:57.22
- Close File 5 09/10/90 15:57:57.22
- Display Character $3E (>) 09/10/90 15:57:57.22
- Parse file name C: 09/10/90 15:57:57.27
- Select Disk Physical drive C: 09/10/90 15:57:57.27
- Get Country Data United States 09/10/90 15:57:57.27
- Open (Read-only) 5 D:\B\T.BAT 09/10/90 15:57:57.27
- Seek File 5 To byte 4 09/10/90 15:57:57.27
- Read File 5 32 bytes 09/10/90 15:57:57.27
- Close File 5 09/10/90 15:57:57.27
- Display Character $3E (>) 09/10/90 15:57:57.33
- Parse file name CD \P\PAS 09/10/90 15:57:57.33
- Parse file name \P\PAS 09/10/90 15:57:57.33
- Parse file name 09/10/90 15:57:57.33
- Change Directory \P\PAS 09/10/90 15:57:57.44
- Get Country Data United States 09/10/90 15:57:57.44
- Open (Read-only) 5 D:\B\T.BAT 09/10/90 15:57:57.44
- Seek File 5 To byte 15 09/10/90 15:57:57.44
- Read File 5 32 bytes 09/10/90 15:57:57.44
- Close File 5 09/10/90 15:57:57.44
- Display Character $3E (>) 09/10/90 15:57:57.49
- Parse file name ..\TURBO 09/10/90 15:57:57.49
- Parse file name 09/10/90 15:57:57.82
- Findfile [RH D ] ..\TURBO.??? 09/10/90 15:57:57.82
- Get DOS version 4.0 (OEM #255) 09/10/90 15:57:58.21
- Open (Read-only) 5 TURBO.TP 09/10/90 15:57:58.43
- Seek File 5 To EOF (get file size) 09/10/90 15:57:58.43
- Close File 5 09/10/90 15:57:58.43
- Open (Read-only) 5 TURBO.TP 09/10/90 15:57:58.48
- Read File 5 34 bytes 09/10/90 15:57:58.53
- Read File 5 7 bytes 09/10/90 15:57:58.53
- Close File 5 09/10/90 15:57:59.80
- Change Directory C:\P\PAS 09/10/90 15:58:00.24
- Change Directory C:\P\PAS\.. 09/10/90 15:58:00.62
- Open (Read-only) 5 C:\P\PAS\..\TURBO.TPL 09/10/90 15:58:00.95
- Seek File 5 To EOF (get file size) 09/10/90 15:58:00.95
- Close File 5 09/10/90 15:58:00.95
- Open (Read-only) 5 C:\P\PAS\..\TURBO.TPL 09/10/90 15:58:00.95
- Get File Date 5 05/02/89 05:50:00 09/10/90 15:58:00.95
- Read File 5 65520 bytes 09/10/90 15:58:01.06
- Close File 5 09/10/90 15:58:01.06
- Open (Read-only) 5 C:\P\PAS\TURBO.PCK 09/10/90 15:58:01.34
- Seek File 5 To EOF (get file size) 09/10/90 15:58:01.34
- Read File 5 4 bytes 09/10/90 15:58:01.50
- Get system date Mon Sep 10/90 09/10/90 15:58:12.49
- Get system time 15:58:12.49 09/10/90 15:58:12.49
- Findfile [ ] C:\OPRODEMO\OPINLINE.TPU09/10/90 15:58:14.19
- Open (Read-only) 5 C:\OPRODEMO\OPINLINE.TPU 09/10/90 15:58:14.19
- Read File 5 64 bytes 09/10/90 15:58:14.24
- Read File 5 3054 bytes 09/10/90 15:58:14.30
- Close File 5 09/10/90 15:58:14.30
- Get return code Normal $4C terminate, returned 0 09/10/90 15:58:36.71
- Open (Read-only) 5 C:\COMMAND.COM 09/10/90 15:58:36.76
- Seek File 5 To byte 9792 09/10/90 15:58:36.76
- Read File 5 27765 bytes 09/10/90 15:58:36.87
- Close File 5 09/10/90 15:58:36.87
-