## WELCOME TO KERMIT 95 3.0.0 DEV

> 27 January 2025

Kermit 95: Powerful, flexible, customizable, secure 32-bit communications software for Microsoft Windows, now in open source form.

Unlike the K95 1.1.x and 2.x releases, K95 3.0 and later are fully open-source under the 3-clause BSD license!

Copyright © 1995, 2003, the Trustees of Columbia University in the City of New York, all rights reserved.

> Portions Copyright © 1986 Gary S. Brown.
> Portions Copyright © 1990, Massachusetts Institute of Technology.
> Portions Copyright © 1991, 1993 Regents of the University of California.
> Portions Copyright © 1991, 1992, 1993, 1994, 1995 by AT&T.
> Portions Copyright © 1995 Tatu Ylonen `<ylo@cs.hut.fi>`, Espoo, Finland.
> Portions Copyright © 1995, Oy Online Solutions Ltd., Jyvaskyla, Finland.
> Portions Copyright © 1995-1998, Eric Young `<eay@cryptosoft.com>`.
> Portions Copyright © 1997, Stanford University.
> Portions Copyright © 1998 CORE SDI S.A., Buenos Aires, Argentina.
> Portions Copyright © 1998-2001 The OpenSSL Project.
> Portions Copyright © (date unspecified) Markus Friedl, Theo de Raadt, Niels Provos, Dug Song, Aaron Campbell.
> Portions Copyright © The Kermit Project Contributors

###

CONTENTS

1. WHAT'S WHAT
2. WHAT'S NEW
3. SYSTEM REQUIREMENTS
4. SECURITY AND ENCRYPTION
5. INSTALLING KERMIT 95
6. UNINSTALLING KERMIT 95
7. REGISTRATION
8. RESOURCES
9. FILES AND DIRECTORIES
   1. The New Directory Structure
   2. Patches and Search Order
   3. Important K95 Files
10. ORIENTATION AND NAVIGATION
    1. K95's Initial Directory
    2. K95's CD Command
    3. Where Is My Customization File?
    4. Structure of `.`INI Files
    5. Where is the File I Just Downloaded?

###

1. WHAT'S WHAT

Kermit 95 Version 3.0.0, the twenty-fifth update since the original release in September 1995, is currently in development with periodic beta releases to fix issues, restore missing functionality and add new features now expected of modern terminal emulators. This is currently release: 3.0.0 DEV

Some features are still missing from the current beta release - it is hoped that most of them, where possible, will return before the final stable 3.0 release.

[ Top ] [ Contents ] [ K95 Manual ]

###

2. WHAT'S NEW

Kermit 95 3.0 is the first open source release of K95. Differences from the last commercial release, 2.1.3, include:

- Improved compatibility and appearance on modern Windows versions including large file support and ports to 64bit Windows on: x86-64, ARM64 and Itanium
- Support for Windows NT on Alpha and PowerPC has been restored
- New ports to 32bit Windows on: MIPS and ARM32, and new support for Windows NT 3.50
- PTYs are now supported on Windows 10 v1809 and newer
- Mouse Wheel support
- Terminal Mouse Reporting
- REXX is now supported on x86 and x86-64 Windows XP and newer as well as OS/2
- Named Pipe connections are now supported on Windows as well as OS/2
- New modern SSH implementation based on libssh
- Support for the latest versions of OpenSSL and MIT Kerberos for Windows
- TLS SNI support in the http and telnet clients
- A number of new escape sequences are supported in the ANSI terminal emulator to improve xterm and linux compatibility
- The screen update interval is no longer fixed at 100ms in K95G - it can be changed with `set terminal screen-update fast`
- New ADM5 terminal type
- New SKERMIT command
- Updated to C-Kermit 10

Unfortunately some features have had to be removed from v3.0 due to changing 3rd party dependencies and licensing concerns:

- SSHv1 and some Kerberos-related SSH commands and options are no longer supported as the new SSH backend (libssh) doesn't support them
- SSH and SSL/TLS are no longer supported on Windows versions older than XP as OpenSSL and libssh no longer support these platforms.
- SSL/TLS is no longer supported on IBM OS/2 as the compiler now used, Open Watcom, is not compatible with OpenSSL
- SRP and Kerberos IV support is no longer included as these 3rd-party libraries have been unmaintained for some years now.
- SuperLAT and TES32 support is no longer included by default due to unclear header licensing. This may change in the future.

As Kermit 95 is open-source now, if you need support for SRP, Kerberos IV, SuperLAT or TES32 it is still possible to compile Kermit 95 with these features by using an older compiler and supplying the now unmaintained 3rd-party libraries required to support them. Instructions for doing so are included with the source code.

For a full list of everything that's changed since Kermit 95 2.1.3, consult the change log that you should have received with your copy of Kermit 95.

[ Top ] [ Contents ] [ K95 Manual ]

###

3. SYSTEM REQUIREMENTS

All you need to use Kermit 95 are:

- Any 32bit or 64bit Windows compatible computer running any 32bit or 64bit version of Windows except for Windows NT 3.1 or MIPS Windows NT 3.50, or a PC running IBM OS/2 2.0 or later.
- The normal amount of memory and swap space for those platforms (as with any Windows application, K95 works best when there is plenty of memory and a fast processor).
- For making connections: A serial port and/or modem, and/or a network connection.

The following are not supported:

