*I
BTR WATCHù
Command LineIUnload BtrieveªExit Menu¿Are You Sure(-SwitchesÉ0Special KeysGOWarrantyRYEditing Keys┐ZMass-Store Copy _ASCIIj/`Sharewareæ0aTechnical Support¥FbRegistrationÖNcBtrieve│VfStatus Code List?XgOptionsƒYhAdvanced OptionsΘZiUnload Btr Watchä\jSave Settingsz]kView Log File_lLog LengthδbmCheck for Open:dnIgnore StopFeoCheck for multiple opensrgpLog the station nameÿhqStation namexirFile Handle OffsetªksLog all accesses⌠mtBeep for all accesses-ouLog the date2pvLog the timeqwBeep for status code listτqxBeep ToneFsyBeep DurationtzLog File Name⌐t{Log Format╪u|Date▌x}Time└y~Length⌐zFile▓{ÇKey Number_|üOperationt}éResultf~ûRetriesÇùdelay between retrieszüÿRetry Status CodesåéÖBasic OptionsßâÜRetry OptionsÄà╧ViolationóëûASPÑïÿBtr 'C' Library√ÜÖBtr Help!|╜ÜBtrieve Quick Reference┬¢Quick Start∞├£Config File│┼£Config File    
WATCHBTR.HLP

Copyright 1991 by Informative Technologies

This file contains all the help text used with WATCHBTR.EXE

*B 1,BTR WATCH

                      B T R   W A T C H
                     ───────────────────

      Btr Watch is a memory resident program that monitors
      calls to Btrieve. ^Registration^ is required if you
      continue to use Btr Watch after evaluating it for
      30 days. Complete your ^registration^ of Btr Watch
      for full benefits.

            Copyright 1991  Informative Technologies
        1718 M Street NW, Suite 292 Washington, DC 20036
     Voice(202)675-4528  Fax(202)675-4529  Email 71311,2334

       Press [F1] at any time for context-sensitive help.
         Press [ESC] to exit or PRESS [PgDn] FOR MORE...
*P

    Btr Watch is loaded after Btrieve, but before the
    Btrieve application program.  Btr Watch can trace
    all Btrieve file accesses and log them to a ASCII file.
    Btr Watch can be used with any DOS application that
    uses Btrieve.

    Btr Watch's features and uses:

    + Btr Watch helps in debugging applications. Load
      Btr Watch to make sure the correct sequence of Btrieve
      calls occurs. Test applications by tracing Btrieve
      file operations.

    + Btr Watch can log all ^Btrieve^ file accesses or just
      log accesses when certain status codes occur.
*P
    + Use Btr Watch to determine Btrieve file operations
      that lead up to a corrupted file. Btr Watch can be
      loaded at all times and will only log file operations
      when certain status codes occur. Btr Watch stores in
      memory a list of the last 100 file operations. When
      a designated status code occurs, Btr Watch will log
      up to 100 Btrieve operations that happened just before
      the designated status code.

    + Btr Watch works independent of the application using
      BTRIEVE.EXE or BREQUEST.EXE and is network-compatible.

    + Btr Watch traces file accesses from multiple stations.

    + Btr Watch catches files that were opened multiple times
      and catches attempted accesses to unopened files.
*P
    + If one of 10 different status codes occur, Btr Watch
      can automatically retry an operation. The number of
      retries and the delay between them is configurable.

    + Btr Watch monitors Btrieve access time.

    + Btr Watch logs the date and time a Btrieve operation
      occurs to determine exactly when operations occur.

    + Btr Watch can alert an operator when any status code
      occurs for immediate action.

    ^Registration^       ^Command Line^     ^Technical Support^
    ^Editing Keys^       ^Shareware^        ^Mass-Store Copy^
    ^ASP^                ^Warranty^         ^Btr 'C' Library^
    ^Technical Support^  ^Quick Start^      ^Btr Help!^
*E
*B 10,Command Line

     Command Line Arguments
     ──────────────────────

     All command line arguments are optional.

     WATCHBTR <SWITCHES> <CONFIG FILE>

              ^SWITCHES^     - bm
              ^CONFIG FILE^  - Configuration File

     BTRWATCH <CONFIG FILE>

              ^CONFIG FILE^  - Configuration File
*E
*B 12,Unload Btrieve

     Unload Btr Watch
     ────────────────

     This will remove ^Btr Watch^ and ^Btrieve^
     from memory, close all files open at this station,
     abort any transactions, and release all locks held by
     the station.

*E
*B 17,Exit Menu

     Exit Menu
     ─────────

     This option will cause you to leave the
     current menu.

*E
*B 31,Are You Sure

     Are You Sure?
     ─────────────

     Select 'Y' for YES or 'N' for NO.
*E
*B 45,Switches

     Switches
     ────────

     -b  Use BIOS for video writes. If your computer
         has trouble displaying some of the windows on
         your screen, use this switch.  This assists
         with incompatibility in the display. If you do
         not use this option, screen updates will be
         much faster.

     -m  Disables the program color.
         WATCHBTR.EXE runs in monochrome.
*E
*B 48,Special Keys


     Special Keys
     ────────────

     F1             -  ^Btr Watch^ Help
     Alt+S          -  Shell to DOS.
     Alt+X or ESC   -  Quit ^Btr Watch^
     Alt+F1         -  Toggle BIOS screen writes

     Also See: ^Editing Keys^
*E
*B 79,Warranty

                      LIMITED WARRANTY

     Informative Technologies Corporation does not warrant
     that the software operation will be error-free or
     uninterrupted. Informative Technologies Corporation
     shall not be liable for any incidental or consequential
     damages from the use or the user's inability to use this
     product. Informative Technologies Corporation
     specifically disclaims all other warranties, expressed
     or implied, including but not limited to implied 
     warranties of fitness for any particular purpose and
     of merchantability.
*E
*B 89,Editing Keys


     Cursor Movement
     ───────────────

     Arrow keys       - cursor movement
     Ctrl-Left Arrow  - word left
     Ctrl-Right Arrow - word right
     Home             - beginning of field
     End              - end of line/field
     Ctrl-Home        - beginning of first field
     Ctrl-End         - end of last field
     Tab              - next field
     Shift-Tab        - previous field
*P


     Inserting and Deleting
     ──────────────────────

     Ins              - toggle insert mode
     Del              - delete character at cursor
     Backspace        - delete character left
     Ctrl-Backspace   - delete word left
     Ctrl-T           - delete word right
     Ctrl-U           - delete to end of field
     Ctrl-Y           - delete to last field
*P


     Other Editing Keys
     ──────────────────

     Enter            - process current field
     Ctrl-Enter       - process all fields
     Ctrl-R           - restore field
     ESC              - abort data entry

     Also see: ^Btr Watch^  ^Special Keys^
*E
*B 90,Mass-Store Copy
                                    tm
                     MASS-STORE COPY
                     ───────────────

            "Make copies of optical disks while
              using only one optical drive!"


   "If you don't have two WORM drives, you likely need to
    have this program." - Jerry Pournelle, BYTE January 1991

   MASS-STORE COPY is a practical way to copy optical disks
   on a system that has only one optical drive.
   MASS-STORE COPY uses your computer's fixed disk to buffer
   information as it is copied from one optical disk to
   another.
*P


   Your computer may have a hard drive and one
   optical disk drive. You could try to copy your optical
   disk using the DOS copy command, but why? You could be
   swapping the original and backup disks hundreds of times.
   Or, you could copy each file to the hard disk and
   then copy the files individually to a backup optical
   disk. But what would you do if one of the files is
   larger than the hard drive? MASS-STORE COPY eliminates
   the need to copy each file from an original disk to a
   buffer drive individually and copying them individually
   to a backup disk.
*P

    MASS-STORE COPY will copy any size file and any size disk
    using the available disk space on your computer's hard
    drive. MASS-STORE COPY works with any DOS-compatible
    drive that has removable disks. All drives that use
    removable DOS disks work with MASS-STORE COPY, not
    just optical disks.

    MASS-STORE COPY is compatible with the following drives:

         + Bernoulli Box Drives
         + Erasable Optical Drives
         + Removable Hard Drives
         + Portable Hard Drive Packs
         + WORM Drives
         + 5.25, 3.5 or "Super" Floppy Drives
*P

    FEATURES
    ────────

    + Backups of optical disks are made using one drive.
      There's no need to buy a second optical drive just
      to make backup copies of optical disks!

    + Copies any size removable DOS disk regardless of
      available space on the hard disk.

    + Files are compressed when they are copied to the hard
      drive and then uncompressed when they are copied to
      the backup disk. This means you'll do a lot less disk
      swapping when copying disks.
*P

    + Mouse-Compatible with context-sensitive help screens.

    + Files that are copied can be based on file date,
      file specification, system flags, hidden flags,
      and archive bit.

    + MASS-STORE COPY also copies DOS compatible disks
      that must be "Mounted" and "Dismounted."

    + Files that are larger than your hard drive can be
      copied regardless of available space on the hard drive.
*P

     How to Order MASS-STORE COPY
     ────────────────────────────

     Send check, money order, or postal order for
     $59.00 + $4.00 S&H. If you are from outside the USA
     please have your bank prepare a check in USA dollars
     drawn on a USA bank and include an extra $5.00 for
     postage.

     Informative Technologies Corp.   Voice (202) 675-4528
     1718 M Street NW, Suite 292      FAX   (202) 675-4529
     Washington, DC  20036-4504

     You must be satisfied with MASS-STORE COPY or you may
     return it within 60 days for a full refund!
*P

 Name_____________________________ Title_____________________

 Company Name________________________________________________

 Address_____________________________________________________

 City________________________________State______Zip__________

 Phone#_________________________Fax#_________________________

     PRESS                MASS-STORE COPY @ $59.00   $_59.00_
 "Print Screen"      DC Residents Add 6% Sales Tax   $_______
 for Order Form.             Shipping and Handling   $_______

 []MONEY ORDER  []POSTAL ORDER  []CHECK      Total   $_______
*E
*B 95,ASCII

    ASCII
    ─────
     
    ASCII is an acronym for American Standard Code for
    Information Interchange. ASCII is a standard 7-bit 
    information code that defines 128 standard characters,
    including control characters, letters, numbers and
    symbols.
*E
*B 96,Shareware

     W H A T    I S    S H A R E W A R E ?
    ───────────────────────────────────────

    ═════════════════
    Some Definitions:
    ═════════════════

    You've probably heard the terms "public domain,"
    "freeware," "shareware," and others.
    Your favorite BBS or disk vendor probably has many
    programs described by one or more of these words.
    There's a lot of confusion about and between these
    terms, but they actually have specific meanings and
    implications. Once you understand them, you will have
    an easier time navigating the maze of programs
*P

    available to you and understanding what your
    obligations are or aren't with each type of program.

    Let's start with some basic definitions:

    "Public domain" has a very specific legal meaning.
    It means that the creator of a work (in this case,
    software) who had legal ownership of that work has
    given up ownership and dedicated the work "to the
    public domain."  Once something is in the public
    domain, anyone can use it in any way they choose and
    the author has no control over the use and cannot
    demand payment for it.
*P

    If you find a program that the author has explicitly
    put into the public domain, you are free to use it
    however you see fit without paying for the right to use
    it.  But use care - due to the confusion over the
    meaning of the words, programs are often described by
    authors as being "public domain" when, in fact, they
    are shareware or free, copyrighted software.  To be
    sure a program is public domain, you should look for
    an explicit statement from the author.

    "Copyrighted" is the opposite of public domain.  A
    copyrighted program is one in which the author has
    asserted his or her legal right to control the
    program's use and distribution by placing the legally
    required copyright notices in the program and
*P

    documentation.  The law gives copyright owners broad
    rights to restrict how their work is distributed and
    provides for penalties for those who violate these
    restrictions.  When you find a program that is
    copyrighted, you must use it in accordance with the
    copyright owner's restrictions regarding distribution
    and payment.  Usually, these are clearly stated in the
    program documentation. Maintaining a copyright does not
    necessarily imply charging a fee, so it is perfectly
    possible and legal to have copyrighted programs which
    are distributed free of charge.  The fact that a
    program is free, however, does not mean it is in the
    public domain -- though this is a common confusion.
*P

    "Shareware" is copyrighted software which is
    distributed by authors through bulletin boards, on-line
    services, disk vendors,and copies passed among friends.
    It is commercial software that you are allowed to try
    before you pay for it.  This makes shareware the
    ultimate in money-back guarantees.

    ══════════════════════
    The Shareware Concept:
    ══════════════════════

    Most money-back guarantees work like this:  You pay for
    the product and then have time to try it out and see
    whether or not you like it.  If you don't like it or
    find that it doesn't do what you need, you
*P

    return it (undamaged) and at some point - which might
    take months - you get your money back.  Some software
    companies won't even let you try their product!  In
    order to qualify for a refund, the diskette envelope
    must have an unbroken seal.  With these "licensing"
    agreements, you only qualify for your money back if
    you haven't tried the product.

    Shareware is different.  You get to try it for a
    limited time without spending a penny.
    You are able to use the software on your own system(s),
    in your own special work environment with no sales
    people looking over your shoulder.  If you decide not
    to continue using it, you throw it away and forget it.
    No paperwork, phone calls, or correspondence
*P

    to waste your valuable time.  If you do continue using
    it, then - and only then - do you pay for it.

    Shareware is a distribution method, NOT a type of
    software. Shareware is produced by accomplished
    programmers, just like retail software.  There is good
    and bad Shareware, just as there is good and bad retail
    software.  The primary difference between Shareware and
    retail software is that with Shareware you know if it's
    good or bad BEFORE you pay for it.

    As a software user, you benefit because you get to use
    the software to determine whether it meets your needs
    before you pay for it, and authors benefit because they
    are able to get their products into your hands without
*P

    spending hundreds of thousands of dollars to launch a
    traditional retail software product.
    There are many programs on the market today that would
    never have become available without the Shareware
    marketing method.

    The shareware system (and the continued availability of
    quality shareware products) depends on your willingness
    to register and pay for the shareware you use.  It's the
    registration fees that allow us to support and
    continue to develop our products.

    Please show your support for Shareware by registering
    those programs you use and by pass them on to others.
*P

    Shareware is kept alive by YOUR support!

    Also See: ^Registration^
*E
*B 97,Technical Support

    Technical Support 
    ─────────────────

    ^Btr Watch^ software support is available.

    There are several ways to contact the author: 

    1. Send Email on CompuServe to David Smith #71311,2334

    2. Leave a voice mail message at (202) 675-4528
       for David Smith.

    3. Send a FAX to (202) 675-4529

*P

    4. Leave a message at the Programmers Corner BBS for
       David Smith #1082     BBS# (301) 596-1180

    5. Or by mail to:

	   David Smith
	   Informative Technologies Corporation
	   1718 M Street NW, Suite 292
	   Washington, DC 20036

    Voice mail messages will probably not be answered until
    the next day. Email responses will usually be the
    fastest, with a response by the end of the day. If you
    are outside of the United States and you need pre- or
    post-registration support, please include your Email
*P

    address when you leave a voice mail message or send a
    fax.

    Please include all relevant information regarding your
    problem including:

    1 - A description of the event.
    2 - The steps that consistently reproduce the event.
    3 - Btrieve version number, type, and command line
        parameters.   (BTRIEVE, BREQUEST, NLM, VAP)
    4 - Hardware information. (Machine Type, Video Adapter)
    5 - Configuration settings for Btr Watch.

    Feel free to leave comments and suggestions to the
    attention of David Smith.
*P

    ^ASP^ wants to make sure that the ^shareware^ principle
    works for you. If you are unable to resolve a ^shareware^-
    related problem with an ^ASP^ member by contacting the
    member directly, ^ASP^ may be able to help. The ^ASP^
    Ombudsman can help you resolve a dispute or problem
    with an ^ASP^ member, but does not provide technical
    support for members' products. Please write to the
    ^ASP^ Ombudsman at 545 Grover Road, Muskegon, MI 49442
    or send a Compuserve message via easyplex to ^ASP^
    Ombudsman 70007,3536"

*E
*B 98,Registration

                   R E G I S T R A T I O N
                   ───────────────────────

     Registration is required if you continue to use
     ^Btr Watch^ after evaluating it for 30 days. This
     program is produced by a member of the Association
     of ^Shareware^ Professionals (^ASP^). Registering
     your copy of ^Btr Watch^ helps the author provide
     professional-quality software at reasonable prices.

     Registration is $29 for a single user plus $4 S&H.

         Complete your registration of ^Btr Watch^
                   for full benefits.
    Press ESC to exit this screen or Page Down for more...
*P

   Registration benefits:

     -  A diskette with the latest version of ^Btr Watch^.

     -  A Printed Guide for ^Btr Watch^.

     -  A free membership to CompuServe with a $15 credit.

     -  A certificate for $7 off a 1 year subscription to
        Shareware Magazine.

     -  Free ^Technical Support^ for 1 Year.

     -  A BONUS diskette with more Informative Technologies'
        software to evaluate.
*P

     Please send check, money order, or postal order. If you
     are from outside the USA please have your bank prepare
     a check in USA dollars drawn on a USA bank.
     Registrants outside the USA should send an extra $5.00
     for postage.

     Send registrations to:

     David Smith                       Voice  (202) 675-4528
     Informative Technologies Corp.    FAX    (202) 675-4529
     1718 M Street NW, Suite 292       CompuServe 71311,2334
     Washington, DC 20036

     OR....
*P

     You may also register with
     MC, VISA, AMEX or DISCOVER
     by contacting the Public (software) Library at:

     (Phone)        800-2424-PSL or 713-524-6394
     (Fax)          713-524-6398
     (CIS-Email)    PsL at 71355,470

     These numbers are for credit card orders only.
     For ^Technical Support^, site licensing, volume or
     dealer discounts, please contact David Smith at
     Informative Technologies Corporation.
*E
*B 99,Btrieve

     Btrieve
     ───────

     Btrieve is a Trademark of Novell, Inc.

     Btrieve is a record management system designed
     to aid PC programmers in the development of
     applications. Btrieve provides the functions
     for high performance key-indexed record
     management while allowing the programmer to
     concentrate on the application.
*E
*B 102,Status Code List

     Status Code List
     ───────────────

     This is a list of status codes returned from Btrieve
     that Btr Watch should monitor. If any of these status
     codes occur, Btr Watch can be configured to beep 
     and/or log up to 100 of the Btrieve operations that
     occured before the specified status code.

*E
*B 103,Options

     Btr Watch Options
     ─────────────────

     This menu allows you to select one of Btr Watch
     option screens.

     Also See:  ^Basic Options^
                ^Advanced Options^
                ^Status Code List^
                ^Retry Options^
                ^Save Settings^
*E
*B 104,Advanced Options

     Advanced Options
     ────────────────

     This selection allows you to set the advanced
     options for Btr Watch.

     Also See:  ^Log Length^
                ^Check for open^
                ^Ignore Stop^
                ^Check for multiple opens^
                ^Log the station name^
                ^Station name^
                ^File Handle Offset^
*E
*B 105,Unload Btr Watch

     Unload Btr Watch
     ────────────────

     This menu option unloads Btr Watch and ^Btrieve^ from
     memory if they are loaded. It also closes any open
     ^Btrieve^ files and aborts any transactions.

*E
*B 106,Save Settings

     Save Settings
     ─────────────

     Selecting this option causes the program settings for
     Btr Watch to be saved to the file BTRWATCH.CFG. The
     next time BTRWATCH.EXE or WATCHBTR.EXE is run,
     the settings are read out of this file. Btr Watch must
     be unloaded from memory and reloaded before the new
     settings take effect.

*E
*B 107,View Log File

     View Log File
     ─────────────

     This option allows you to view the log file. The log
     file is stored as a ^ASCII^ file so you may
     use a text editor to view the file.

     Also See: ^Log Format^

     While viewing the log file, you can select:

         'P'            - Print the log file
         'D'            - Delete the log file
         'H'            - Display this help screen
         'X'            - Exit viewing the log file
*P

     Log File Viewing Keys (continued)
     ─────────────────────

         Up Arrow         - Scroll up one line
         Down Arrow       - Scroll down one line
         Ctrl-Left Arrow  - Page left
         Ctrl-Right Arrow - Paqe right
         PgUp             - Display previous screen
         PgDn             - Display next screen
         Home             - Go to the beginning of the log
         End              - Go to the end of the log

     Also See: ^Log Format^

*E
*B 108,Log Length

     Log Length
     ──────────

     If this option is set to YES, the length of time a
     Btrieve call lasts is logged. If this option is NO,
     the time is not logged. The duration of the calls are
     recorded in clock ticks. Each tick is 1/18 of a
     second or about 55 milliseconds.

*E
*B 109,Check for Open

     Check for Open Files
     ────────────────────

     If this option is set to YES, Btr Watch logs a
     message if files were open when a RESET or STOP
     operation occurs. If this option is NO, a message
     is not logged.

*E
*B 110,Ignore Stop

     Ignore the STOP Command
     ───────────────────────

     If this option is set to YES, Btr Watch does not
     allow an application to unload Btr Watch from
     memory when it executes a (25) STOP command.
     The Stop Command is also not passed on to Btrieve.
     You are still able to unload Btr Watch and Btrieve
     with the 'Unload Btr Watch' menu option. If this
     option is set to NO both Btr Watch and Btrieve are
     unloaded when the application sends the (25) STOP
     command.
*E
*B 111,Check for multiple opens

     Check For Multiple Opens
     ────────────────────────

     If this option is set to YES, Btr Watch logs a
     message to the log file when a file gets opened
     more than once at a time.  If this option is NO,
     a message is not logged.

*E
*B 112,Log the station name

     Log the Station Name
     ────────────────────

     If this option is set to YES, Btr Watch logs the
     ^station name^. If this option is NO, the ^station name^
     is not logged.

*E
*B 113,Station name

     Station Name
     ────────────

     This is a string describing the location where
     Btr Watch is loaded. If you are using Btr Watch on more
     than one station at a time, create different .CFG files
     for each station. The path and name of the log file
     should be the same for each of the different .CFG
     files. The station name should be different for each
     station. Entering a different name for each station
     allows you to follow the Btrieve accesses from several
     stations.
*E
*B 114,File Handle Offset

     File Handle Offset
     ──────────────────

     This is the offset into the position block Btrieve is
     supplied for each call. At this offset is a file
     handle (integer) that is used by Btrieve and Btr Watch.
     The handle is used to tell the difference between
     different Btrieve files that may be open at the same
     time. BTRIEVE.EXE and BREQUEST.EXE have different
     offsets. These offsets may also change in the future.

     Currently BTRIEVE.EXE uses 90 as the offset and
     BREQUEST.EXE uses 126 as the offset.
*E
*B 115,Log all accesses

     Log All File Accesses
     ─────────────────────

     If this option is set to YES, all Btrieve file
     accesses are logged. If this option is set to NO,
     file access are only logged only if one of the status
     codes from the ^status code list^ occurs.

*E
*B 116,Beep for all accesses

     Beep For All Accesses
     ─────────────────────

     If this option is set to YES, a beep will sound for
     every Btrieve operation. If this option is set to NO,
     beeps will not sound for every Btrieve operation.

*E
*B 117,Log the date

     Log the Date
     ────────────

     If this option is set to YES, the date will be
     logged with each log entry. If this option
     is NO, the date will not be logged.

*E
*B 118,Log the time

     Log the Time
     ────────────

     If this option is set to YES, the time will be
     logged with each log entry. If this option is NO,
     the time will not be logged.
*E
*B 119,Beep for status code list

     Beep for ^status code list^ codes
     ──────────────────────────────

     If this option is set to YES, Btr Watch will beep
     when one of the status codes from the ^status code list^
     occurs. If this option is NO, Btr Watch will not
     beep when a status code from the ^status code list^
     occurs.

*E
*B 120,Beep Tone

     Beep Tone
     ─────────

     This is the frequency in hertz of the beep sound 
     Btr Watch makes. The best values for this are between
     1000 and 4000.

*E
*B 121,Beep Duration

     Beep Duration
     ─────────────

     This is the length of the beep sound Btr Watch makes
     in milliseconds.

*E
*B 122,Log File Name

     Log File Name
     ─────────────

     This is the name of the file Btr Watch will log the
     Btrieve operations. If several stations are
     logging to this file, make sure you put the full
     file path to be sure all stations are using the
     same file.

*E
*B 123,Log Format

  An example of the log file is as follows:

   09:41:21  ==========[ BTRWATCH Loaded ]=========
   09:41:35  0                0  Open
   09:41:36  0  NWSPAPER.BTR  0  Get First
   09:41:36  1  NWSPAPER.BTR  0  Get Next   (9) END OF FILE
      │      │        │       │     │        │
      │      │        │       │     │        └── ^Result^
      │      │        │       │     └─────────── ^Operation^
      │      │        │       └───────────────── ^Key Number^
      │      │        └───────────────────────── ^File^
      │      └────────────────────────────────── ^Length^
      └───────────────────────────────────────── ^Time^ ^Date^
     You may have more or less fields in your log
     file depending on the program ^options^.
*E
*B 124,Date

     Date
     ────

     This is the date when the file operation was
     performed. It is in the format DA MON YR.

     DA = Day, MON = Month, and YR = Year.

     Also See: ^Log Format^  ^Time^
*E
*B 125,Time

     Time
     ────

     This is the time when the file operation was
     performed. It is in the format HH:MM:SS.

     HH = Hour, MM = Minutes, and SS = Seconds.

     Also See: ^Log Format^  ^Date^
*E
*B 126,Length

     Length of Time
     ──────────────

     This is the length of time the Btrieve call lasts.
     The units of this value are in clock ticks.
     Each tick is 1/18 of a second or about 55 milliseconds.


     Also See: ^Log Format^
*E
*B 127,File

     Filename
     ────────

     This is the name of the Btrieve file the ^operation^
     was performed upon.

     Also See: ^Log Format^
*E
*B 128,Key Number

     Key Number
     ──────────

     This is the key value of the Btrieve call.  Although
     there is a key value for every Btrieve call. Not all
     Btrieve calls need a key, so it may be a strange
     value.

     Also See: ^Log Format^
*E
*B 129,Operation

     Operation
     ─────────

     This is the Btrieve operation that was performed. The
     entries are added to the log just after the Btrieve
     call was performed, not before.

     Also See: ^Log Format^
*E
*B 130,Result

     Result
     ──────

     This is the result of the Btrieve operation. If the
     operation is a success, no entry is found in this
     location. If an error code is returned, the error code
     number along with a short description of the error
     code is logged.

     EXAMPLE:

         (3) FILE NOT FOUND
         (5) KEY NOT FOUND

     Also See: ^Log Format^
*E
*B 150,Retries

     Retries
     ───────

     This is the number of times Btr Watch should call
     Btrieve when a status code from the ^Retry Status Codes^
     list is returned. If 5 is entered in this field, the
     operation will be retried 5 times. If 0 is entered,
     the operation will not be retried.

     Also See: ^Retry Options^
*E
*B 151,delay between retries

     Delay Between Retries
     ─────────────────────

     This is the amount of time to wait between retries
     of the call to Btrieve. This value is in milliseconds.
     1000 = 1 Second.

     Also See: ^Retry Options^

*E
*B 152,Retry Status Codes

     Retry Status Codes
     ──────────────────

     This is a list of Btrieve status codes. If any of
     these codes are returned by Btrieve, Btr Watch will
     call Btrieve again using the same parameters '^Retries^'
     number of times with a ^delay between retries^.

     Also See: ^Retry Options^

*E
*B 153,Basic Options

     Basic Options
     ─────────────

     This selection allows you to set various
     options for Btr Watch.

     Also See:  ^Log all accesses^
                ^Beep for all accesses^
                ^Beep for status code list^
                ^Log the time^
                ^Log the date^
                ^Log file name^
                ^Beep tone^
                ^Beep duration^
*E
*B 154,Retry Options

     Retry Options
     ─────────────

     Btrieve sometimes returns status codes indicating
     problems that can be corrected by retrying
     the operation again. If an application is trying
     to lock a record or file when the record or file
     is locked, these status codes could be returned:
     (85) FILE IN USE and (84) RECORD IN USE.
     Sometimes (2) I/O ERROR is returned and when it is
     retried, it is successful. If the error is still
     returned after several tries, it may indicate a real
     error and retrying will not help. Other status codes,
     that can be resolved by retrying them, can be added
     to the default list.
*P

     Btr Watch makes a note in the log file whenever it
     retries an operation.
         Up to 10 different status codes can be monitored
     and the operations can be retried if these status
     codes occur. The ^delay between retries^ and the
     number of ^retries^ can be configured.

     Also See: ^Retry Status Codes^
*E
*B 207,Violation

        THE 30 DAY EVALUATION PERIOD HAS EXPIRED
        ────────────────────────────────────────

     ^Registration^ is required if you continue to use
     Btr Watch after evaluating it for 30 days.

     You may register with MC, VISA, AMEX or DISCOVER
     by contacting the Public (software) Library at:

     (Phone)        800-2424-PSL or 713-524-6394
     (Fax)          713-524-6398
     (CIS-email)    PsL at 71355,470

     These numbers are for credit card orders only.
*E
*B 406,ASP

                 ┌─────────┐
           ┌─────┴───┐     │               (R)
         ──│         │o    │──────────────────
           │   ┌─────┴╨──┐ │  Association of
           │   │         │─┘  ^Shareware^
           └───│    o    │    Professionals
         ──────│    ║    │────────────────────
               └────╨────┘    MEMBER

    In the early days of Shareware there were no real
    standards. Independent authors had no efficient way
    to learn from each other or to work together to improve
    the overall image of Shareware. There was no system in
    place to ensure that users were treated fairly and
    professionally.
*P

    There was no way for users to find an address for an
    author who had moved.  In short, the Shareware community
    was disorganized and each author did things the way he
    or she thought was best.  It was clear that if Shareware
    was ever to become a viable and respected marketing
    alternative, there had to be standardization and
    guidelines to best serve the users.

    In 1987, a handful of Shareware authors founded the
    Association of Shareware Professionals (ASP).  In
    forming this industry association, the Shareware
    authors had several goals in mind, including:
*P

    o  To inform users about Shareware programs and about
       Shareware as a method of distributing and marketing
       software.

    o  To foster a high degree of professionalism among
       Shareware authors by setting programming, marketing,
       and support standards for ASP members to follow.

    o  To encourage broader distribution of Shareware
       through user groups and disk dealers who agree
       to identify and explain the nature of Shareware.

    o  To assist members in marketing their software.
*P

    o  To provide a forum through which ASP members may
       communicate, share ideas, and learn from each other.

    The newly-formed Association of Shareware Professionals
    worked together to draft a code of ethics for all
    present and future members.  This code of ethics
    included several requirements that soon became very
    popular among users (customers), including:

    o  A member's program (evaluation version) could not be
       limited (crippled) in any way.  In the true spirit
       of Try-Before-You-Buy, users must be able to
       evaluate all the features in a program before paying
       the registration fee.
*P

    o  Members must respond to every registration.  At the
       very least they must send a receipt for the payment.

    o  Members must provide technical support for their
       products for at least 90 days from the date of
       registration.

    A new system was put in place to help ensure that users
    were treated fairly and professionally.  If a user was
    unable to resolve a problem with a member author then
    the user could contact the ASP Ombudsman with their
    complaint.  The Ombudsman would then try to help
    resolve the dispute.
*P

    As of February, 1991, the ASP had over 300 author
    members and almost 200 vendor members, with new members
    joining every week.

    ══════════════════════════════════════
    Contacting ASP Members Via CompuServe:
    ══════════════════════════════════════

    There is an easy and convenient way to speak directly
    to many ASP Members (both authors and vendors).  Visit
    the Shareware forum on CompuServe.  Simply type
    "GO SHAREWARE" - or "GO SHARE" - from any CompuServe !
    prompt.
*P

    Here you will be able to talk to the authors of your
    favorite Shareware programs, learn about other
    programs, ask questions, make suggestions, and much
    more.  We'd like to meet you online, please come visit
    us today!

    ALSO SEE: ^Registration^    ^Shareware^
*E
*B 408,Btr 'C' Library

    BTR 'C' LIBRARY
    ───────────────

    The BTR 'C' LIBRARY is available with the registered
    version of ^Btr Help!^.  All the calls to the
    BTR 'C' LIBRARY reference btrieve files by a handle
    (integer). This handle is returned when the file is
    opened with the iBtrOpen function. The function
    BtrInitialize should be called at the beginning of
    your program and iBtrCloseAll should be called at the
    end of your program. Press PageDown for an example.
*P

    #include <stdio.h>
    #include <btrieve.h>
    void main( void )
        {
        int iNews;

        BtrInitialize();
        iNews = BtrOpen("NWSPAPER.BTR", NULL, B_OPEN);
        BtrCall( iNews, B_GET_LOWEST, 1);
        /* Application Code goes here.. */
        BtrClose( iNews );
        BtrCloseAll();    /* Close all Files still open */
        }

    Press PageDown for a list of library functions.
*P

   char *BtrErrorCode(int iBtrError)
   ─────────────────────────────────

   Returns the string for a Btrieve error code.

      INPUTS
   iBtrError - Error code number

      RETURNS
   String for a Btrieve error code.

      EXAMPLE
   printf("Btrieve Error 10=%s\n", BtrErrorCode( 10 ));
*P

   char *BtrOperationCode(int iBtrOper)
   ────────────────────────────────────

   Returns the string for a Btrieve Operation code.

      INPUTS
   iBtrOper - Btrieve Function code

      RETURNS
   String for a Btrieve operation code.

      EXAMPLE
   printf("Operation 3 is %s\n",BtrOperationCode( 3 ));
*P

   int BtrOpen(char *sFile, void *acRecord, int iOpenType)
   ───────────────────────────────────────────────────────

   Opens a Btrieve file. Does a statistics function call on
   the file. Stores the record size and key information.
   Returns a handle (integer) to refer to the Btrieve file.

      INPUTS
   sFile........Btrieve file path and name
   acRecord.....Pointer to Btrieve record or NULL if you
           		want a record to be automatically
		      	allocated for you.
   iOpenType....Type of open for the Btrieve file.
*P

       B_OPEN             Regular Btrieve open
       B_OPEN_ACCELERATED Open Accelerated
       B_OPEN_READ_ONLY   Open Read Only
       B_OPEN_VERIFY      Open Verify for local DOS disks
       B_OPEN_EXCLUSIVE   Open Exclusive access to file

      RETURNS
   Btrieve file handle or 0 if an error occurs.

      EXAMPLE
   iBtr=BtrOpen("MAIL.BTR", &rMail, B_OPEN);
*P

   int BtrClose(int iBtrHandle)
   ────────────────────────────

   Closes a the file and deallocates data space used by it.

      INPUTS
   iBtrHandle....File handle (integer) that refers to the
		 file.

      RETURNS
   The Btrieve result status code of the close.

      EXAMPLE
   BtrClose(iBtr);
*P

   void BtrShowError( int iBtrHandle )
   ───────────────────────────────────

   Displays a Btrieve error on the screen. You will
   probably want to modify this routine for your particular
   user interface.

      INPUTS
   iBtrHandle...Btrieve file handle to display last
                operation result.
      RETURNS
   Nothing

      EXAMPLE
   BtrShowError( iBtr );
*P

   int BtrCreate(char *sFile, FILE_SPEC *specs, int iKey)
   ──────────────────────────────────────────────────────

   Creates a Btrieve file.

      INPUTS
   sFile........The file name supplied.
   specs........The Btrieve specs to create the file.
   iKey.........Create Status Key.
	CHECK_EXISTS    -  Check if file exists on create.
	NO_CHECK_EXISTS -  Don't check if file exists.
      RETURNS
   The Btrieve result status code of the create.
      EXAMPLE
   BtrCreate("TEMP.BTR",&FileSpecs, 0);
*P

   int BtrCall(int iBtr, int iFuncCode, int iKeyNumber)
   ────────────────────────────────────────────────────

   Executes a function call on a file specified by iBtr.

      INPUTS
   iBtr.........Btrieve file handle
   iFuncCode....Btrieve function code to execute
   iKeyNumber...Key path to use

      RETURNS
   Btrieve result status of the function.

      EXAMPLE
   BtrCall(iBtr, B_GET_NEXT, 0);
*P

   int BtrFillKey(int iBtrHandle, void *sKeyField)
   ───────────────────────────────────────────────

   Fills a Btrieve key field from a string.

      INPUTS
   iBtrHandle...Handle of Btrieve file
   sKeyField....String to load into the key field

      RETURNS
   FILE_NOT_OPEN if the handle is invalid, else it
   returns 0.

      EXAMPLE
   BtrFillKey(iBtr, "NEW YORK");
*P

   int BtrFillKeyN(int iBtr, void *sKeyField, int iLength)
   ───────────────────────────────────────────────────────

   Fills the key field from an array of length iLength.

      INPUTS
   iBtr........Handle of Btrieve file
   sKeyField...Address of bytes to load into the key field.
   iLength.....Number of bytes to load

      RETURNS
   FILE_NOT_OPEN if the handle is invalid, else it returns 0

      EXAMPLE
   BtrFillKeyN(iBtr, rKeyStruct, sizeof(rKeyStruct);
*P

   int BtrSetRecordLength(int iBtr, int iRecordLength)
   ───────────────────────────────────────────────────

   Sets the record length of a Btrieve record.

      INPUTS
   iBtr.............Handle of Btrieve file
   iRecordLength....Size of the Btrieve record.

      RETURNS
   FILE_NOT_OPEN if the handle is invalid, else
   it returns 0.

      EXAMPLE
   BtrSetRecordLength(iBtr, sizeof(rMail));
*P

   int iBtrGetRecordLength(int iBtrHandle)
   ───────────────────────────────────────

   Returns the record length of the last record read.

      INPUTS
   iBtrHandle...Handle of the Btrieve file.

      RETURNS
   0 if the handle is invalid, else it returns the record
   length.

      EXAMPLE
   iLength = iBtrGetRecordLength( iBtr );
*P

   void BtrInitialize(void)
   ────────────────────────

   Initializes Btrieve and the data structures.

      INPUTS
   None

      RETURNS
   None

      EXAMPLE
   BtrInitialize();
*P

   long lBtrGetPosition(int iBtrHandle)
   ────────────────────────────────────

   Returns a long integer indicating the position of
   the current record.

      INPUTS
   iBtrHandle...Handle of the Btrieve file.

      RETURNS
   The position of the current Btrieve record.

      EXAMPLE
   lPosition = lBtrGetPosition( iBtr );
*P

   int iBtrSetPosition(int iBtr, long lPosition, int iKey)
   ───────────────────────────────────────────────────────

   Sets the position of the current record using a long int.

      INPUTS
   iBtr..........Handle of the Btrieve file.
   lPosition.....Position to set in the Btrieve file.
   iKey..........Key path to set the current positioning.

      RETURNS
   The Btrieve result status for the B_GET_DIRECT call.

      EXAMPLE
   iBtrSetPosition(iBtr, lPosition, 0);
*P

   int BtrCloseAll(void)
   ─────────────────────

   Closes all Btrieve files that may be open.

      INPUTS
   None

      RETURNS
   0

      EXAMPLE
   int BtrCloseAll();
*P

   int BtrKeyInit(int iBtrHandle)
   ──────────────────────────────

   Fills a Btrieve key field with nulls.

      INPUTS
   iBtrHandle........Handle of the Btrieve file.

      RETURNS
   0 or FILE_NOT_OPEN if the handle is invalid.

      EXAMPLE
   BtrKeyInit( iBtr );
*P

   int BtrKeyMax(int iBtrHandle)
   ─────────────────────────────

   Fills a Btrieve key field with 0xFF.

      INPUTS
   iBtrHandle....Handle of the Btrieve file.

      RETURNS
   0 or FILE_NOT_OPEN if the handle is invalid.

      EXAMPLE
   BtrKeyMax( iBtr );
*P

   char *BtrDataRecord(int iBtrHandle)
   ───────────────────────────────────

   Returns a pointer to the Btrieve data record given the
   file handle.

      INPUTS
   iBtrHandle...Handle of the Btrieve file.

      RETURNS
   Pointer to the Btrieve data record.

      EXAMPLE
   prMail = BtrDataRecord( iBtr );
*P

   long BtrNumberOfRecords( iBtr )
   ───────────────────────────────

   Returns a long integer containing the number of records
   in a file when the file was opened. Does not reflect
   any records added or deleted since the file was open.

      INPUTS
   iBtrHandle...Handle of the Btrieve file.

      RETURNS
   The number of records in a Btrieve file.

      EXAMPLE
   lRecords = BtrNumberOfRecords( iBtr );
*P

   void *BtrSpecRecord(int iBtrHandle)
   ───────────────────────────────────

   Returns a pointer to the Btrieve file specifications
   for a Btrieve file.

      INPUTS
   iBtrHandle....Handle of the Btrieve file.

      RETURNS
   Pointer to the Btrieve file specifications for a file.

      EXAMPLE
   Specs = BtrSpecRecord( iBtr );
*E
*B 409,Btr Help!

                      B T R   H E L P !
                     ───────────────────

    Btrieve is Novell's record-manager system designed to
    aid PC programmers in the development of applications.
    Btr Help! was created to provide functions needed during
    the design, development, and maintenance of applications
    that use Btrieve.  Btr Help! provides an easy way to
    repair damaged Btrieve database files or test their
    integrity.

    Some of the other features of Btr Help! are:

      + Browse, edit, add, and delete Btrieve records.
      + List Btrieve operation, error, and key codes
*P

      + Empty or clone files.
      + Display Btrieve file statistics.
      + Repair damaged Btrieve file headers.
      + Display records in ASCII, hex, or key format.
      + Display Btrieve version and type loaded.
      + And more!

    Btr Help! is useful for file maintenance with Great
    Plains Accounting, IBM's Platinum Series, Galacticomm
    BBS, Macola Accounting, Xtrieve, Magic PC DBMS, DacEasy
    Accounting, Pacioli 2000 Accounting or any application
    that uses Btrieve. ($40)
*E
*B 410,Btrieve Quick Reference

                Btrieve Quick Reference Card
               ──────────────────────────────

    The Btrieve Quick Reference card is a handy
    reference to all Btrieve functions codes and return
    status codes. All operation codes are cross referenced
    with the expected input and return values. This
    includes all the extended Btrieve operations.
    The 5 1/2 x 8 1/2 quick reference card is durable
    and bright green.
*E
*B 411,Quick Start

     Quick Start
     ───────────

     1. Load Btrieve before ^Btr Watch^ is loaded.

     2. After Btrieve is loaded, run "BTRWATCH"
        The TSR part of Btr Watch will be loaded.

     3. Load a Btrieve application and use it normally.

     4. Exit out of the application and run "WATCHBTR".

     5. Select 'V' from the menu to display the Btrieve file
        operations used when the application was run.
*E
*B 412,Config File

     Configuration File
     ──────────────────

     The file contains all of the program ^options^ used by
     WATCHBTR and BTRWATCH.  A configuration file can be
     specified on the command line to load or save to a
     configuration file with a name other than BTRWATCH.CFG.
     If a configuration file is not given, BTRWATCH.CFG is
     used as the configuration file.

*E