Contents of the SOSENGN.DOC file
New! Register on Compuserve (GO SWREG ID# 1461) and get registered version
SOS ENGINE INTRODUCTION
Have you ever wondered exactly what your application was doing in the
background, what files it was accessing, how many bytes it was reading
or writing, or how other low level functions were being performed?
We did. In fact, the first version of this program was born a couple
of years ago out of desperation when we could not determine why one of our
applications would not print correctly when run on a network. Since then
we have saved countless hours during the develpment/alpha/beta cycles.
We have also used this program to monitor our clients systems and to record
problems for later analysis. The usefullness of this program is limited
only by your understanding of what it does.
The SOS ENGINE consists of two parts. The first is the 'ENGINE' which
is an 11k memory resident module that can be loaded anywhere in memory.
The engine remains idle in memory until you activate it from your
application. When activitated, it begins logging selected activities to
a pre-determined file. Each log entry is time stamped, in 24 hour time,
with a resolution of 1/100th of a second.
The second part consists of a standard OBJ file that you link with your
application. The OBJ file contains 18 functions written entirely in
assembly language, and adds less than 600 bytes to the size of your
finished application. Each of the eighteen functions are designed to help
you tailor the output of the engine to suit your needs as closely as
The SOS ENGINE can be used as a debugging tool during the development,
Alpha, and Beta cycles of application development and testing. If desired,
the code can be left in the application when it is finished as it requires
very little overhead. The engine could be distributed with the application
and loaded only if needed. This is a great way to provide an un-paralleled
level of support.
It can be extremely usefull for developers of vertical applications. They
could easily monitor the execution of their software all the time, or at
times when errors are likely to occur. Log files can easily be printed out
and faxed or mailed to the developer, so he has exact documentation as to
what the application was doing when a problem occurred.
SOS ENGINE REFERENCE
The SOS ENGINE consists of two very small modules:
SOSENGN.EXE -- This is the memory resident engine portion of the program.
It can be loaded any time you like prior to running an application that
activates it. It can be loaded into 'HIGH' memory without problem.
The engine needs no parameters, and will maintain a log file called SOSENGN
in the directory where the program was first called. You can unload the
engine from memory by using the /U command line parameter. (i.e. SOSENGN /U)
You may also specify a file name by passing a fully qualified DOS file name
as a command line parameter. (i.e. SOSENGN C:\LOGS\MYLOG.DAT )
SOSFUNC.OBJ -- This is the 'LIBRARY' portion of the program. This file
contains 18 callable functions you may use to control the output of the
engine module. It has been tested with Clipper, BASIC, Turbo Pascal,
and C, and should work with any dialect of those languages. It is written
in 100% Assembler, with no language particulars, so it should be pretty much
generic. Source code is provided.
USING THE FUNCTION LIBRARY WITH BASIC
You can use any of the functions in BASIC by linking the OBJ file with
your application, then CALLing the desired function.
Example: CALL SeOnLog
This will activate engine's logging functions. Please look at the file
EXAMPLE.BAS for more information.
USING THE FUNCTION LIBRARY WITH CLIPPER
A Clipper application would simply link the OBJ file in the ROOT of their
application ( DO NOT OVERLAY ) and call the desired function as a Clipper
This will activate engine's logging functions as in the BASIC example.
Please look at the file EXAMPLE.PRG for more information.
USING THE FUNCTION LIBRARY WITH C
You need only link the OBJ file with your application and call the desired
function. Please see the file EXAMPLE.C for more information.
USING THE FUNCTION LIBRARY TURBO PASCAL
Turbo Pascal requires a little more work. Please look at the file EXAMPLE.PAS
for a detailed example of how to use the SOS-ENGINE.
FUNCTION LIBRARY REFERENCE
SeOnLog -- Turns on logging functions.
SeOffLog -- Turns off logging functions.
The following functions can be called whether the engine on or off. The
default for ALL finctions is ON.
SeOnRead -- Turns on logging of file reads. Records the handle number
of the file read, and the number of bytes read.
SeOffRead -- Turns off logging of file reads.
SeOnWrite -- Turns on logging of file writes. Records the handle number
of the file written to, and the number of bytes written.
SeOffWrite -- Turns off logging of file writes.
SeOnPntr -- Turns on logging of file pointer movement. Records the
handle number of the file being accessed.
SeOffPntr -- Turns off logging of file writes.
SeOnMem -- Turns on logging of memory allocation requests, memory
deallocation requests, and memory modfication requests.
SeOffMem -- Turns off logging of memory functions.
SeOnCl -- Turns on logging of command line.
SeOffCl -- Turns off logging of command line.
SeOnFile -- Turns on logging of file opens, closes, creations,
deletions, and renames.
SeOffFile -- Turns off logging of file activities.
SeOnDir -- Turns on logging of directory operations such as
creations and removals.
SeOffDir -- Turns off logging of directory activities.
SeOnFa -- Turns on logging of file attribute activities such as
getting and setting of file date ant time settings and
getting and setting file attribute bits.
SeOffFa -- Turns off logging of file attribute activities.
LOG FILE STATEMENTS
CmdLin -- Records whatever was typed at the command line.
Time Changed -- Records that the user on the application changed the
Create -- Records the name of a newly created file.
RmDir -- Records the name of a removed directory.
MkDir -- Records the name of a created directory.
Open # -- Records the name and DOS handle of an opened file.
Close # -- Records the DOS handle on a closed file.
Read # -- Records the DOS handle and the number of bytes read.
Write # -- Records the DOS handle and the number of bytes written.
Delete -- Records the name of the file deleted.
MvPtr # -- Records the DOS handle of the current file when the
file pointer was moved.
GetFA -- Records file name of a file where the application requested
information about its current attribute settings.
SetFA -- Records file name of a file where the application changed
its current attribute settings.
GetFDT -- Records file name of a file where the application requested
information about its date and time stamps.
SetFDT -- Records file name of a file where the application changed
its date and time stamps.
Rename -- Records the name of a renamed file.
MemAlloc -- Records that an application requested memory.
RelMem -- Records that an application released previously allocated
ModMemAlloc -- Records that an application modified previously allocated
SHAREWARE VERSION INFORMATION
You may use this program for 30 days as a Shareware product. If you continue
to use the program after that 30 day period, you are required to register.
DISK VENDORS and BBS OPERATORS. You are free to distribute this program
in any form as long as it is unmodified, includes this file and no fee in
excess of $5.00 is charged.
The SOS-ENGINE can be purchased in two ways. The single user version is for
use by one person only. This is suitable for a developer who wishes to use
the program as a debugging tool on his own computer.
If you are a corporate developer, programmer, or consultant or if you want to
be able to distribute the SOS-ENGINE with your applications, then you must
Developer/Run-Time version. This version allows you to use the SOS-Engine in
a professional environment, and to distrubute the SOS-ENGINE royalty free as
part of your application or software product.
SOS-ENGINE Order Form
______ SOS-ENGINE single user version .................. $ 25.00 $ ______
Register on Compuserve... GO SWREG ID# 1461
______ SOS-ENGINE Developer/Run-Time version ........... $ 95.00 $ ______
California orders please add Sales Tax .................... 7.75% $ ______
Shipping & Handling $ 5.00
Overseas Shipping & Handling $ 15.00
Total $ ______
ORDER LINE: 1-800-388-2761
Name / Contact: _____________________________________________________
Phone: ______________________________ FAX: ________________________
MC/VISA: ______________________________ EXP: ________________________
(No credit card orders under $50 please)
Please complete and mail with payment:
Solid Oak Software
P.O. Box 6826
Santa Barbara, CA 93160
805-967-9853 FAX 805-967-1614