- Windows NT 3.10
- MIPS Windows NT 3.50
- Alpha Windows NT 3.50 is console-mode only (no K95G)
- Win32s (Win32 on Windows 3.1x) due to lack of support for threading
- Windows CE and Pocket PC are not supported.

Windows 95/98/ME and Windows NT/2000/XP are demand-paged virtual memory operating systems, and so the time-honored question, "How much RAM is required?" does not strictly apply to Kermit 95. But as with most Windows applications: the more the better. K95 together with all the DLLs it might use (which in turns depend on which features you elected during installation or invoke at runtime) needs between 5 and 30MB, most of which is (a) shared among multiple copies of K95 and other applications, and (b) usually paged out to disk. Thus the incremental cost of running two, three, four, or more copies of K95 is small.

Kermit 95's total disk footprint after installation is about 32MB. Approximately one additional megabyte is needed when the Dialer is active, for backup and temporary files, depending on the size of your Dialer database.

[ Top ] [ Contents ] [ K95 Manual ]

###

4. SECURITY AND ENCRYPTION

Kermit 95 contains strong cryptography and its legality may vary from country to country. You may find the information at cryptolaw.org useful but the Kermit Project can not vouch for its correctness.

See the Kermit 95 Online Manual's Network Security Methods Reference for further information on Authentication and Encryption methods supported by Kermit 95.

[ Top ] [ Contents ] [ K95 Manual ]

###

5. INSTALLING KERMIT 95

Current releases of Kermit 95 do not yet have an installation procedure. Beta releases are currently distributed as "portable" applications - just unzip the release to somewhere convenient and create a shortcut or run k95g.exe. Kermit 95 isn't specifically designed as a portable application however, and it will create a few registry keys under `\HKCU\Software\Kermit` on first run.

If you would like to have shortcuts and file associations created, the old K95 Registry Tool is included with current K95 3.0 betas so you can create these by running k95regtl.exe and choosing which things to create.

There are no particular procedures required when upgrading from Kermit 95 v2.1.3 but due to changes in the dialer it is advised you take a backup of your dialer data files if you use the dialer. Otherwise, you should be able to run K95 2.1.3 and 3.0 side-by-side.

[ Top ] [ Contents ] [ K95 Manual ]

###

6. UNINSTALLING KERMIT 95

For the current release uninstalling is the reverse of installing. If you used the K95 Registry Tool (k95regtl.exe) to setup associations, etc, run it again to undo those things, then delete the K95 files you originally extracted from the release archive along with any shortcuts you created.

One other bit of cleanup you may want to do: K95 creates a few of registry keys under `\HKCU\Software\Kermit` which can be deleted if you wish.

[ Top ] [ Contents ] [ K95 Manual ]

###

7. REGISTRATION

Registration of Kermit 95 v3.0 and newer is no longer required - starting with this release it is completely free and open source.

This does not apply to Kermit 95 v2.1.3 and earlier releases - those are not free. Columbia may still sell bulk licenses for K95 v2.1.3 if you need an older version for some reason.

[ Top ] [ Contents ] [ K95 Manual ]

###

8. RESOURCES

Using C-Kermit, 2nd Edition
  The user manual for C-Kermit and the technical reference manual for Kermit95 in PDF format. This is available from the Kermit Project Website .

The C-Kermit 7.0 Update Notes
The C-Kermit 8.0 Update Notes
The C-Kermit 9.0 Update Notes
  Kermit 95 3.0 is based on C-Kermit 10.0, but Using C-Kermit is current with C-Kermit 6.0. The C-Kermit 7.0, 8.0 and 9.0 update notes document all the features added to C-Kermit since the second edition of the book was published in 1997. These are fully cross-linked HTML documents, rather than plain text as in earlier K95 releases. Access them via the link in the References section at the top your K95 manual.

The Kermit 95 FAQ
  Frequently Asked Questions (and answers) about Kermit 95. If you have a question about Kermit 95, look here first. Access the K95 FAQ via the link in the References section at the top your K95 manual.

The Kermit 95 Bug List
  A chronological list of bugs in all the Kermit 95 releases. Most of them have been fixed; most of those that remain are due to bugs or limitations in the underlying operating system. In many cases, workarounds are suggested. If you have problems with Kermit 95, be sure to look here for a discussion of it and a possible solution. This is a fully indexed and crosslinked HTML document, rather than plain text. Access it via the link in the References section at the top your K95 manual.

The Kermit Security Reference
  A detailed explanation of Kermit's many security methods, with command lists for each.

`https://www.kermitproject.org/`
  The Kermit Project website on the Internet. Here you will find information about Kermit software for other platforms, news about Kermit 95, hints and tips, script programming examples, and lots more. Internet connection required. Here are some points of interest:

  The Github Issue Tracker
    Which lists bugs or other information discovered after this version of Kermit 95 was released.

  `https://www.kermitproject.org/k95.html`
    The Kermit 95 page.

  `https://www.kermitproject.org/ckermit.html`
    The C-Kermit page, K95's companion software for UNIX, VMS, and other platforms.

  `https://www.kermitproject.org/support.html`
    The technical support page, explaining how to get technical support, and including some hints and tips to save you some time. For Kermit 95-specific help, you can also try asking a question on Github at: https://github.com/davidrg/ckwin/discussions

  `https://kermitproject.org/scriptlib.html`
    The Kermit Script Library. Lots of sample scripts demonstrating how to automate everything from dialing to Internet sessions to complex file-management and computation tasks.

