Tame® Release 5.0

 

Administrative User Guide

and

Technical Reference

 

Microsoft Windows NT, Windows XP

Windows 2000® and Windows 2003® Server Based Systems

 

Installation.. 2

Customization.. 3

Registry reference. 15

Multi-User Systems. 18

Diagnostics. 21

TameView.. 22

Contact Information.. 27

 

Installation

To install Tame on a Windows system, run the setup program and answer the questions.  The defaults should be chosen in most cases.   Setup will copy Tame system files onto the system, and update the system autoexec.nt file so that Tame is loaded with each DOS application.

 

Customization

Specifying Options

Settings may be defined for any or all of the following:

·         System wide settings for global preferences and restrictions

·         Shortcut Settings allows different settings for different circumstances

·         Application settings to define requirements and tuning parameters for the app

·         User Preferences that apply to all applications

·         User Preferences for the shortcut may be saved when options are selected by the user.

Application Tuning

Settings may be applied to a specific application.  In this case, a settings file for the application may be created.

Application settings are specified in a file with the same name as the program file.  For example, to define settings for MYAPP.EXE, use a file named MYAPP.EXE.TAM.    This file may be in the same folder as the executable, or in the Tame\Settings folder.

Settings for some applications are supplied in the Tame\Settings\Samples folder.  If one of these applications is launched, its settings are automatically copied to the Tame\Settings folder.   

If settings for the application are not supplied, Tame monitors the application in order to determine the appropriate performance settings.   This “auto-adapt” feature allows Tame to provide good results with no tuning in most cases, but it is less efficient than would be possible if the adapted settings were known up front.    

For optimal performance, let Tame adapt to the application, and then save the performance settings using the system menu of the Tame console.   In that menu, select to edit the application settings.  Tame will create the file present it for review.    Common settings for this type of application are described, and sample values are listed commented lines.  In addition, see examples in the Tame\DragDrop folder.   Those examples are in files that may be changed, and dropped on a tame console in order to assess the affect of that option before adding it to a more permanent file.

System Preferences

Tame includes several options that are not necessary for application tuning, and values are specific to an individual application.    Examples include options that allow control of user interface functions, diagnostics and system access.  Options that should apply to all or most DOS applications may be specified in a file named _ProcessStartup.init.tam in the Tame\Settings folder.  The file supplied with Tame contains preference settings, each with a brief description and default value.   The file also references a user settings file, allowing user-specific settings to be supplied.   If user settings are not desired, remove the reference to user settings.

User Preferences

User preferences may be specified in a file named UserOptions.tam in the “My Documents\Tame” folder.

CPU Tuning Options

The following options may be used to tune Tame for best results with each application.  These options may be specified in a settings file.  

AppQueue

 

Option

Description

Boost

This parameter represents the application response time (in microseconds) that indicates it is sufficiently busy to warrant a boost.  The default is 1000 microseconds, or one millisecond.

Boost1

This parameter represents the application response time (in microseconds) that indicates it is sufficiently busy to warrant a boost.  The default is 1000 microseconds, or one millisecond.

Idle

This parameter represents the application response time (in microseconds) that indicates it is idle.

WatchIdle

This parameter enables the AppQ idle detection

WatchWork

This parameter enables the AppQ work detection

Work

This parameter represents the application response time (in microseconds) that indicates it is busy, but not enough to obtain a boost.  The default is 500 microseconds.

TRACK

Enable QTime measurement even if no options are enabled that require it.

AssumeIdleWhile

 

Option

Description

MouseCursorVisible

Set to yes if the app supports a mouse and always shows the mouse cursor while it is waiting for input.

 

AssumeWorkingWhile

 

Option

Description

MouseCursorHidden

Set to yes if the app supports a mouse and always hides the mouse cursor while it is busy.

 

AutoAdapt

Tame can automatically adapt to the application, and adjust settings accordingly.   In most cases, the application will behave similarly with all screens, so the adaptive function of Tame is needed only the first time the app is run.   During the first run, it is recommended to save the settings.  To do this, select the System Menu, Tame item, and then select “Keep Current Performance Settings”.   

 

Option

Description

 

Enable or disable the automatic adaptive settings

HighPoll

Enable detection of High Poll rate apps

LowPoll

Enable detection of Low Poll rate apps

MidPoll

Enable detection of Normal Poll rate apps

NonPoll

Enable detection of apps that do not poll

NonPollFactor

 

NonPollMinCpu

 

SinglePoll

Enable detection of apps that poll one time per DOS tick

WorkQueue

 

Boost

Option

Description

Cancel

This sets a poll rate threshold that will cancel the boost.  By default, this is disabled so that the boost will not be cancelled due to a high poll rate.

Dos

Sets the number of ticks to boost after a DOS activity (e.g. Disk I/O)

Irq

Sets the number of ticks to boost after an IRQ (e.g. Serial port activity)

KeyPress

