Free 14-Day Evaluations    
Product Downloads    

Sign in     


DESKTOP MOBILE DOWNLOAD PURCHASE SUPPORT INFO COMPANY
 Home  >>  Support  >>  Knowledge Base
Error 965 Error in Host Key
April 13th, 2007

There are two main causes for this error. The first is an error in the fingerprint.

To remove the fingerprint in Windows, open the Registry Editor and go to HKEY_CURRENT_USER\Software\Century Software\HostKeys. Delete all the entries inside that folder, but leave the folder itself there, then close the Registry Editor. The next time you start TinyTERM and connect to that host, it will ask if the fingerprint is correct. Click Yes and continue.

To remove the fingerprint in UNIX, go to the user’s home directory and enter the command:

cd .ssh

In that directory you’ll find a known_hosts file. Rename that and attempt the connection again.

If that does not clear the problem up, the host is probably configured to accept RSA key authentication, but TinyTERM or TERM is using a username and password instead. To disable RSA on the host, go to its /etc/ssh directory and edit the sshd_config file. Look for the following two lines:

RSAAuthentication yes
PubkeyAuthentication yes

Change “yes” to “no” on each line. The lines may also be commented out with the # character. If so, remove it from the beginning of the line when making the change. Restart the SSH daemon after making the change.

CR 662
CR 802, request for option to continue on failed host key

Saving Configuration for Upgrade
April 13th, 2007

Century Software, Inc., recommends that before upgrading to a new version of TinyTERM, you uninstall any previous versions. However, uninstalling will remove some of your custom configurations. And installing TinyTERM without removing older versions will overwrite those custom configurations.

To save custom configurations before uninstalling, open Windows Explorer or My Computer and browse to the directory C:\Program Files\Century\TinyTERM. Back up the following files by copying them to a temporary folder:

*.tpx
*.dat

If you’ve written custom scripts, back up the *.cs files as well. You can then uninstall TinyTERM.

After installing and licensing the new version, copy the backup files into your Documents\TinyTERM folder. Your custom configurations will be available again.

Century Software, Inc., has had a request to change the install so that the custom configuration files are not overwritten. This was resolved with the creation of the Documents\TinyTERM folder, which is not removed during uninstall.

CR 478

Protecting Connection Settings
April 13th, 2007

TinyTERM
By default, if you make any changes to the session properties, TinyTERM will prompt you to save the settings. There are a few ways to protect the settings:

  1. The “Save settings” prompt can be turned off. To do this, go to TinyTERM’s Edit menu and select Preferences. For the “Save all settings on exit” option, select “Never.” Save the session after making that change. You won’t get the prompt again; however, this doesn’t prevent someone from using the File menu to save future changes.
  2. On the same Edit | Preferences dialog, there’s a check box labeled “Protect all settings.” Save the session after selecting that. TinyTERM will prevent any changes to the session after that.
  3. In My Computer or Windows Explorer, locate the connection file you’re using; e.g., default.tpx. Right-click the file and select Properties from the pop-up menu. Check the box labeled “Read-only” in the Properties window. Click OK, and Windows will prevent the file from being changed.

Combining options 2 and 3 will provide the most protection for the settings. Option 3 will also work for all Windows or DOS products.

TERM
In TERM for UNIX, the only way to protect connection settings is to change permissions on the connection file. Users must have read permissions to use a .con file, but that’s all. So you can set the permissions to 544 (-rw-r–r–) on any file or directory you wish to protect.

Number of Sessions
April 13th, 2007

TinyTERM or TERM for Windows can open up to nine sessions in a single window. Available memory is the only limit to the number of windows a single PC can open, so if you need more than nine, you can open more windows.

TERM for UNIX, as well as all DOS products, will only open a single session at a time. In TERM for UNIX, you can open as many instances of TERM as your UNIX OS will support.

Century Software, Inc., has had a request that the second time you start TinyTERM, it adds a new session to the existing instance, rather than opening a new window. This enhancement has not been implemented thus far.

CR 218

Scripting Events
April 12th, 2007

The events listed in the TinyTERM version 4 CScript documentation can be handled by overloading the event handler functions. These functions often contain code that is neccessary to handle the event properly within TinyTERM, and this code must not be changed. You should only add additional code that you wish to execute when these events fire.

For example, if you would like to display a dialog when the user disconnects from the server that gives the user the option of reconnecting to the server or closing TinyTERM, you could use the following script :