`comp.protocols.kermit.misc`
  The Kermit software discussion newsgroup (unmoderated).

[ Top ] [ Contents ] [ K95 Manual ]

###

9. FILES AND DIRECTORIES

NOTE: Section 9 (and 9.1/9.2/9.3) has not been updated for K95 v3.0 yet! The plan is for K95 v3.0 to largely match what is described here when it's installed via an installer, but installers haven't been built yet. If you've upgraded from K95 v2.1.3 then your setup will end up looking like that described in section 9.2 as the current distribution method of K95 v3.0 betas is more similar to that of K95 v1.1.20 and earlier.

      9.1. The New Directory Structure
      9.2. Patches and Search Order
      9.3. Important K95 Files

Version 1.1.21 of Kermit 95 marks a dramatic departure from earlier versions in file and directory structure. 1.1.20 and earlier stored everything in a single directory tree, such as `C:\K95`. This was simple to explain, short to type, kept everything together in one place, and made your Kermit files easy to find; for example, when you wanted to edit your `K95CUSTOM.INI` file. However, the original scheme does mesh with multiuser file systems like the ones on Windows XP or Terminal Server. Not only does it prevent users from having their own separate customization files, dialing directories, download areas, and so on, it also prevents system administrators from being able to enforce appropriate file access permissions on the program tree.

The new directory structure makes server installation much more natural. The Program files directory goes on the server, read-only. The Global (All Users) K95 data directory goes on the server too, with any desired site-specific customizations, and then made read-only too. Then the user-specific K95 data tree goes with the user's other data files in the user's Application Data tree, read/write.

###

9.1. The New Directory Structure

As of version 1.1.21, Kermit 95 is installed just like any other Windows application. Parts of it go into "Program Files", other parts into the All Users data area, and still others into the user's directory tree. This is the Windows Way of installing applications. The Windows directory paths are long and contain spaces, which tends to confuse text-based programs -- not just Kermit 95, but any program that has commands composed of fields separated by spaces. For this reason Kermit 95 represents these directories by variables that expand into Windows "short names" such as "`MYDOCU~1`" rather than long names like "My Documents". Kermit 95's new directory structure is as follows:

The Program Directory

  Created by: | InstallShield (the Kermit 95 installer)
  Purpose: | Read/Execute-only software, DLLs, icons, documentation.
  Win9x/ME: | `C:\Program Files\Kermit 95\`
  NT/2000/XP:`` | `C:\Program Files\Kermit 95\`
  Symbolic Name: | `EXEDIR`
  Variable: | `\v(exedir)`
  - Contents: | The Kermit 95 executable, `K95.EXE` The Dialer, `K95DIAL.EXE`, and its supporting resources (but not data) Any DLLs needed by Kermit 95 or the Dialer Assorted utilities and scripts The following subdirectories: `DOCS:` | Kermit 95 Documentation `ICONS:` | Kermit 95 Icons

Global (All Users) data for K95

  Created by: | InstallShield
  Purpose: | Read-only site-specific, site-wide configurations and data.
  Win9x/ME: | `C:\WINDOWS\All Users\Application Data\Kermit 95\`
  NT/2000/XP:`` | `C:\Documents and Settings\All Users\Application Data\Kermit 95\`
  Symbolic Name: | `COMMON`
  Variable: | `\v(common)`
  - Contents: | Kermit 95's initialization file, `K95.INI`. Site-specific customization file, `K95SITE.INI` (new). The `DIALINF.DAT` Dialer database (factory predefined entries). The `DIALORG.DAT` Dialer database (organizational predefined entries). The following subdirectories containing data for all users at the site. The files in these directories are initially as distributed with K95, but might be modified by the site administrator:
    `CERTS` | Site-wide X.509 certificates for SSL/TLS.
    `CRLS` | Site-wide X.509 certificate revocation lists for SSL/TLS.
    `KEYMAPS` | Site-wide key mapping files and information.
    `PHONES` | Site-wide dialing directories.
    `PRINTER` | Printer-related utilities and information
    `SCRIPTS` | Sample and/or production scripts
    `SSH` | Site-specific SSH host keys

> NOTE: On Windows NT, 2000, and XP, if the person installing Kermit 95 does not have write access to the All Users tree (e.g. because Administrator privilege is lacking), all of the items listed above for the `\v(common)` tree are placed instead in the `\v(appdata)` tree (next item). In Windows 95, 98, and ME, the `\v(common)` tree is always used as described above.

User-specific data for all applications (s = single-user, m = multiuser):

  Created by: | Windows 98 and higher when your ID is created. Not standard in Windows 95.
  Purpose: | Read/Write user-specific data for all applications.
  Win95: | `C:\My Documents\` (if it exists).
  Win98/ME (s): | `C:\My Documents\`
  Win98/ME (m): | `C:\WINDOWS\Profiles\username\My Documents\`
  NT/2000/XP:`` | ``C:\Documents and Settings\username\My Documents\``
  Symbolic Name: | `PERSONAL`
  Variable: | `\v(personal)` (might be empty in Win95).
  Contents: | Kermit's `DOWNLOAD` directory, possibly shared with AOL, MSN, and other applications. Other data or subdirectories not specific to any particular application.

