                        ALL ABOUT CPR

CPR is a work recovery tool that can increase your computing 
confidence in an unstable operating environment.  
CPR saves the state of your system  periodically so that if 
it locks up or you lose power, you can "roll back the camera" 
and resume work where the last save occurred.

Perhaps even more useful in ordinary, day-in, day-out circumstances,
CPR can also perform automatic system shutdowns that save the state 
of your local system no matter what you are doing, and then 
shut it down, so that you can recover completely the next time 
you turn on the computer, and begin working where you left off.

How often automatic or manual saves are made, 
and what has occurred in the PC's file system since the last 
save determines
   (1) the amount of work you get back
   (2) the stability of the recovered system.  

This file explains how CPR works, describes conditions 
that affect a complete and successful recovery, and includes 
suggestions for optimizing its usefulness and performance in 
your system.

Although CPR is useful to PC users concerned about possible
data loss, the emergency recoveries do not guarantee complete 
recovery in all cases. The automatic shutdown procedure DOES
recover all data--except network session data.

Emergency recoveries usually bring back work in progress - at least
to the point data files can be saved to disk - in 80-85% of
the cases.  

How CPR Works
-------------
CPR saves system RAM (including video and LAN adapter
memory) and copies of your hard-disk file-allocation table
(FAT) to a hidden image file on your bootable hard drive.
By default, these saves occur every 30 minutes or at
intervals you specify.  Just before the save begins, you
hear three short tones. Screen refreshing, keyboard input,
and mouse actions are suspended during the save.
When the save is complete, you hear two short tones, 
signaling that you can continue working.

If you experience a system crash or loss of power, you
simply reboot and type "CPR" at the DOS prompt. CPR compares
its image file with your hard drive's current 
file system.  It decides whether or not system recovery is 
possible, and if so, what level of risk is involved. 
CPR rates the likelihood of complete restoration from 
"Excellent" to "Poor," explained below:

Excellent:  
  No change: Nothing has changed in the disk system between
  the saved-state file and the current system state. There
  is an excellent chance of successful recovery.

Good:
  File(s) changed: Data was changed, but it did not affect
  the FAT (that is, no clusters were removed or added to the
  file.) There is a very good chance of successful recovery.

Fair:
  File(s) shortened: Data was changed, and the FAT was
  affected because clusters were removed (unallocated) from
  the file, and added to the free clusters list in the FAT.
  There is a good chance of successful recovery. Although
  data may be corrupted, there is a slight chance of damage
  to the hard disk's current FAT. If the newly unallocated
  clusters have not been allocated to another file, the
  current FAT can be changed to match the saved FAT.

Poor:  
  File(s) extended: Data was changed, and the FAT was
  affected because clusters were added to the file. There is
  a fair chance of successful recovery. Although data may be
  corrupted, chances of compromising the hard disk structure
  is very low. Since there would probably be "lost
  clusters," run DiskFix after recovery to eliminate future
  problems.

  Clusters have moved: Data was changed, and as a result,
  the unallocated clusters have been allocated to another
  file. There is a very poor chance of a successful recovery
  in this situation.

The chances for a full recovery are directly related to
the frequency of the saves and the type of disk activity
that has occurred since the most recent save.  
Default save intervals typically result in Good
to Excellent recovery scenarios.  After CPR recovers a
system, save your data immediately and then
reboot again to ensure maximum system stability before
continuing.  If CPR's recovery prognosis was less than
Excellent, run PC Tools DiskFix or Norton Disk Doctor
after you reboot to clean up any loose ends in the file
structure.

How CPR Decides To Save
-----------------------
To ensure the best chances for recovery, CPR uses a
combination of four factors to decide how often to 
save, as described below.  Any one of these factors will
trigger a save, after the hold-out time has elapsed:

FACTOR               HOW IT WORKS                 DEFAULT*

Time between saves   Save occurs when N minutes   30 min.
                     have passed, regardless of
                     disk activity

FAT activity         Save occurs when N minutes    5 min.
                     have passed following FAT
                     changes

Disk writes          Save occurs when N minutes   10 min.
                     have passed following a disk
                     write

Hold-out time        After any of the above        10 sec.
                     conditions  have been met,
                     CPR waits until the PC is 
                     idle for N seconds, and then 
                     does a save.

* All of these settings can be adjusted in the advanced
  configuration menu.

Known CPR Limitations
---------------------
Given the wide variety of systems and applications in use,
it's impossible to accurately predict every scenario and the
exact rules that determine whether or not CPR will be able
to successfully recover your particular session.  However,
here are some known limitations that a user should be aware
of:

1. Supported hardware. CPR supports more than 100 video
   cards and has been tested on dozens of different PCs, but
   there are some configurations that we do not support at this
   time.  For a list of supported hardware, see the entries in
   the advanced configuration menu

