The most common cause of a
slowdown is the idle detection that is built into Windows. Please make sure
that Windows idle detection is disabled for the shortcut that launches a DOS
app. To do this, open the properties of the launching icon and look at the
"misc" tab. Move the idle detection slider all the way to the left.
If the shortcut does not
contain a MISC tab then check to see if a batch file is being launched. In
this case, the batch file is initially launched as a 32 bit process, and the
dialog does not include options applicable to a DOS application. The following
alternatives are available to handle the situation.
1. Edit the
shortcut named %SystemRoot%\_default.pif, and change its properties as
described above.
2. Create a shortcut in the
same folder as the DOS application, and also give it the same name. That
shortcut will be used instead of the _default.pif if it is present.
3. Force the icon
to allow setting DOS options changing the program to a DOS program. If the
batch file is necessary, it may be soecified as the startup batch file, or the
existing batch file may be launched using the DOS COMMAND.COM program. For
example:
%SystemRoot%\System32\command.exe /e:4096 /c <bat_file>
Note that this can sometimes
fail if the batch file creates a lot of environment values.
The application stalls while working, but continues
if a key is pressed
Tame continuously monitors
the application to detect when it is working and when it is idle. There is a
possibility of Tame treating the application as idle when it is really thinking
"quietly" - working but showing no observable indication that it is
working. The following options are available in order to correct the
situation.
1. Specify a watch string
A simple solution may be
available if the application displays unique text string while processing
(e.g. "Generating Report.."., or "Please Wait..."). For
this case, edit the default.tam file and add up to four watch strings. Samples
are included as comments in the file.
/ConsoleWatchString
"Please Wait..."
2. Restrict Adaptive Settings
If this problem may be
caused by the adaptive settings feature of Tame. Tame can dynamically alter
its settings based on the behavior of the application. This is necessary in
order to allow Tame to work "out of the box" with as many
applications as possible. This dynamic behavior can be restricted to disallow
some scenarios, or can be disabled altogether in favor of fixed tuning
parameters.
To change settings for all
applications, edit the Settings\Default.tam file. To change settings for a
specific application, copy the Settings\Default.tam file to one named based on
the application, and edit it as needed. See the section titled "Custom
Settings for a Specific Application" for more details.
For applications that always
poll when idle, adaptive settings may be tuned to require polling to
substantiate the release of time slices. To see if this is the case, use the
start menu shortcut to monitor all DOS applications, and make sure the adaptive
settings do not normally use the "NonPoll" option. Also verify that
is the option in use when it stalls. If this is the case, the following option
may be used to correct it.
/AutoAdaptNonPoll
off
Similarly, applications that
always poll at a high rate, or with any other consistent pattern, Tame may be
tuned to respond only to that pattern.
If this level of tuning is
more than you want to get into, TameDOS suport can usually recommend the most
likely parameter given a trace file (see below). The trace should include some
interaction before and after the stall.
3. Check CPU usage without Tame
Run the application without
Tame, and look at CPU usage during the slow operation. if it uses low CPU
during the slowed activity, specify the following option:
/CpuIdlePercent
10
4. Use App Queue Timing
The /WatchAppQueueWork
option may correct the problem. If the application is a Clipper application,
copy the C:\Tame\ClipperQ.tam file to replace the default C:\Tame\Clipper.tam
file. The replacement file uses default App Queue timing and also enables
print spooler processing.
5. Raise the Boost Parameters
In some cases, the key boost
and/or DOS boost may need to be raised. To do this, edit the default,tam file
and change the key and DOS boost numbers to 3 and 10. If this solves the
problem, lower them to find the lowest value where the application runs well.
Tame does not reduce CPU usage
If Tame is having no effect,
the first step is to verify that Tame is being loaded.
One way to verify that Tame
is loaded is to use the Tame Release 4.5 start menu diagnostics item. Select
an option to monitor applications, and the summary should list whether Tame is
loaded.
If you have not yet licensed
Tame, the console title will provide quick verification of whether Tame is
loaded. If the console window title contains the Tame version and
evaluation notice, the demo version of Tame is loaded.
If Tame is not being loaded,
try the following to find out why:
Check the autoexec.nt file
and verify that the last line loads tame-nt.com, or add a line similar to the
following one if it is not present. Use the Tame path on your system, but be
sure to use the DOS-compatible 8x3 file name.
C:\Progra~1\Tame\tame-nt.com
Open a cmd prompt in the
Tame folder and run tame-nt from the command line. Look for an error message
to provide the reason why it failed.
Key repeat is slow when using the cursor keypad
Keys on the gray cursor
keypad can sometimes repeat more slowly than those on the numeric keypad. This
occurs with or without Tame. The key repeat rate can sometimes be improved by
toggling num-lock.
A long running procedure degrades system performance
Long running processes such
as report printing or database maintenance can consume 100% of the CPU and slow
performance for interactive users. This is especially noticeable with a
single-CPU system, but can happen on a system of any size. Tame is normally
tuned to lower CPU while the application is idle, while getting out of the way
when the application is busy. For cases where this creates a performance
problem for other users, Tame provides the following options to deal with the
situation.
1. For cases where a
specific application demands high CPU when running, that application may be
restricted to use a subset of the available CPUs. This ensures that the
problem application will have limited opportunity to slow users of other
applications. Of course, a machine with multiple CPUs is needed in order to
use this option. Note that some applications transparently spawn a separate
executable to perform long running operations (e.g. printing reports). For
those applications, Tame an be configured with different parameters for
interactive use verses while the report is running.
2. Tame can lower the
priority of the procedure after it has been running for longer than a specified
threshold (usually a couple of seconds). This allows the procedure to still
use 100% of the CPU when no one else needs it, but release the CPU to quickly
service other users when needed. To enable this option, edit the Default.tam
file and add the following line.
/WorkPriorityTicks
20
Note that this will not
necessarily reduce CPU usage, but it can improve interactive response for other
users.
The CPU spikes briefly after each key press
If the CPU spikes briefly
with each key press then this can be normal. Tame provides a brief boost when
a key is pressed, and if that key causes any DOS activity, the boost is further
increased. Normally, the key boost is too brief to show up in performance
monitor, so if a spike is seen, it is likely due to DOS activity.
A new Key Spike Optimization
feature is available in Tame release 4.5. This feature should reduce the CPU
spike to minimal levels during most keyboard typing situations,
If you want to further
reduce the spike, set this option:
/BoostKeyRead 0
Afterwards, test the
application to make sure that it does not run more slowly. If the system
appears to hang, then Tame probably began a task switch while the application
was still working. Press the right shift key and Tame will provide a key boost
to continue processing, and adjust the parameters upward until the hang
disappears.
Compatibility Problems
"Incorrect DOS version" error when using
Tame
The incorrect DOS version
message can happen if the environment is full. Try adding this to the
autoexec.NT:
Set
comspec=c:\windows\system32\command.com
Of course, it can also
happen if a file from a different version of NT or DOS is present.
Some characters do not display properly
Many problems related to
character display may be solved by switching between Raster and Truetype fonts
for the console.
If changing the font does
not correct the situation, there re some Tame options that may help. Edit
the Default.tam file and try the following, one at a time, to see what the
problem may be. Note that each of these is contained in the file, and the
existing entry may be uncommented if desired.
/FoxVideo off
/WatchVideo off
/KeyResponseOptimize
off
/KeySpikeOptimize
off
Problems related to the NumLock key or the numeric
keypad
By default, Tame does toggle
numlock in order to correct a problem with Windows handling of the numlock.
This feature may be disabled by setting a registry value.
Registry values can be
effective system-wide, or only for specific users. The key named
HKLM\Software\TameDOS contains system wide values, and HKCU\Software\TameDOS
contains user overrides.
To disable the numlock
toggle, select the user key or the system key, create a REG_DWORD value named
ResetNumlock and set it to 0.
General Questions
Should Tame be installed on the workstation?
Tame may be used on whatever
machine is used to run DOS applications.
If the workstation is acting
as a terminal client, and the application runs on the server, Tame should be
installed on the server. This ensures that the maximum number of users my run
on that server without an necessary performance problems.
However, if the workstation
is used to run DOS applications Tame should be installed on the workstation.
Without Tame, other applications run slowly while a DOS program is open.
Performance may be restored without Tame by configuring the program to not run
in the background, but there are undesirable side effects to this approach.
For example, the user may switch to a different application while waiting for a
process to complete. What if a record happens to be locked at the time of the
switch? With the application set to not run in the background, that record
will remain locked until the user switches back, and other users may be
impacted. With Tame, you may allow the application to run in the background.
The application will continue processing in the background, and still release
the CPU when it is done processing.
How can I change default Tame settings?
Default settings stored in
the default.tam file, which is located in the Settings folder inside the Tame
folder. The easiest way to edit the file is to use the shortcut that is
provided in the start menu:
Start, Tame, Admin
Tools, Edit Default.Tam
Comments are included in the
file to provide help with common settings. Inactive alternatives are also
present in the file, and they may be easily activated by removing the comment
prefix from the line. For example, The following line is in the file::
;*
/ConWatchString "Please Wait..."
To activate, remove the
comment prefix, and correct the setting (in this case, a text string) if
necessary.
/ConWatchString
"Please feel free to get a cup of coffee - this may be a while..."
What access rights are needed to use Tame?
Users need Read rights to
the Tame folder, and may need read/write to the Tame Logs folder.
If you have logging enabled
for some or all users, those users will need read/write access to the log
folder. The default is "Program Files\Tame\Logfiles", so Tame will
not be able to log activities of non-administrative users unless either the
permissions are changed, or Tame is directed to use a different folder.
To change the log folder,
change the registry value named HKLM\Software\TameDOS\LogPath to specify the
desired location .
What does the setup program do when Tame is
installed?
Setup does the following:
(1) Copy the files to
C:\Program Files\Tame
(2) update the autoexec.nt
file so that Tame is loaded whenever a DOS program is run. This is done with
the following command line:
TameView /xa
(3) Adds shortcuts to the
start menu for diagnostics and administration
Special Applications
How to specify Tame settings for one application
Tame settings may be
customized for a specific application by creating a settings file and either
place it is the same folder as the application, or place it in the Tame folder
with a file named based on the application. To simplify editing, the
default.tam file should be used as a template when creating a new settings
file.
For an application
C:\MYFOLDER\MYAPP.EXE, Tame searches for settings in the following order:
C:\MYFOLDER\MYAPP.EXE.TAM
C:\MYFOLDER\MYAPP.TAM
C:\Program
Files\Tame\Settings\MYAPP.EXE.TAM
C:\Program
Files\Tame\Settings\MYAPP.TAM
C:\Program
Files\Tame\DefaultSettings\MYAPP.EXE.TAM
C:\Program
Files\Tame\DefaultSettings\MYAPP.TAM
C:\MYFOLDER\DEFAULT.TAM
C:\Program
Files\Tame\Settings\DEFAULT.TAM
C:\Program
Files\Tame\DefaultSettings\DEFAULT.TAM
How to enable Tame for 16 bit Windows apps
Many Windows applications
were designed for multi-tasking and do not require Tame. Tame is normally
disabled for 16 bit Windows applications, but it may be enabled to help with
troublesome windows applications if necessary. Note that Tame can reduce CPU
used by Windows applications , but the results are not as dramatic as with DOS
applications. In some cases, the responsiveness of the application may be
reduced, or the application may not operate correctly.
To enable the use of Tame
for Windows applications, copy the Settings\Default.tam file to a file named
KRNL386.EXE.TAM in that same folder. This will override the default settings
for the KRNL386.EXE program which is used to run Windows applications. .
Note that the new settings
may not take effect until all users log off or the system is re-booted because
KRNL386.exe process remains in memory.
How to disable Tame for one application
Tame settings may be
customized for a specific application by creating a settings file.
By default, Tame is disabled
for KRNL386.EXE by including a file named KRNL386.EXE.TAM in the
Tame\DefaultSettings folder, and placing appropriate options in that file. To
disable Tame for another application, copy the KRNL386.EXE.TAM file to a new file
with a base name that matches the application.
For example, to disable Tame
for an application named UNTAMED.EXE, Copy KRNL386.EXE.TAM to
UNTAMED.EXE.TAM. The new .TAM file may be saved into the Tame\Settings
folder, or if you prefer, save it to the same folder that contains UNTAMED.EXE.
WordPerfect recommendation
If macros run slowly in Word
Perfect, edit the default.tam file and specify the following option:
/wxvideo
All available memory is used with FoxPro
applications
By default, a FoxPro app
will use all the memory it can get. Memory utilization may be limited by
changing the FoxPro config file. Change or add a MEMLIMIT= statement.
Advanced Diagnostics
How to monitor DOS application statistics
The Tame Start Menu includes
diagnostic and monitoring selections that allow monitoring selected or all
applications. See information on the TameView program for additional options
that are not provided in the menus.
How to produce a trace file for TameDOS analysis
A trace file and/or snapshot
image file may be requested in order to resolve issues, or answer technical
questions about use of Tame with your application.
To produce a diagnostic
trace or image file, select the following start menu items
Start
Programs
Tame
Release 4.5
Diagnostics
Trace
Recent Process
Run the app and make sure it
is being identified in the trace window.
To produce a trace, bring
the application to the point where the trace should begin. Then switch to the
trace window and press "T" to start the trace.
Work in the application to
exhibit the problem.
To end the trace, press
"T" again or exit the app. Look in the trace path for the new file
named TameDosTrace.<app>.<pid>.tdt, where <app> is the name
of the program and <pid> is the process id. The default trace
path is C:\Tame\LogFiles. Compress the trace file using WinZip or another
compression tool, and send it to trace@tamedos.com
.
To produce a snapshot image,
use the same menu selection, but press 'I' instead of 'T". Both files
may be produced if desired.
How to produce a trace that includes program startup
In order to trace an entire
run, following these steps.
1. Set the
following registry value.
HKCU\SOFTWARE\TameDOS\DosTraceEnable
= T
Note that the HKCU registry
key is normally used so that you will not inadvertently start a trace for
another user. If the intent is to trace other users, the HKLM key can be used
instead.
2. Run the
application
3. Use the
application as normal
4. Exit the
application
5. Look in
the trace path for the new file. If the trace file is not huge (say
less than 20 megabytes), compress it using WinZip or another compression tool,
and send it to Tame support.
Registration and License Issues
The demo version verses the licensed version of Tame
The demo version of Tame is
fully functional. The only changes that the registered version provide are as
follows:
1. The console title is
updated for the demo in order to remind you that this is a demo - the
registered version does not alter the console title by default.
2. After a long program run,
the demo displays a screen to boast about how much processing time it has saved
during that run. The registered version does not display that screen.
3. The demo is only valid
for 30 days - the registered version is perpetual.
How to verify Tame is loaded using the console title
The registration reminder is
not added to the title after Tame has been licensed. If you prefer an altered
title, perhaps to confirm whether Tame is (or is not) loaded in a process, set
the following registry value.
HKLM\Software\TameDOS\ConsoleTitle
The value should be the text
of the title that you want.
This may contain environment
variable references to be expanded at run time. The following environment
values are set by Tame so that you may include them in the title.
TameVersion
TameFolder
TameProcessId
TameDosAppName
TameDosAppFolder
TameDosAppExt
TameDosAppPath
TameDosAppArgs
For example, the following
title may be used:
"Running
%TameDosAppName% (Tame v%TameVersion% in use)"