User-specific data for K95 (s = single-user, m = multiuser):

  Created by: | Kermit 95 upon first use.
  Purpose: | Read/Write user-specific configurations and data.
  Win9x/ME (s): | `C:\WINDOWS\Application Data\Kermit 95\`
  Win9x/ME (m): | `C:\WINDOWS\Profiles\username\Application Data\Kermit 95\`
  NT/2000/XP:`` | ``C:\Documents and Settings\username\Application Data\Kermit 95\``
  Symbolic Name | `APPDATA`
  Variable: | `\v(appdata)`
  - Contents: | Each user's customization file, `K95CUSTOM.INI` Each user's `DIALUSR.DAT` Dialer database For each user, the following subdirectories, initially empty; can be populated by the user:
    `CERTS` | Your personal X.509 certificates for SSL/TSL.
    `CRLS` | Your personal X.509 certificate revocation lists for SSL/TSL.
    `DOWNLOAD` | Your personal download directory.
    `KEYMAPS` | Your personal key mapping files.
    `PHONES` | Your personal dialing directories.
    `SCRIPTS` | Your personal scripts.
    `SSH` | Your personal SSH host keys.
    `TMP` | Your personal Temporary directory.

The symbolic names are used in K95's new KCD command (Section 10.2) for convenient navigation.

To alleviate confusion, Kermit 95 1.1.21 has a new `ORIENTATION` command that gives this information as it applies to your computer. Here's an example from Windows XP:

      [C:\Documents and Settings\Olga\] K-95> orient

      Program name:
        k95

      Your home directory:
        Variable:   \v(home)
        Long name:  C:/Documents and Settings/Olga/
        Short name: C:/DOCUME~1/OLGA/

      K95's current directory:
        Variable:   \v(directory)
        Long name:  C:/Documents and Settings/Olga/
        Short name: C:/DOCUME~1/OLGA/

      K95 Program directory:
        Variable:   \v(exedir)
        Long name:  C:/Program Files/Kermit 95/
        Short name: C:/PROGRAM~/KERMIT~/

      K95 Initialization file directory:
        Variable:   \v(inidir)
        Long name:  C:/Documents and Settings/All Users/Application Data/Kermit 95/
        Short name: C:/DOCUME~1/ALLUSE~1/APPLIC~1/KERMIT~1/

      Current directory when started:
        Variable:   \v(startup)
        Long name:  C:/tmp/
        Short name: C:/tmp/

      K95 data for all users:
        Variable:   \v(common)
        Long name:  C:/Documents and Settings/All Users/Application Data/Kermit 95/
        Short name: C:/DOCUME~1/ALLUSE~1/APPLIC~1/KERMIT~1/

      Your personal data directory tree:
        Variable:   \v(personal)
        Long name:  C:/Documents and Settings/Olga/My Documents/
        Short name: C:/DOCUME~1/OLGA/MYDOCU~1/

      Your deskop directory tree:
        Variable:   \v(desktop)
        Long name:  C:/Documents and Settings/Olga/Desktop/
        Short name: C:/DOCUME~1/OLGA/DESKTOP/

      Your personal K95 data tree:
        Variable:   \v(appdata)
        Long name:  C:/Documents and Settings/Olga/Application Data/Kermit 95/
        Short name: C:/DOCUME~1/OLGA/APPLIC~1/KERMIT~1/

      Your K95 download directory:
        Variable:   \v(download)
        Long name:
        Short name:

For script writers, a pair of new functions has been added to convert between Windows long and short names:

`\flongpathname(path)`
  Converts the given path (file or directory name) from whatever format it's in (short or long) to long format, except in Windows 95 and NT, which do not have this capability, and therefore simply return the path as it was given.

`\fshortpathname(path)`
  Converts the given path to short format.

`\flongpathname()` (except in Windows 95 and NT) can be used in conjunction with `\fpathname()`, which returns the full pathname of a given file in short format, to show the full long path for a given file, e.g.:

      K95> cd \v(exedir)
      K95> echo \flongpathname(\fpathname(k95.exe))
      C:\Program Files\Kermit 95\k95.exe
      K95>

###

9.2. Patches and Search Order

Those who patch up to version 1.1.21 from earlier releases will have a hybrid structure; the old structure remains as it was, but the new structure is created upon first use of the new `K95.EXE` or Dialer. This adds an element of doubt as to where a particular file is or, if there are multiple copies, which one is used? The following rules apply:

- The original directory structure is preserved and all your customized files are left intact (`K95[CUSTOM].INI`, `DIALUSR.DAT`, etc) in their original locations.

- Upon first use of the patched K95 or K95DIAL prorgram:
  1. The `\v(common)` and `\v(appdata)` directories are created automatically. The `\v(common)` and `\v(appdata)` directories are each populated with the following empty subdirectories: CERTS, CRLS, KEYMAPS, PHONES, SCRIPTS, SSH, and (`\v(appdata)` only) TMP, some of which (KEYMAPS, PHONES, SCRIPTS, and TMP) duplicate directories that already exist in your `\v(exedir)` tree. The CERTS, CRLS, and SSH directories are new so there should be no confusion about them.
  2. The `\v(personal)` directory is created if it does not exist (except in Windows 95 versions that do not support it) and a DOWNLOAD subdirectory is created in it.

- Kermit searches for its initialization file, `K95.INI`, in the following order:
  1. The global (All Users) Kermit 95 data directory: `\v(common)`.
  2. Program directory: `\v(exedir)`.

