home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / desqview / tame260.arj / TAME.DOC < prev    next >
Text File  |  1991-02-18  |  72KB  |  1,850 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                                       Tame
  28.                                    Release 2.6
  29.  
  30.  
  31.  
  32.  
  33.                        Multi-tasking Enhancement Software
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.              (C) 1988-1991 by PowerSoft, Inc. and David G. Thomas
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                                 Table of Contents
  73.  
  74.      Tame Users Guide .............................................. 1
  75.         Abstract ................................................... 1
  76.         Shareware Notice: .......................................... 1
  77.         Disclaimer ................................................. 1
  78.         Why do you need Tame? ...................................... 2
  79.         How does Tame work? ........................................ 2
  80.         Applications that definitely NEED Tame ..................... 3
  81.         Seeing if your applications need Tame ...................... 3
  82.         Running Tame ............................................... 4
  83.         If your program runs slower with Tame ...................... 5
  84.         If your program is not being Tamed ......................... 6
  85.         Placing Tame in a batch file ............................... 6
  86.         Using Tame with other multi-taskers ........................ 6
  87.         Advanced Tame concepts ..................................... 7
  88.         Setting the frequency value ................................ 9
  89.         Setting default options .................................... 10
  90.         Applications that are DESQview-aware ....................... 10
  91.         The Tame status ............................................ 12
  92.  
  93.      Tame Command Reference ........................................ 14
  94.         Task switching options ..................................... 14
  95.         Fine tuning for an application ............................. 16
  96.         Other options .............................................. 20
  97.  
  98.      Multi-tasking Specifics ....................................... 22
  99.         DESQview ................................................... 22
  100.         Double Dos ................................................. 22
  101.         Omniview ................................................... 22
  102.         Topview .................................................... 22
  103.         VM/386 ..................................................... 22
  104.         Windows 3.0 and Windows/386 ................................ 22
  105.  
  106.      Application Specifics ......................................... 23
  107.  
  108.      Installing Tame Upgrades ...................................... 25
  109.  
  110.      Appendix ...................................................... 26
  111.         Appendix A  Common Questions ............................... 26
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                 Tame Users Guide
  137.                                    Release 2.6
  138.  
  139.                      Copyright 1988-1991 by PowerSoft, Inc.
  140.                                and David G. Thomas
  141.      Abstract
  142.  
  143.      If  you  run programs  under  a  multi-tasking  environment,  such  as
  144.      DESQview, you may have noticed that some programs  slow down the whole
  145.      system, even when they seem to be doing nothing but waiting for you to
  146.      type something.   When I first  encountered this, I  accepted it as  a
  147.      part of the price of multi-tasking.  TAME proves that you need not pay
  148.      that price.  TAME reduces significantly the overhead  of many programs
  149.      without hindering their performance.
  150.  
  151.      Tame works in any MS-DOS based multi-tasking environment.  It contains
  152.      special hooks for use under DESQview, Double Dos, Omniview, VM/386 and
  153.      Windows 3.0.  It  may work with other  multi-taskers as well.   If you
  154.      use it with another multi-tasker, please let me know whether it helps.
  155.  
  156.      Shareware Notice:
  157.  
  158.      This copyrighted  material may be  distributed freely for  evaluation.
  159.      It is not free,  however.  The decision  to keep the program  after an
  160.      evaluation period  of 30 days  is a  decision to  buy the program  for
  161.      $20.00 from the author.  For that registration fee  you will receive a
  162.      registered copy of  the latest version of  the program with  some more
  163.      features enabled,  a printed  manual, and  a right to  use all  future
  164.      versions of TAME.   Please send payment to:
  165.  
  166.         David G. Thomas
  167.         c/o PowerSoft, Inc.
  168.         P.O. Box  956338
  169.         Duluth, GA 30136
  170.  
  171.      You may address questions and comments to the  author at the PowerSoft
  172.      BBS, (404) 928-9294.  The latest release of Tame is posted there.
  173.  
  174.      Registered users may register each new version of Tame using a utility
  175.      program provided with the registration kit.
  176.  
  177.      Disclaimer
  178.      As with  all  shareware, you  use  TAME at  your  own risk.    Neither
  179.      PowerSoft, Inc. nor David  G. Thomas makes any warranties,  express or
  180.      implied with  respect to  TAME's  merchantability or  fitness for  any
  181.      particular purpose, nor is  either liable for any harm which  may come
  182.  
  183.      from the use of TAME.
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.      ----------------------------------------------------------------------
  194.      Release 2.6                 February, 1991                      Page 1
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      Why do you need Tame?                                 Tame Users Guide
  203.      ----------------------------------------------------------------------
  204.  
  205.      Why do you need Tame?
  206.  
  207.      A PC-based application is designed to run under  DOS.  The application
  208.      acts as if it is the only program that is running in the computer.  It
  209.      spends most  of its time  waiting on you  to tell it  what to do  next
  210.      (i.e. it is  waiting for you  to press a key  or move the  mouse), and
  211.      relatively little time  carrying out your  instructions.  While it  is
  212.      waiting on your input, it spends its time checking the various devices
  213.      that you may use to provide that input.  It checks if you have pressed
  214.      a key.  If  you are using a mouse, it  checks to see if the  mouse has
  215.  
  216.      been moved.  Then it checks again for a key,  and the cycle continues.
  217.      This  is called  polling,  and  it  continues until  you  actually  do
  218.      something it is waiting for.   In just a few seconds  between pressing
  219.      keys, the application may poll the keyboard hundreds of times.
  220.      All this activity uses a lot of processing time, but  it is really not
  221.  
  222.      wasteful under plain old DOS.  After all, there is only one program in
  223.      memory, and the central processing unit (CPU) has nothing better to do
  224.      anyway.
  225.      But when  you are  multi-tasking, keyboard  polling wastes  processing
  226.      cycles.  The  CPU could be more  usefully applied to other  tasks that
  227.  
  228.      are actively  working  (printing, spell-checking,  etc...).   This  is
  229.      especially true if a program is polling the keyboard in the background
  230.      while you are trying to work in the foreground.  The system feels (and
  231.      is) much slower than if the background program were not there.
  232.      This is where Tame can  help.  If your background program  were Tamed,
  233.  
  234.      it would not be  allowed to affect your performance while  polling the
  235.      keyboard.    Tame detects  that  it  is  polling,  and  instructs  the
  236.      multi-tasker to  move on  to  other tasks  that may  be more  actively
  237.      working.   You may  configure Tame  to go so  far as  to instruct  the
  238.      multi-tasker not to waste any more time on a  background task until it
  239.      is brought into  the foreground.   Other Tame options  may be used  to
  240.      help it  correctly identify and  deal with  programs that are  wasting
  241.      your CPU by polling the keyboard.
  242.  
  243.      How does Tame work?
  244.  
  245.      Tame works by monitoring what a program does.  When the program is not
  246.      doing anything  except  polling the  keyboard,  Tame notices.    After
  247.      enough polls, Tame can see that the program is  wasting time and tells
  248.      the  multi-tasker to  move  on to  the  next  task.   Eventually,  the
  249.      multi-tasker will come back to this task.  At this point, Tame will be
  250.      less patient  than before,  and switch  tasks as soon  as the  program
  251.      starts polling again.
  252.  
  253.      When  the program  does  something  active, like  processing  keyboard
  254.      input, performing disk  I/O or changing  the video screen, Tame  takes
  255.  
  256.  
  257.  
  258.  
  259.      ----------------------------------------------------------------------
  260.      Page 2                      February, 1991                 Release 2.6
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      Tame Users Guide                Applications that definitely NEED Tame
  269.      ----------------------------------------------------------------------
  270.  
  271.      note that it is active, and boosts its priority for about a tenth of a
  272.      second.  This will prevent Tame from causing a task switch during that
  273.      period of time.
  274.  
  275.      Applications that definitely NEED Tame
  276.  
  277.      The following applications will continually poll the keyboard, waiting
  278.      for you to press a key.  Tame has been  proven to significantly reduce
  279.      the overhead on all  these applications.  For each  application listed
  280.      here, there are probably 100 more that need Tame!
  281.  
  282.      See the end of this document for special options that may be desirable
  283.      with these programs.
  284.  
  285.      Brief, by solution Systems
  286.      EM4105
  287.      Epsilon
  288.      Harvard Graphics
  289.      Kedit, by Mansfield Computing
  290.      Lucid 3D, by PCSG
  291.      Lotus 123, by Lotus Development Corp.
  292.      Lotus Agenda, by Lotus Development Corp.
  293.      Lotus Manuscript, by Lotus Development Corp.
  294.      Microsoft editor, by Microsoft
  295.  
  296.      Norton Commander, by Peter Norton Computing
  297.      PCBOARD, by Clark Development Company, Inc.
  298.      Plan Perfect by Word Perfect Corp.
  299.      Sidetalk, by Lattice
  300.      Telix by Exis Inc.
  301.      Tornado Notes by Micro Logic Corp
  302.      Wildcat BBS Systems
  303.      Word Perfect, by Word Perfect Corp.
  304.      Word Perfect File Manager
  305.      ZCOMM, by Omen Technology
  306.  
  307.      Seeing if your applications need Tame
  308.  
  309.      Any program  that uses  CPU cycles  looking for  keyboard input  needs
  310.      Tame.  The best way to  see if a program does this is to  run a simple
  311.      test.  You should test all your favorite programs  that you spend time
  312.      entering data with.   This includes programs such as  word processors,
  313.      spreadsheets, editors, and DOS shells.
  314.  
  315.      One way  to see if  a program  needs tame is  to use  Tame to run  the
  316.      program, and see what happens.   You may evaluate  whether or not Tame
  317.      is effective by looking at statistics generated with the Tame command,
  318.      or you may  use one of  the many standard  CPU benchmarks to test  its
  319.      effectiveness.
  320.  
  321.      To test a program  with Tame, be sure  you are in DESQview  or another
  322.      supported multi-tasking system, and type the following command line.
  323.  
  324.  
  325.      ----------------------------------------------------------------------
  326.      Release 2.6                 February, 1991                      Page 3
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      Running Tame                                          Tame Users Guide
  335.      ----------------------------------------------------------------------
  336.  
  337.         TAME-RES
  338.  
  339.      Now, run your  program, and work  in the program  for a little  while,
  340.      then exit  normally.   Type  the following  command line  to obtain  a
  341.      summary of Tame activity.
  342.  
  343.         TAME /STATUS
  344.      The displayed  totals include the  number of  keyboard polls that  the
  345.      program performed.  If this number small or zero, then Tame may not be
  346.      needed with  the  application.   With  some extremely  keyboard-hungry
  347.  
  348.      programs, the number of keyboard polls can number into the thousands.
  349.      A second, and more direct way to test the effectiveness  of Tame is to
  350.      run the application without Tame, and simultaneously run tame with the
  351.      /Geiger option  in another  task.   This  is done  with the  following
  352.      command.
  353.  
  354.         TAME-RES
  355.         TAME /GEIGER
  356.  
  357.      You will hear ticks that indicate how loaded the CPU is.  If the ticks
  358.      slow considerably when you  are in the application, it  probably needs
  359.      Tame.  If this is the case, run TAME-RES,  and re-run the application.
  360.      The ticks  probably do not  slow nearly as  much as  before.  This  is
  361.      because Tame keeps your background tasks running at nearly full speed,
  362.      at least while you are not actively needing the CPU.
  363.  
  364.      If you don't trust the Geiger counter that is built into Tame (you may
  365.      think  that I  have  "loaded  the  dice"),  try a  more  standard  CPU
  366.      benchmark, such as  Norton's System Information  (SI) program.  To  do
  367.      this, load Tame  in one task, then  execute your program in  that same
  368.      task.  Wait  until the application is  idle, and waiting  for keyboard
  369.      input.  Your program is now being Tamed.  Now,  switch to another task
  370.      and run  the benchmark  program.   Try this again  without Taming  the
  371.  
  372.      first program  (Either type  TAME /OFF  or TAME /Uninstall).   If  the
  373.      benchmark indicates that the CPU is faster with Tame, then you know it
  374.      is  helping.       Also,  experiment  with which  program  is  in  the
  375.      foreground  and which  is  in  the  background.   This  experiment  is
  376.      necessary if you have  set the DESQview background task priority  to a
  377.      very low number.  In any event, it is  informative, since it indicates
  378.      the amount of  processing time that the  background can get  while you
  379.      are using that application.
  380.  
  381.      Running Tame
  382.  
  383.      Tame is run inside  a task while running  a multi-tasker.  Do  not run
  384.      Tame before running the multi-tasker.  While no harm  will come if you
  385.      do, it also  will not be  effective.  Tame must  be run for  each task
  386.      that is to be tamed.
  387.  
  388.  
  389.  
  390.  
  391.      ----------------------------------------------------------------------
  392.      Page 4                      February, 1991                 Release 2.6
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      Tame Users Guide                 If your program runs slower with Tame
  401.      ----------------------------------------------------------------------
  402.  
  403.      Tame is composed of  a resident (TSR) program, and also  a controlling
  404.      program.  The resident  portion of Tame must be loaded  before running
  405.      the main Tame program.   This is done with the TAME-RES command.   For
  406.  
  407.      example, the  following command  lines will  run Lotus  123 with  Tame
  408.      active.
  409.         TAME-RES
  410.         LOTUS
  411.  
  412.      If you  always want  Tame to  be  used, you  may create  a batch  file
  413.      (possibly named RUNLOTUS.BAT), with the following command lines.
  414.  
  415.         TAME-RES
  416.         LOTUS
  417.      A general purpose variation of this batch file comes with Tame, and is
  418.      named TAME-RUN.BAT.  Using the batch file, the  following command line
  419.  
  420.      will do the same thing as the previous examples.
  421.         TAME-RUN LOTUS
  422.  
  423.      If you normally  execute the program  with the DESQview "Open  Window"
  424.      menu, you will  need to modify  the definition of  the window.  To  do
  425.      this, use the  "CP" (for Change Program)  option of the  "Open Window"
  426.      menu, and change the  Program to TAME-RUN (or your custom  batch file)
  427.      and add  what  was previously  the  Program to  the  beginning of  the
  428.      command line parameters.
  429.  
  430.      The TAME-RES  command has some  of the  functionality of the  TAME-RUN
  431.      command built into it, with a few restrictions.  It must run a .COM or
  432.      .EXE file, and  the full path name  of the program must  be specified.
  433.      For example, the following will Tame Lotus without using a batch file.
  434.  
  435.         TAME-RES C:\123\LOTUS.COM
  436.      A variation of  this syntax is available  when a "cloned"  TAME-RES is
  437.      being used.  In this  case, you may preset the Tame options  that work
  438.  
  439.      best with LOTUS,  and automatically invoke  LOTUS whenever the  cloned
  440.      copy of TAME-RES is run.
  441.  
  442.      If your program runs slower with Tame
  443.      In some cases, the program may initially run slower (or "feel" choppy)
  444.      with Tame installed.  This is frequently corrected by a few steps that
  445.      will  tune Tame  for  the  application.   First,  try  specifying  the
  446.      /Frequency parameter (described below) to increase the number of polls
  447.  
  448.      allowed before Tame tries  to switch tasks.  Try /Frequency  without a
  449.      value to let Tame estimate its a good value based on the speed of your
  450.      system.  In some cases, changing /Frequency will have little effect if
  451.      /KeyIdle is also specified.   This is the case with  most well-behaved
  452.      programs that issue the keyboard idle interrupt.
  453.  
  454.  
  455.  
  456.  
  457.      ----------------------------------------------------------------------
  458.      Release 2.6                 February, 1991                      Page 5
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      If your program is not being Tamed                    Tame Users Guide
  467.      ----------------------------------------------------------------------
  468.  
  469.      If the  program prints very  slowly, try the  /PARallel option.   This
  470.      allows Tame to  watch the parallel  port, and will  not invoke a  task
  471.      switch while  the port  is  being used.   For  example, the  following
  472.  
  473.      command lines should be used to run Word Perfect.
  474.         TAME-RES
  475.         TAME /PARALLEL
  476.         WP
  477.  
  478.      If your program is not being Tamed
  479.  
  480.      Sometimes, adding  Tame has little  or no  affect.   In most cases,  a
  481.      little tuning  can help.   Try /Boost:0  to tell  tame to not  disable
  482.      itself when it sees activity.  If this works, you may also want to try
  483.      /Boost:2,0.
  484.  
  485.      In a few cases, Tame is not capable of helping.   But these situations
  486.      are rare, and if  you run into one, please  let me know.  I  will most
  487.      likely be able to tweak Tame to make it work.
  488.  
  489.      Placing Tame in a batch file
  490.      If you run  your application with  a batch file,  you may like to  add
  491.  
  492.      Tame to  that batch  file.   The only problem  here is  the fact  that
  493.      different programs like different Tame options, and also some programs
  494.      will run other programs using  a DOS Shell.  Tame has  special options
  495.      for dealing with  this situation.  The  following batch file  will run
  496.      Lotus  123, and  will  restore  the original  Tame  parameters  before
  497.      exiting.
  498.  
  499.         :* It is assumed that TAME-RES
  500.         :* has already been loaded
  501.         :*
  502.         TAME /GETALL:TAME_123 /ON /MAX:3,0
  503.         123
  504.         TAME %TAME_123%
  505.         SET TAME_123=
  506.  
  507.      Using Tame with other multi-taskers
  508.  
  509.      Tame  has  special hooks  to  work  very  effectively  with  DESQview,
  510.      Windows, Omniview, VM/386, Double  Dos and Topview compatibles.   Tame
  511.      may be  used with  other multi-tasking  environments, but  may not  be
  512.      quite as  effective.  Also,  you may  need to  include a command  line
  513.      option to specify the method that Tame should use to give idle time to
  514.      the  other tasks.    The  /KeySwitch  method will  be  effective  with
  515.      programs that are polling the keyboard, and are  not polling any other
  516.      devices.   It may  not be  compatible with some  applications such  as
  517.  
  518.      communications programs.   The /HaltSwitch  option is compatible  with
  519.      most  programs,  but  may   not  be  effective,  depending   upon  the
  520.      multi-tasking software  being  used.   In  either  case, run  Tame  as
  521.  
  522.  
  523.      ----------------------------------------------------------------------
  524.      Page 6                      February, 1991                 Release 2.6
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      Tame Users Guide                                Advanced Tame concepts
  533.      ----------------------------------------------------------------------
  534.  
  535.      normal,  and Tame  will  default  to the  /HaltSwitch  task  switching
  536.      option.  The  following command will run  Lotus 123 in  an environment
  537.      that is not directly supported.
  538.  
  539.         TAME-RES
  540.         LOTUS
  541.  
  542.      If you use  a multi-tasker that  Tame is not  effective with, I  would
  543.      like you to contact me.  I need to know  some technical data regarding
  544.      how to detect and control the multi-tasker.  If it is feasible, I will
  545.      add direct support for that multi-tasker to the Tame product.
  546.  
  547.      Advanced Tame concepts
  548.  
  549.      Tame works  by detecting  when a  program is  continually polling  the
  550.      keyboard, and  does its best  to allow  the multi-tasking software  to
  551.      switch to another  task.    It detects that  a program is polling  the
  552.      keyboard after 3 successive keyboard polls that occur within 1/18 of a
  553.      second, and during that time, the program does not write to the screen
  554.      or issue any DOS requests.  When the application  polls the keyboard a
  555.      fourth consecutive time,  Tame checks one  last time for a  key-press,
  556.      and if a key was not pressed, it tries to switch the task.
  557.  
  558.      This threshold may be increased or decreased  using the /FREQUENCY:n,m
  559.      option, where n is the main threshold.  The  n parameter specifies how
  560.      many consecutive polls that may occur in a single PC clock tick before
  561.      Tame switches tasks.   There are 18.2  clock ticks per second,  so the
  562.      "true" frequency is actually 18.2  times the value of n.  If  n is too
  563.      low, then  Tame  will switch  tasks while  the  application really  is
  564.      working.   If  it  is  too high  then  Tame  may never  switch  tasks.
  565.  
  566.      Unfortunately, a "one size fits all" value of n is not possible, since
  567.      it depends  largely  on the  speed  of the  machine,  as well  as  the
  568.      software that is being used.
  569.      A reasonable  value for  n will  be computed  by Tame  if you  specify
  570.      /Frequency with  no  parameters.   This  is done  using  a very  crude
  571.  
  572.      formula  based  on  the speed  of  the  CPU.    Since  the  CPU  speed
  573.      measurement can  take  a  few seconds,  it  is recommended  that  this
  574.      feature be used  only one time,  and an actual  value is specified  on
  575.      subsequent runs.
  576.      The /FREQUENCY option restricts  the time period that Tame  is allowed
  577.  
  578.      to count keyboard  polls.  This allows  Tame to measure the  amount of
  579.      real work that  the application is doing,  where more polls  per clock
  580.      tick  are  associated  with  less  actual  work  being   done  by  the
  581.      application.
  582.      In some instances, it may not be appropriate to  watch the clock while
  583.  
  584.      accumulating keyboard polls.  This is the method  that Tame used prior
  585.      to release  2.2, and is  very effective  in many  instances.  It  also
  586.      happens to be much more easily tuned, since the values do not normally
  587.  
  588.  
  589.      ----------------------------------------------------------------------
  590.      Release 2.6                 February, 1991                      Page 7
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      Advanced Tame concepts                                Tame Users Guide
  599.      ----------------------------------------------------------------------
  600.  
  601.      depend on the speed  of the machine.   This may be done  by specifying
  602.      /MAX:n,m option, where n is the main threshold.  If n or m is much too
  603.      low, then  Tame  will switch  tasks while  the  application really  is
  604.  
  605.      working.  If it is too high then Tame will not switch tasks until long
  606.      after the  program has settled  into a  polling pattern, reducing  the
  607.      effectiveness of Tame  for a brief period  after each key  is pressed.
  608.      Since most  programs  are capable  of  polling 100  to  300 times  per
  609.      second, these parameters indirectly correspond to an "idle time limit"
  610.      that is enforced by Tame.
  611.  
  612.      After Tame detects excessive  keyboard polling, a second  threshold is
  613.      used.   This  threshold  is normally  much  smaller than  the  initial
  614.      threshold, and defaults to 2.   In effect, Tame will allow  3 keyboard
  615.      polls, switch tasks, and  then switch tasks on every  third successive
  616.      keyboard poll until  a key is pressed,  or the program  does something
  617.      besides poll  the keyboard.   This  allows the first  threshold to  be
  618.      raised  to  a  high  number  to  accommodate  some  programs,  without
  619.      significantly sacrificing the effectiveness  of Tame.  In  most cases,
  620.      the default of 2 for  the second threshold is adequate, but it  can be
  621.  
  622.      lowered all  the  way  to zero  if  desired.   It  may be  changed  by
  623.      specifying a second parameter of the /Max or /Frequency option.
  624.      Some applications  will grab  the timer interrupt  that always  occurs
  625.      18.2 times per second.   In many cases, this interrupt takes a  lot of
  626.      processing time, but  really provides very  little utility.  To  avoid
  627.  
  628.      wasting processing time servicing the timer interrupt, you may prevent
  629.      the application from controlling the timer interrupt by specifying the
  630.      /NOTIMER option.   In many cases, the  timer interrupt may be  used to
  631.      keep a clock running on the screen.  This clock  may not be worth much
  632.      to you when you consider  the amount of processing time it uses.   For
  633.      example, the following commands will run the Brief editor, (as long as
  634.      the  auto-save feature  of  Brief  is  disabled),   and  will  gain  a
  635.      significant amount of processor time for background processes.
  636.  
  637.         TAME-RES
  638.         TAME /NOTIMER
  639.         B
  640.  
  641.      Some applications  spend  a  lot of  time  polling the  system  clock,
  642.      normally for the purpose of an maintaining an on-screen clock while it
  643.      is waiting for other devices to have a character ready.  The /TIMEPOLL
  644.      option instructs Tame  to treat the  date and time  query in a  manner
  645.      similar  to  the  keyboard  poll,  and  yield  the  time  slice  after
  646.      successive date or time queries.  The following  commands run PCBOARD,
  647.      which keeps an  on-screen clock while  waiting for the  communications
  648.      port.
  649.  
  650.         TAME-RES
  651.         TAME /TIMEPOLL
  652.         PCBOARD
  653.  
  654.  
  655.      ----------------------------------------------------------------------
  656.      Page 8                      February, 1991                 Release 2.6
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      Tame Users Guide                           Setting the frequency value
  665.      ----------------------------------------------------------------------
  666.  
  667.      Most applications will also benefit by specifying /NoBackGround.  This
  668.      option is only  available with DESQview, and  should not be  used with
  669.      communications programs.  When  this option is set, Tame will  set the
  670.  
  671.      task to  not run  in the  background when it  is polling.   This  will
  672.      completely shut down the task until it is brought into the foreground.
  673.      When the task becomes active again, Tame will restore the task status,
  674.      to again  allow it  to run  in the  background.   This automatic  mode
  675.      switching is extremely effective with most application programs.
  676.  
  677.      Setting the frequency value
  678.      Tame will compute a nominal value for the frequency threshold when you
  679.  
  680.      specify /Frequency  with no  parameters.   This is done  using a  very
  681.      crude formula based primarily on the speed of the CPU.  In many cases,
  682.      this number is  adequate.  However,  when computing this number,  Tame
  683.      does  not  factor  in  any  special  characteristics   of  a  specific
  684.      application  program.     To  tune  the   frequency  for  a   specific
  685.      application, some real measurements are needed.
  686.  
  687.      To do this,  you may use  a program called  TAME-ANL that watches  the
  688.      program run,  and generates a  more detailed summary.   In its  report
  689.      file, you will see a  tick-by-tick count of key polls.  Since  you can
  690.      see the actual poll rate, it should be easy to set the frequency.  See
  691.      the TAME-ANL.DOC file for more details in running this program.
  692.  
  693.      A more traditional  approach is also possible.   Start by  closing all
  694.      tasks except  a single task  that is at  the DOS prompt.   There is  a
  695.      batch file named  TAMETUNE.BAT that comes  with the Tame  distribution
  696.      archive.  Run this batch  file and supply the name of  the application
  697.      as an argument.   This batch file  will simply clear Tame  totals, and
  698.      then  run  the  application.   Run  the  batch  file,  and  bring  the
  699.      application to its normal input state as soon as is  possible.  Let it
  700.      remain idle  for at  least ten  seconds.   During this  time, Tame  is
  701.      counting actual keyboard polls.   After waiting ten seconds,  exit the
  702.  
  703.      program as quickly as possible.   Tame will display a total  number of
  704.      polls per clock tick that occurred while you  were in the application.
  705.      Since you  know that  you were  idle during  most of  that time,  this
  706.      number  represents that  rate  which  the application  is  capable  of
  707.      polling the  keyboard.   A  good value  to specify  for the  frequency
  708.      parameter is between ¼ to ½ of the measured poll rate.
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.      ----------------------------------------------------------------------
  722.      Release 2.6                 February, 1991                      Page 9
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      Setting default options                               Tame Users Guide
  731.      ----------------------------------------------------------------------
  732.  
  733.      Setting default options
  734.  
  735.      A special  version  of  TAME-RES with  custom  options may  easily  be
  736.      created.   This is done  by specifying the  default options, and  then
  737.      using the /CLONE option.  This creates a new program  that may be used
  738.      in place of the TAME-RES and TAME command  combination.  The following
  739.      example  creates  TAME-123.COM   which  defaults  to  the   /NoBG  and
  740.      /FREQ:20,2 options.
  741.  
  742.         TAME-RES
  743.         TAME /NoBG /FREQ:20,2
  744.         TAME /CLONE:TAME-123
  745.  
  746.      Later, to load Tame resident and run Lotus 123, the following commands
  747.      could be used.
  748.         TAME-123
  749.         123
  750.  
  751.      Alternatively, the following command could be used.
  752.  
  753.         TAME-123 C:\123\123.EXE
  754.      Since this cloned version of Tame is set  up with options specifically
  755.      tuned for 123, then we may wish to place the  123 command into the new
  756.      COM file.  This is  very convenient since it allows the  Tamed version
  757.  
  758.      of 123 to be  run with a simple command.   This may be done  using the
  759.      following commands.
  760.         TAME-RES
  761.         TAME /NoBG /FREQ:20,2
  762.         TAME /CLONE:123T 'C:\123\123.EXE'
  763.  
  764.      Note that this  creates a modified  version of TAME-RES.COM that  will
  765.      automatically run  the 123 command  - it does  not modify the  123.EXE
  766.      file in any way.
  767.  
  768.      Later, to run Tame and Lotus 123, the following command may be used.
  769.         123T
  770.  
  771.      The /Clone  command does  not save  the multi-tasker  into the  cloned
  772.      command file.   This  allows the  same command  to be  used with  many
  773.      different multi-taskers, but  when Tame has difficulty  detecting your
  774.      multi-tasker, you may wish to clone it into the program.   To do this,
  775.      simply specify  the multi-tasker  on the command  line before  /Clone.
  776.  
  777.      The following example will  create a file named TAME-OV.COM  which may
  778.      only be run with Omniview.
  779.         TAME /OMNIVIEW /CLONE:TAME-OV
  780.  
  781.      Applications that are DESQview-aware
  782.  
  783.      Most  sophisticated programs  poll  the  keyboard.   A  few  of  these
  784.      programs  have  made  themselves  DESQview-aware,  meaning  that  they
  785.  
  786.  
  787.      ----------------------------------------------------------------------
  788.      Page 10                     February, 1991                 Release 2.6
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      Tame Users Guide                  Applications that are DESQview-aware
  797.      ----------------------------------------------------------------------
  798.  
  799.      recognize and  work with  DESQview.   Most  are sufficiently  DESQview
  800.      aware to  run  in a  window, but  still  hog the  CPU  (e.g. Brief  by
  801.      Solution Systems).  These programs need Tame as much  as ones that are
  802.  
  803.      not DESQview-aware.  To be fully DESQview-aware,  the application must
  804.      release its time slice while it is polling the keyboard.   Tame is not
  805.      needed when one  of these fully-aware  programs are used in  DESQview.
  806.      Unfortunately, very few programs are fully DESQview-aware.  In fact, I
  807.      only know of  two programs that seem  to be.  Hopefully  more programs
  808.      will follow.  When they do, Tame can transfer their DESQview-awareness
  809.      into  Windows-awareness,   or   awareness  of   any  other   supported
  810.      multi-tasker.  This is  done by specifying the /DVAWARE option.   When
  811.      all programs that are run in a specific window will be DESQview-aware,
  812.      you may  turn  off the  options that  cause  automatic recognition  of
  813.  
  814.      polling programs.  The following command line tells  Tame that all the
  815.      programs will be DESQview-aware.
  816.         TAME /DVAWARE /NKP /NKI /NTP
  817.  
  818.      It is possible that a program uses DESQview/Topview functions that are
  819.      not supported with Tame.   Tame can fool these programs  into thinking
  820.      they are in DESQview, but if they try  unsupported functions, they may
  821.      crash the system.  If this happens, please let me know.
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.      ----------------------------------------------------------------------
  854.      Release 2.6                 February, 1991                     Page 11
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      The Tame status                                       Tame Users Guide
  863.      ----------------------------------------------------------------------
  864.  
  865.      The Tame status
  866.  
  867.      The /Status option prints many statistics that  Tame accumulates while
  868.      running.  These statistics  are interesting to see, and they  may also
  869.      be useful  for tuning Tame  and the  multi-tasker.   This is a  sample
  870.      status report.
  871.  
  872.         TAME release 6.50  (Non-Registered version)
  873.         Copyright 1988-1990 by PowerSoft, Inc and David G. Thomas
  874.  
  875.         Tame Totals - Running in DESQview Task #2
  876.  
  877.           Key Polls      = 21,575
  878.           Time polls     = 21,262
  879.           Task switches  = 10,658
  880.           NoBG requests  =  1,043
  881.  
  882.  
  883.           Elapsed Time   =  4,172 seconds
  884.           (Active=7  Polling=29  Input=0  Yielded=4,137  Boost=3)
  885.  
  886.           Poll rate      =      10 polls per second
  887.                                  1 polls per tick
  888.                                 66 polls per running tick
  889.  
  890.         Options: /ON /NoBackGround:10 /NoTimer /TimePoll /KeyPoll /NoSerial
  891.                  /NoParallel /NoKeyIdle /NoDVAware /Freq:20,2 /Boost:2,2
  892.  
  893.      The following measurements are included in the report.
  894.  
  895.      Key Polls      The total number of times the program polled  to see if
  896.                     a key has been pressed.
  897.      Time Polls     The  total  number of  times  the  program  called  DOS
  898.                     requesting the current date or time.
  899.  
  900.      Task Switches  The number of times that Tame has forced a task switch.
  901.  
  902.      NoBG Requests  The number of  times that Tame instructed  DESQview run
  903.                     this program only when it is in the  foreground, not in
  904.                     the background.   This  number can  sometimes get  very
  905.                     high because Tame has no way to know  if the program is
  906.                     currently in  the foreground, and,  if it is,  DESQview
  907.                     will ignore the request.
  908.  
  909.      Elapsed Time   The total time that  Tame has been running.   This time
  910.                     is measured in  seconds.  Tame  does its best to  break
  911.                     the time down into useful categories which are shown on
  912.                     the next line.
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.      ----------------------------------------------------------------------
  920.      Page 12                     February, 1991                 Release 2.6
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      Tame Users Guide                                       The Tame status
  929.      ----------------------------------------------------------------------
  930.  
  931.      Active         The amount of time the task was active doing real work.
  932.                     Due to limitations  in the measurement  capabilities of
  933.                     Tame, this may also include some time that was actually
  934.  
  935.                     spent  in  other tasks.    This  can  happen  when  the
  936.                     multi-tasker switches tasks before Tame sees a need to,
  937.                     which is the normal case when the task  is working very
  938.                     hard.  The  measurement will be fairly  accurate except
  939.                     times when this  task is working  hard and other  tasks
  940.                     are also working very hard at the same time.
  941.  
  942.      Polling        The amount  of CPU  time  this task  spent polling  the
  943.                     keyboard.
  944.      Input          The amount of time  this task spent waiting  for input.
  945.                     This  is  different  than  polling   because  the  task
  946.  
  947.                     specifically requested to  not receive control  until a
  948.                     key has  been pressed.   This is  the normal case  when
  949.                     waiting  at the  DOS  prompt,  unless Tame  or  another
  950.                     program is monitoring the idle interrupt (INT 28h).
  951.      Yielded        The amount  of  time that  Tame  has yielded  to  other
  952.  
  953.                     tasks.  It is a measure of the  time difference between
  954.                     when Tame switches tasks, and when  control is returned
  955.                     to tame.   Presumably, each other  task has had a  time
  956.                     slice during this time.
  957.      Poll Rate      This  is  the ratio  of  total  polls  (Key-polls  plus
  958.  
  959.                     Time-polls) that has occurred per second,  per tick and
  960.                     per running tick.  A tick is a measure that is internal
  961.                     to the PC, and  there are 18.21 ticks per second.   The
  962.                     total number of running  ticks is a sum of  active time
  963.                     plus  polling  time,  multiplied  by  18.21  ticks  per
  964.                     second.  The polls per running-tick is  an indicator as
  965.                     to how fast the program normally polls.
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.      ----------------------------------------------------------------------
  986.      Release 2.6                 February, 1991                     Page 13
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      Task switching options                          Tame Command Reference
  995.      ----------------------------------------------------------------------
  996.  
  997.                              Tame Command Reference
  998.  
  999.      Task switching options
  1000.      The main purpose of Tame is to switch to another  task when it detects
  1001.      that the  application  is wasting  time polling  the  keyboard.   With
  1002.      DESQview,  Windows, Omniview,  Topview,  VM/386  and Double  Dos,  the
  1003.  
  1004.      native pause function  is used to switch  tasks.  Since Tame  does not
  1005.      have specific  support for other  multi-taskers, you  need to set  the
  1006.      task switching method  for these other  multi-taskers.  The  following
  1007.      options specify  the method that  Tame should use  in order to  switch
  1008.      tasks.
  1009.  
  1010.      ........
  1011.      /DESQVIEW      Use the native DESQview task switching method.
  1012.      ........
  1013.      /DOUBLEDOS     Use the native Double DOS task switching method.
  1014.  
  1015.      ........
  1016.      /HaltSwitch    The  /HaltSwitch  option  specifies  that  Tame  should
  1017.                     execute a  HLT  instruction when  polling is  detected.
  1018.                     This  instruction   has  been   found  to  cause   some
  1019.                     multi-taskers to  immediately switch  to another  task.
  1020.                     This is  the default  task switching  method when  Tame
  1021.  
  1022.                     does not recognize the multi-tasker.
  1023.      ........
  1024.      /KeySwitch     The /KeySwitch option  specifies that when  the program
  1025.                     polls the keyboard,  Tame should tell  a white lie  and
  1026.                     say that  a key  has been pressed.   Most  applications
  1027.  
  1028.                     will immediately  read the  key that  Tame claimed  was
  1029.                     already pressed.  Since it really was  not pressed, DOS
  1030.                     will wait for a key to be pressed.   Most multi-taskers
  1031.                     use this  wait for  a key  press as a  queue to  switch
  1032.                     tasks.
  1033.  
  1034.                     The /KeySwitch option could be the  most effective task
  1035.                     switching method  in Tame,  but it will  not work  with
  1036.                     some applications.  Specifically, it will not work with
  1037.                     any  applications  that poll  devices  other  than  the
  1038.                     keyboard, or with programs that  occasionally flush the
  1039.                     keyboard  buffer.     It  is  also  not   effective  in
  1040.                     Windows/386.
  1041.  
  1042.      ........
  1043.      /DVAware       This switch  helps  Tame work  with  programs that  are
  1044.                     DESQview-aware   (or   Topview-aware)   but   are   not
  1045.                     necessarily  aware  of   other  environments  such   as
  1046.                     Windows.  Using this option instructs Tame to recognize
  1047.                     and  emulate a  few  of the  critical  DESQview/Topview
  1048.                     system functions in  another environment.  If  you know
  1049.  
  1050.  
  1051.      ----------------------------------------------------------------------
  1052.      Page 14                     February, 1991                 Release 2.6
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      Tame Command Reference                          Task switching options
  1061.      ----------------------------------------------------------------------
  1062.  
  1063.                     that the program  is DESQview-aware, you may  also turn
  1064.                     off  automatic  taming  by  specifying  /NoKeyPoll  and
  1065.                     /NoTimePoll.
  1066.  
  1067.      ........
  1068.      /OMNIVIEW      Use the  native Omniview task  switching method.   This
  1069.                     requires  that  Omniview  is  set  up   to  be  Topview
  1070.                     compatible.
  1071.  
  1072.      ........
  1073.      /TOPVIEW       Use the native Topview task switching method.
  1074.  
  1075.      ........
  1076.      /VM386         Use  the  native VM/386  task  switching  method  which
  1077.                     happens to be the same as /HaltSwitch.
  1078.      ........
  1079.  
  1080.      /WINdows       Use the native Windows task switching method.   This is
  1081.                     effective with Windows 3.0 and Windows/386.
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.      ----------------------------------------------------------------------
  1118.      Release 2.6                 February, 1991                     Page 15
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      Fine tuning for an application                  Tame Command Reference
  1127.      ----------------------------------------------------------------------
  1128.  
  1129.      Fine tuning for an application
  1130.  
  1131.      The default Tame options will work well with  most programs.  However,
  1132.      portions of  some programs  will  run slower  with Tame.   With  other
  1133.      programs, Tame  may  not  reduce the  CPU  overhead, even  though  the
  1134.      program polls the keyboard.  The following options may be specified in
  1135.      order to adjust the effects of Tame on a specific application program.
  1136.  
  1137.      ........
  1138.      /Boost:n,m     This option  is intended to  prevent Tame from  slowing
  1139.                     the application.   It  will boost the  priority of  the
  1140.                     task for  n clock  ticks after  each key  press, and  m
  1141.                     clock ticks  after  each DOS  or  video action.    Both
  1142.                     values default  to 2.   You  may need  to decrease  the
  1143.                     second value  to  zero  if Tame  does  not seem  to  be
  1144.                     effective.
  1145.  
  1146.      ........
  1147.      /INT15         This option  improves  the effectiveness  of Tame  with
  1148.                     some programs,  but it  does not work  on all  computer
  1149.                     systems.  In fact, with some machines, it  will lock up
  1150.                     the system.
  1151.  
  1152.                     This option may be turned off by specifying /NoINT15.
  1153.  
  1154.      ........
  1155.      /NoBG:n        This option  can be very  effective with DESQview,  and
  1156.      /FGonly:n      will  be ignored  if  another multi-tasking  system  is
  1157.                     being used.  When  this option is specified,  Tame will
  1158.                     patiently do  a  normal task  switch n  times.   If  no
  1159.                     activity is detected, then it will instruct DESQview to
  1160.                     temporarily run this  program only while  it is in  the
  1161.                     foreground.  As soon as this program is  brought to the
  1162.                     foreground, Tame will instruct DESQview  to again allow
  1163.  
  1164.                     it to execute in the background.
  1165.                     This option is  extremely effective in  preventing idle
  1166.                     background  processes   from  slowing  performance   of
  1167.                     working processes.  However, since its net effect is to
  1168.                     completely stop the task (if it is  in the background),
  1169.  
  1170.                     it is very sensitive to how well the /Frequency or /Max
  1171.                     parameters are tuned.   It also  will not be  effective
  1172.                     with  background tasks  which  may  remain idle  for  a
  1173.                     period of  time, and  become active  based on  external
  1174.                     events (e.g. communications program).
  1175.  
  1176.                     This option may  be turned off by  specifying /NoFGonly
  1177.                     or /BackGround.
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.      ----------------------------------------------------------------------
  1184.      Page 16                     February, 1991                 Release 2.6
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      Tame Command Reference                  Fine tuning for an application
  1193.      ----------------------------------------------------------------------
  1194.  
  1195.      ........
  1196.      /Freq:n,m      This option may need  to be used in order  to fine-tune
  1197.                     Tame.  It sets n as the number  of consecutive keyboard
  1198.  
  1199.                     polls per  clock tick that  are acceptable before  Tame
  1200.                     decides that the program is doing no  other work except
  1201.                     polling the keyboard.   This number defaults to 3.   If
  1202.                     this number  is too  low,  then Tame  may switch  tasks
  1203.                     while  the  program  is  really  working.    Specifying
  1204.                     /Frequency  with  no  parameters  will  allow  Tame  to
  1205.                     compute a reasonable  value based on  the speed of  the
  1206.                     CPU.  Since some application programs poll the keyboard
  1207.                     at a high rate  (even while they are working),  so this
  1208.                     option does not always provide advantages over /Max.
  1209.  
  1210.      ........
  1211.      /KeyIdle:n     This option  works  well with  many  programs that  are
  1212.                     gracious enough to inform DOS that it  is somewhat idle
  1213.                     while it polls  the keyboard.   When Tame detects  this
  1214.                     idle situation, it  will temporarily lower the  /Max or
  1215.  
  1216.                     /Frequency  threshold  to  n.    This   seems  to  work
  1217.                     especially well  with programs  that always inform  DOS
  1218.                     when it is idle, and the standard threshold  can be set
  1219.                     to -1, telling  Tame to never  switch tasks unless  the
  1220.                     application confirms that it is really idle.
  1221.  
  1222.                     Beginning with  DESQview release  2.26, this option  is
  1223.                     not recommended for tasks  that spend a lot of  time at
  1224.                     the DOS prompt.   This is because DESQview  detects the
  1225.                     fact that Tame is watching the idle interrupt, and when
  1226.                     at the DOS prompt, DESQview goes out of its way to make
  1227.                     sure  the  idle  interrupt  is   called,  wasting  some
  1228.                     processing time  unnecessarily.   This option is  still
  1229.                     very effective  inside some  programs, and the  problem
  1230.                     only occurs at the DOS prompt.
  1231.  
  1232.                     This option may be turned off by specifying /NoKeyIdle.
  1233.  
  1234.      ........
  1235.      /NoKeyPoll     This option  instructs  Tame to  not  look at  keyboard
  1236.                     polls.  This may be useful with some programs that poll
  1237.                     the keyboard whether they are working or  not, but they
  1238.                     poll the date or  time only during keyboard input.   In
  1239.                     this case, it may be best to switch  tasks based on the
  1240.                     /TimePoll switch, and ignore all key polls.
  1241.  
  1242.                     This option may be reversed with /KeyPoll.
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.      ----------------------------------------------------------------------
  1250.      Release 2.6                 February, 1991                     Page 17
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      Fine tuning for an application                  Tame Command Reference
  1259.      ----------------------------------------------------------------------
  1260.  
  1261.      ........
  1262.      /Max:n,m       This option  may need  to  be used  if the  application
  1263.                     seems to run slower with Tame.  It sets n as the number
  1264.  
  1265.                     of consecutive  polls that  are acceptable before  Tame
  1266.                     decides  that  the  program  is  simply  polling  while
  1267.                     waiting for  input.  If  this number  is too low,  then
  1268.                     Tame  may switch  tasks  while  the program  is  really
  1269.                     working.    If you  suspect  that  the  program  (or  a
  1270.                     particular aspect of the program) is  slower with Tame,
  1271.                     raise  this  number.   Parameters  as  high  as  a  few
  1272.                     thousand may be  needed in some  cases.  Note that  the
  1273.                     /Frequency parameter may be used in place  of /Max, and
  1274.                     /Frequency is generally more effective.
  1275.  
  1276.                     The second number may optionally be  specified in order
  1277.                     to change  the number  of consecutive  polls that  Tame
  1278.                     uses to  switch tasks after  it has already  determined
  1279.                     that the program is in a polling mode.
  1280.  
  1281.                     Either n  or m  may be  -1, which  indicates that  Tame
  1282.                     should  not cause  a  task  switch based  upon  polling
  1283.                     alone.  This  is effective with programs that issue the
  1284.                     keyboard  idle interrupt  while  they are  polling  the
  1285.                     keyboard, and  will prevent  Tame from switching  tasks
  1286.                     from intermittent keyboard polls.
  1287.  
  1288.                     In some  cases,  changing /Max  will  have no  apparent
  1289.                     effect when /KeyIdle  is also specified.   This is  the
  1290.                     case with  most  well-behaved programs  that issue  the
  1291.                     keyboard idle interrupt.
  1292.  
  1293.      ........
  1294.      /NoTimer       This option  prevents the  application from  processing
  1295.                     the timer interrupt that  is normally issued by  the PC
  1296.                     18.2 times per  second.  This  option may disable  some
  1297.                     features  of  the program,  and  should  be  used  with
  1298.                     caution.  It  is very useful  with programs that use  a
  1299.  
  1300.                     lot  of  CPU   processing  the  timer   interrupt,  and
  1301.                     accomplish little.
  1302.                     This option works by intercepting  the programs request
  1303.                     to be  called by  the timer  interrupt.    The  program
  1304.                     assumes it  will be called  on a  regular basis by  the
  1305.  
  1306.                     timer interrupt,  but,  since Tame  did  not pass  this
  1307.                     request on to DOS, the program will never  be called by
  1308.                     the interrupt.
  1309.                     This option may be turned off by specifying /Timer.
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.      ----------------------------------------------------------------------
  1316.      Page 18                     February, 1991                 Release 2.6
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      Tame Command Reference                  Fine tuning for an application
  1325.      ----------------------------------------------------------------------
  1326.  
  1327.      ........
  1328.      /PARallel      This option instructs Tame to watch BIOS level parallel
  1329.                     port accesses,  and  if the  port  is frequently  being
  1330.  
  1331.                     used, do not allow  a task switch.  This option  is not
  1332.                     normally needed except with programs that bypass DOS in
  1333.                     accessing the printer.  It should be used  only when it
  1334.                     is really needed.
  1335.      ........
  1336.  
  1337.      /SERial        This option instructs  Tame to watch BIOS  level serial
  1338.                     port accesses,  and  if the  port  is frequently  being
  1339.                     used, do not allow  a task switch.  This option  is not
  1340.                     normally  needed  except with  programs  that  use  the
  1341.                     serial  port  (e.g.  comm  programs,  bulletin  boards,
  1342.                     etc...).   It should  be used  only when  it is  really
  1343.                     needed.
  1344.  
  1345.      ........
  1346.      /TimePoll      This option  instructs Tame to  consider a request  for
  1347.                     the current  time to  be  similar to  a keyboard  poll.
  1348.                     This works well with programs that constantly update an
  1349.                     on-screen clock.  This  option may have no  effect when
  1350.                     /KeySwitch is  specified.  It  is recommended that  the
  1351.                     second  /Max or  /Frequency  parameter have  a  minimum
  1352.                     value of 2 when /TimePoll is specified.
  1353.  
  1354.                     This   option  may   be   turned  off   by   specifying
  1355.                     /NoTimePoll.
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.      ----------------------------------------------------------------------
  1382.      Release 2.6                 February, 1991                     Page 19
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.      Other options                                   Tame Command Reference
  1391.      ----------------------------------------------------------------------
  1392.  
  1393.      Other options
  1394.  
  1395.      ........
  1396.      /CLeaR         Zero  the  totals that  Tame  displays  on  the  status
  1397.                     report.
  1398.  
  1399.      ........
  1400.      /CLONE:file    This   command  will   make   a  special   version   of
  1401.                     TAME-RES.COM that  has  customized default  parameters.
  1402.                     The currently active  defaults will be placed  into the
  1403.                     cloned program.  In all cases, the /CLONE option should
  1404.                     be the only command line option that is specified.  The
  1405.                     cloned program  is specified with  the file value,  and
  1406.                     should be named  TAME-xxx where xxx is  an abbreviation
  1407.                     for the application name.  The new  TAME-xxx.COM may be
  1408.                     run in place of the TAME-RES.COM and  TAME.EXE duo that
  1409.  
  1410.                     is frequently needed when starting up a new task.
  1411.      ........
  1412.      /CLONE:f,c     This   command  will   make   a  special   version   of
  1413.                     TAME-RES.COM that  has  customized default  parameters,
  1414.                     and also  will  automatically run  a specific  command.
  1415.  
  1416.                     The currently active  defaults will be placed  into the
  1417.                     cloned program.  In all cases, the /CLONE option should
  1418.                     be the only command line option that is specified.  The
  1419.                     new  COM may  be  run  in place  of  the  TAME-RES.COM,
  1420.                     TAME.EXE and  program  combination that  is  frequently
  1421.                     needed when starting up a new task.  Note that f is the
  1422.                     name of the new COM file (without the .COM suffix), and
  1423.                     c is the full path name of the EXE or COM style command
  1424.                     that is to be run.
  1425.  
  1426.      ........
  1427.      /Geiger:p,t,f, This option  starts up  a sound  that is  similar to  a
  1428.      h              Geiger counter.  This  sound speeds up when  the system
  1429.                     is idle, and slows as other tasks demand CPU resources.
  1430.                     It  is   a  very   useful  tool   for  monitoring   the
  1431.                     effectiveness of Tame,  since it allows you  to monitor
  1432.  
  1433.                     the amount of CPU that an application will use with and
  1434.                     without Tame.
  1435.                     There  are  three  optional  parameters   that  may  be
  1436.                     specified.  The p parameter sets amount of time between
  1437.                     each Geiger tick.   The default  value is based on  the
  1438.  
  1439.                     speed of the CPU.
  1440.                     You can set the  geiger to use very little CPU  as long
  1441.                     as Tame is loaded and tuned.  This allows the geiger to
  1442.                     monitor total system CPU usage, but is  not very useful
  1443.                     for tuning Tame.  This is done by specifying a negative
  1444.  
  1445.                     value for p to  set the real time between each  tick in
  1446.  
  1447.      ----------------------------------------------------------------------
  1448.      Page 20                     February, 1991                 Release 2.6
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.      Tame Command Reference                                   Other options
  1457.      ----------------------------------------------------------------------
  1458.  
  1459.                     1/18 second increments.   Setting it to  -1 will make a
  1460.                     tick each 1/18 of  a second.  Its only value  in tuning
  1461.                     Tame is  in  the fact  that it  will  simulate a  heavy
  1462.  
  1463.                     keyboard poller, and may help you adjust the settings.
  1464.                     Setting p to zero will give a tick  each time this task
  1465.                     gets  a  time slice,  but  the  zero  setting  requires
  1466.                     TAME-RES to be loaded.
  1467.  
  1468.                     The t  parameter  sets the  amount  of time  each  tick
  1469.                     takes.  The default  is based on the speed of  the CPU.
  1470.                     When t is zero, a faint tick may still be heard.  The f
  1471.                     parameter sets the frequency of the ticks, in Hertz.
  1472.  
  1473.                     The h parameter  can turn on  an on-screen hickey  that
  1474.                     visually  supplements  the  sounds.  The   h  parameter
  1475.                     specifies how often to move the hickey  relative to the
  1476.                     tick sounds, where  1 means move  it on each tick,  two
  1477.                     for every other tick, etc.
  1478.  
  1479.      ........
  1480.      /GETALL:var    Get the current Tame parameters, and place them into an
  1481.                     environment  variable  named var.      This  option  is
  1482.                     designed for use in  a batch file, in order  to restore
  1483.                     the Tame parameters after running a program.
  1484.  
  1485.                     This option has been  tested with DOS versions  3.1 and
  1486.                     3.3, but  it will not  work with  DOS 3.2.   I hope  to
  1487.                     correct this problem with a future release.  If you are
  1488.                     running  a  multi-tasker  with  DOS   2.0,  I  strongly
  1489.                     recommend  you upgrade  to  DOS  3.x so  you  can  take
  1490.                     advantage of  the protections  provided with the  SHARE
  1491.                     command.
  1492.  
  1493.      ........
  1494.      /OFF           Temporarily disable  Tame, but leave  it in memory  for
  1495.                     later use.
  1496.  
  1497.      ........
  1498.      /ON            Enable Tame task switching.  Tame is on by default.
  1499.  
  1500.      ........
  1501.      /Status        Display a  summary report.   The  summary includes  the
  1502.                     number of  task switches that  were initiated by  Tame,
  1503.                     the total number of keyboard calls that the application
  1504.                     made, and also a summary of the current options.
  1505.  
  1506.      ........
  1507.      /Uninstall     Remove the resident portion of Tame from memory.
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.      ----------------------------------------------------------------------
  1514.      Release 2.6                 February, 1991                     Page 21
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.      DESQview                                       Multi-tasking Specifics
  1523.      ----------------------------------------------------------------------
  1524.  
  1525.                              Multi-tasking Specifics
  1526.  
  1527.      DESQview
  1528.      Tame will automatically detect the presence of DESQview,  and will use
  1529.      its native task switching method.   Tame has been tested with DESQview
  1530.      versions  2.01  through 2.31,  and  appears  to  work  well  with  all
  1531.  
  1532.      versions.
  1533.      If  you set  the  /Frequency  parameter correctly,  the  /NoBackGround
  1534.      option is  strongly recommended  with most application  programs.   It
  1535.      will prevent idle background programs from affecting performance.
  1536.  
  1537.      Tame is  most  effective  with DESQview  when  QEMM and  DESQview  are
  1538.      combined on  an 80386  based PC.   Tame will  also be  effective on  a
  1539.      machine with an  8088 or 80286 and  should be used with  many programs
  1540.      that do not have special DESQview loaders.
  1541.  
  1542.      Double Dos
  1543.  
  1544.      Tame will automatically  detect the presence  of Double Dos, and  will
  1545.      use its native task switching method.
  1546.  
  1547.      Omniview
  1548.      Omniview should  be set up  to be 'Topview  compatible'.  Tame  cannot
  1549.      tell the  difference between Omniview  and other Topview  compatibles.
  1550.  
  1551.      After  loading TAME-RES,  run  TAME  with  the /OMNIVIEW  option.    I
  1552.      recently obtained the Omniview  developers toolkit, and may  be adding
  1553.      native Omniview support in the near future.
  1554.  
  1555.      Topview
  1556.      After loading TAME-RES, run TAME with the /TOPVIEW option.
  1557.  
  1558.      VM/386
  1559.  
  1560.      Tame does not specifically detect VM/386.  After loading TAME-RES, you
  1561.      should run TAME with the /VM386 option.
  1562.  
  1563.      Windows 3.0 and Windows/386
  1564.      Tame will automatically detect  the presence of Windows, and  will use
  1565.      its native task switching method.  When the /FREQ  option is used, the
  1566.  
  1567.      optimal value  may vary  drastically from  the value  used with  other
  1568.      multi-taskers.
  1569.      Tame can be much more effective than the idle  detection that is built
  1570.      into Windows.   When using Tame,  it is best  to disable Windows  idle
  1571.      detection for each window that uses Tame.  Also, if you had previously
  1572.  
  1573.      set a window to  run with a low  background priority, you may  wish to
  1574.      raise it and let Tame decide when it really needs the CPU.
  1575.  
  1576.  
  1577.  
  1578.  
  1579.      ----------------------------------------------------------------------
  1580.      Page 22                     February, 1991                 Release 2.6
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.      Application Specifics                            Application Specifics
  1589.      ----------------------------------------------------------------------
  1590.  
  1591.                               Application Specifics
  1592.  
  1593.      Most applications may be run with Tame without any special parameters.
  1594.      However, for  best results,  certain  command line  parameters may  be
  1595.      desirable for some applications.   The following table  represents the
  1596.      benefits and effects of  recommended command line parameters  for each
  1597.      program when run under DESQview.   In most cases, tuning Tame  so that
  1598.      /FREQuency and  /NoBackGround  may be  used  is strongly  recommended.
  1599.      Results may vary with other multi-taskers.
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.      ----------------------------------------------------------------------
  1646.      Release 2.6                 February, 1991                     Page 23
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.      Application Program                              Application Specifics
  1655.      ----------------------------------------------------------------------
  1656.  
  1657.       Application   Recommended       Results &
  1658.       Program       options           Side effects
  1659.       Brief         (use defaults)     About 75% of the CPU overhead is
  1660.  
  1661.                                         eliminated.
  1662.       Brief         /NoTimer /KeyIdle  Nearly all the CPU overhead is
  1663.                                         eliminated.
  1664.                                        On screen clock and auto-save
  1665.                                         feature are disabled.
  1666.       Info Select   /NoKeyPoll         Nearly all the CPU overhead is
  1667.                     /TimePoll           eliminated
  1668.       Kedit         (use defaults)     Nearly all of the CPU overhead is
  1669.                                         eliminated.
  1670.       Lotus 123     (use defaults)     Nearly all the CPU overhead is
  1671.  
  1672.                                         eliminated.
  1673.       Lotus Agenda  (use defaults)     Nearly all the CPU overhead is
  1674.                                         eliminated.
  1675.       Lotus         /NoTimer /Max:-1   Nearly all the CPU overhead is
  1676.       Manuscript    /KeyIdle            eliminated.
  1677.       Lucid 3D      (use defaults)     Nearly all the CPU overhead is
  1678.                                         eliminated.
  1679.       Microsoft     (use defaults)     Nearly all the CPU overhead is
  1680.       Editor                            eliminated.
  1681.       Norton        (use defaults)     Nearly all the CPU overhead is
  1682.  
  1683.       Commander                         eliminated.
  1684.                                        Tame will also cover programs that
  1685.                                         are run by the shell.
  1686.       PCBOARD       /TimePoll          About 75% of the CPU overhead is
  1687.                                         eliminated.
  1688.       Quick C       /NoTimer           Nearly all of the CPU overhead is
  1689.                                         eliminated.
  1690.                                        Side effects (if any) of /NoTimer
  1691.                                         have not been determined.
  1692.       Sidetalk      (use defaults)     About 75% of the CPU overhead is
  1693.  
  1694.                                         eliminated.
  1695.       Tornado Notes /NoKeyPoll         Nearly all the CPU overhead is
  1696.                     /TimePoll           eliminated
  1697.       Word Perfect  /Parallel          About 75% of the CPU overhead is
  1698.                                         eliminated.
  1699.       ZCOMM         /Serial            About 75% of the CPU overhead is
  1700.                                         eliminated.
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.      ----------------------------------------------------------------------
  1712.      Page 24                     February, 1991                 Release 2.6
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.      Installing Tame                               Installing Tame Upgrades
  1721.      Upgrades
  1722.      ----------------------------------------------------------------------
  1723.  
  1724.                             Installing Tame Upgrades
  1725.  
  1726.      The  latest  release of  Tame  will  be  continuously  posted  on  the
  1727.      PowerSoft bulletin board system  at (404) 928-9294.  Also,  since Tame
  1728.      is  distributed  as a  shareware  program,  the  latest  release  will
  1729.      normally be available on a local bulletin board.
  1730.  
  1731.      If you are a registered  user, you have paid for a  perpetual license,
  1732.      and may register each new version of Tame using a utility program that
  1733.      is provided  with your  registration  kit.   This utility  may be  run
  1734.      completely from the command line.  For example,  the following command
  1735.      line will register Fred Smith if the password of ABCD is correct.
  1736.  
  1737.         TAME-REG "Fred Smith" ABCD
  1738.      If you prefer, the registration program may be  run without specifying
  1739.      any arguments, and you will be prompted for the information.
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.      ----------------------------------------------------------------------
  1778.      Release 2.6                 February, 1991                     Page 25
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.      Common Questions                                              Appendix
  1787.      ----------------------------------------------------------------------
  1788.  
  1789.                                     Appendix
  1790.  
  1791.      Appendix A  Common Questions
  1792.      1.  What can I do to speed up the system while transferring files over
  1793.          a modem in the background?
  1794.  
  1795.      While one task is uploading or downloading, it requires attention from
  1796.      the CPU  at very regular  intervals.  In  fact, it  needs the CPU  240
  1797.      times per  second at  2400  baud.   DESQview cannot  task switch  much
  1798.      faster than that, so as soon as the multi-tasker is switched away from
  1799.      the task,  another character  needs  to be  serviced and  it needs  to
  1800.      switch back  again.  The  system doesn't  have much  free time to  get
  1801.      other  things done  during  the  file  transfer.   This  explains  the
  1802.  
  1803.      problem, and there are some solutions.
  1804.      Using a NS16550AFN chip  in place of the  NS16450 that is on  your com
  1805.      board can help some,  as long as your  software supports it.   You may
  1806.      wish to set its threshold to 8.  This means that  the CPU will need to
  1807.      service the file transfer only about 30 (240 / 8)  times per second at
  1808.  
  1809.      2400 baud.  This can reasonably be done on most systems.
  1810.      It will also  help to use  a modem that  has an internal buffer  (e.g.
  1811.      Multitech 224e)  and connect to  the modem to  the computer at  19,200
  1812.      baud, even though the connection is at a lower  (e.g. 2400) baud rate.
  1813.      In this scheme,  the CPU may  send and get  bursts to/from the  modem,
  1814.  
  1815.      freeing the  CPU for  other  tasks between  bursts. While  the CPU  is
  1816.      actively sending/receiving  with the  modem,  the CPU  will be  almost
  1817.      entirely dedicated to that transfer.  Limiting the  transfer to bursts
  1818.      at a high  transfer rate will  slow the rest  of the system much  less
  1819.      than a continuous slow-speed burst.
  1820.  
  1821.      2.  A program is DESQview-aware.  Does that mean I don't need Tame?
  1822.      Many programs are DV aware  - but that only means that  they recognize
  1823.  
  1824.      that DV is there and they  do what is necessary to run in  a window on
  1825.      non-386 machines.  It does  not mean that they are DV "polite"  and do
  1826.      what they can to efficiently share the limited  resources.  The bottom
  1827.      line is that most  (nearly all??) DV-aware programs need Tame  as much
  1828.      as ones that are not DV-aware.
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.      ----------------------------------------------------------------------
  1844.      Page 26                     February, 1991                 Release 2.6
  1845.  
  1846.  
  1847.  
  1848.  
  1849. 
  1850.