home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / tame334.zip / TAME.DOC < prev    next >
Text File  |  1996-12-07  |  49KB  |  1,095 lines

  1.                                 
  2.                                 
  3.                                 
  4.                                 
  5.                                 
  6.                                 TAME(r) release 3.34
  7.  
  8.                               Shareware Documentation
  9.  
  10.                        Copyright 1988-1996 by David G. Thomas
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. Tame is a registered trademark of David G. Thomas
  20. -------------------------------------------------------------------------------
  21.                                     Overview
  22. -------------------------------------------------------------------------------
  23.  
  24. Introduction
  25.  
  26.    Tame will help you get maximum performance from your multitasking
  27.    environment by speeding up the processing of your applications.
  28.  
  29.    TAME works with many MS-DOS based multitasking environments.  In fact,
  30.    there are special hooks in TAME for use with most of the popular
  31.    multitaskers including Windows, OS/2, Windows NT, Windows 95, DESQview, 
  32.    Double Dos, Omniview, VM/386 and PC/MOS.
  33.  
  34.  
  35. Installation
  36.  
  37.    The exact procedure to install Tame varies slightly depending on the
  38.    multi-tasker that is being used.  See below for detailed instructions for
  39.    installing Tame in your environment. 
  40.    
  41.    A generic installation that applies to all multi-taskers is as follows.
  42.  
  43.    Copy the distribution files onto the hard drive.  You may find it
  44.    convenient to place the Tame directory in the path or to copy the Tame
  45.    files into a directory that is in the path.  Another option is to copy just
  46.    TAME.EXE into a pathed directory, and set the TAME environment variable to
  47.    point to the directory where the rest of the Tame files are.
  48.  
  49.    Tame should be loaded into each DOS task.  To do this, type the following 
  50.    command line.
  51.  
  52.       TAME /I
  53.  
  54.    Other options may be used to optimize performance if necessary.  I suggest
  55.    you try the following.
  56.  
  57.       TAME /I 9
  58.  
  59.    If this makes the program run noticeably more slowly, try:
  60.  
  61.       TAME /I 5
  62.  
  63.    If this makes the program run noticeably more slowly, try:
  64.  
  65.       TAME /I 1
  66.  
  67.    A complete list of Tame options appears at the end of this document.
  68.  
  69.  
  70. Why do you need TAME?
  71.  
  72.    Using a multitasking environment increases your productivity because you
  73.    can run more than one application at a time.  While you are running a word
  74.    processor in the "foreground", you can calculate a spreadsheet or print a
  75.    report in the "background".  Although you appear to be getting several
  76.    things done at the same time, multitasking can actually slow down your
  77.    system.  This will continue to get worse as you run more applications at
  78.    the same time.
  79.  
  80.    Most DOS applications are designed to run in a single-tasking environment.
  81.    The application acts as if it is the only program running on the computer.
  82.    It spends most of its time waiting for an instruction, and very little
  83.    time carrying out the instruction.
  84.  
  85.    While the application is waiting, it queries the various devices
  86.    (keyboard, mouse, etc.) to see if you have sent an instruction.  Then it
  87.    checks again and again in a continuous cycle.  This constant checking is
  88.    known as "polling". In just a few seconds between key strokes, a program
  89.    may poll the keyboard hundreds or even thousands of times.
  90.  
  91.    All this polling uses a lot of the CPUs processing time.  In a
  92.    single-tasking DOS environment with only one program competing for CPU
  93.    time, polling doesn't affect performance.  There are no other applications
  94.    competing for CPU time.
  95.  
  96.    But when you are multitasking, this constant polling wastes a lot of CPU
  97.    time.  The background program is continually polling while you are trying
  98.    to work in the foreground.  This unnecessary loss of CPU time from your
  99.    foreground program makes it perform much slower.  That's where TAME can
  100.    improve your performance.
  101.  
  102.  
  103. How does TAME work?
  104.  
  105.    TAME re-allocates how the CPU spends its time.  It applies more CPU time
  106.    to active tasks (like printing or spell-checking) and less time to idle
  107.    tasks that are merely polling.  In essence, TAME speeds up your "active"
  108.    work by slowing down your "inactive" work.
  109.  
  110.    TAME monitors what a program is doing.  TAME notices when a program is
  111.    idle and its only activity is polling the keyboard.  After enough polls,
  112.    TAME can see that the program is wasting time and tells the multitasker to
  113.    move on to the next task.  When the multitasker returns to the idle task,
  114.    TAME will be less patient than before and force a task switch as soon as
  115.    the program starts polling again.
  116.  
  117.    When the program does something active -- such as processing keyboard
  118.    input, performing disk I/O or changing the video screen -- TAME redirects
  119.    the CPU's attention to it.  TAME detects the activity and boosts the
  120.    program's priority for about a tenth of a second.  The priority boost
  121.    prevents TAME from causing a task switch during that period of time.
  122.  
  123.    You may configure TAME to go so far as to instruct the multitasker not to
  124.    waste any more time on a background task until it is brought into the
  125.    foreground. Other TAME options may be used to help it correctly identify
  126.    and deal with programs that are wasting your CPU time by polling input
  127.    devices.
  128.  
  129. -------------------------------------------------------------------------------
  130.                               License and Registration
  131. -------------------------------------------------------------------------------
  132.  
  133. You are given a 30 day trial period to evaluate the effectiveness of Tame.  If
  134. you decide to keep it, fill in the registration form (REGISTER.FRM), and send
  135. it with $20 to the following address.
  136.  
  137.    David G. Thomas
  138.    4290 Bells Ferry Road
  139.    Suite 106 Room 576
  140.    Kennesaw, GA 30144-1300
  141.  
  142. For more information, write to tame@mindspring.com or visit the web page at
  143. http://www.mindspring.com/~dgthomas/tame.htm
  144.  
  145. After receiving the registration fee, I will send you a diskette with a
  146. version of the program that has no delay screens or timeout period.  It also
  147. includes the full printed documentation which is much more extensive than that
  148. provided in this file.
  149.  
  150. NOTE: Checks must be made out to David G. Thomas, and payable in U.S. funds.
  151.  
  152. -------------------------------------------------------------------------------
  153.                               Installation
  154. -------------------------------------------------------------------------------
  155.  
  156. Installing TAME
  157.  
  158.    Tame is installed onto the hard drive by uncompressing the Tame archive
  159.    file (TAME333.ZIP).
  160.  
  161.    Once TAME is installed, there are several ways to run it.  With both
  162.    DESQview and Windows 3.x, you may automatically add TAME to each program's
  163.    window description, or you may manually edit each description to run TAME.
  164.    With other multitaskers, you may load TAME at the DOS command line or from
  165.    within a batch file.
  166.  
  167.    The quick start section is a starting point that quickly produces
  168.    excellent results.  You'll effortlessly achieve almost all of TAME's
  169.    potential benefits. When you feel comfortable with TAME, try the advanced
  170.    features to achieve optimal performance of your system.
  171.  
  172.  
  173. Quick Start
  174.  
  175.    Follow the quick start instruction to run TAME with the multitasker you
  176.    are using.  If you use DESQview or Windows 3.x, you should then review the
  177.    advanced setup options that follow the quick start.  When your setup is
  178.    complete, refer to the section on how to test TAME with your applications.
  179.  
  180.  
  181. DESQview Quick Start
  182.  
  183.    To automatically add TAME to DESQview, change to the C:\DV directory.  Now
  184.    run the TAMEDVP update program to add TAME to the selected DVP window
  185.    description.  For example, the following command lines add TAME to the
  186.    default Big DOS (BD) window.
  187.  
  188.       CD \DV
  189.       TAMEDVP BD
  190.  
  191.    TAME will be in effect the next time the window is opened.  Any existing
  192.    BD windows will need to be closed and re-opened for TAME to affect them.
  193.    Continue to run the TAMEDVP program for each DVP window description that
  194.    needs TAME. Note that TAME will automatically add 10K to the memory size
  195.    and modify the program options for the window you specify.  See the
  196.    DESQview Advanced Setup for an explanation of the options that are
  197.    automatically modified by TAMEDVP.
  198.  
  199. Windows 3.x Quick Start
  200.  
  201.    To automatically add TAME to Windows, change to the C:\Window directory.
  202.    Now run the TAMEPIF update program.  This will add TAME to the selected
  203.    PIF window description.  The following command lines add TAME to the
  204.    Window's default window (_DEFAULT).
  205.  
  206.       CD \WINDOWS
  207.       TAMEPIF _DEFAULT
  208.  
  209.    TAME will be in effect the next time the window is opened.  Any existing
  210.    _DEFAULT windows will need to be closed and re-opened for TAME to affect
  211.    them. Continue to run the TAMEPIF program for each PIF window description
  212.    that needs TAME.  Note that TAME will automatically add 10K to the memory
  213.    size and modify the program options for the PIF window you specify.  See
  214.    the Windows Advanced Setup section for an explanation of the options that
  215.    are automatically modified by TAMEPIF.
  216.  
  217.  
  218. Other Multitaskers Quick Start
  219.  
  220.    First, make sure you are running in your multitasker.  Then, load TAME at
  221.    the DOS prompt from within a window (or task).  Note that you may also load
  222.    TAME from within a batch file, which is explained in the Placing TAME in a
  223.    batch file section.
  224.  
  225.    To install the TAME resident (TSR) program that includes the pop-up
  226.    screens, at the DOS prompt from within your multitasker, enter  TAME /I.
  227.    You may also load the smaller version of TAME by entering  TAME /TINY /I.
  228.  
  229.    Now that TAME is active, load the application you want to run under TAME.
  230.    For example, the following commands will load the TAME program that
  231.    includes pop-up screens, and then load Lotus 123.
  232.  
  233.       TAME /I
  234.       123
  235.  
  236.    Repeat these steps for each task you want to run with TAME.  Then test them
  237.    as described in a later section.
  238.  
  239.  
  240. DESQview Advanced Setup
  241.  
  242.    DESQview must be running before your begin.  Press the DESQview system key
  243.    (Default is Alt) to be sure you are at the DESQview menu.  Press
  244.    "OCP" for Open, Change a Program.  From the list, select the program that
  245.    you want to tame.
  246.  
  247.    Examine the Program field to see which program the window runs.  If it is a
  248.    command to run a batch file, then you may load the TAME TSR from within the
  249.    batch file.  (See the section on Placing TAME in a batch file.)  Otherwise,
  250.    you will need to change the DVP information as follows.
  251.  
  252.    Move the name of the program from the Program field to the Parameters
  253.    field. Be sure to enter the program name before any parameters that were
  254.    already in this field.  Enter the TAME /RUN command prior to the program
  255.    name.  Now enter TAME in the Program field.  (Note that the TAMEDVP
  256.    program will automatically do this for you.  If the DESQview "exit to DOS"
  257.    option is set to NO, TAMEDVP will also add the /I option.)
  258.  
  259.    In the Parameters field, you may add any TAME options you want to run with
  260.    this program.  You must place the TAME options prior to the program name.
  261.    The /RUN command must always be the last TAME command on the line, and
  262.    must be entered just before the program name.  For example, the following
  263.    may be placed in the Parameter field to load the small TAME TSR, and then
  264.    run Lotus 123.
  265.  
  266.       /TINY /RUN 123
  267.  
  268.    You need to increase the memory given to the task by 10K if you want to
  269.    use the TAME pop-up screens, or by 2K if you do not need this feature.  If
  270.    you don't specify the /TINY option when you run TAME, the 10K TAME TSR
  271.    will automatically be loaded.  (Note that the TAMEDVP program will
  272.    automatically increase the memory for you.)
  273.  
  274.    You may also want to set the two advanced options for "Run in the
  275.    background" and "Share CPU in foreground" to "Y".  These two settings are
  276.    frequently not used, but should work quite well with TAME.  Press the
  277.    space bar at the Change a Program screen to move to the Advanced Options
  278.    screen.
  279.  
  280.    Repeat these steps for each application you want to run with TAME.  Then
  281.    test them as described in a later section.
  282.  
  283.  
  284. Windows Advanced Setup
  285.  
  286.    Windows must be running before you begin.  Open the PIF editor window and
  287.    edit the PIF file of the window that needs TAME.
  288.  
  289.    Examine the Program Filename field to see which program the window runs.
  290.    If it is a command to run a batch file, then you may load the TAME TSR
  291.    from within the batch file.  (See the section on Placing TAME in a batch
  292.    file.) Otherwise, you will need to change the PIF information as follows.
  293.  
  294.    Move the name of the program from the Program Filename field to the
  295.    Optional Parameters field.  Be sure to enter the program name before any
  296.    parameters that were already in this field.  Enter the TAME /RUN command
  297.    prior to the program name.  Now enter TAME in the Program field.  (Note
  298.    that the TAMEPIF program will automatically do this for you.  If the PIF
  299.    editor option to Close Window on Exit is set to NO, TAMEPIF will also add
  300.    the /I option.)
  301.  
  302.    In the Optional Parameters field, you may add any TAME options you want to
  303.    run with this program.  You must place the TAME options prior to the
  304.    program name. The /RUN command must always be the last TAME command on the
  305.    line, and must be entered just before the program name.  For example, the
  306.    following may be placed in the Optional Parameter field to load the small
  307.    TAME TSR, and then run Lotus 123.
  308.  
  309.       /TINY /RUN 123
  310.  
  311.    You may also need to increase the memory given to the task by 10K if you
  312.    want to use the TAME pop-up screens, or by 2K if you do not need this
  313.    features.  If you don't specify the /TINY option when you run TAME, the
  314.    10K TAME TSR will automatically be loaded.  (Note that the TAMEPIF program
  315.    will automatically increase the memory for you.)
  316.  
  317.    Repeat these steps for each application you want to run with TAME.  Then
  318.    test them as described in a later section.
  319.  
  320.  
  321. Placing TAME in a batch file
  322.  
  323.    Decide which TAME resident (TSR) program you want to use (the default TSR
  324.    includes the pop-up screens, the other does not).  To load the default
  325.    TSR, use the TAME /I command.  To load the smaller version of TAME, use the
  326.    TAME /TINY /I command.  For example, place the following commands in your
  327.    batch file to load TAME and then run Lotus 123.
  328.  
  329.       TAME /I
  330.       123
  331.  
  332. -------------------------------------------------------------------------------
  333.                        Testing TAME with your applications
  334. -------------------------------------------------------------------------------
  335.  
  336. TAME can benefit nearly any program that uses CPU cycles to look for keyboard
  337. input.  The best way to see if a program does this is to run a simple test.
  338. You should test all programs that you use regularly, including word
  339. processors, spreadsheets, editors, DOS shells, and communication programs.
  340.  
  341. The following explains several ways to test a program to see if it needs
  342. TAME. Select the method you want to use.  If TAME appears to be needed, but
  343. appears to have no effect, see Trouble Shooting in Appendix B.
  344.  
  345. 1. Use a stopwatch
  346.  
  347.    This is the best way to measure TAME performance.  Note that other ways to
  348.    test the effectiveness of TAME may be more convenient, but they are
  349.    measuring performance indirectly and may occasionally yield misleading
  350.    results.
  351.  
  352.    First, open a single window (W1) running DOS and make sure no other window
  353.    is open.  If available in your multitasker, set the "Share the CPU" and
  354.    "run in the background" options to Yes.
  355.  
  356.    Now, measure the time required to do a CPU or disk intensive operation.
  357.    Choose any lengthy operation, such as copying a group of files.  Run the
  358.    operation once without timing it so that the effect of other system
  359.    enhancements (such as a disk cache) may be eliminated.  Run the operation
  360.    again and record the time required.  This is the optimal time, since no
  361.    multitasking is taking place.
  362.  
  363.    Now open another window (W2) and run an application that is not tamed.  Be
  364.    sure this window (W2) is also set to "Share the CPU" and to "Run in the
  365.    background".  Switch to the original DOS window (W1) and time how long it
  366.    takes to run the same operation in the foreground.  Then time how long it
  367.    takes the operation (W1) to run in the background with the application
  368.    (W2) in the foreground.  If the original operation (W1) takes longer than
  369.    the optimal time, then the application (W2) is slowing it down.  The
  370.    application (W2) needs TAME.
  371.  
  372.    Note that you should expect a slightly slower time with the application
  373.    running.  But, anything that takes more than 5% longer is not acceptable
  374.    and needs TAME.
  375.  
  376.    Exit the application (W2) and run TAME in that window (W2).  Then run the
  377.    application again in the window (W2) with TAME active.  Switch to the
  378.    original DOS window (W1) and time how long it takes to do the same
  379.    operation in the foreground, and then again in the background.  The timing
  380.    should now be much closer to the original optimal time.  TAME has
  381.    prevented the idle application (W2) from degrading system performance.
  382.  
  383. 2. Use a standard CPU benchmark
  384.  
  385.    This is a variation of the stopwatch method where you use a CPU benchmark
  386.    to time execution of a CPU intensive operation.  Use the same procedure,
  387.    where lower stopwatch timing is equivalent to higher CPU speed ratings.
  388.  
  389.    NOTE: If you use Norton's System Information (SI) program for the
  390.          benchmark, be sure it is version 4.5 or earlier.  The new versions
  391.          of this program are capable of computing nearly the same number
  392.          without regard to whether the system is loaded.  It may also
  393.          erroneously report tamed systems to be slower than systems not
  394.          running TAME.
  395.  
  396. 3. Use the Geiger counter
  397.  
  398.    Another direct method is to run TAME with the /Geiger option.  This method
  399.    will give you an audible indication for the effectiveness of TAME.  To do
  400.    this, make sure no windows are open.  Then open a DOS window and at the
  401.    DOS prompt enter:
  402.  
  403.       TAME /GEIGER
  404.  
  405.    You will immediately hear steady ticking; the Geiger's audible reference
  406.    that the CPU is processing.  Now, open a second window and run the
  407.    application you are testing.  Be sure TAME is not present.  If the ticks
  408.    slow considerably, or if they become sporadic, the application in the
  409.    foreground probably needs TAME.
  410.  
  411.    Now run TAME with the foreground application.  The ticks probably are
  412.    smoother and faster than before.  This means TAME is keeping your
  413.    background task running at nearly full speed, at least while you are not
  414.    actively needing the CPU.
  415.  
  416. 4. Check the visual indicators
  417.  
  418.    The monitor displays visual indicators to check system performance.  To 
  419.    pop-up the monitor, press the hot-key sequence Alt-Ctrl-M.  This hot-key
  420.    will toggle the monitor on and off.  If you are not using pop-up screens,
  421.    load the monitor from the DOS prompt with the TAME /MOnitor command.  The
  422.    monitor appears as a small a box in the upper right corner of the screen.
  423.  
  424.    Four symbols appear in the box from left to right that indicate System
  425.    status, Current task status, Polling status and Task switch status.  The
  426.    status that may appear in each of the four monitor positions indicate:
  427.  
  428.    S  = System status: (?) don't know, (I)dle, (W)orking
  429.  
  430.    C  = Current task: (I)dle, (W)orking, (i)dle switched, (K)ey read
  431.  
  432.    /  = Spinner: continuously turns while the system is polling
  433.  
  434.    .  = Task switch indicator: throbs as TAME causes task switches
  435.  
  436.    System status:  A ? means that the system is awaiting keyboard input, but
  437.                    is not in a polling state.  An I indicates that a program
  438.                    is running, but is currently in an idle state.  A W means
  439.                    that a program is running and is actively processing.
  440.  
  441.    Current task:   
  442.                    Both I and i indicate that the current task is idle, and a
  443.                    W means that there is active processing in the task.  A K
  444.                    means that the task is wait for a key stroke, but the task
  445.                    is not in the polling mode.
  446.  
  447.    Spinner:        While an application is polling, the spinner will
  448.                    constantly turn. When the application is active, the
  449.                    spinner will stop.  For example, the spinner stops when you
  450.                    are at the DOS prompt, or when an application is actively
  451.                    printing, sorting, calculating, etc.
  452.  
  453.    Task switch indicator:  A constant throb means an application is inactive.
  454.                    The throb will stop when the application is active.
  455.  
  456.    Use the spinner and task switch indicator to monitor an application.  When
  457.    a task is idle, the spinner should turn and the task switch indicator
  458.    should throb.  When active processing occurs, both should stop.  If an
  459.    application is inactive and the spinner is turning but the task switch
  460.    indicator does not throb, you need to lower the idle threshold for that
  461.    application.
  462.  
  463. 5. Check the TAME polling statistics
  464.  
  465.    Evaluate whether or not TAME is effective by running the application with
  466.    TAME and then checking the statistics generated with the TAME /Status
  467.    command.
  468.  
  469.    To test the program, TAME must be run in a multitasking window.  At the
  470.    DOS prompt, type the following command line.
  471.  
  472.       TAME /I
  473.  
  474.    Now, run your program in this window and work in it for a short time. Then
  475.    exit normally.  Type the following command line to obtain a summary of
  476.    TAME activity.
  477.  
  478.       TAME /Status
  479.  
  480.    The displayed totals include the number of keyboard polls that the program
  481.    performed.  If this number is small or zero, then TAME may not be needed
  482.    with the application.  On the other extreme, some keyboard-hungry programs
  483.    can generate thousands of keyboard polls in just a few seconds.  In this
  484.    case, the application needs TAME.
  485.  
  486. Applications that are DESQview-aware
  487.  
  488.    Most sophisticated programs poll the keyboard.  A few of these programs
  489.    have made themselves DESQview-aware, meaning that they recognize and work
  490.    with DESQview.  Most are sufficiently DESQview aware to run in a window,
  491.    but still hog the CPU.  These programs need TAME as much as ones that are
  492.    not DESQview-aware.
  493.  
  494.    To be fully DESQview-aware, an application must release its time slice
  495.    while it is polling the keyboard.  TAME is normally not needed when one of
  496.    these fully-aware programs are used in DESQview.
  497.  
  498.    However, only a few programs are fully DESQview-aware.  With the ones that
  499.    are, TAME can transform their DESQview-awareness into Windows-awareness,
  500.    or awareness of any other supported multitasker.  This is done by
  501.    specifying the /DVAWARE option.  When all programs that are run in a
  502.    specific window will be DESQview-aware, you may turn off the options that
  503.    cause automatic recognition of polling programs (except for communication
  504.    programs.  The following command line tells TAME that all the programs
  505.    will be DESQview-aware.
  506.  
  507.       TAME /DVAWARE /NKI /II NONE
  508.  
  509.    It is possible that a program uses DESQview/Topview functions that are not
  510.    supported with TAME.  TAME can fool these programs into thinking they are
  511.    in DESQview, but if they try unsupported functions, they may crash the
  512.    system.  If
  513.  
  514. -------------------------------------------------------------------------------
  515.                         Functional Option Summary
  516. -------------------------------------------------------------------------------
  517.  
  518.    Usage: TAME /option [value] /option {value} ... [] = required, {} = optional
  519.  
  520. Common Options:
  521.  
  522.   /CLeaR
  523.   /Help              {option}
  524.   /Install           [1,5,9]
  525.   /NoMonitor
  526.   /OFf
  527.   /ON
  528.   /RUN               [command_line]
  529.   /SETtings          [1,5,9]
  530.   /Status
  531.   /Uninstall
  532.  
  533. Tuning Options:
  534.  
  535.   /BackGround
  536.   /NoBackGround      [count]
  537.  
  538.   /Boost             [key_boost work_boost]
  539.   /Geiger            {delay time freq spinner}
  540.   /Idle_Indicate     [first rest]
  541.   /Idle_Indicate     [first rest] {POLLS}
  542.   /Idle_Indicate     [Key,Time,PSP,NoWork,NONE]
  543.   /NoIdle_Indicate   [Key,Time,PSP,NoWork]
  544.  
  545.   /KeyIdle           [count]
  546.   /NoKeyIdle
  547.  
  548.   /KeyWaitPoll
  549.   /NoKeyWaitPoll
  550.  
  551.   /TaskSwitchREPeat  [count]
  552.  
  553.   /Timer
  554.   /NoTimer
  555.  
  556.   /Work_Indicate     [Com1,Com2,Com3,Com4,IRQn,SERial,PARallel,NONE]
  557.   /Work_Indicate     [work_boost]
  558.   /NoWork_Indicate   [Com1,Com2,Com3,Com4,IRQn,SERial,PARallel]
  559.  
  560.   /NoWorkTime        [first] {repeat}
  561.   /NoWorkRange       [bytes]
  562.  
  563. Other Options:
  564.  
  565.   @filename
  566.   /CLONE             [file command_line]
  567.   /DVAware
  568.   /NoDVAware
  569.  
  570.   /Hot_Key           [Monitor,Status key_name]
  571.   /OFf               [ticks]
  572.   /Task_Switch       [OS2,WINdows,DesqView,DoubleDos,OmniView,TopView,
  573.                      VM/386,Key_Read,HaLT] {time_slice}
  574.   /TINY
  575.   /WriteOptions
  576. -------------------------------------------------------------------------------
  577.                        Detailed Option Summary
  578. -------------------------------------------------------------------------------
  579.  
  580. @filename
  581.  
  582.    Tame will load preset command options from the file specified.  These
  583.    options may have been previously placed into the file using the
  584.    /Write_Options option.
  585.  
  586. /BackGround
  587.  
  588.    Turns off the /NoBackGround option.
  589.  
  590. /Boost [key_boost work_boost]
  591.  
  592.    This option is intended to prevent Tame from slowing an application.  It
  593.    will boost the priority of the application for key_boost clock ticks after
  594.    each key press, and work_boost clock ticks after each DOS or video action.
  595.    Both values default to 2.  You may need to decrease the second value to zero
  596.    if Tame does not seem to be effective.  See The Boost Parameter in the
  597.    Advanced Options section for a detailed explanation.
  598.  
  599. /CLeaR
  600.  
  601.    Sets the totals that Tame displays on status screen to zero.  This option
  602.    will clear the totals that appear on both the pop-up status screen and the
  603.    command line status screen.
  604.  
  605. /CLONE [file command_line]
  606.  
  607.    This command will make a special version of the Tame TSR (the TAME-RES.COM
  608.    that does not include the pop-up screens) that has customized default
  609.    parameters, and will automatically run a specific command.  The currently
  610.    active defaults will be placed into the cloned program.  In all cases, the
  611.    /CLONE option should be the only command line option that is specified.
  612.  
  613.    The cloned program is specified with the file value, and should be named
  614.    TAME-xxx where xxx is an abbreviation for the application name
  615.    (TAME-123.COM).  You may optionally specify a command_line to automatically
  616.    run a specific command.  Note that file is the name of the new COM file
  617.    (without the .COM suffix), and command_line contains the full path name of
  618.    the EXE or COM style command that is to be run.
  619.  
  620.    The new TAME-xxx.COM may then be run in place of TAME /I that is used when
  621.    starting a new task.  See the section on Setting default options for a
  622.    detailed explanation.
  623.  
  624. /CPU
  625.  
  626.    This command will calculate a suggested frequency threshold based on the
  627.    speed of your CPU.  Tame sets this threshold to 3.  Unless your application
  628.    runs slower under, you should not change the default frequency threshold.
  629.  
  630. /DVAware
  631.  
  632.    This command allows you to run DESQview-aware programs with multi-taskers
  633.    other than DESQview.  See the section on Applications that are
  634.    DESQview-aware for a detailed explanation.
  635.  
  636. /Geiger {delay time freq spinner}
  637.  
  638.    This option provides audible ticks that sound like a Geiger counter.  The
  639.    ticks speed up when the system is idle, and slow down as other tasks demand
  640.    CPU time.  This is a very useful tool for monitoring the effectiveness of
  641.    Tame.  It allows you to monitor the amount of CPU that an application will
  642.    use both when Tame is loaded and when it is not.
  643.  
  644.    There are some optional parameters that you may specify.  These options will
  645.    vary depending on the speed of the CPU you are using.  When you run the
  646.    Geiger command, it will display the current default values for each
  647.    parameter.
  648.  
  649.    delay     The delay parameter sets the amount of time between each Geiger
  650.              tick.  The default value is based on the speed of the CPU.  When
  651.              you use Geiger for tuning your applications, you will want to use
  652.              the default value for this parameter.
  653.  
  654.              However, you can set the Geiger to use very little CPU when Tame
  655.              is loaded and tuned so you can monitor total system CPU usage.
  656.              But, remember that doing this is not very useful for tuning Tame.
  657.  
  658.              To monitor CPU usage, specify a negative value for delay to set
  659.              the real time between each tick in 1/18 second increments.
  660.              Setting it to -1 will make a tick each 1/18 of a second.  Its only
  661.              value in tuning Tame is in the fact that it will simulate a heavy
  662.              keyboard poller, and may help you adjust the settings.  Setting
  663.              delay to zero will give a tick each time this task gets a time
  664.              slice, but the zero setting requires the Tame TSR to be loaded.
  665.  
  666.    time      This parameter sets the amount of time each tick takes.  The
  667.              default is based on the speed of your CPU, and normally you would
  668.              not want to change it.  You may set time as low as zero and a
  669.              faint tick will still be heard.
  670.  
  671.    frequency This sets the frequency of the ticks in Hertz.  The default for
  672.              this value is 100 Hertz.
  673.  
  674.    spinner   This option will display a spinner on the screen that visually
  675.              supplements the ticking sounds.  You simply specify how often to
  676.              move the spinner relative to the tick sounds; 1 means move it on
  677.              each tick, two means for every other tick, etc.
  678.  
  679. /Help {option}
  680.  
  681.    This command lets you list all of the on-line help for Tame, or only help
  682.    for a specific command or option.  Entering /H or /? provides the complete
  683.    help document, one screen at a time.  To get help on a specific command,
  684.    enter the full command or its abbreviation. For example, /Help HotKey or /H
  685.    HK.
  686.  
  687. /Hot_Key [function key_name]
  688.  
  689.    You may assign the hot key you want to use to display either the Tame pop-up
  690.    status screen or the pop-up monitor.
  691.  
  692.    function  You must enter either Status or Monitor to let Tame know which
  693.              pop-up screen you are assigning a hot key.  If you do not enter a
  694.              key_name, you will be prompted to press the key to assign.
  695.  
  696.    key_name  This is the name of the key you want to assign.  The name of the
  697.              key may normally be derived by its label on the key cap.  The
  698.              following names are valid.
  699.  
  700.              F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, Ins, Del, PgUp, PgDn,
  701.              GrayMinus, GrayPlus, Left, Right, Up, Down, Home, End, TAB, ESC,
  702.              Backspace, Enter, GrayStar, Space, A, B, ...  Z, 0, 1, 2, ...  9
  703.  
  704.           Also, any key may be modified as follows:
  705.  
  706.               Alt-Key
  707.               Ctrl-Key
  708.               Shift-Key
  709.               Alt-Ctrl-Key
  710.  
  711.    For example, the following command line assigns the [Key: Alt-T] key to the
  712.    Tame pop-up status screen.
  713.  
  714.       TAME /HK STATUS ALT-T
  715.  
  716. /Idle_Indicate [first rest]
  717.  
  718.    This option may help you fine-tune Tame.
  719.  
  720.    first This value sets the number of consecutive keyboard polls per clock
  721.          tick that are acceptable before Tame decides that the program is idly
  722.          polling the keyboard.  This number defaults to 3.  If this number is
  723.          too low, then Tame may switch tasks while the program is really
  724.          working.  You should set this number as accurately as possible.  You
  725.          may run a special TAME /CPU command and Tame will compute a
  726.          reasonable value that you may want to use based on the speed of your
  727.          CPU.
  728.  
  729.    rest  If the application is inactive, Tame will wait first polls before task
  730.          switching.  If the application is still inactive the next time Tame
  731.          checks, it will wait only rest polls before task switching.  Tame will
  732.          continue to wait only rest polls until the application again becomes
  733.          active.  This number defaults to 2.  You will normally want to set
  734.          this number low.
  735.  
  736.          You may set either of these values to -1, which indicates that Tame
  737.          should not cause a task switch based upon polling alone.  This is
  738.          effective with programs that issue the keyboard idle interrupt while
  739.          they are polling the keyboard, and will prevent Tame from switching
  740.          tasks based upon intermittent keyboard polls.
  741.  
  742. /Idle_Indicate [first rest] {POLLS}
  743.  
  744.    This is an alternate form of the previous option to specify that the values
  745.    are not to be based on the time.  Instead, Tame will cause a task switch
  746.    after first polls, even if the polls span several clock ticks.
  747.  
  748. /Idle_Indicate [poll_types]
  749.  
  750.    This option lets you specify the type of activity that Tame should check
  751.    when considering polling.  You may select any combination of the following
  752.    poll type values.
  753.  
  754.        Key       Tame should look for key polls.
  755.  
  756.        Time      Tame should look for time polls.
  757.  
  758.        PSP       Tame should look for PSP polls.
  759.                  This is frequently helpful with network-aware programs.
  760.  
  761.        NoWork    Tame should detect the absence of work and assume that the
  762.                  application is idle.  This detection may be restricted based
  763.                  on /NoWorkTime and /NoWorkRange parameters.
  764.  
  765.                  Note that this parameter is recommended only with
  766.                  applications that do not poll.
  767.  
  768.        NONE      Tame should not look at any type of polls.  This may be used 
  769.                  as the first parameter in order to cancel any idle indicators
  770.                  that are in effect before specifying new parameters.
  771.  
  772. /Install  {settings}
  773.  
  774.    This is the command you will use to load the Tame TSR into memory.  It may
  775.    be removed from memory using the /Uninstall option.
  776.  
  777.    One of the standard settings may optionally be specified.  See the
  778.    /Settings command for details on available settings.
  779.  
  780. /KeyIdle [count]
  781.  
  782.    This option works well with many programs that inform DOS when they are
  783.    polling the keyboard while in an idle state.  Tame detects this idle
  784.    situation and temporarily lowers the Idle Indicate first rest option to
  785.    count.  You may set count set to -1 which tells Tame to never switch tasks
  786.    unless the application confirms that it is really idle.
  787.  
  788.    This option may be turned off by specifying /NoKeyIdle.
  789.  
  790.    NOTE: With DESQview release 2.26 and later, this option is not recommended
  791.           for tasks that spend a lot of time at the DOS prompt.  This is
  792.           because DESQview detects the fact that Tame is watching the idle
  793.           interrupt, and when at the DOS prompt, DESQview goes out of its way
  794.           to make sure the idle interrupt is called.  This wastes some
  795.           processing time unnecessarily.  This option is still very effective
  796.           inside some programs, and the problem only occurs at the DOS prompt.
  797.  
  798. /KeyWaitPoll 
  799.  
  800.    Tame should look for the program requesting a key, and  continue a task
  801.    switch until a key is pressed. This is frequently helpful in Windows and
  802.    defaults to being enabled in Windows.
  803.  
  804. /Monitor
  805.  
  806.    This option turns on the monitor that displays Tame actions.  The same
  807.    monitor displays whether you load it with the hot key or with this
  808.    command.  The status monitor appears in the upper right hand corner of your
  809.    screen, similar to the following.
  810.  
  811.       ╔════╗
  812.       ║SC/*║
  813.       ╚════╝
  814.  
  815.    The status that may appear in each of the four monitor positions indicate:
  816.  
  817.       S = System status: (?) don't know, (I)dle, (W)orking
  818.       C = Current task:  (I)dle, (W)orking, (i)dle switched, (K)ey read (B)usy
  819.       / = Spinner:  continuously turns while the program is polling
  820.       * = Task switch indicator:  throbs when Tame is causing task switches.
  821.  
  822.    The monitor may be turned off using the /NoMonitor option.
  823.  
  824.  
  825. /NoBackGround [count]
  826.  
  827.    This option can be very effective with DESQview, and will be ignored if
  828.    another multi-tasking system is being used.  When this option is specified,
  829.    Tame will patiently do a normal task switch count times when the
  830.    application is run in the background.  If no activity is detected, then it
  831.    will instruct DESQview to temporarily run this program only while it is in
  832.    the foreground.  As soon as this program is brought to the foreground, Tame
  833.    will instruct DESQview to again allow it to execute in the background.
  834.  
  835.    For example, you may have a large spreadsheet to calculate and a lot of
  836.    data to enter into a data base.  You can run the spreadsheet with the Tame
  837.    /NBG command and move it to the background.  While it is calculating, you
  838.    can be entering data in the data base.  When Tame detects that the
  839.    spreadsheet is complete, it will put that background window to sleep and
  840.    free the CPU for the foreground.  When the spreadsheet is brought to the
  841.    foreground, Tame will again activate it.
  842.  
  843.    Note that you should not use this option with programs that need to start
  844.    by themselves, such as communications programs and mail programs.
  845.  
  846.    This option may be turned off by specifying /BackGround.
  847.  
  848. /NoDVAware
  849.  
  850.    This option sets DESQview-aware programs so that they will not run with any
  851.    other multi-taskers.  The programs will run only with DESQview.
  852.  
  853. /No_Idle_Indicate [poll_types]
  854.  
  855.    One or more activities may no longer be considered to be polling.  You may
  856.    instruct Tame to no longer watch for the program to poll one or both of the
  857.    following poll type values.
  858.  
  859.    Key           Tame should not look for key polls.
  860.  
  861.    PSP           Tame should not look for PSP polls.
  862.  
  863.    Time          Tame should not look for time polls.
  864.  
  865.    NoWork        Tame should not detect the absence of work.
  866.  
  867. /NoKeyIdle
  868.  
  869.    Turns off the /KeyIdle option.
  870.  
  871. /NoMonitor
  872.  
  873.    Turns off the visual Monitor.
  874.  
  875. /NoTimer
  876.  
  877.    This option prevents the application from processing the timer interrupt
  878.    that is normally issued by the PC about 18.2 times per second.  This option
  879.    may disable some features of the program, and should be used with caution.
  880.    It is very useful with programs that use a lot of CPU time to process the
  881.    timer interrupt with little benefit.  For example, a program that constantly
  882.    displays the current time on the screen, but you are running the program in
  883.    the background.
  884.  
  885.    This option works by intercepting the programs request to be called by the
  886.    timer interrupt.  The program assumes it will be called on a regular basis
  887.    by the timer interrupt, but, since Tame did not pass this request on to
  888.    DOS, the program will never be called by the interrupt.
  889.  
  890.    This option may be turned off by specifying /Timer.
  891.  
  892. /No_Work_Indicate [activities]
  893.  
  894.    Define activities that Tame should not watch for to help it determine when
  895.    the program is active.  You may enter any of the following values.
  896.  
  897.       Com1       Program does not access COM1 using hardware.
  898.       Com2       Program does not access COM2 using hardware.
  899.       Com3       Program does not access COM3 using hardware.
  900.       Com4       Program does not access COM4 using hardware.
  901.       IRQn       IRQ number n should not be monitored by Tame.
  902.       SERial     Program does not access serial ports using the BIOS.
  903.       PARallel   Program does not access the printer.
  904.  
  905. /NoWorkRange [bytes]
  906.  
  907.    Tame can detect that a program is doing no work, and interpret that as a
  908.    signal to switch tasks.  Tame may falsely assume no work is being
  909.    done if the program is using CPU but no other resources.  As a
  910.    failsafe, Tame also checks that the program stack pointer is also
  911.    fairly constant.  A truely compute-intensive application will
  912.    normally be using the stack heavily.  Tame can detect this use and
  913.    assume that work is being done.
  914.  
  915.    The stack change that is interpreted as work may be specified with this
  916.    parameter.  The default is 30 bytes.  If Tame fails to detect work, lower
  917.    this parameter, and if Tame fails to properly detect idleness, raise it.
  918.  
  919. /NoWorkTime [start_ticks] [retry_ticks]
  920.  
  921.    Tame can detect that a program is doing no work, and interpret that as a
  922.    signal to switch tasks.  This parameter sets how long the program should do
  923.    no work before Tame considers it to be idle.  A second time may also be
  924.    specified, if you wish to use a lower tolerance after idleness is already
  925.    detected.  
  926.    
  927.    The default is 8,1.  This will detect idleness after 8 ticks with no work,
  928.    and after idleness is detected, switch after 1 tick of no work.
  929.  
  930. /OFf
  931.  
  932.    The /OFf option will temporarily disable Tame, but leave it in memory for
  933.    later use.
  934.  
  935. /OFf [ticks]
  936.  
  937.    The /OFf ticks option will temporarily disable Tame for the number of ticks
  938.    you specify.  Tame is automatically activated at the end of that time. This
  939.    is beneficial when you need to load a program and not have Tame active
  940.    until after the program is loaded.  Note that pressing a key will cancel
  941.    this option.
  942.  
  943. /ON
  944.  
  945.    Enable Tame task switching.  Tame is on by default.
  946.  
  947. /RUN [command_line]
  948.  
  949.    Runs the command line with Tame active.  Any Tame options that are specified
  950.    must be placed before /RUN and will be in effect while running the command
  951.    line.
  952.  
  953. /SEttings settings_file
  954.  
  955.    Set Tame options to one of the standard settings.  The following settings 
  956.    may be used:
  957.  
  958.        1 = Minimum taming of the application, and maximum detection of work;
  959.            Use this level if Tame seems to slow the application.
  960.  
  961.        5 = Average taming of the application and maximum detection of work;
  962.            Use this setting if maximum taming makes the program sluggish.
  963.  
  964.        9 = Maximum taming and maximum detection of work;
  965.            Some applications may run slower with this setting.
  966.  
  967.    NOTE:  The options specified for each setting are listed in a file named
  968.           *.SET (where * is the setting name).  You are free to add your own 
  969.           settings by adding more .SET files to the Tame directory.
  970.  
  971. /Status
  972.  
  973.    Display a summary report.  The summary includes the number of task switches
  974.    that were initiated by Tame, the total number of keyboard calls that the
  975.    application made, and also a summary of the current options.
  976.  
  977. /Task_Switch [method]
  978.  
  979.    The main purpose of Tame is to switch to another task when it detects that
  980.    the application is wasting time polling the keyboard.  With DESQview,
  981.    Windows, Omniview, Topview, VM/386 and Double Dos, the native pause
  982.    function is used to switch tasks.  Since Tame does not have specific
  983.    support for other multi-taskers, you need to set the task switching method
  984.    used by your multi-tasker.  
  985.    
  986.    The following task switching methods are available.
  987.  
  988.       DesqView   Use the native DESQview task switching method.
  989.  
  990.       DoubleDos  Use the native Double DOS task switching method.
  991.  
  992.       HaLT       The Halt option specifies that Tame should execute a HLT
  993.                  instruction when polling is detected.  This instruction has
  994.                  been found to cause some multi-taskers to immediately switch
  995.                  to another task.  This is the default task switching method
  996.                  when Tame does not recognize the multi-tasker.
  997.  
  998.       Key_Read   The Key_Read option specifies that when the program polls the
  999.                  keyboard, Tame should tell a white lie and say that a key has
  1000.                  been pressed.  Most applications will immediately read the key
  1001.                  that Tame claimed was already pressed.  Since it really was
  1002.                  not pressed, DOS will wait for a key to be pressed.  Most
  1003.                  multi-taskers use this wait for a key press as a Que to switch
  1004.                  tasks.
  1005.  
  1006.                  The Key_Read option could be the most effective task
  1007.                  switching method in Tame, but it will not work with some
  1008.                  applications. Specifically, it will not work with any
  1009.                  applications that poll devices other than the keyboard, or
  1010.                  with programs that occasionally flush the keyboard buffer. It
  1011.                  is also not effective in Windows/386.
  1012.  
  1013.       OmniView   Use the native Omniview task switching method.  This requires
  1014.                  that Omniview is set up to be Topview compatible.
  1015.  
  1016.       OS/2       Use the native OS/2 task switching method.  The task switch
  1017.                  time may be adjusted using the /Task_Switch_Time parameter
  1018.                  which defaults to 100 milliseconds (1/10 second).
  1019.  
  1020.       TopView    Use the native Topview task switching method.
  1021.  
  1022.       VM/386     Use the native VM/386 task switching method which happens to
  1023.                  be the same as Halt.
  1024.  
  1025.       WINdows    Use the native Windows task switching method.  This is
  1026.                  effective with Windows 3.x and Windows NT.  It also seems
  1027.                  to work with some other multi-taskers such as OS/2.
  1028.  
  1029.  
  1030. /Task_Switch_REPeat  [count]
  1031.  
  1032.    When Tame detects an idle system and switches tasks, it will normally
  1033.    switch tasks once and then return control to the application.  This option
  1034.    causes Tame to continue to switch tasks a specified number of times without
  1035.    giving the application a chance to resume its polling ways.  The task
  1036.    switch repeat count will be terminated automatically by Tame if it detects
  1037.    a key press or other IRQ-based work (e.g. COM port activity).
  1038.  
  1039. /Task_Switch_Time {timeslice}
  1040.  
  1041.    Some multitaskers allow releasing for a specific amount of time.  The
  1042.    amount of time specified here is dependent on the multitasker in  use.  
  1043.  
  1044.    This option is currently supported only with OS/2.
  1045.  
  1046. /Timer
  1047.  
  1048.    Turns off the /NoTimer option.
  1049.  
  1050. /TINY
  1051.  
  1052.    This option will cause the small version of the resident Tame program to be
  1053.    loaded.  It is a fully operational version, except the pop-up status screen
  1054.    and pop-up monitor are not available.  If you use this option, it must
  1055.    always be the first option on the command line.
  1056.  
  1057. /Uninstall
  1058.  
  1059.    Remove the resident (TSR) portion of Tame from memory.  This is only
  1060.    necessary when you load Tame using the /Install option.
  1061.  
  1062. /Work_Indicate [activities]
  1063.  
  1064.    You may define the activities that Tame should watch for to help it
  1065.    determine when the program is active.  You may enter any combination of the
  1066.    following values, except that a maximum ot two IRQs may be monitored at
  1067.    any given time (Each COM port counts as an IRQ).
  1068.  
  1069.       Com1       Program accesses COM1 using hardware.
  1070.       Com2       Program accesses COM2 using hardware.
  1071.       Com3       Program accesses COM3 using hardware.
  1072.       Com4       Program accesses COM4 using hardware.
  1073.       IRQn       IRQ number n is activated by some hardware and should be 
  1074.                  detected by Tame.  Specify IRQ number 0 through 7.
  1075.       SERial     Program accesses serial ports using the BIOS.
  1076.       PARallel   Program accesses the printer.
  1077.       NONE       Program does none of the above.
  1078.  
  1079. /Work_Indicate [work_boost]
  1080.  
  1081.    This option sets the number of clock ticks after a work activity that TAME
  1082.    should elevate the priority of the task.
  1083.  
  1084. /Write_Options
  1085.  
  1086.    This option will write out all the current Tame parameters.  For best
  1087.    results, redirect output to a file.  When fine-tuning, you may want to
  1088.    check your current settings against the statistics on the Tame ANL report.
  1089.    The following example creates a file named TAMEOPT.DAT that contains all
  1090.    the current Tame options.
  1091.  
  1092.       TAME /WO >TAMEOPT.DAT
  1093.  
  1094.    This option works in conjunction with the @filename option.
  1095.