- Your initialization file looks for the site-specific customization file, `K95SITE.INI`, in its `\v(common)` (All Users) directory and, if found, executes it. Note: if `K95SITE.INI` exists, it should end with a TAKE command for the user's customization file, `\v(appdata)K95CUSTOM.INI`. If `K95SITE.INI` is not found, `K95.INI` searches for the user's customization file, `K95CUSTOM.INI`, in the following order: `\v(appdata)`, `\v(inidir)`, `\v(exedir)` and, if found, executes it.

- If the `K95.INI` file was not found, K95 searches for the user's customization file anyway, and if found, executes it.

- After installing the 1.1.21 patch, your `DIALUSR.DAT` file, which contains all the entries you have defined or changed, remains in Kermit's program directory `\v(exedir)`.

- The Dialer searches for your `DIALUSR.DAT` file in the following order:
  1. User-specific Kermit 95 data directory: `\v(appdata)`.
  2. Global (All Users) Kermit 95 data directory: `\v(common)`.
  3. Program directory: `\v(exedir)`.
  4. If no `DIALUSR.DAT` file is found a new one is created in your `\v(appdata)` directory.

- Old (pre-patch) scripts remain in `\v(exedir)SCRIPTS`, but post-patch Dialer-generated scripts go in `\v(appdata)SCRIPTS`. When a script is executed with Kermit's `TAKE` command, and a specific path is not given, Kermit searches for the script first in the current directory, then in the same order as the customization file: `\v(appdata)` first, `\v(exedir)` last. For safety and sanity, it is better to give a full pathname for script files that are not in K95's current directory.

- Dialing and network directory files are not searched for; you must tell Kermit exactly where they are; either in the Dialer entry or in the `K95SITE.INI` or `K95CUSTOM.INI` file.

- Each user's SSH-related files generated by Kermit go into the user's `\v(appdata)SSH` directory, which is also where Kermit looks for them. Site-wide SSH files can be placed into `\v(common)SSH` by the system administrator.

- Each user's SSL/TLS-related X.509 certificate files should go into `\v(appdata)CERTS`, which is also where Kermit looks for them. Similarly, X.509 Certificate Revocation Lists should go in `\v(appdata)CRLS`. Site-wide certificates and CRLs can be placed in `\v(common)CERTS` and `\v(common)CRLS` by the system administrator.

If you patch up to version 1.1.21 from an earlier version, it is recommended that you convert the old structure to the new one to (a) allow multiple user arrangements, (b) reduce confusion arising from multiple copies of files and directories, and (c) to prepare for an easy transition to K95 2.0. Here's a table summarizing what should be moved where, which can be done at your convenience.

> File | Old | New | Description
> --- | --- | --- | ---
> `K95.INI` | `\v(exedir)` | `\v(common)` | Standard Initialization File
> `K95SITE.INI` | --- | `\v(common)` | Site-Wide Customization File
> `K95CUSTOM.INI` | `\v(exedir)` | `\v(appdata)` | Per-User Customization File
> `DIALINF.DAT` | `\v(exedir)` | `\v(common)` | Built-in Dialer Entries
> `DIALORG.DAT` | `\v(exedir)` | `\v(common)` | Site-Wide Dialer Entries
> `DIALUSR.DAT` | `\v(exedir)` | `\v(appdata)` | Per-User Dialer Entries
> Directory | Old | New | Description
> `DOCS` | `\v(exedir)` | `\v(exedir)` | K95 Documentation
> `DOWNLOAD` | `\v(exedir)` | `\v(personal)` | Download Directory
> `ICONS` | `\v(exedir)` | `\v(exedir)` | Icons
> `INCOMING` | `\v(exedir)` | `\v(common)` | Host Mode Upload Directory (2)
> `KEYMAPS` | `\v(exedir)` | `\v(common)` or `\v(appdata)` | Key maps and info (1)
> `PHONES` | `\v(exedir)` | `\v(common)` or `\v(appdata)` | Dialing and Network Directories (1)
> `PRINTER` | `\v(exedir)` | `\v(common)` | Printer Utilties and Info
> `PUBLIC` | `\v(exedir)` | `\v(common)` | Host Mode Public Directory (2)
> `SCRIPTS` | `\v(exedir)` | `\v(common)` or `\v(appdata)` | Kermit Scripts (1)
> `TMP` | `\v(exedir)` | `\v(appdata)` | Directory for Temporary Files
> `USERS` | `\v(exedir)` | `\v(common)` | Root of Host Mode User Tree (2)

Notes:

1. In entries that give "`\v(common)` or `\v(appdata)`" as new location choices, pick the destination for each file according to whether it's for all users or only for you.
2. Host Mode should be considered obsolescent, replaceable by WIKSD, at least in Windows NT, 2000, and XP.

HINT: Entire directories and directory trees can be moved with the MOVE command in the Windows Command Prompt or CMD window, provided you have shut down any applications that might be using any of the affected directories or files. Example:

      C:\> cd \k95
      C:\K95\> move phones "\C:\Documents and Settings\Olga\Application Data\Kermit 95\Phones"

###

9.3. Important K95 Files

      9.3.1. In the Program Directory
      9.3.2. In the All Users Kermit 95 Directory
      9.3.3. In Each User's My Documents Directory
      9.3.4. In Each User's K95 Application Data Directory

### 9.3.1. In the Program Directory