/////////////////////////////////////
//
// Reconnect.cs
//
// This function displays a message when the user disconnects from the server
// and allows them to reconnect to the server by clicking the OK button
// in the message box.
//
// Written 7/17/03 by Jeremy Wolfe
//
/////////////////////////////////////////////

var nResponse;
var szTitle;
var szMsg;

szTitle = “Disconnected…”;
szMsg = “Click OK to Connect\rClick Cancel to Exit TinyTERM”;
// called when the session is closed

function
Reconnect()
{
nResponse = msgbox(szMsg, szTitle, 1);

if(nResponse == 0)
{
te.connect();
}else
{
quit();
}
}

function
TE_EDisconnect(DlgObj, CtlObj, nCode)
{
DisConnected(FindSessionByTE(CtlObj));

Reconnect();

}

The following is a list of the event handler functions :

  • TE_EExit()
    This event fires when the user has pressed ALT-F4. This can only happen when the UseAlt property is set to FALSE. This can be used by the application to shut down.

    function
    TE_EExit()
    {
    File_Exit();
    }

  • TE_EDisconnect()
    This event fires when a connection has terminated (either through user action or a remote disconnection; i.e., when a socket is disconnected). This event also fires when an attempted connection fails. You will not receive this event if a given TE control is destroyed before the connection is terminated.

    function
    TE_EDisconnect(DlgObj, CtlObj, nCode)
    {
    DisConnected(FindSessionByTE(CtlObj));
    }

  • TE_EConnect()
    This event fires when a connection has occurred successfully.function
    TE_EConnect(DlgObj, CtlObj, nCode)
    {
    local nSess;
    local tfile;
    nSess = FindSessionByTE(CtlObj);
    Connected(nSess);
    tfile = field(TESESS[nSess][556], _val(TESESS[nSess][438]) +1, _asc("|"));
    if( exists( tfile) && _val(TESESS[nSess][438]) != -1) {
    dprintln("Compile and Run Post Session Connect = ",tfile);
    script_run(tfile);
    }
    script_sessconnect();
    }
  • TE_EPrint(bON)
    This event fires when printing commences or stops. bON is set to TRUE when printing starts, and FALSE when printing ends.

    function
    TE_EPrint(DlgObj, CtlObj, nCode, bOn)
    {
    local nSess;
    nSess = FindSessionByTE(CtlObj);
    if(bOn)
    TESESS[nSess][dPRINTICON] = "1";
    else
    TESESS[nSess][dPRINTICON] = "0";
    SessionIcons_Draw(); // draw Session Icons
    dprintln("TE_Print Sess # = ", nSess, " OnOff = ",bOn);
    }

  • TE_ENumLockOn()
    This event fires when Num Lock is turned on.

    function
    TE_ENumLockOn()
    {
    dprintln("***ENumLockOn");
    FrameStatBar.SetText(4,"NUM",SEBT_FLAT);
    }

  • TE_ENumLockOff()
    This event fires when Num Lock is turned off.

    function
    TE_ENumLockOff()
    {
    dprintln("***ENumLockOff");
    FrameStatBar.SetText(4," ",SEBT_FLAT);
    }

  • TE_ECapsLockOn()
    This event fires when Caps Lock is turned on.

    function
    TE_ECapsLockOn()
    {
    dprintln("***ECapsLockOn");
    FrameStatBar.SetText(3,"CAPS",SEBT_FLAT);
    }

  • TE_ECapsLockOff()
    This event fires when Caps Lock is turned off.

    function
    TE_ECapsLockOff()
    {
    dprintln("***ECapsLockOff");
    FrameStatBar.SetText(3," ",SEBT_FLAT);
    }

  • TE_ECapture(bON,iCaptureType,sDevice)
    This event fires when a capture operation starts or stops. bON is TRUE when capture is being turned on, FALSE when it is being turned off. iCaptureType is the type of capture that is currently configured. sDevice is the device that is being used for capture.

    function
    TE_ECapture(oParent,oTE,nCode,bCaptureOn,nCaptureType, sToolTip )
    {
    local nSession;
    nSession = FindSessionByTE(oTE);
    if(bCaptureOn)
    TESESS[nSession][dCAPTICON] = "1";
    else
    TESESS[nSession][dCAPTICON] = "0";
    if(Props[dTEObj] == TESESS[nSession][dTEObj])
    Props[dCAPTICON] = TESESS[nSession][dCAPTICON];
    if(nSession != nil)
    SessionIcons_Draw(); // draw Session Icons
    }

  • TE_ENextSession()
    This event fires when the user has indicated (via a keystroke) that they want to advance to the next session. The actual switching of sessions must be handled by the application.

    function
    TE_ENextSession(oParent,oTE,nCode)
    {
    local nSession;
    nSession = FindSessionByTE(oTE);
    if(nSession != nil) {
    if(nSession == TOTSESS-1) {
    SwitchSess(0,1);
    }
    SwitchSess(nSession+1,0);
    }
    }

  • TE_EMouseDown(iButton,iShift,x,y)
    This event fires when a mouse button is depressed in the control. iButton is the number of the mouse button that is depressed. The left button is 1, the right button is 2, and the middle button is 4. iShift is the status of the shifting keys at the time of the keypress. iShift is a bit field with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2 ). These bits correspond to the values 1, 2, and 4, respectively. iShift indicates the state of these keys. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys are pressed. For example, if both CTRL and ALT were pressed, the value of iShift would be 6. x and y are the x and y positions of the mouse cursor, relative to the upper left hand corner of the control.

    function
    TE_EMouseDown(oParent,oTE,nCode,nButton,nFlags,x,y)
    {
    var ret;
    var nCode;
    var pmenu;
    dprintln("TE_EMouseDown ",nButton, " ",nFlags," ",x," ",y);
    if(gTTType == "WC" && nButton == 2) {
    dprintln("turning on menu");
    if(CSESS[dCONNECT] == "1" || CSESS[dCONNECT] == "3")
    pmenu = ResLoadMenu("#401");
    else
    pmenu = ResLoadMenu("#400");
    nCode = TrackPopupMenu(GetSubMenu(pmenu, 0), 0, x, y, Frame);
    DestroyMenu(pmenu);
    dprintln("ret from pop up menu =%d\n", nCode);
    TE_Frame_Command(oParent,oTE,nCode,nCode);
    }
    }

  • TE_EMouseUp(iButton,iShift,x,y)
    This event fires when a mouse button is released in the control. The arguments are identical to those for MouseDown.

    function
    TE_EMouseUp(oParent,oTE,nCode,nButton,nFlags,x,y)
    {
    dprintln("TE_EMouseUp ",nButton, " ",nFlags," ",x," ",y);
    }

  • TE_ELoginStart()
    This event fires just before a login or logout scheme is performed.

    function
    TE_ELoginStart(DlgObj,nMsg,nCode )
    {
    local tfile;
    var nSess = FindSessionByTE(nMsg);
    if(nSess == -1)
    nSess = 0;
    // Activate on start of Logout
    if(TESESS[nSess][dLOGINOUTFLAG] == "1") {
    tfile = field(TESESS[nSess][434], _val(TESESS[nSess][440]) +1, _asc("|"));
    if( exists( tfile) && _val(TESESS[nSess][440]) != -1) {
    dprintln("Compile and Run Logout File = ",tfile);
    script_run(tfile);
    }
    if(script_logout()) // Non Zero Return Cancel
    nMsg.canceldialog();
    TESESS[nSess][dLOGINOUTFLAG] == "0";
    }
    }

  • TE_ELoginStop()
    This event fires just after a login or logout scheme has been performed.

    function
    TE_ELoginStop(DlgObj,nMsg,nCode)
    {
    local tfile;
    var nSess = FindSessionByTE(nMsg);
    if(nSess == -1)
    nSess = 0;
    // Activate on end of Login
    if(TESESS[nSess][dLOGINOUTFLAG] == "0") {
    tfile = field(TESESS[nSess][433], _val(TESESS[nSess][439]) +1, _asc("|"));
    if( exists( tfile) && _val(TESESS[nSess][439]) != -1) {
    dprintln("Compile and Run Login = ",tfile);
    script_run(tfile);
    }
    script_login();
    TESESS[nSess][dLOGINOUTFLAG] = "1";
    }
    }

  • Uninstalling Century LPD
    April 12th, 2007

    When uninstalling TinyTERM Plus from Windows NT 4.0, 2000, XP or Vista, you can’t uninstall NetUtils while CenLPD is running. CenLPD runs as a service on those versions of Windows. Only a user with administrator rights can stop the service so it can be uninstalled.

    To shut down CenLPD, do the following:

    1. Right-click on the “hammer-and-wrench” icon in the task bar. This will be next to the system clock.
    2. Select “Stop CenLPD” from the pop-up menu.
    3. Right-click the icon again, and select “Exit.”

    Once this is done, you should be able to uninstall NetUtils. If it shows the service as running still, you’ll need to stop it from Control Panel:

    1. In Control Panel, open the Administrative Tools and double-click Services.
    2. In the list of services, double-click CenLPD.
    3. Click the Stop button, then click OK.
    4. Close the Services panel.

    Uninstall will work normally after this.

    CR 577, LPD uninstall instructions added to Quick Start Guide in TinyTERM Plus 4.40

    Map Script to Key
    April 12th, 2007

    You can map TERM Script Language commands to a key in any version of TERM. Simply use the SETKEY command. For example, to map the command XMIT “This is a test” to Ctrl-F8, the command is:

    setkey cf8 “@@xmit “This is a test””

    To map multiple commands to a single key, put them all in a script file. You can then map that file to a key with the DO command. For example, to map the script myscript.cmd to the F5 function key, the command is:

    setkey f5 “@@do myscript.cmd”

    CScript handles this through the keyboard mapper instead. To map one or more script commands to a key, change the Action field to COMMAND, then enter the commands in one long string. For example:

    te.cls();te.displaynl(“Hello World!”);

    If you need to map a script to a key, use the CompileFile() command:

    CompileFile(“scriptname.cs”);

    You can also view this information in a screencast by clicking here.

    DSL and Cable Modems
    April 12th, 2007

    TinyTERM is compatible with DSL and cable modems; however, they are very different from traditional analog modems. DSL and cable modems provide a direct connection to the Internet over existing cable or phone lines. They do not have the ability to dial a phone number.

    In other words, you cannot use the Modem connection type within TERM or TinyTERM to dial a DSL or cable modem. You can only use the connection types that run over TCP/IP, such as SSH, Telnet, and Rlogin. If your connection requires that you dial a phone number to connect to your server, then you must have a traditional analog modem installed on your computer.

    Bright White Background
    April 12th, 2007

    If you set the background color to WHITE, it comes out grey. The TinyTERM background colors (BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN and WHITE) are the “darker” versions of the colors. The bright colors are reserved for the foreground.

    You can make the background bright white in TinyTERM version 4.02 or higher using the CScript scripting language. No other Century Software, Inc., product allows this.

    To write the script, go to TinyTERM’s Tools menu and select Script Editor. The command:

    te.SetRGBEntry(7,16777215);

    will make the WHITE background color bright white. You can change any of TinyTERM’s 16 colors the same way.

    To set the colors to change automatically when you start TinyTERM, save the script you created using the Script Editor’s Save button. Once you’ve saved the script, go to TinyTERM’s Edit menu and select Session Properties. Click the radio button by “Post session start,” then click the Browse button below that. Select the script you created and click OK. Click OK again to close the Session Properties, then save the settings. The next time you open that session, your color settings will load automatically. You will need to do this for each session separately.

    In TinyTERM version 4.9.0 or higher, you can instead edit the .tpx file in use, using any text editor. Locate the line:

    RGBMap7=

    Change it to read:

    RGBMap7=FFFFFF

    This is the hexadecimal value for bright white in the RGB color map. Other colors may be set the same way. You can use http://www.colorpicker.com to get RGB color values if desired.

    Script Debugger
    April 12th, 2007

    If you need to debug a script, there are two ways to do it. If you are using TERM Script Language, add the following two commands, to the beginning of your script:

    SET VIEW ON
    SET ECHO ON

    This will cause all script output and error messages to display to the TERM window.

    If you are using CScript from TinyTERM version 4, you will need the Debug Monitor. Running the executable called DBMon32.exe located in the C:\Program Files\Century\TinyTERM\dbmon32 directory. After launching the DBMon32 program, you will need to launch TinyTERM with the -debug switch. For example, you could change your shortcut target to:

    “C:\Program Files\Century\TinyTERM\tt.exe” -debug -PL3 default

    You can also type this in at a command prompt. The quotation marks are required. After doing this, TinyTERM will display all debug information in the Debug Monitor, including script errors.



      Copyright © 2025 Century Software, Inc. All Rights Reserved999 TERMS OF USE PRIVACY POLICY EULA