Sets the number of ticks to boost after a key is pressed

KeyRead

Sets the number of ticks to boost after a key is read

Minor

Sets the number of ticks to boost after minor system activity

Video

Sets the number of ticks to boost after video activity

Console

Option

Description

Interval

Console check time in milliseconds

Boost

screen changes that are boostable work

 

ConsoleWatch

If the app displays a string while working for a long time, Tame can look for that string and allow the app to process while the string is displayed.   Up to four watch strings may be defined.

 

Option

Description

Column

Optionally specify the column that the watch string must be found in, where 0 is the leftmost column. When specifying the column, the row must also be specified, and both row and column must precede the watch string they apply to.

Row

Optionally specify the row that the watch string must be found in, where 0 is the top row.  When specifying the row, the column must also be specified, and both row and column must precede the watch string they apply to.

String

Set the text to look for

CpuIdle

This option can help with some database or network bound apps that consume very little CPU while accessing the network.   If the Tame finds that the app appears to be idle, but it happens that the app is consuming less than this amount of CPU then Tame will not force a time slice yield.

 

Option

Description

Break

 

Percent

 

Time

This is the minimum length of Time that Tame will use to sample CPU usage after it appears that the app is idle.  When Tame determines that the app may be idle, CPU usage is monitored until the app is seen to meet or exceed the Percent threshold, or until it begins doing other work.  NOTE: This parameter is specified in milliseconds, and defaults to 55 (one tick).

DOS_Idle

Option

Description

Poll

Enable or disable interpreting the OS idle signal to mean that the application is idle.

Reset

Sets the poll threshold that should be used when the application issues the DOS idle signal.   In some cases, it makes sense to reduce the threshold when the application reports that it is idle. 

FileRedirect

Tame allows a limited form of file name redirection.  This may help if an application has hard-coded paths that are not multi-user friendly. 

If the application has one of these problems, file redirection may help.

·         Create temp files in the program folder

·         Create user data files such as documents or settings are in a specific folder

·         Reference paths that are not on the local machine

 

Option

Description

TempFile

This will open a temp file that is unique for each process.  A folder matching the file name is created in the temp folder, and a unique instance of that file is created for each process.

 

One or more file names may be listed separated by a semi-colon.

FileMatch   

All file open or create operations matching files in this list will be redirected.

 

One or more file names may be listed separated by a semi-colon. 

FileLocation

Location where matched files are located

FolderMatch   

Only one folder may be specified.  All file open or create operations matching this string at the beginning of the path will be redirected.

FolderLocation

Location where matched files are located

KeyOptimize

Option

Description

Response

Specify how aggressive to be in providing fast key response.  Set from 0-9.

Spike

Specify how aggressive to be in removing key spikes.  Set from 0-9.

SpikeTimeSlice

Set set the time slice for key spike optimization, specified in milliseconds.

Lock

Option

Description

Retry

If a file lock request fails because another user holds the lock, this option causes Tame to automatically retry up to 8 times.  This option can be useful if the application does not check the status and assumes that the lock was obtained.   In most other cases, /LockYieldRetry is the preferred option.

YieldAll

If a file lock request fails because another user holds the lock, this option causes Tame to yield the time slice before presenting the application with the bad news.  This can prevent the application from burning CPU while waiting for the lock.  However, if the application is just probing to see if the lock is available, it may cause an unnecessary delay.  For that reason, /LockYieldRetry is generally the preferred option.

YieldRetry

If a file lock request fails because another user holds the lock, this option causes Tame watches to see if the application retries.  If the application retries, and that lock attempt fails, Tame will yield the time slice before presenting the application with the bad news.  This can prevent the application from burning CPU while waiting for the lock.

NonPoll

Enable idle detection whenever the application is not working.  This can be necessary if the application does not poll while idle

Option

Description

Idle

. off/on

TicksBegin

 

TicksRepeat

 

SleepTick

Sleep after idle this many ticks

StackRange

 

Poll

Option

Description

IdleBegin

This sets the primary threshold in polls per tick for determining that an application is idle.

Idle2

This sets the secondary threshold in polls per tick for determining that an application is idle.  This parameter is used after a task switch in order to quickly determine that the application is still idle.

KeyReady

This indicates that Tame should watch for keyboard polls.

KeyStatus

This indicates that Tame should watch for keyboard status polls.

PSP

This indicates that Tame should watch for PSP checks.

Single

This indicates the application polls one time per tick.  This is common with Clipper applications and some other database applications.

Time

This indicates that Tame should watch for time polls, which are occasionally more reliable than keyboard polls for determining if an application is idle.  Note that this option is rarely needed.

SpoolPrintout

This causes Tame to expedite spooling to the printer in some cases where Windows normally delays 15 seconds or more to begin printing.  When this option is used, the /Parallel option is also required

Option

Description

 

Off/on

Force

Force spooling, even if the app uses DOS to write to the printer