2. Limits to restoring Microsoft Windows.  Under the right
   conditions, we have had good results restoring Windows
   sessions.  There are, however, some known problems:

 * To restore a Windows session, you must run CPR
   from DOS.  You cannot spawn a DOS session in Windows and
   run it from there.  

 * When you restore a Windows session that was connected to
   NetWare, network error messages can interfere and make it
   difficult for you to save the file you were working on.
   The effect of this on CPR depends on what
   you were doing on the network, how long after a disconnect
   your network "times you out," and the type of network you
   are using.  (For more network information, see point #3
   below.)

 * If you use a bus mouse, avoid moving it while CPR is
   saving your work in progress.

3. Recovery of network connections.  If you are running an
   application on the server or depend on the server in
   any way, such as for e-mail, do not expect CPR to restore
   this type of session.  CPR saves the state of your local PC,
   but cannot do the same for the server.  Therefore, when you
   roll the clock back the server may become confused. The
   circumstances under which CPR will not work vary widely,
   depending on the type of network in use.  The following
   issues and factors should be considered:
 
 * We currently support NE1000/2000 and SEEQ 5-based LAN
   adapters.  A "user defined" screen is provided for other
   cards, but the biggest factor in whether or not CPR will
   enable recovery of networked systems is the type of
   network software you are running.

 * Transactions that run on the server will fail when
   recovered.  If you were doing something on the network
   when the last save was done, and after recovery this no
   longer makes sense to the server, that application will
   probably fail.  Sometimes a "retry" will correct the
   situation.  Some networks, NetWare Lite and Mainlan, for
   example, treat network packets individually, so these 
   networks usually can recover successfully.  Full NetWare 
   systems are generally not recoverable.

 * Automatic timeouts that disconnect your PC from the LAN
   are an issue.  NetWare and Lantastic do this, NetWare Lite
   and Mainlan do not.  If you have been timed out, CPR will
   recover with the network dead. Local processing is not
   usually affected (except under some Windows scenarios),
   but network transactions are not recovered.  Lantastic
   times out so quickly that you will always be disconnected
   before you can recover a session.
 
4. Automatic saves may interfere with real-time programs.  If you
   are using a real-time program, such as a telecommunications
   applications, turn off CPR before starting the program.
   This can be done in a batch file using the CPR /DISABLE and
   CPR /ENABLE commands.  That way, CPR won't initiate a save
   and possibly terminate your connection.

5. Available disk space for image file.  The CPR install
   program tests for this condition automatically, but the PC
   must have enough available disk space to create the image
   file.  The image file must be on a local,
   bootable drive; it cannot be on a compressed volume such as
   Stacker or DoubleSpace, or on a network drive. The
   More PC Tools manual explains how this calculation is made. 
   As a general rule, CPR requires an image file equal to the 
   amount of system and video RAM, plus another 100K for FATs and
   other file structure overhead.


How To Ensure The Best Results
------------------------------
When you recover a session after a system crash or other emergency,
do not simply proceed as though nothing happened. 
Immediately save your work and then reboot your system 
to stabilize the file structure on your PC.  In addition, 
if CPR determined that odds for recovery were less
than Excellent, remember to run DiskFix before loading up
your applications again.

Programmable Access (CPR's API)
-------------------------------
An API is available for CPR that allows disabling and
enabling system state saves, and forcing a system save from
within another program.  Also, "CPR /DISABLE" and "CPR
/ENABLE" can be used in batch files.

Common Questions & Answers
--------------------------
Q:  How long does a typical save take?  Won't this be a
    nuisance if CPR is saving often enough to be useful?

A:  This is a function of how much RAM is in your PC, and
    the overall performance of the system.  A typical 80486 PC
    with 8 MB RAM takes 10-15 seconds.  CPR attempts to minimize
    the "nuisance factor" by waiting until at least 10 seconds
    have passed where no keyboard or mouse activity occurs
    before starting the save.  This holdout period can be
    increased.

Q:  Is there any way to reduce the amount of disk space
    required by the image file?

A:  Not usually.  But there is one exception.  If you know
    for sure you won't be using all the RAM in your PC, CPR can
    be configured to save only a portion of your memory.  For
    example, if you have a 2 MB machine, but only run MS-DOS and
    programs that do not use EMS/XMS, you can only save the
    first megabyte.

Q:  Why can't I compress the image file using Stacker or
    DoubleSpace?

A:  Like the permanent swap file in Windows, CPR's image
    file must be on an uncompressed "host" drive.  For one
    reason, this ensures the fastest possible saves.

Q:  During a save, my screen goes blank.  Is this normal?

A:  Yes, this is expected and occurs when CPR is saving your
    video RAM.  Then, before CPR releases control of your
    machine, your screen is restored.