In multiuser Windows installation, this directory should be writeable only by the system administrator.

`SETUP.EXE`
  The Kermit 95 setup (installation) program. This is the old text-based one, which is being phased out in favor a GUI InstallShield procedure (Windows only). It is not yet clear at this writing whether version 1.1.21 will be packaged for retail, or only downloadable as a patch; it depends on when 2.0 is released. If it is packaged for retail, it will have the GUI installation rather than the text one (except if OS/2).
`K95DIAL.EXE`
  The Kermit 95 Dialer. This is the GUI program that gives you point-and-click access to all your connections. It is normally found in the Program Files Kermit 95 directory. Depending on your selections at install time, you might have a desktop icon and/or Start menu entry for this, as well as for `K95.EXE` (next item). Location: Program Directory.
`K95.EXE`
  The Kermit 95 program. You can run this directly to bypass the Dialer (normally only Kermit veterans would do this). In version 1.1.21 and earlier, this is the console version of K95.
`K95G.EXE`
  The GUI version of the Kermit 95 program (for future reference).
`K95.EXE`
  The Console version of the Kermit 95 program.
`K95D.EXE`
  An Internet Listener for incoming Host Mode connections.
`K95D.CFG`
  The configuration file for `K95D.EXE`.
`DIALER.DAT`
  Dialer screen definitions. Note: All `*.DAT` and `*.ZNC` files, as well as `*.BKn` files, are associated with the Dialer.
`TELNET.EXE`
  A "stub" that lets you use Kermit 95 as though its name and command-line personality were those of Telnet.
`RLOGIN.EXE`
  A "stub" that lets you use Kermit 95 as though its name and command-line personality were those of Rlogin.