SpoolFile

Option

Description

CloseCommand

Command to run when the file is closed.  The name of the temp file is appended to the command line.

 

The command line may be prefixed with [options].

 

[H] will run in a hidden window, [N] will run minimized, [W] will wait for the command to complete, and [D] will delete the file after the command completes.

Ext

File extension of the temp file

Name

Name of the file to intercept

TimeSlice

Option

Description

Sleep

This sets the amount of time In milliseconds that the deep sleep should yield to other tasks. 

Yield

This sets the amount of time (in milliseconds) of the time slice that is yielded.  The default is 15 milliseconds.

 

Watch

Option

Description

Parallel

Enable detection of parallel port (printer) activity, and provide a boost if detected.  This is automatically enabled if the /SpoolPrintout option is specified.

Serial

Enable detection of parallel port activity, and provide a boost if detected.

XPollKeyStatus

These parameters instruct Tame to recognize a temporary high rate of key polls, which an app occasionally does.    Tame can recognize and deal with this case, even while the app is boosted by Tame.

Option

Description

 

 

Exclusive

Recognize and deal with Xpoll only if the app is doing nothing else except time polls.

InBoost  

Recognize and deal with Xpoll while the app is boosted by Tame.

Max

Threshold – a poll rate above this number triggers Xpoll processing.

Slice

The amount of time to yield on Xpoll, and is specified in milliseconds.   This may generally be a small number of milliseconds. 

XPollTime 

These parameters instruct Tame to recognize a temporary high rate of time polls, which an app occasionally needs to do when waiting for s specific interval to pass.  Tame can recognize and deal with this case, even while the app is boosted by Tame.

Option

Description

 

off/on

Boost  

Recognize and deal with Xpoll while the app is boosted by Tame.

Exclusive

Recognize and deal with Xpoll only if the app is doing nothing else except time polls.

Max

Threshold – a poll rate above this number triggers Xpoll processing.

Slice

The amount of time to yield on Xpoll, and is specified in milliseconds.   This may generally be a small number of milliseconds. 

Watch

Option

Description

Btrieve

Watch for Btrieve and compatible SQL access, and boost while SQL is being processed.

Console

Enable or disable watching for console activity, and break from a yield prematurely when console activity is detected.

System

Watch for Win32 I/O and page faults, and boost when they occur.

ExtraVideo

When this is enabled, Tame will not ignore minor video activity such as cursor movement

MemAlloc

When this is enabled, Tame will monitor memory allocations to determine if the application is working.

 

 

 

Compatibility, Features and I/O tuning Options

The following options are provided to improve the compatibility and functionality of some applications when run in the Windows environment. Some may help performance, but that is not the primary purpose.

Shadow

Option

Description

Refresh

 

ForceWork

 

WorkInii

 

WorkActive

 

MinimumRefresh

 

 

System

Option

Description

BlockCursor

 

CloseMessageText

Set the text the user sees in order to verify closing the console.  This is currency used only when closing the Tame console window.

CloseMessageTitle

Set the title for prompt used to verify closing the console.  This is currency used only when closing the Tame console window.

CodePage

Set the code page the application was designed to use.  This is helpful with applications using special characters / line drawing of a different code page than that of the system.

DeleteClose

Remove “Close” as an option of the console

EnableClose

Allow the user to close the console – set to “off” to gray out the close option

FastClose

Do not prompt before closing the console

MouseInput

Enable or disable mouse input for the DOS app 

SingleInstance

Limit the application to a single instance system-wide.

SynchronizeKeyread

This option can solve race conditions for some applications that occasionally lock up during keyboard access.    This option is enabled by default.

ProcessorMask

Set the processor mask for the VDM thread.  This does not limit where the NTVDM worker threads or the TameConsole user interface thread can run.

WorkPriorityTicks

Reduce the performance impact that a long running process will have on other users of the system.  The running process will be throttled after the specified number of ticks.  Throttle may be either reduced priority, or if multiple CPUs are available, the process may be limited to a subset of CPUs while it is working.

WorkProcessorMask

Set the processor mask for the VDM thread while the app is working

 

Other

Option

Description

FixDirectDisk

This option may be useful in order to run an application that attempts to perform direct disk I/O.  Windows will normally pop up a dialog box and force the user to abort the application or continue.   When this option is used, the disk request is intercepted by Tame, a failure condition is returned to the application, and no dialog box is presented to the user. 

ForceTextMode

Do not allow the application to enter graphics mode.  Note that this is off by default, and some applications may become unstable if they attempt to enter graphics mode and cannot deal with this attempt failing.

ForceTimerHook

This allows Tame to always use the DOS timer, and is enabled by default for efficiency.  Set to OFF to allow Tame to use the timer only when necessary.

ForceWin32Time

This option allows time inquiries made from a DOS app to use the system time, and not the DOS timer. 

FoxVideo

This option can speed screen repaints for some applications that were written using Foxpro. 

HoldDate

Do not allow date changes made in the DOS session to be passed on to the rest of the system, and do not update the date of this application to match the system date.  This allows the application to change the current date for its internal processing purposes independently of the current date as seen by other applications.

InitialTextMode

Do not allow the application to enter graphics mode during its initialization stage.  This option can prevent some applications from forcing full screen mode if they sim0y pop in and out of graphics mode during initialization.  This option is off by default, and some applications may become unstable if they attempt to enter graphics mode and cannot deal with this attempt failing.

LoadLimitCpu

Set this on to limit CPU usage during program loading.

LoadSingleThead

Set this on to single thread application loads.  While one application begins loading, startup of other applications will be delayed until the first application has become idle.

UseTempFile

This option will redirect access to selected local files to similarly named files in the temp folder.    Multiple file names may be specified, separated by a semi-colon.   Note that drive letters and folders are not allowed – just file names. 

 

Some applications may create temporary files (or session files) in the program folder.  This can be problematic on a multi-user system.  For example, users need write permission on the program folder, and in some cases, multiple users may not run the program simultaneously.   

UseWin32Time

This option forces time inquiries made from a DOS app to use the system time, and not the DOS timer.  This option is enabled by default, but will automatically become disabled if the application sets the time of day using a DOS request.

WindowsAware

 

WorkPriorityTicks

This option can improve response time for interactive users by lowering the priority of a long running process.  This parameter sets the number of ticks an app working before it runs at a reduced priority.   Note that the process may still show as close to 100% CPU usage, but you will find that user response is nearly as good as if the process is not running.

TameConsole

The Tame Console allows running DOS applications without the annoyances and limitations of the native console window.   Some of the benefits of the Tame console are:

·         The window may be resized or maximized, and contents will expand or contract accordingly to fill the screen.   When resizing, Tame can vary the text size, or with some applications, adjust the number of rows and columns to fill the screen.

·         Ultra fast key repeat with no overrun when the key is released. The repeat rate can vary depending on the type of key.  By default, repeat is high for cursor movement, slightly lower for text insertion and very slow for function keys.

·         Supports any number of rows and columns, as long as the application can work in that configuration.

·         Multiple fonts may be displayed on the screen.  Fonts may be displayed based on the color of screen text. This allows a more WSYWYG look with DOS word processors, and can enhance the look of form entry

·         System menu provides access to Tame features

 

Option

Description

Cols

Change the size of the window

CursorBlink

Enable /disable cursor blink

CursorCapsLock

Change cursor shape to indicate caps lock

CursorHide

Hide the text cursor while the app is busy.

CursorInsert

Change cursor shape to indicate insert mode

CursorMax

Use the maximum size cursor.

CursorHeight

Set the height of the text cursor.  The value may be specified as percent of the character cell size so that it will change size with the text, or if negative, specifies the number of pixels high the cursor should be.

CursorWidth

Set the width of the text cursor.  The value may be specified as percent of the character cell size so that it will change size with the text, or if negative, specifies the number of pixels wide the cursor should be.

CursorLeft

Set the position of the lower left corner of the text cursor.  The value is specified as percent of the character cell size so that it will change size with the text.

CursorBottom

Set the position of the lower left corner.  The value is specified as percent of the character cell size so that it will change size with the text.

DosMouseEnable

Enable or disable use of the mouse by the DOS app.  This option may be toggled using the context menu;

DosMouseFilter

Define which mouse messages are sent to the app, and which may be processed by Tame.  See below for details.

DosMouseFix

Tame can emulate some requests that not provided in the mouse.com driver.

DropFileContents

Specify this option to allow drag/drop to supply the contents of the file as input to the DOS app.

DropLongPath

When dropping one or more files, Tame will normally paste the full path using short file names that are compatible with DOS.  This option allows pasting the long path names instead.

DropTameSettings 

Allows tame settings to be applied when the file is dropped on the tame console.

KeyboardCompat

Set to 9 if the keyboard does not respond.   This will disable accelerated keyboard options such as ultra fast key repeat and paste, and use normal key repeat and paste supplied with Windows.

MouseMark

If set to “off”, the mouse will not mark console text unless requested using the context menu.

MouseWheelRate

When set, Ctrl-Wheel will start scrolling continuously.   Use the wheel to slow or speed the scroll.

MouseWheelRows

When set, the wheel will send cursor up and down keystrokes to the app

PasteCompatible

Use an alternate paste scheme that is compatible with more apps.

ResetCapsLock

Caps lock may be cancelled when shift is pressed

Rows

Change the size of the window

StartInsertMode

Set to assumed initial insert mode (off/on)

StatusBar

 

TextHeight

Specify height of each text cell.  If the width is not specified, this will be the text height in pts.   If the width is specified, both height and width are in pixels. 

TextWidth

 

WindowsKeys

Set as #0000FFFF  to disable Ctrl-V, Ctrl-C and Alt-F4