`SSH-AGENT.EXE`
  The SSH Agent program (explained in the SSH Client documentation.
`HOSTMODE.BAT`
  Run this to start the host-mode management program.

The Program Directory also includes the following subdirectories:

`DOCS`
  Supplemental documentation on various topics.
`DOCS\MANUAL`
  (under the Kermit 95 Program directory) The Kermit 95 Manual, to be accessed with your Web browser. This is done most conveniently from the Dialer's Help menu.
`ICONS`
  Icons for use with K95 data files such as scripts.

###

9.3.2. In the All Users Kermit 95 Directory

In multiuser Windows installation, this directory should be writeable only by the system administrator.

`K95.INI`
  Initialization file for `K95.EXE`, normally found in the All Users directory for Kermit 95, but in patched versions is likely to be in the Program Directory. Contains commands that are to be executed every time `K95.EXE` is started. See Using C-Kermit for more about initialization files. In Kermit 95, however, most of the traditional functions of initialization files are taken over by the Dialer. In any case, you should not change or delete this file; all customizations should be made in:
`K95SITE.INI`
  Site-specific customizations. If this file exists, it is executed by the standard `K95.INI` file and, in turn, it executes the user's customization file, `K95CUSTOM.INI`. If this file does not exist, the user's customization file is executed directly. As shipped, Kermit 95 includes a skeleton version of this file that simply prints a message and executes the user's customization file.
`CA_CERTS.PEM`
  Site-wide OpenSSL X.509 Certificate Authority certificates.
`DIALINF.DAT`
  The Kermit 95 Dialer preloaded database (read-only).
`DIALORG.DAT`
  This file is not shipped from the factory. If you wish to have organization/site-wide Dialer entries, they can be created by adding new entries to the Dialer and then renaming the resulting `DIALUSR.DAT` file to `DIALORG.DAT`, from which point it is read-only.

The All Users K95 directory also contains the subdirectories listed in the previous section. Of particular interest are:

`PHONES`
  Dialing and network directories for use by everybody at the site.
`SCRIPTS`
  Kermit scripts for use by everybody at the site.
`PRINTER`
  Printer-related utilities, e.g. shell scripts for Unix to send Unix files to your PC printer via K95's Pass-Through Printing feature.
`KEYMAPS`
  Sample and default key maps for reference and/or copying and modification to suit your needs and preferences.

Files in the `KEYMAPS` directory include:

`CTRL2CAP.*`
  A utility for Win9x/ME for swapping the Ctrl and Caps Lock keys, and optionally the Esc and ``/~` keys.
`KEYCODES.TXT`
  A reference listing of K95 and MS-DOS Kermit keycodes (plain text, wide).
`DEFAULT.KSC`
  A listing of K95's default Key mappings for each of its terminal types.
`EMACS.KSC`
  A sample key map for use with the EMACS fullscreen text editor on the host.
`SNI.KSC`
  A sample key map for Siemens-Nixdorf 97801 terminal emulation.
`VT220.KSC`
  A sample key map for Digital Equipment Corporation VT220 terminal emulation.

###

9.3.3. In Each User's My Documents Directory

This directory is for keeping data files that are not necessarily associated with a particular application. This is where K95's DOWNLOAD directory goes, since the files you download with Kermit might be for any application at all. For this reason, your My Documents directory can also contain other material, unrelated to K95.

In Windows 95, the user's My Documents directory does not necessarily exist, since it is not part of the standard Windows 95 directory layout (it was first added in Windows 98). But it still might have been created by a Microsoft Office component, Internet Explorer, or some other Microsoft application. If it does exist, and it does not already have a DOWNLOAD subdirectory, K95 installation creates one. If it does not exist, no DOWNLOAD directory is created.

Note that the `\v(download)` variable does not necessarily denote Kermit's download directory. Initially, this variable has no value. It takes on a value only when you have designated a download directory, either on the General page of a Dialer entry, or with Kermit's SET FILE DOWNLOAD-DIRECTORY command. The `\v(personal)DOWNLOAD` directory is an obvious choice, but you can designate any directory you like for this purpose, or none at all, in which case downloaded files go into K95's current directory, in the absence of explicit instructions to the contrary.

If you want K95 to save downloaded files in its current directory by default, leave its out-of-the-box configuration alone. If you want it to save all downloaded files in one specific directory by default, then do this in the Dialer, or edit your `K95CUSTOM.INI` file (next section) to include a SET FILE DOWNLOAD-DIRECTORY command.

###

9.3.4. In Each User's K95 Application Data Directory

In multiuser Windows installation, each Kermit 95 user automatically gets her/his own K95 application data directory upon first use of K95 1.1.21 or later. This directory tree allows full read/write access to its owner.

`K95CUSTOM.INI`
  Customization file for `K95.EXE`, normally found in the user-specific data directory for Kermit 95 (`\v(appdata)`), or in patched versions in the Program Directory (`\v(exedir)`). On multiuser file systems, each user should have her/his own copy of this file. You may edit your copy to change your customizations, add new ones, define macros, special keys, and so on. In newly installed copies of K95 1.1.21, a sample copy of this file is copied from the `\v(common)` directory to the user's `\v(appdata)` directory the first time the user starts K95. The customization file is never modifed by Patch or InstallShield.

`DIALUSR.DAT`
  Your personal Dialer database (read/write). The K95 Dialer creates this file for you the first time you add, clone, or change an entry.

Your Personal K95 Read/Write Subdirectories:
  `CERTS` (X.509 certificates for SSL/TLS), `CRLS` (X.509 certificate revocation lists for SSL/TLS), `KEYMAPS` (key mapping files), `PHONES` (dialing and network directories), `SCRIPTS` (scripts), `SSH` (SSH host keys), `TMP` (temporary directory). These are initially empty. Some of them are used by K95; for example to when adding SSH host keys when you make a connection to a new host. Others are for your own use; for example, for installing X.509 certificates for hosts that you visit, personalized key maps, your own scripts, etc.

###

10. ORIENTATION AND NAVIGATION

      10.1. K95's Initial Directory
      10.2. K95's CD Command
      10.3. Where Is My Customization File?
      10.4. Where is the File I Just Downloaded?
      10.5. Structure of .INI Files

The new directory structure, although necessary for all the reasons listed above, can bewilder even seasoned K95 users. Here we try to clarify some confusing points, primarily for those who use K95 directly at its command prompt.

### 10.1. K95's Initial Directory

Kermit 95's current directory when you first start it depends on how you started it, which initialization files it executed, and whether an environment variable named HOME is defined to be a valid directory name.

- If you start K95 from a command window, it inherits its initial directory from the command window's current directory.

- If you start K95 from the Dialer, its initial directory is your home directory, which in turn is the value of the built-in Kermit variable, `\v(home)`, unless the Dialer entry includes a login script that CD's somewhere else. `\v(home)` inherits the value of the environment variable HOME, if it is defined, otherwise it is the root of your user tree, e.g.:

        C:\Documents and Settings\Olga\

- If you start K95 from the Start menu, its initial directory is its program directory.

- If you start K95 from a desktop shortcut, its initial directory is K95's program directory, unless you have changed the properties of the shortcut to specify a "Start in" directory.

- If you make a connection to WIKSD from outside and log in as yourself, WIKSD's initial directory is the one specified in your Windows user profile, if any, otherwise `\WINDOWS\SYSTEM32\`.

- If you make an anonymous connection to WIKSD, its initial directory is whatever the system administrator configured for anonymous users.

Any of these can be changed by the initialization file sequence, except when starting from the Dialer since, in that case, the instructions emitted by the Dialer are executed after the initialization files.

###

10.2. K95's CD Command

To simplify navigation among K95's many directories, Kermit 95 has a new KCD command that takes as an operand the symbolic name of any of the directories that are significant to K95:

      [C:\Tmp\] K-95> kcd ? Symbolic directory name, one of the following:
       appdata   desktop   exedir    inidir    startup   tmpdir
       common    download  home      personal  textdir
      [C:\Tmp\] K-95> kcd exedir
      [C:\Program Files\Kermit 95\] K-95>

Unlike the variable names described below, such as `\v(exedir)`, you can abbreviate symbolic names, use completion on them, etc, just like any other command keyword.

The remainder of this section was written for version 1.1.21, but still applies to version 2.00.

When Kermit 95 is installed the new way described in the previous section, the CD command can be confusing. Here are a few tips that might help:

- The CD command, when given with no operand, returns K95 to its `\v(home)` directory. If you don't like how `\v(home)` is defined, you can always override it by defining a HOME environment variable with the desired value. This is done in Control Panel . . System . . Advanced . . Environment Variables in newer Windows versions, or by adding SET commands to `C:\AUTOEXEC.BAT` in older ones.

- Remember that in K95 commands, directory or pathnames that contain spaces must be enclosed in quotes or braces, e.g.:

        K-95> cd "c:/Documents and Settings/Olga/My Documents/"

- Since it is difficult and annoying to type such long pathnames, you can use the K95 variables shown in the ORIENTATION command (example in previous section), for example:

        K-95> cd \v(personal)               ; My personal Windows data tree
        K-95> cd \v(appdata)                ; My personal K95 data tree
        K-95> cd \v(common)                 ; K95 data tree for all users
        K-95> cd \v(exedir)                 ; Directory where K95.EXE is started from
        K-95> cd \v(download)               ; My personal K95 download directory
        K-95> cd \v(tmpdir)                 ; My personal directory for temporary files

- You can also refer to Windows environment variables in the CD or any other command, as in the these examples:

        K-95> cd \$(HOMEDRIVE)\$(HOMEPATH)  ; My Windows HOMEPATH
        K-95> cd \$(ALLUSERSPROFILE)        ; Windows All Users
        K-95> cd \$(CommonProgramFiles)     ; Common Program Files
        K-95> cd \$(TEMP)                   ; Personal temporary directory
        K-95> cd \$(USERPROFILE)            ; Personal Windows data tree

  You can get a listing of Windows environment variables by typing SET in a CMD or Command Prompt or other shell window.

- You can define macros that take you to commonly visited directories:

        K-95> define appdata cd \v(appdata)
        K-95> appdata

- You can take advantage of the SET CD PATH command, which lets you type just the rightmost path segments in your CD commands. Example:

        K-95> set cd path \v(appdata);\v(personal) ; With this in effect...
        K-95> cd download                          ; This works from anywhere

- Remember you can use `?` for file/directory lists and Tab or Esc for completion anywhere within a path, which can save you some head-scratching and/or typing:

        K-95> cd /
        K-95> cd "Doc<Tab>uments and Settings/"Olga/App<Tab>ication Data/"...

  Actually it's a bit more complicated than shown because of the doublequotes; at each step you have to delete the closing doublequote before proceeding to the next path segment, but you'll get the hang of it quickly enough.

- Remember that K95 has a BACK command that returns you to its previous directory.

- There is also a CDUP command that changes to the current directory's superior directory (if any).

You can get additional information about CD, BACK, CDUP, SET CD, or any other command, by giving a HELP command for it at the K-95> prompt, e.g. "help set cd".

###

10.3. Where Is My Customization File?

K95 1.1.21 (and later), when installed from scratch, looks for your `K95CUSTOM.INI` file in your `\v(appdata)` directory. If it does not find it there, it looks in K95's program directory, `\v(exedir)`. In the old days, when we said "edit your customization file", this generally meant something simple like:

      K-95> edit c:/k95/k95custom.ini

Now it means something like this:

      K-95> edit "C:/Documents and Settings/Olga/Application Data/Kermit 95/k95custom.ini"

But who wants to type all that? Instead you can use this:

      K-95> edit \v(appdata)k95custom.ini

Of course if that's not where it really is you might need something more elaborate, like this:

      if exist \v(appdata)k95custom.ini edit \v(appdata)k95custom.ini
      else if exist \v(exedir)k95custom.ini edit \v(exedir)k95custom.ini
      else echo "Where is it?"

HINT: If you installed K95 1.1.21 from patches and fear that you might have multiple `K95CUSTOM.INI` files lurking in various directories, of course you can find them all with Windows Search or Find. Then edit each one to include a line like this:

      echo EXECUTING \v(user)'s \flongpathname(\fpathname(\v(cmdfile)))...

Then when K95 starts, this line prints the full pathname of the customization file that was actually executed.

###

10.4. Structure of `.`INI Files

In K95 1.1.21 and later, which can run remotely in its WIKSD guise, adds a new complication to construction of K95's `.INI` files because certain K95 commands are not legal in WIKSD. These include:

- Any commands that set up or make connections.
- Any commands having to do with terminal emulation or key mapping.
- Any commands related to printers.
- Any commands that access subprocesses or external programs.
- Probably some others too...

Yet if you log in through WIKSD using your own Windows ID, then your own `K95CUSTOM.INI` file -- which is likely to contain many such commands -- is executed. If you are going to be accessing the same computer from its physical keyboard and screen (or facsimile thereof) and remotely via WIKSD, your `K95CUSTOM.INI` file should separate the commonly valid commands from the ones that can only be executed by `K95.EXE` and not by WIKSD. It's easy. Just put the common commands at the top, then:

      if iksd end 0 IKSD Setup Complete.

And then the rest of your K95 customizations. If you do not protect commands like SET TERMINAL, SET KEY, and so on, by IF [ NOT ] IKSD, you'll get tons of error messages when you log in to WIKSD. The same guidelines should be followed by the system administrator when setting up the `K95.INI` and `K95SITE.INI` files. The `K95*.INI` files that we distribute with version 1.1.21 have this structure already, but if you install 1.1.21 by patching, your old `.INI` files are preserved.

###

10.5. Where is the File I Just Downloaded?

Rather than try to enumerate the rules and their relative precedence, let's just say how to get this information during the transfer and after the transfer:

- While the transfer is in progress, the full path of the downloaded file should be visible on your screen in the file-transfer display.
- When the transfer is complete, the file-transfer display should still be visible in the Command screen (you might have to Alt-x back from the Terminal screen to see it). And of course you can always scroll back to it with the Page Up key.
- At the `K-95>` prompt, type the WHERE command, which tells you where your files went.

[ Top ] [ Contents ] [ K95 Manual ]