MouseFilter details

Each hex digit contains 4 bits representing the 4 toggle key states (none, shift, alt, ctrl).  If the bit is set, the corresponding mouse action is passed through to the DOS application.

Each digit represents the type of mouse event for that digit.  For a value if #12345678, the digits represent:

 1 - Mouse move events while the Right button is pressed

 2 - Mouse press and release of the Right button

 3 - Mouse move events while the Center button is pressed

 4 - Mouse press and release of the Center button

 5 - Mouse move events while the Left button is pressed

 6 - Mouse press and release of the Leftbutton

 7 - Mouse move events while no button is pressed

 8 - Mouse wheel events

Some example values:

#00000000    Disable the mouse - may not be toggled with the context menu

#77777700    Press CTRL to use the mouse with Tame

#22222200    Press shift for the app to see the mouse

#FFFFFF00  Allow the app to process all mouse messages except movements

 

Prefix the value with + or - to use the existing setting with a specific modification:

+#000000FF Send mouse movements to the app
-#000000FF Do not send mouse movements to the app
-#FF000000  Do not send right click messages to the app
-#0000000F Do not send mouse wheel messages to the app

 

AttributeDisplay

This option is used to configure how to display text. 

Each foreground/background color combination usually has a specific meaning within the application.   

For example, attribute #3F may be used as a text entry field.   Tame can display this data using a different font, or can change the color of the field to one that is easier to work with.  A more advanced example is with a word processor, where colors are used to indicate italics, bold, underline, etc…  Tame allows on-screen view to show the text with italics, bold, etc.

 

Option

Description

Match

Screen attributes to match.  Multiple Match= values may be used if several will map to the same display style.

Attribute

Use the colors of a different attribute

Font

Font to use for display

ForegroundColor

Set the foreground color – specify Red, Green and Blue components in the form of #RRGGBB (e.g. #4080FF)

BackgroundColor

Set the background color – specify Red, Green and Blue components in the form of #RRGGBB (e.g. #4080FF)

 

FontDefine

Fonts for screen display may be defined.

The following fonts are defined by default:  Default, Data, Bold, Italics, Underline, Strikeout, Subscript, Superscript, Bold+Underline

 

Option

Description

ID

Name for the font – if it matches an existing font name, that font will be replaced.

Face

Text face – the default is to use the face of the font named “Default”

Bold

On/off – whether the font is to be bold

Italics

On/off – whether the font is to be italic

Strikeout

On/off – whether the font is to be strikeout

Subscript

On/off – whether the font is to be subscript

Superscript

On/off – whether the font is to be superscript

Underline

On/off – whether the font is to be underlined

 

Registry reference

Registry reference

The following registry values may be specified in either the user registry key or the machine registry key (HKCU\Software\Tame or HKLM\Software\Tame). 

These values will be read only when the DOS box (NTVDM process) is created.  Changes to these values are not applied to NTVDM processes that are already running.

As an alternative to the registry, the values may be in a Tame.ini file.  See the sample Tame.ini file in the Settings\Samples folder.

 

Value Name

Description

ConsoleTitle

Set the title text of the console window.  This can provide immediate confirmation whether Tame is (or is not) loaded in a process.  The value may contain environment variable references that are expanded at run time.  The following environment values are set by Tame for inclusion into the title: TameVersion, TameSettings, TameDosAppName, TameDosAppPath, TameDosAppArgs.

EnableTameConsole

Set to F if you do not wish to enable the Tame console by default

EnableUserInterface

Set to F if you do not want Tame to pop up error messages

InhibitMouse

This option can be useful for applications that do not support use of a mouse.   This option will reduce CPU usage by preventing mouse actions from interrupting the process. 

LogFolder

This specifies the name of a folder where log files should be placed.  Note that if log files are used, this folder must be accessible with read and write privileges by all users.

The path may contain environment variable references that are expanded at run time.

LogEnable

This may be used to enable or disable logging to a file.  The default is enabled if a LogFile is set, so this value may be used to disable the use of the log without deleting the file name from the registry. 

ProcessorMask

Set the CPU affinity that applies to the entire process.  This is different from the corresponding value in a settings file.  The Settings file version applies to the VDM thread only, and does not limit where the NTVDM worker threads or the TameConsole user interface thread can run.

RunLogFile

This is the path to a file where the run log is to be written.   The path may contain environment variable references that are expanded at run time.

LogFile

If this entry is set, a brief trace of Tame activity is written to the file. 

Note that this is not the same file as the DOS trace log.  The trace log is much more verbose, and requires post processing.

TameFolder

Set the Tame folder

TraceFileSize

Set the size of the diagnostic trace file.  If the size is -1 then the file is written with no size limit.  The size may end with “M” to specify megabytes (e.g. 30M).

TraceStartup

Set to T if application startup is to be traced.

TraceSystemEnable

Create a trace file common to all users and processes.  The file contains less details than a diagnostic trace file.

TraceSystemSize

Set the size of the system trace file.  The size may end with “M” to specify megabytes (e.g. 50M).

TraceVectors

Set based on request from Tame technical support.

UpdatePif

Set to F if you do not want Tame to update te PIF to disable Windows idle detection

 

 

 

Multi-User Systems

Application has problems when run by more that one person at a time. 

Many DOS applications run problem free on a single user system but have problems on a multi-user system.  This can happen even if that single user system and multi-user system are otherwise identical.   Here are some basic reasons why that may happen.

 

·         Files are accessed in the application folder, and shared access is not an possible

·         Users need write access to the application folder, compromising security.

·         The application uses hardcode path names that must be present in order for it t run

·         The application requires the machine name to be unique 

·         Sequential output to the printer, file or other device requires serialization or other special processing

 

Tame provides solutions for these problems, and many others. 

 

Application creates files in the program folder

This basic issue can cause several problems unless the app was designed to work that way. 

 

Tame can intercept file access requests, and divert each files to the places that make sense on a multi-user system.  For example:

·         Temporary files may be created in the user Temp folder

·         Configuration files and other user-specific files may be kept a non-shared location such as "My Documents".

 

Temp file redirect - specify multiple files separated by semi-colon

/FileRedirect TempFiles  = "TEMP.DAT;{TEMP}"

 

File redirection

 

/FileRedirect

      FileMatch="C:\MyApp\MyApp.cfg" 

      FolderLocation="%ProfilePath%\My Documents\MyApp\Config"

 

Folder redirect

Tame can match a partial name, if the folder name is not always the same.

Use a trailing backslash to select only the folder that exactly matches.

 

 /FileRedirect

FolderMatch="C:\MyApp\Config\" 

     FolderLocation="%ProfilePath%\My Documents\MyApp\Config\"

 

The application uses hard coded paths

 

Without Tame, files are stored according to the hard coded drive letters and folders, and not based on standards or preferences of the  system.   When files are in the "wrong" place, it can complicates backup, maintenance and other functions that are tailored to a standard configuration.  If hard coded paths are to a server, faster local access on this multi-user system could be more efficient- but may not be possible.

 

Tame can intercept file access by the application, and divert files to places that make sense this system.  Individual files or entire folder trees may be mapped to another location.

 

Simple folder redirect

/FileRedirect

FolderMatch="C:\Data\" 

FolderLocation="D:\Thisapp\Data\"

 

Access data on a server by UNC

 

  /FileRedirect

FolderMatch="C:\Data\"

FolderLocation="\\servername\share\folder\"

App has hardcoded UNC, access local data instead

 

  /FileRedirect

FolderMatch="\\servername\share\folder\" 

FolderLocation="D:\Thisapp\Data\"

Spooled Files

When sequential output to the printer, file or other device requires custom processing when the data becomes available, the Tame spool option may be used.  This command will create a temporary file to collect data, and issue the specified command to do custom processing when the data becomes available.

  /SpoolFile Name="PRN"

  CloseCmd=  '[N]"%TameFolder%\EventProcs\On_SpoolFileClosed.bat"'

For the command line [] at the beginning may contain execution options as follows:

[V] Visible console

[N] Minimized

[H] Hidden console window

[.] Create no console window

[W] Wait for the command to finish before allowing the app continues.

 

NETBIOS names

If an application tracks sessions by the NETBIOS identity, it may fail on a multi-user system because the machine name is the same for all users.

Tame can intercept name queries and provide a name meeting your specifications.  The name may be based on user ID, session ID,  process ID, or any other value that is in the environment.

 

/System NetBiosName = "U%UserName%"    ; based on the user name

 

Add process ID and the user may run muultiple instances.

 

 /System NetBiosName = "U%UserName%_%TameProcessId%"

 

This terminal session and process is shorter than above and still allows multiple instances for this terminal session.

 

 /System NetBiosName = "S%SessionName%_%TameProcessId%"

 

Troubleshooting and Diagnostics

Application tuning and diagnostic steps frequently depend on the way the application interfaces with the system. Tame version 5 classifies applications based on the poling mode of the application, and displays the mode on the status bar of the Tame console.  .

Note: You should allow Tame to classify the polling mode and save initial settings before other troubleshooting steps are taken. 

The first time the application is run, Tame keeps track of how the app works, and makes minor adjustments as necessary.  These adjustments are tentative, and need to be committed.  After running the application for a few minutes, note CPU usage while idle.  If CPU is low, then it is time to save the settings.  Use the system menu to edit application settings.  Tame will use a template with some values set as needed for your application, and additional comments for things you may want to consider.  It is recommended that nothing be changes at first – return to the app and you may find that the settings that Tame computed are now optimal.

If additional steps are needed, see comments in the file.  Additional settings are available in a format that facilitates rapid application and test.  See the Tame\DragDrop\Samples folder, and copy files to the DragDrop folder for testing.   Edit the file and to test, drag it overt the Tame window and drop..

If you need additional help, TameDos support can look at the situation and recommend a course of action.  For best results, prepare a brief description of the problem and use the Troubleshooting menu to save a trace file that covers the problem.  Send a compressed copy of the trace along with the description to support@tamedos.com.

Advanced Troubleshooting

The Tame version 5 trace is extremely efficient, and can track details of many processes with little overhead.  This can be helpful fir an app with intermittent problems because the trace may be running all the time – and allow review recent activity after the problem starts.  The trace should show what lead up to the problem, and what happened after the problem started.   

If the application crashes, Tame can be configured to automatically create a dump file that includes the entire state of the process at the moment of the crash.

 

Version 5 also has a "system trace", that includes keystrokes, screens, file operations, and Tame operations for all processes in the order they occurred.  This will help if the problem is related to activities of multiple processes.

Registry Values

The values may be set in HKCU\Software\TameDOS  if you want them to affect only one user.

Value Name

Description

TraceStartup

Tame can start a trace whenever a DOS session starts.  To enable, add this value to the TameDOS registry key and set it to T

EnableCrashDump

Tame will also produce a dump file when an application crashes if this value is added to the TameDOS registry key and set to T

TraceFileSize

Set the size of the diagnostic trace file.  If the size is -1 then the file is written with no size limit.  The size may end with “M” to specify megabytes (e.g. 30M).

TraceSystemEnable

Create a trace file common to all users and processes.  The file contains less details than a diagnostic trace file.

TraceSystemSize

Set the size of the system trace file.  The size may end with “M” to specify megabytes (e.g. 50M).

 

 

TameView

TameView is a separate utility that simplifies administration and diagnostics of DOS processes.   The following functions are provided:

·         Centrally manage all DOS processes without the need to visit client workstations

·         View a compact list with basic information on each running DOS tasks

·         Continuously monitor all DOS tasks

·         Optionally filter the process list (e.g. list tasks that exceed a CPU threshold)

·         List the current tame options and Tame statistics for any DOS task

·         Provide a map of all modules that are loaded in a DOS process

·         Display the contents of the current console screen of a DOS process

·         List open files and file locks that are currently in use by a DOS process

·         Initiate diagnostic trace procedures for a DOS user that may be experiencing problems

·         Post-process diagnostic trace files

Display a Summary of DOS Processes

TameView can produce a summary of some or all of the DOS apps that are currently running.  By default, TameView will list all DOS processes.   A variety of  Process Selection Options are available to filter which processes are included in the list.   Here is an example of the summary screen.

 

              Proc           Elapsed  Tot  Cur  AA   Open Lock

UserId          Id Command      Time  CPU  CPU Mode Files Stat Tame Status

------------ ----- -------- -------- ---- ---- ---- ----- ---- ------------

LSKYWALKER    3392 INVEN     2:31:17   0%   1%  Non     4      NonWorkIdle

HPOTTER       3508 INVEN        7:06   1%   0% OneQ     4      Yield     

DVADER        4120 INVEN     1:12:46   4%   0% OneQ     4      Yield

JKIRK         5518 PINBALL      1:21  75%  92%  N/A    12      Not Loaded

H9000         5590 INVEN        2:45   7%  24% OneQ     5      Boost

 

5 processes listed

 

 

The following information is provided for each process.

 

Value Name

Description

UserId

This is the user name the process is running under.

Proc Id

This is the process ID that is assigned to the process.  The process ID is assigned by the system, and it may be used to obtain additional information about the process.

Elapsed Time

This is the length of time that the NTVDM process (or DOS session) has been running.  

Tot CPU

This is the percentage of a CPU that the process has used since it was started.  On a multiprocessor machine, this is the percent of a single CPU, not the total CPU that is available on the machine.

Cur CPU

This is the percentage of a CPU that the process has used since the last TameView sample.  Note that this is only available when the /I option is used to indicate that multiple samples are desired.

Tame Status

This represents the way that Tame is treating the process at this time.  The following values may be displayed:

 

Status            Meaning
Not Loaded   Tame is not loaded in the process
Sleep              The app is idle and is in a deep sleep mode
Working Xnn The app is active.  The Xnn value indicates why Tame considers it active.
Yield               The app is idle and Tame is yielding time slices.

When the app is working, one of the following values will be listed in place of X in the status.

W          Meaning

1           IRQ activity

B           Btrieve activity

D          DOS activity (nn will list the DOS function)

K           A Key was read

P           Parallel port activity

Q          AppQ response time is slow, Application assumed to be busy

S           Serial port activity

T           A key was pressed by the user but not yet requested by the application

V           Video activity

Y           System activity (Win32 I/O or page faults recently detected)

Open Files

The number of files that the process currently has open.

Lock Stat

The lock status indicates the overall status of file locks that the application currently holds or needs.  The status consists of a number which is a count of file locks that are held by the process.  If the process is waiting on a lock that is currently held by another process, the letter “W” will also be included.  This may be blank indicating that no locks are currently held or pending. 

Examples:

2          two locks are held
5W      five locks are held, and the process is waiting on another lock that is currently in use by another process

Note that more detailed lock status is available using the /LL command line option.

Last QTime

This is the most recent App Queue time.  This is a measure of the response time of the application.  For many applications, this is a low value while the app is waiting for input, and high when it is busy.   For those applications, Tame can be tweaked for increased efficiency.  To improve effectiveness in cases where the application does no I/O during busy periods, specify the /AppQueueWork option to be higher than the QTime that is seen while the app is idle and lower than the QTime value during busy times.   To reduce CPU usage during idle periods, specify the /AppQueueIdle option to be slightly above the QTime that is common during idle periods and below that of busy times. 

Command

This is the name of the program that is running.  This will normally be the name of the EXE or COM file minus the extension.  If the executable is listed as KRNL386.EXE then this is a process that hosts 16 bit Windows applications.

Full Command Line

This is the currently executing command line, including options.  In some cases, this information is not available.

 

List Process Details

Would you like to see what is going on with these processes?  TameView can do that and much more. 

 

Process ID  : 3080
User ID     : Greg
DOS Command : CV

Elapsed Time: 8.984 Seconds
Process CPU : 7.734 Seconds
Cur CPU Pct :  98%

Adapt Mode  : SinglePoll+WorkQ
Tame Status : Yield - Application is waiting for input.
Last QTime  :      61 us

PIF file    : D:\TameDev\ZZ_Links\All\CurTest\BTRTST.pif
Options From: C:\Tame\DefaultSettings\default.tam
Tame Folder : C:\Tame\Tame Options:

 

If more detailed information is needed, additional Command Line Options are available to select which details are to be displayed

Command Line Options

TameView can display information or change one or more DOS processes with a single command line.  Simple filtering is supported so that commands may be applied to all DOS processes that meet one or more criteria.

Trace Summary View options

To view an HTML summary of a diagnostic trace file, run TameView and pass the name of a trace file.  Or, use drag-drop – drop a trace file onto the Tameview program – and get the same results.   TameView will summarize the trace file into a temporary HTML file, and then display it using the current web browser.

Process View options

The following options may be used.   If none of the /L options are specified then the compact table view with one process per line is displayed, and the default is to list all DOS processes.  If any /L option is used then the default will list the DOS process most recently launched by the current user.

 

Option

Description

/I

Repeat the view at a regular interval.  The interval may be specified in seconds.  The default value varies between 1 and 5 depending on the number of processes that are listed.

/L

List details about the process.  This is equivalent to /LP /LM /LS /LF /LL

/LC

Show the console screen

/LF

List open files and enumerate sections of those files that are currently locked.

/LL

List file lock status including all file locks that are currently held.

/LM

List a memory map to include all modules currently loaded in memory

/LO

List Tame options that are currently in effect

/LP

Show a process summary

/LS

List Tame statistics

/LVx

Verbose options for list items that follow

/LX

Show a list of running DOS apps, and list details of one that is selected.   This option also allows starting and stopping a trace of the selected process.

/M

Continuously monitor selected details for the most recently launched DOS application for this user.

Process Selection Options

The following options may be used to specify which processes apply.

Option

Description

/P

Specify one or more process IDs

/PA

All DOS processes (may be further filtered by other options)

/PC

Select only processes that are using CPU.  An optional parameter may specify the minimum CPU

/PL

List processes that are currently waiting on a file lock

/PM

List only processes where a specific module is loaded

/PN

List the most recently launched (New) processes.  The number of processes to list may be specified, but normally the default ob 1 is used.

/PT

Select only processes where Tame is loaded

/PU

Select processes owned by the current user.  The user ID may optionally be specified to select a different user.

Other Options

Option

Description

/XA

Add tame-nt.com to the autoexec.nt file

/XE

Edit the autoexec.nt file

/XR

REMark tame commands from the autoexec.nt file (turns them into a comment line)

/XS

List the tame command(s) in the autoexec.nt file

/ZA

Add tame.systo the config.nt file

/ZE

Edit the config.nt file

/ZR

REMark tame commands from the config.nt file (turns them into a comment line)

/ZS

List the tame command(s) in the config.nt file

 

TameView Access Permissions

On a multi-user system, TameView may be used by an administrator to access any DOS session on the machine.  A non-administrator may still run TameView, but access will be restricted to processes running in the same user session.

Contact Information

Tame is produced by TameDOS, and written by David G. Thomas. 

Email: info@tamedos.com

Web:   www.tamedos.com

Address:

            TameDOS
            4290 Bells Ferry Road
            Suite 106 PMB # 576
            Kennesaw, GA 30144-1300