KERMIT 95 -
FREQUENTLY ASKED QUESTIONS
As of K95 Version: 2.1.3
This page last updated:
Thu Nov 17 14:42:37 2022
THIS PAGE APPLIES TO KERMIT 95 VERSION 2.1.3 OF JANUARY 2003.
As of 17 July 2022, a new, free, Open Source version is in Beta
test and
the Beta version includes a brand-new
up-to-date SSH client.
CLICK HERE for
details and to download and test it if you wish.
—Frank da Cruz,
14 June 2020.
CONTENTS
Invoking Kermit 95 from:
[ Visual Basic ]
[ Java ]
[ C++ ]
Keyboard:
[ Kermit 95 Keycodes ]
[ Kermit 95 Keyboard Verbs (Kverbs) ]
STATUS OF KERMIT 95 FOR WINDOWS
[
Next ]
[ Previous ]
[
Top ]
Columbia University terminated the Kermit Project in 2011, so although
Kermit software might still be available, there is no longer a professional
staff to provide technical support or to deal with business matters such as
licensing. The new Open-Source Kermit Project is housed here:
http://kermitproject.org
There has been no new release of Kermit 95 since 2.1.3 of 2003. That
version still works if you set it up as described below. A great deal of
work has been done by volunteer developers since then, but not not quite
enough to issue a new release. The situation is
described HERE. If you are a Windows C
programmer and would like to help bring the next (fully Open Source and
Free) release to release, please let me
know.
Dealing with the new SSH servers -
April 2022
As of 2021-2022 it is virtually impossible to make a network connection with
Kermit 95 because all of its security methods except SSH have
vanished from the Host-to-Terminal Internet landscape (e.g. Telnet servers
secured by Kerberos or SSL), while SSH itself has changed all its encryption
cyphers as described just below. There IS a workaround,
however... but only if you are using K95 on a home network, and that
network also includes a Linux computer such as Ubuntu or
Debian. CLICK HERE for details and
instructions.
Bad news - January 2017
As of OpenSSH 7.4 (or perhaps
some slightly earlier version) the OpenSSH SSH 2.0 server, as distributed,
does not support ANY of the ciphers that the K95 2.1.3 SSH client supports,
and therefore it is impossible to make an SSH connection from K95 to any
host that is running a new OpenSSH server 7.4 or later. If you try, you'll
get a message like this:
no matching cipher found:
client aes128‑cbc, 3des‑cbc,
blowfish‑cbc, cast128‑cbc, arcfour, aes192‑cbc,
aes256‑cbc, rijndael128‑cbc, rijndael192‑cbc,
rijndael256‑cbc, rijndael‑cbc@lysator.liu.se
server aes256‑ctr, aes192‑ctr, aes128‑ctr
login failed
This gives a pretty much transparent end-to-end connection that should work
with EMACS, file transfer, and anything else you normally do with K95.
Kermit 95 source has been released with an Open Source license. You
can find it HERE. The published
executables, however, are still restricted for legal reasons. See the web
page just mentioned. Any new release of K95 will need a completely new SSH
client because the original one will rapidly become useless.
The current release of Kermit 95 is 2.1.3. It operates under Windows
95, 98, ME, NT, 2000, XP, 2003, Vista, and Windows 7, 8,
and 10 in on your desktop PC, as well as in Windows Terminal Server; the
same executable program image — K95.EXE (console, runs in CMD window)
or K95G.EXE (GUI, runs on Desktop) — runs on all of these Windows
platforms up to and including Windows 10. K95G.EXE must be used on
Windows Vista and later (where console sessions and APIs are "deprecated"),
and is recommended for earler versions too because it does operates in GUI
mode which is more familiar to Windows versions.
Problems that might surface in any of these environments are noted below, in
most cases with diagnoses and workarounds. K95G.EXE is built as a 32-bit
application but also works on 64-bit Windows versions. Kermit 95
does not operate under "mini" versions of Windows such as Windows CE,
Pocket PC, or Windows Mobile, nor can it be used in Windows 3.1 or earlier.
Kermit 95 is also available for IBM OS/2 3.0 and later; this is a
separate executable that is available only on the Kermit 95 2.0 CDROM that
comes in
the retail
shrinkwrap package.
Kermit 95 is remarkably stable, robust, and resilient to
changes in Windows and the Internet. It is highly customizable and fully
automatable using its built-in cross-platform transport-independent scripting language.
Although Kermit 95 comes with a graphical Dialer for setting up
connections, it's really a lot easier to set them up with Good Old
Notepad, creating text files on your desktop with names that end in
.KSC. These files contain Kermit commands, and the
.KSC extension automatically makes them into icons that you
can double click to launch K95 and have it execute the commands. Here's an
example:
SET SSH COMPRESSION OFF # SSH compression changed after K95 2.1.3 release
SET TERMINAL TYPE VT220 # Default of VT320 is not recognized by newer hosts
SET TERM AUTODOWNLOAD ON # Allow autodownload but suppress popup dialog
SET TERM CHARACTER-SET CP1252 # Adapt to "modern usage" of ISO 8859-1*
SET TERM FONT COURIER_NEW 13 # Pick a reasonable font and size
SET TERM HEIGHT 55 # Have big monitor - allow 55 lines on screen
SSH CUNIX /USER:fdc # Make SSH connection specifying the username
Simply double-clicking on this file makes an SSH connection to a host called
Cunix in the same Internet domain as the user's PC (the full IP hostname is
CUNIX.CC.COLUMBIA.EDU) with all the desired font,
character-set, terminal emulation, and other customizations. Of course the
file could contain any commands you want, for example to automate some
repetitive interactive task; see the Kermit script
library for examples and ideas.
BUGS
[
Next ]
[
Previous ]
[
Top ]
Like all software, Kermit 95 can have bugs. It can also tickle bugs in the
underlying Windows operating system, network stack, drivers, etc. K95's bug
history (bugs and fixes) through the current release is HERE. Bugs discovered since the last release are
documented HERE.
Several issues, not exactly bugs, are worth mentioning up front:
- Kermit 95's default terminal emulation is VT320, the Digital
Equipment Corporation VT320 terminal, long an industry standard. Somewhere
around 2010 this terminal type started disappearing from Unix terminal
(termcap/terminfo) databases, for example in Solaris 9 and later, recent
Linux releases like RHEL6, etc. If you use Kermit 95 to log in to such
a Unix system and try to use any application that formats the screen (Emacs,
Vi, etc), you will get a message to the effect that your terminal type is
unknown. Workaround: Change Kermit's terminal type to VT220 or any other
type that is still supported on most Unix platforms.
Also the VT320 terminal type might not be handled correctly in Emacs
23, even when the OS (e.g. NetBSD) supports it via Terminfo/Termcap.
Strange behavior in Emacs commands (for example file completion in
Find-File) can be fixed by changing your terminal type to VT220 or any other
well-supported type.
- You might also have to change Kermit 95's character set from
LATIN1 to CP1252 (or better still, UTF-8), to avoid having your session hung
when viewing text originating from Microsoft Windows
(CLICK HERE for a discussion). Actually
since 2016 or so, it's worse than that. The Internet gods have "deprecated"
the hard-won, well thought-out, terminal-friendly international standard ISO
character sets and proclaimed corporate, standards-violating, propietary
Microsoft Windows code pages the new "standard" single-byte character sets
to be used when UTF-8 cannot be used. So, for example, every email you get
is likely to be full of Microsoft "smart quotes" and such even if it was not
sent from a Microsoft platform. At some point we're all supposed to switch
over to UTF-8, which is no problem for Kermit 95, which has supported it
since before the turn of the century, although only recently are host-based
shells and applications (such as EMACS) beginning to to handle it
adequately, if not perfectly.
- SSH connections can fail with "no matching comp found: client zlib,
server none,zlib@openssh.com". This happens because (a) Kermit 95
uses SSH compression by default, and (b) new SSH server releases have
changed their compression method. Client Workaround: tell Kermit 95
to "set ssh compression off" and/or uncheck the "Data Compression" box on
the SSH page of the Dialer entry for any host where this happens. Server
Fix: Change the server's SSH compression parameter in
sshd_config from "Delayed" to "Yes".
- When making an SSH connection to a host pool you will get a lot
of scary warnings like "WARNING: REMOTE HOST IDENTIFICATION CHANGED! The
authenticity of host XXX can not be established", etc. These are legitimate
warnings because a host pool looks to SSH exactly like man-in-the-middle
attack. This happens with any SSH client, not just K95, and it's one of
many reasons it's better to use Kerberos security than SSH, but that horse
left the barn a long time ago. Workaround: click OK on the warning dialogs,
and hope it really is a host pool!
- When making an SSH connection using password authentication, the
user/password dialog box can lose focus (become greyed out), so you can't
type into it. This is the most common symptom of a problem that occurs if
Kermit 95 is started in such a way that its window would be wider or taller
than the physical screen size at the configured resolution. In this case
Windows constantly pops the main K95 window into focus because it "needs
attention". This can happen if K95 is in the background, or indeed, even
when it is in the foreground but displaying a dialog box (e.g. for the SSH
password). A quick workaround is to maximize the K95 window, which forces
K95 to adjust the font size to the screen size and resolution. The real
solution is to set the monitor to a higher resolution (if possible) in the
Display section of the Windows Control Panel, or else to use a smaller font
size and/or smaller screen dimensions (rows and/or columns) in K95; if you are
using the Dialer to set up the connection, you can configure the screen
dimensions on the entry's Terminal page, and the font and font-size on the
GUI page.
- The very first time you start Kermit 95 (the GUI version,
K95G.EXE), the screen appearance is likely to be crazy. Windows
apparently picks a font height and width at random. For example, the font
might be extremely narrow. You can fix the font aspect ratio by dragging an
edge or corner of the screen until it looks right. You can also pick a
different font and point size in the Toolbar. Or try maximizing the window
as suggested in the previous item, make the desired adjustments, and then
restore it. When you exit from K95, any font adjustments that you made are
remembered unless you picked an old font like Fixedsys that doesn't have all
the features of the more modern TrueType or OpenType fonts.
- The command KCD DOWNLOAD does not work in Windows Vista or later;
the Windows API for finding the user's download directory changed
after K95 2.1.3 was released. This command works in XP and earlier Windows
releases. However, if you give a SET FILE DOWNLOAD command to define a
download directory (e.g. in your K95CUSTOM.INI
file, then KCD DOWNLOAD will work.... BUT, all the files you download
will go to that directory instead of the one you expected.
- Kermit 95 does not support transfer of "long files" (files
containing more than 2147483648 bytes = 2GB). However, you can transfer
them anyway. The file transfer display numbers, progress bar, and
statistics are wrong but the transfer works as long as the
other Kermit supports long files.
- Effects of insufficient physical memory... (this is not
a problem in modern times)...
Every application
suffers when there is not enough memory. Most applications will be
sluggish; Adobe applications, especially Photoshop, will be extremely (and
progressively more) sluggish. In Firefox, background images might
disappear. And so on. When you start K95 on a memory-starved PC, sometimes
it will come up as nothing more than a very short title bar, or a title bar
of infinite width, but other times it will start normally. The solution in
every case is to install more memory in your PC, or a new PC. On the other
hand it is a plus that K95 can work on even the most minimal 1990s-era PC;
if it can run Windows 95, it can run Kermit 95.
- Mouse issues... When K95 was last released, all mouse features
worked with it. For example, you could scroll K95's terminal and console
windows with the mouse wheel, you could program "extra" mouse buttons, and
so on. In recent years, Microsoft has removed all support for anything but
the barest mouse functions. Extra buttons are not seen and cannot be
programmed; the scroll wheel has no effect in K95. You can buy the "perfect
mouse" at Amazon, and Windows 10 treats it as if it were a 1995-era
Microsoft mouse. This is not a K95 issue, it applies to all applications in
Windows 10.
- Infinite backwards scrolling loop... If you swipe the mouse over
the terminal screen and/or its frame in some way I haven't pinned down yet,
K95 starts scrolling backwards towards the top of the scrollback buffer,
selecting the entire thing, which could take a very long time. Apparently
no keystroke or sequence can interrupt this, not even
the \Kreset key. Solution: click the terminal screen
with the mouse.
As noted in the previous section, a very simple way to work around problems
1-3 and 7 is to create a plain-text file named K95.KSC on your Windows
desktop (use NotePad for this) containing the following commands:
set terminal type vt220 # Or other desired type that is supported on the host
set terminal char cp1252 # Set terminal character-set to Microsoft CP1252
set ssh compression off # Disable SSH compression
set file download \v(home)Downloads # Define download directory if desired
and launch K95 by double-clicking on it.
You can also add these commands to your
K95CUSTOM.INI (your K-95 customization file; see the
section “Where Do I Put Commands” in the Kermit 95 manual,
accessible from the K95 Help menu), as described HERE, so no matter how you launch K95, they will
always be in effect.
KERMIT 95 IN WINDOWS VISTA AND LATER
[
Next ]
[
Previous ]
[
Top ]
No significant problems are known when installing and using Kermit 95 2.1.3
on Windows Vista or Windows 7, 8, or 10, but there are a few minor differences.
- Installation
- K95 2.1 installs itself with an old version of InstallShield from 2002:
-
When you start the installation package on Windows Vista, Vista says
"Publisher could not be verified. Are you sure you want to run this
software?" On Windows 7 it says "Do you want to allow the following program
from an unknown publisher to make changes to this computer?"
This is because the InstallShield package does not have a digital signature
of the kind that Windows Vista and later use to verify the authenticity and
integrity of software programs since, obviously, K95 2.1 and the
InstallShield version used to create the installation package predate
Windows Vista and Window 7 by some years. Anyway, the same thing happens
(this item and the next) when installing Microsoft's own Office 2007.
-
After clicking OK or Yes, the rest of the installation proceeds smoothly
in Windows 7. In Windows Vista you get another warning: "User
Account Control: An Unidentified program wants to access your computer".
This is the same program you just gave permission to run, the K95 installer.
Click "Allow".
-
At this point InstallShield does its work, although it might take a bit
longer than in XP or earlier Windows versions. When the installation is
complete, the selected K95 shortcuts appear on your desktop. Note that the
icons were designed for lower-resolution monitors and might appear somewhat
crude, especially the Dialer icon.
-
In Windows 7, Installshield terminates abnormally after installing K95.
You get an alert box to this effect, you can just click it away. Also in
Windows 7, the Uninstall procedure seems to have no effect. Either an alert
box comes up saying that Installshield has terminated abnormally, or else it
terminates without reporting any error but K95 is still installed. In this
case you can remove the files manually from the places indicated in the
Read-Me file.
- Using the Dialer
- The Dialer seems to function normally. In a new Windows installation,
you will have to configure your area code and dialing prefix the first
time you start the Dialer or K95 itself, if you haven't configured it
already. This is normal and happens in all Windows versions, not just Vista
or Windows 7, and Windows 10.
- Using K95.EXE and K95G.EXE
- Both the GUI and Console versions of Kermit 95 seem to work normally
(but see below about fullscreen operation). In Windows Vista the first
time you make a Internet connection, Windows
says: "Windows Live OneCare has blocked a program from accessing the
internet." In the dialog box, choose "Allow this program (always allow this
program to access the Internet)". Several more dialogs in this vein pop up.
Tell them "Continue", "Allow" or whatever is required to go ahead and make
the connection. You should go through these steps with K95G.EXE (the GUI
version) and K95.EXE (the console version), whichever one(s) you will be
using. You should only have to do this once.
Probably similar things will happen the first time you try to accept an
incoming network connection with Kermit 95 in Windows Vista. For
safety, you should test this "by hand" prior to installing WIKSD, the
Windows Internet Kermit Service (which has not yet been checked on Vista).
The Console version of K95 can not be used in fullscreen mode (Alt-Enter)
because the Windows video drivers no longer support this as of
Windows Vista; this is true for any Console application, not just K95. You
can achieve nearly the same effect by choosing the appropriate combination
of font size and terminal dimensions, or by using the GUI version instead,
in which case fullscreen mode is entered via the Maximize box on the right
side of the Toolbar.
Mysteries of Windows Dept: One user reported that, on three
identical machines, configured identically with Windows Vista, K95G.EXE (the
GUI version) loses its cursor at certain screen positions on one of the
machines but not on the other two, accessing the same application on the
same host, using the same communication method and terminal emulation. So
far we have not been able to diagnose this problem, but K95.EXE (the console
version) displays its cursor correctly on the same machine.
KERMIT 95 AND WINDOWS 10
Kermit 95 (K95G.EXE) works as expected in Windows 10, at least on
platforms that are upgraded to Windows 10 from (say) Windows 7
where K95 was already installed. One difference, however, is that K95 does
not pick up your login username, thus the
\v(userid) variable is
not set. To work around this, add a SET LOGIN USER command to your
k95custom.ini file.
The Console version (K95.EXE) still works too but has not been exhaustively
tested.
The K95 Dialer also works, but if any entries rely on the
\v(userid) variable, they will fail. In this case you need to
either edit your Dialer entry's Login Settings page to specify your User ID,
or add a SET LOGIN USER command to your k95custom.ini file. Also
(as has been the case for at least 10 years), you'll need to uncheck the
Compression box in any SSH Dialer entries.
As for installing K95 on a Windows 10 system, presumably the regular
installer works. However, it is highly unlikely that the trial version
installer works, since the company that made it has never updated it
since 2003 (and in fact is not even the same company any more) and Windows
has changed significantly out from underneath it.
Why don't all my mouse buttons work in Windows 10?
I could be mistaken, but it seems to me that
Windows 10 no longer
supports extra mouse buttons, at least not insofar as they can be
recognized and configured in the Control Panel. This is not a K95 issue,
but Windows 10 issue. I had a Microsoft 3-button USB mouse and Microsoft
Windows did not recognize it, or any other mouse, as it did in Windows 7.
Every mouse I tried shows up in the Control Panel as "HID-compliant mouse",
"Manufacturer: Microsoft". For example, a Dell 5-button N/M:M-BAC-DEL5
mouse, and a 5-button Fellowes mouse.
Whether you can use the extra buttons is another issue. In my case,
Windows 10 did not recognize the Microsoft mouse's side button at all,
clicking it did nothing. However, the Dell mouse side buttons work, even
though I can't see them in the Control Panel (but clicking the wheel does
nothing). I thought maybe if I could download a driver for the Dell mouse
I'd be able to customize the buttons, but apparently Microsoft has directed
Dell to withdraw its mouse drivers from its website. Third-party
mouse-driver websites only have virus drivers. Conclusion: Microsoft has
evidently decided that multibutton mice are too technical and confusing for
its customer base, so from now on it only supports buttons 1 and 2.
You can still program buttons 1 and 2 in K95, for example if I want to
copy a line from the browser and paste it into a file I'm looking at in K95,
I can use button 2 as follows:
set mouse button 2 none double-click \Kpaste
set mouse button 2 none click \13
So 3 clicks on the right button will paste the line and add a carriage return.
Annother annoyance, and I'm not sure when it happened, is that the mouse
wheel no longer scrolls the K95 window. It used to. It seems to me that
every new Windows version takes away things people use, and adds things that
nobody wants.
KERMIT 95 AND 64-BIT WINDOWS
[
Next ]
[
Previous ]
[
Top ]
In 64-bit versions of Windows Kermit 95 operates in 32-bit mode. The
installation was normal, and the GUI version performs its basic jobs
correctly; for example, making an SSH connection, emulating any kind of
terminal, and transferring files with Kermit or Zmodem protocol. This
version of Kermit does not use any 64-bit APIs and so (for example) can not
access or transfer extremely long files (with sizes greater than
231 bytes). Actually you can transfer them, but the
file-transfer display (progress bar and numbers) are all wrong.
KERMIT 95 AND WINDOWS TERMINAL SERVER
[
Next ]
[
Previous ]
[
Top ]
The trial version of K95 can not be installed on Windows Terminal server
because it requires read/write access to the Registry, which is not
permitted in Terminal Server (click here for details).
As required by all applications on Windows Terminal Server, Kermit 95
must be installed by the Domain Administrator via the Add/Remove Programs
Control Panel. The Phone and Modem Options Control Panel settings must be
initialized on each user's PC. If the machine is locked down to prevent
those settings from being manipulated, then Kermit 95 will hang for almost
two minutes on startup while the Telephone API attempts to initialize its
state. This is true on any machine, not just Terminal Server.
Normally you would use the GUI version of Kermit 95 in a Terminal Server
session, but the Console versions should work too, except in fullscreen
mode. In the GUI version, if the screen size and font need adjustment, use
the dialogs in the Toolbar and/or size the screen using the mouse to drag
the edges or lower-right corner of the K95 screen; read more about K95's
GUI controls and options HERE.
Slow Kermit sessions through Windows Terminal Server (especially newer
releases) could be explained by increased network traffic requirements of
with each new release and increased CPU and memory requirements on the
client and on the server.
Make sure the Terminal Server client and server versions are the same
(e.g. 2003). For example, the terminal server client for 2003 is different
from the one that ships with XP and 2000. For the 2003 environment, users
should be installing the 2003 Terminal Server client which is available from
Microsoft for download. You can also make it available via Group Policy if
you are using a managed environment.
THE NATURE OF THE PRODUCT
[
Next ]
[
Previous ]
[
Top ]
- What is the Difference between the
Console Versions and GUI Version of K95?
- Kermit 95 is an adaptation of C-Kermit to
Windows. C-Kermit is a text-mode application portable to many platforms
precisely because it is a text-mode application. Version 1 of Kermit 95
(1995-2002) ran only in the Windows Console environment, which is commonly
(but erroneously) referred to as the "DOS window", and because of this it
suffered many limitations and second-class-citizen status for reasons
that can best be seen if you look at the Bug List.
Version 2 of K95 is still available in a Console version (K95.EXE),
but now there is
also a Graphical User Interface (GUI) version
(K95G.EXE).
They are the same program. They both do the same things, they
both have the same commands, they are both driven by commands. The main
differences are that
(a) the GUI version works better because it does not have to
suffer the bugs and limitations of the Console environment; and
(b) the GUI version has some additional
controls and
conveniences (task bar, scroll bars, font selection, resizing, etc).
- Does Kermit 95 Allow Remote Access to My
PC?
- "Remote access" in the sense of pcAnywhere, no. Remote access in the
sense of incoming connections for the purposes of file transfer and
management? Yes, Kermit 95 lets you make your PC available in various ways to
various types of incoming connections:
- Kermit 95 comes with a Host Mode script that can be set up to
accept direct serial-port (null-modem) connections, dialup modem connections,
or Telnet connections. It presents a menu to the caller allowing various
file-transfer and management services, and a configuration menu for the PC
owner for management. Read about Host Mode HERE.
- Kermit 95 2.0 and later on Windows NT, 2000, XP, 2003, Vista (and later)
can be run as a Service to accept incoming Internet connections on a
well-known TCP port, as defined in Internet RFCs
2839 and
2840. This is called
the Internet Kermit Service Daemon (IKSD) and is described
HERE
- You can write your own scripts to accept incoming modem calls or
incoming Internet connections. For details, see the
Serial Ports and Modems and Network
Connections sections of this document, as well as the
Kermit Script Library
Incoming connections have access only to the answering Kermit process and
its text-based menus or commands and its file transfer protocols. Kermit is
not a "remote desktop" or graphical client or pcAnywhere replacement, nor
does it give you access to the Windows shell (for technical and security
reasons which are explained in the
Host Mode
documentation).
- What Exactly Is the Documentation for Kermit
95?
- Unlike most other Windows-based communication software, K95 is not a
Windows-only product, but just one of a suite of similar programs for many
platforms: Linux, AIX, VMS, Solaris, etc. Collectively, these programs are
called C-Kermit (a
portable Kermit program written in the C programming language). Most of the
features of these programs are shared and identical across all platforms.
These features are documented in:
- Using C-Kermit
- A 622-page book describing C-Kermit 6.0 (December 1996) and the
platform-independent aspects of the concurrent version of K95 (1.1.8)
including the command language, serial and network connections, file transfer,
client/server operation, character set conversion, and script writing for
automation, plus sections on troubleshooting, tutorials on data
communications, and tons of reference material. Until a new edition is
published, this book remains the fundamental reference for the command
and scripting language of C-Kermit and Kermit 95. You can also find
a scripting tutorial with lots of examples
HERE.
UPDATE: As of February 2016, Using C-Kermit
is available online as a PDF file;
CLICK HERE to see it.
- C-Kermit 7.0 Supplement
- Thorough documentation of the new features of C-Kermit 7.0 (January 2000)
and the platform-independent aspects of K95 1.1.17, which was the first
version to include secure authentication and encryption, and in which the
command language was greatly extended by the addition of "switches" (command
modifiers), and which was the first version to support Unicode (the Universal
Character Set), plus other changes too numerous to list here.
- C-Kermit 8.0 Supplement
- Thorough documentation of the new features of C-Kermit 8.0 (February
2002 - April 2004) and the platform-independent aspects of K95 2.1,
principally the new FTP, SSH, and HTTP clients or interfaces, plus tons of
scripting improvements.
Note that
the C-Kermit 9.0
Supplement has no bearing on Kermit 95, since Kermit 95 was built
upon C-Kermit 8.0.
Then, each major C-Kermit platform (Unix, VMS, Windows, ...) has its own
platform-specific documentation. The manual for Kermit 95 is
included with K95 itself, and is accessible from Kermit 95 by:
- Clicking on "K95 Manual" on your desktop or in your Start menu depending
on your choices when you installed K95.
- Clicking on "Kermit 95 Manual" in the Help menu of K95G (the GUI version
of Kermit 95) or the Dialer.
- Giving the "manual" command at the K-95> prompt.
The Kermit 95 manual concentrates on the Dialer (how to graphically
set up and launch connections) and the Terminal Emulator (terminal types,
scrollback, key mapping, colors, local printing, character sets, etc).
In addition to the K95 manual, K95 also includes a great deal of other
documentation, including the C-Kermit 7.0 and 8.0 manual supplements, linked
to from the K95 manual. You can also find a brief tutorial for K95
HERE and another for
C-Kermit HERE.
Those who purchased shrink-wrapped copies of K95 through version 1.1.17
received a printed copy of Using C-Kermit. Those who purchased
shrinkwrapped copies of K95 1.1.20 received a PDF version of the book on
CDROM. Due to renegotiated agreements between publishers, the Kermit 95
2.1 package (January 2003) does not include the PDF version of Using
C-Kermit, but it does include a license key to let you
download it
(note: this applies ONLY to owners of the K95 2.1 shrinkwrap).
Electronically delivered versions of K95 from e-academy.com
(now called OnTheHub.com) do not
include the Using C-Kermit book because:
- It would triple the size of the download;
- It would increase the price, since each copy of the book (printed or
electronic) must be paid for;
- The new GUI version of K95 does not require users to know the command
language for normal operation.
This is the primary reason that the cost of the electronically delivered
version of K95 is so low. The shrinkwrapped version costs more.
In any case, the printed book can still be
purchased separately.
The Kermit Project Website contains hundreds of pages of information about
Kermit software, including Kermit 95 and C-Kermit. Sometimes it might be
hard to find what you are looking for, but it almost certainly is somewhere
in the C-Kermit manual (which is well indexed) or the Kermit 95 manual
(which can be searched with the search feature of your Browser) or on the
Website. To search the website, go to the Kermit Project home page:
http://www.kermitproject.org/
and use the Search box.
- Is Kermit 95 Buzzword-1.0 Compliant?
- Most likely. It is
Year-2000 Compliant,
Euro Compliant, it uses all the latest open security
standards and libraries (as of 2003). It implements numerous open Internet
protocols. It is Common Off The Shelf commercial software (COTS) and
therefore automatically complies with most procurement rules. It is
approved for export to all but the seven embargoed countries (also as of
2003). For vendor qualifications and data, CLICK
HERE.
- What's going on with the OS/2 version?
- K95 2.1.2 is available for IBM OS/2 3.0 and later with certain
restrictions: Console only (no GUI); no SSH, no Kerberos. K95 1.1.21 and 2.0
were not available for OS/2, but we did succeed in building version 2.1.2 for
OS/2, complete with FTP client, and the Kermit 95 2.1 shrinkwrap package
includes the OS/2 version. (2.1.3 is not available for OS/2 but most of the
changes relate to the GUI controls, which the OS/2 version doesn't have
anyway.) The OS/2 version does not include SSH because OpenSSH libraries are
not available that are compatible with the OS/2 K95 development tools.
- Why isn't Kermit 95 free?
- Kermit 95 was developed, documented, and supported by full-time computer
professionals at Columbia University's nonprofit Kermit Project. Revenue from
Kermit 95 sales and licenses was the only source of funding for its
continued development and support. Paying for Kermit 95 gives you the right
to the time, attention, support, and respect of Kermit professional staff,
which is something you can't count on with free software nor, as some of our users
tell us, with much commercial software either. Unfortunately all this changed with the cancellation of the
Kermit Project on 1 July 2011, but the K95 source code was
released with an Open Source License for anybody with the inclination and
ability and create a free version.
CLICK HERE for current status and
information.
Meanwhile, for those who are not able to benefit from the Open Source
version, or who wish to continue using the established procedures,
Kermit 95 can still be purchased in single copies either electronically
or as a retail shrinkwrap package from the sources indicated near the top
of the Kermit 95 page, and in Bulk Right-to-Copy
License form from Columbia Technology Ventures.
- Why is the product (still) called Kermit 95?
- All Kermit Project software has "Kermit" in its name. Kermit 95 was
originally written in 1995 for Windows 95, and was therefore given the obvious
name. However, unlike Microsoft, we chose to stick with the original name as
new versions came out because it's quite difficult to refer to a product
generically, regardless of version, when each version has a different name.
Those who feel that the "95" in "Kermit 95" dates it should think of the "95"
as a part number or model designation rather than a year or version number,
and of K95 as a faithful and effective tool in the spirit of the similarly
named P38
(Army tool for opening C-rations).
As for "Kermit"... This name was chosen on a whim back in 1981, before we had
any idea that Kermit protocol or software would ever escape the bounds of
Columbia University or remain current and popular for decades. The whim, in
turn, was based on (a) a Muppets calendar on the wall when we were
searching for a name, and (b) the fact that some of us had small
children addicted to The Muppet Show. Although a name like "Kermit" might
have certain drawbacks in today's fast-paced, high-powered software
marketplace, it also has (we think) a certain charm and simplicity: It's easy
to say, easy to spell, and utterly lacking in hyperbole and condescension.
But if you prefer, feel free to refer to K95 as:
UltraHyperExtremeTurboCyberOpenEnterpriseSmartSecureE-CommercePowerPro-2018 Gold
Millenium Edition!
- Can I use MS-DOS Kermit instead of Kermit 95?
- Under certain conditions, yes, but not for TCP/IP connections, not with
Plug-n-Play or PCMCIA or USB modems or ports, not with Winmodems or RPI
modems, not with ISDN modems, not with nonstandard communication ports, not
with devices that are owned by TAPI, etc. Even then, remember it is a DOS
program, not a Windows or OS/2 program, and can not take advantage of, or
access, special features of Windows or OS/2 – long filenames, the mouse,
the clipboard, secure connections, etc. If it works for you, meets your
requirements, and requires no technical support then by all means use it.
- Do Kermit 95 and the Dialer work in all 32-bit
varieties of Windows?
- Yes, except for Windows CE (Pocket PC, Windows Mobile). The same
executables run on Windows 95, 98, ME, NT, 2000, XP, Vista, and Windows 7,
8, and 10 on
Intel (PC) architecture. In previous releases, K95 was also available for
Windows NT on the Alpha and PowerPC architectures, but those Windows
versions have been discontinued.
- Why not Windows CE or Pocket PC or Windows Mobile?
- Because these operating systems do not offer the full range of Win-32
APIs. Many of those that are missing are required by Kermit 95.
- Can K95 be used with speech and Braille devices?
- Kermit 95 should be compatible with any speech or
Braille device that can be used in a Console or GUI window.
Typical settings are:
set bell audible # Make sure Ctrl-G is audible
set terminal margin-bell on 72 # Margin bell like typewriter
set terminal statusline off # For scroll detection
set terminal screen-update smooth # Or "fast" - depends on screen reader
set terminal screen-optimization on # This is the default anyway
set terminal mouse off # Might be required by some readers
In addition, certain keys might need to be set to \Kignore, so they
can be used as controls for the screen reader or Braille software. Depending
on the specific screen reader, these might be the keys on the numeric keypad.
The method for doing all this is illustrated in the ASAP.KSC file, for setting K95 up to be used with
the ASAP screen reader.
For related resources, see our
links page.
[
Next ]
[
Previous ]
[
Top ]
THIS SECTION HAS BEEN REMOVED — THERE IS NO LONGER A TRIAL VERSION.
SHRINKWRAPPED RETAIL CDROM VERSIONS MIGHT STILL BE AVAILABLE FROM
AMAZON
OR OTHER SELLERS.
A full-featured 21-day trial version of K95 is packaged and distributed by
our electronic sales and delivery agent,
e-academy.com. You can
download it from one of two places:
- e-academy (now called
OnTheHub.com);
- Columbia
University.
The two are the same. If you have trouble downloading one, try the other.
At e-academy, you will notice different buying options and configurations:
- Academic vs Non-Academic
- This is strictly a pricing issue. If you are a student or faculty or
staff member at an academic institution (according to definitions and
procedures of e-academy) you pay a lower price.
- Crypto vs Non-Crypto
- These are separate and distinct versions of the software. The "crypto"
version is the normal one, which includes security features that use strong
encryption; for example an SSH client, secure Telnet and FTP clients, etc.
However, strong cryptography is controlled by USA law and can not be
exported to certain embargoed countries; the non-Crypto version exists so
that Kermit 95 can be exported to those countries in compliance with the
governing statutes.
The trial version is the regular release version (available in both Crypto
and Non-Crypto versions) with a "Vbox" front end applied to it by e-academy,
which consists of a "nag screen" with "Try" and "Buy now" buttons. The Buy
Now button lets you pay for and obtain a licensed version of Kermit 95.
This version is discounted since (a) there is no physical
package and (b) the book Using
C-Kermit is not included.
The trial version of Kermit 95 was built in 2003 in a clean environment.
It has been downloaded and used tens of thousands of times. It is safe.
However, beginning in October 2010, Symantec antivirus reports it as
containing a Trojan Horse. It does not. The Trojan Horse diagnosis
is probably explained by the fact that regular Kermit 95 executables
(K95.EXE, K95G.EXE, K95DIAL.EXE) had E-Academy's "Vbox" features grafted on
after the fact. This has been reported to E-Academy and hopefully they can
inform Symantec about their Try and Buy technology.
The 21-day trial period can not be extended. A second trial version
can not be installed on the same computer. If your trial period expired
before you could finish your testing, you must either purchase a copy or
install a fresh trial version on a different computer.
The normal procedure for registering the trial version is: When you
get the "nag screen" upon startup of the trial version, click "Buy Now".
This takes you to the e-academy site where you order and pay securely. Once
payment is processed, you can download the nontrial version, and you are
sent to a page at e-academy to pick up your registration keys (serial
numbers), one for each copy you have purchased. To install the registered
version:
- First Exit from all active instances of Kermit 95 and any other
applications that might be accessing Kermit 95's directories or
resources. If in doubt, exit from everything and reboot.
- Remove the trial version (in Add/Remove Programs).
Don't worry, this will not interfere with any of your customizations.
- After removing the trial version, run the install package you
have just downloaded (e.g. by double-clicking on its icon).
When you run the install procedure, which is the same as the one for the
regular shrinkwrapped retail version, at some point you are asked to enter
the serial number. YOU MUST ENTER THE WHOLE SERIAL NUMBER, including the
prefix and suffix, for example:
K95-00007654321-2.1
That's "
K95", a dash (hyphen), 11 decimal digits, another dash, and
the software version, in this case "
2.1" (two point one). Leading
zeros in the numeric part can NOT be omitted.
Problems That Can Occur with the Trial Version
- Vbox Error:
Failed to initialize Vbox!(0002-0053-0081)
- Windows NT/2000/XP/Vista/7/etc (i.e. not Windows 95/ME/98), when logged
in as a nonprivileged user. Vbox requires Administrator privilege
due to the rental feature and the need to update certain files and Registry
entries. Furthermore, Vbox is incompatible with Terminal Server even when
running as Administrator. Vbox requires read/write access to the global
registry and the %WINDIR% directory. Terminal Server explicitly
prevents this access by giving each user instance a private copy.
Therefore, the actual global lock data is unavailable. Licensed copies
of K95 do not use Vbox and do not have these restrictions, but there is
no getting around these issues with the trial version.
- Vbox Error: Export function: Duplicate
TokenEx could not be found in dynamic library:ADVAPI32.dll. Error code:
127
- Most likely you are running original Windows 95 and have never installed
any updates. Apparently the "Vbox" registration component uses Windows
features that were added after original Windows 95 (Error 127 means that
something cannot be loaded). Usually you can work around this by installing
updates from Microsoft, such as a newer version of Internet Explorer, which
would replace your version of ADVAPI32.DLL with a newer one.
Licensed copies of K95 do not include Vbox and do not have this problem.
- Other random errors and crashes running the Trial
version
- Perhaps your download was incomplete. It's a large file, and FTP
traffic is one-way only. Maybe your ISP thought your session was idle and
disconnected you prematurely. Try checking your mail or browsing the Web
in a separate window periodically to make sure your ISP does not think
your session is idle.
- I can't uninstall the trial version
- Depending on how it was installed, you might need to be logged in as
Administrator to uninstall it. Note that after uninstalling the trial
version, you can't install a new one on the same computer. For more on this
topic, read the next section.
Detailed Instructions from E-Academy
Occasionally we receive reports of problems upgrading from the trial version
to the regular registered version; for example, when attempting to install
the registered version, it complains that the trial version was not
uninstalled, even though it was.
(begin quote)
Usually we recommend our customers to ensure the following before beginning
the installation:
- No Firewalls are turned on
- No Download Managers are turned on
- No Anti-virus software is turned on
Please note that you will need to uninstall ALL previous Kermit software you
may have installed already (including the 21 day evaluation).
Please try the following steps to delete the previous Kermit program.
- Go to Control Panel → Add/Remove Programs
- Go down the list of currently installed software on your machine
- Find Kermit and then select it, a "Change/Remove" button will appear.
- Click on it to remove Kermit.
- Once it has finished. Please re-boot your computer (log in and out).
- Go to C:\Temp Folder and delete any Kermit folders you may find
there.
- Go to C:\Program Files folder and delete any Kermit folders you
may find there.
- Go to C:\Windows and delete any "Vbox" Folders you may
find there.
- Go back to your Desktop and right mouse click on the "Recycle Bin" and
choose to "Empty Recycle Bin"
- Make sure there is NO MORE KERMIT software install on your machine. Check
back in Control Panel → Add/Remove Programs window.
Once you remove previous Kermit program, please re-download "KERMIT" as
following.
- Go to www.e-academy.com →
go to "eStore"
- Log-in to the site using username and password.
- [Once logged-in], Click on MYSOFTWARE button (left side of page)
- Choose the Software you purchase.
- Click on "Download link" under Deliverable.
- Click on "Download Software" button and choose TO SAVE File to the Desktop
when prompted.
- This will download the "Delivery Client" file which you need to install
the software.
- Go to your desktop, find the "Delivery Client" (Purple Icon with the
lighting bolt in it). IF the file does not have the purple icon, do this:
- Right click on file
- Choose RENAME, and then add ".exe" to the end of the file name.
- This will make the file to have a purple icon with a lighting bolt in it.
- Now, Double click this file to begin unpacking and downloading of files
(NOTE: This will be done in the C:\Temp Folder).
- Once Files
have been temporarily downloaded (to C:\Temp) then it will prompt
you "Launch and Install" the software which will be installed in the
C:\Program Files folder - This should install the product.
(end quote)
Further Advice from E-Academy Tech Support
Please note, if you have any particularly active virus scanners (such as
Norton or McAfee) these can interfere with the install files during the
download and cause issues of this nature. As well, wireless connections have
minor latency that can cause corruption during transfers, so it's advisable
to connect directly to your modem or router via a cable while retrying the
download.
If deactivating your antivirus does not allow you to download correctly,
please try activating in Safe Mode with Networking. This can be accessed by
rebooting your computer and hitting the F8 key repeatedly (before the
Windows login loads), until you're given the option of a preferred boot
mode. Choosing "Safe Mode with Networking" and trying the download link
directly from the site again should allow you to download the software
without any possibility of third-party software interfering.
Following the download, if the installer does not work in Safe Mode with
Networking,
you should be able to try launching the install manually by rebooting into
Normal
mode (without hitting any additional keys), and double-clicking the
installer file in
the folder where the software was downloaded (which should default to
My Computer → C:\→Temp).
OTHER INSTALLATION AND UPGRADE ISSUES
[
Next ]
[
Previous ]
[
Top ]
Kermit 95 2.1 is distributed as a
full upgrade
installation to those who have earlier K95 versions, no patching required.
Kermit 95 1.1.17 and later are distributed on CDROM. Version 1.1.16 was
distributed only in patch form. Versions 1.1.15 and earlier were distributed
on diskette. Since the last diskette release was in 1997, we've removed the
longwinded discussion of problems with diskettes and diskette drives from
the FAQ.
- I can't uninstall K95 1.1.xx
- Version 1.1.20 and earlier were not installed with InstallShield, and
so can't be uninstalled using "Add or Remove Programs"; you have to do it
the old-fashioned way: (1) Make sure K95 is not running; (2) Start a
Command (CMD) or "MS-DOS" window; (3) type "cd \k95" (or CD to whatever
other directory you installed K95 in); (4) Type "cd .." to go up one
level; (5) Type "deltree k95" or "del /s /q k95" (depending on which OS
you have). If this fails, you might have to reboot and try again.
- CDROM installation doesn't start
- In Windows 95/98/ME/NT/2000/XP/Vista/7, loading the Kermit 95 CDROM into
your CDROM drive should activate the Windows "Autorun" feature: a few
moments after Windows has compiled the CDROM directory, it pops up the
Kermit 95 installation procedure automatically. If this does not happen to
you, access the CDROM as though it were a regular disk, CD to the
I386 (Windows/Intel) or other appropriate directory, and start the
Setup program.
- CDROM installation fails
- Typical example: Installation starts, web page comes up; upon clicking
back to InstallShield Wizard, it is solid grey, except for the title bar, and
the cursor is an hourglass. Shut down all your applications, reboot, and try
again, making sure that your anti-virus and intrusion detection software is
disabled. Antivirus software often panics when a software package is being
installed.
- My PC doesn't have a CDROM drive!
- If you purchased the K95 retail package but your PC does not have a
CDROM drive, please
contact us for instructions.
- I downloaded a K95 upgrade but it won't
install!
- Did you download the right upgrade? Read the
download page
carefully to make sure you picked the right file to download. If the upgrade
file failed to execute at all, be sure you downloaded it in binary mode and
that the download completed successfully. Remember that you can't install the
upgrade unless you have a previous Kermit version installed on the same PC.
If the installer can't find the Kermit program directory, it gives you an
opportunity to specify its location. It must also be able to find various
other K95 files in their normal places, which can vary with the K95 version
and the Windows version. In K95 1.1.20 and earlier, all K95 files
are in a single directory tree, normally rooted at C:\K95. For K95
1.1.21 and later, the layout is described in the README file.
Occasionally it happens that the Upgrade Installer reports it can't find
a licensed version, and offers to let you browse to the location, but even
when you choose the registered copy of the K95.EXE executable,
it reports failure. This seems to happen only when you chose the "Don't
make Registry entries" option when you installed your original version.
If you remove your old version and reinstall it, but this time choose to
make Registry entries, then the Upgrade Installer should be able to find it.
If you are upgrading from K95 2.0 or later and the upgrade fails for a
spurious reason (e.g. "This update requires that you have an eligible
Crypto-enabled Kermit 2.0 or 2.1 version installed", when that is the case),
download the larger "full" upgrade and use that.
One user reported that the Upgrade Installer complained (on Windows 2000)
"No valid Kermit 95 installation in C:\K95, try a different path".
Repeated attempts to run the installer said the same thing. Rebooting didn't
help. Downloading a fresh copy of the installer didn't help. He shut down
and turned off the machine and went home. The next morning when he turned
on the machine and tried the procedure again, it worked. The Mysteries Of
Windows.
If you are one of the unfortunate few who can't get the upgrade installer
to locate and verify your old copy of K95, the best course is to visit
our electronic sales and distribution provider,
e-academy.com, and purchase
the new version; it's only $64 (less for academic institutions), which is
probably less than the value of the time you would spend continuing to
pursue the upgrade.
- I installed K95 2.x but the icons didn't appear on the desktop
- Click your mouse on the desktop and then press the F5 key to refresh
the desktop, or right-click on the desktop and choose Refresh.
- I can't reinstall from my original K95 media!
- In case you uninstalled K95 for some reason and then want to reinstall it
(e.g. so you can upgrade to K95 2.1), you might run into problems. For
example, if you bought Kermit 95 prior to version 1.1.17, it was distributed
on diskette; maybe you don't have a diskette drive any more. Another problem
is that the K95 SETUP program for version 1.1.10 and earlier doesn't work on
disks larger than 2GB; in that case you can manually unzip the
K95PACK*.EXE files and then run CKREG.EXE to
register it. Then you can install the upgrade.
If all else fails, we would appreciate it if you would simply buy a new
version; discounted copies are available on the Web from e-academy.com. Due to the harsh
economic conditions, we no longer have sufficient staff to help people
one-on-one with relatively ancient Kermit releases. Most other companies
would have made you pay for upgrades all these years, and we never have –
which might be part of the problem!
- I have my K95 media but I lost my serial number!
- See previous.
- I bought K95 electronically from E-Academy but then lost it!
- If you bought Kermit 95 from
E-Academy but then lost the
serial number, lost the download, or have problems installing, please
contact
E-Academy technical support.
- Kermit 95 starts but is hung
- The first time you start Kermit 95 on a PC that has never had a modem
configured, Windows pops up a dialog box for you to fill in your country
and area codes and Kermit can't finish starting up until you complete this
dialog. If the dialog box is hidden behind another window and you don't
see it, it will seem that Kermit is hung. Use Alt-Tab, Alt-Esc, or the
menu bar to cycle the dialog to the front, fill in the requested information
and close the dialog box, then Kermit 95 will finish starting.
- Kermit 95 starts but has weird dimensions
- Kermit 95's screen presentation (GUI version, K95G) depends on the font
and size, which are selectable in its Toolbar. Depending on your monitor,
driver, and Windows display settings, some font/size combinations result in an
ugly, useless, and/or bizarre presentation. The first time you start K95G, it
picks a font and size for you, and the choice can't always be optimal. Choose
a font and size that gives good results on your monitor. K95G remembers your
choices and, absent instructions to the contrary, uses them next you start it.
INITIALIZATION AND CUSTOMIZATION FILES
[
Next ]
[
Previous ]
[
Top ]
- How do I edit my K95 customization file?
- Kermit 95 1.1.20 and earlier had all their files in one simple directory
tree, typically C:\K95, which made it very easy to find your K95
initialization and customization files. Subsequent versions changed to
the complex structure mandated by newer versions of Windows, in which the
program files go in one place, program data for all users goes in another,
and program data for each user goes in yet another. The names of these
places vary from one Windows version to another, and from one country to
another.
When people ask how to accomplish a certain customization, we give them a
command (or list of commands) to do it. The next question is invariably,
"where do I put these commands?" The answer is, "If you want them in effect
for all your K95 sessions, put them in your customization file," meaning:
edit your K95CUSTOM.INI file (with Notepad) to include the desired
commands. In K95 1-point-anything versions (i.e. K95 1.0 through 1.1.21),
you could find this file in the same directory as K95 itself, which would be
the following unless you went out of your way to install it in a different
place:
C:\K95\K95CUSTOM.INI
So in this case, to edit the file, give the following command in a CMD
("DOS") window:
notepad c:\k95\k95custom.ini
(or open the file from Notepad's File menu), edit it as desired, and save it.
But now where is it in K95 2.0 and later??? This is thoroughly explained in
the K95 Read Me document, but here is a
simple recipe for how to edit your K95CUSTOM.INI file, wherever it
is, in K95 1.1.21 or later. Start K95G or K95, then:
K-95> kcd appdata
K-95> run start notepad k95custom.ini
Remember, Kermit command files should be edited only by plain-text editors
such as Notepad, DOS EDIT, EMACS, or VI, not word processors like MS Word
or (unless you know what you're doing) Wordpad.
- How do I start K95 without any initialization or customization file?
- There should be a K95 GUI (or K95 Console) icon on your desktop. Make a
copy of it, calling the copy something like K95 NOINI. Right click on the
new icon, choose properties, and in the Target line, where it says something
like:
K-95> "C:\Program Files\Kermit 95 2.1\k95g.exe"
change this to:
K-95> "C:\Program Files\Kermit 95 2.1\k95g.exe" "-Y"
THE K95 DIALER
[
Next ]
[
Previous ]
[
Top ]
The Dialer is the graphical front end for Kermit 95. It is built using a
portable GUI builder that creates versions for both Windows and OS/2.
- Do I have to use the Dialer?
- No. If you are comfortable typing commands (or creating command files,
macros or scripts) for Kermit 95, you don't need to use the Dialer at all.
The Dialer is recommended to newcomers to Kermit, since it makes it easy to
set up any kind of connection. Some Kermit veterans prefer to use Kermit 95
directly.
- What happened to the nice entry notebooks
that we had in K95 1.1?
- All the new pages (SSH, GUI, FTP, etc) made the notebook too big for
Windows 9x/ME. For a detailed explanation
CLICK HERE.
- Why does it take a few seconds for the Dialer to start?
- Because:
- The portable GUI builder has some extra overhead (the Dialer runs on OS/2
too).
- The Dialer makes backup copies of its database files for your protection
every time it starts.
- How do I get rid of unwanted Dialer entries?
- You can not remove an individual predefined entry with the Remove button.
However you can hide all the predefined entries by going into the
Dialer's Options menu, selecting View, and then unchecking "Pre-defined".
If you want to keep some of the predefined entries, just edit the ones
you want to keep; this makes copies of them that are still visible even
if you uncheck Pre-Defined. NOTE: This question is largely irrelevant in K95
1.1.21 and later, in which all the old and mostly defunct predefined
entries (hundreds of them) were retired.
- What are all the .DAT files?
- Most of .DAT files in the Kermit 95 directory are used by the K95
Dialer:
- DIALER.DAT
- Contains the GUI screen definitions for the Dialer. It
must not be renamed or deleted. A particular version of K95DIAL.EXE
is keyed to a particular version of the DIALER.DAT file.
- DIALINF.DAT
- Contains the preloaded Dialer entries. This file is "read-only",
primarily because it contains templates that are used for constructing other
entries. (NOTE: In version 1.1.20 and earlier, this file contained hundreds
of BBS and Telnet sites that by now are defunct; these have been removed to
reduce the clutter – if you need them
send us e-mail.
- DIALORG.DAT
- (If any) Contains the preloaded Dialer entries for your organization.
This file can be created by organizations that have K95 bulk or site
licenses. Like DIALINF.DAT, this file is read-only.
- DIALUSR.DAT
- Contains (a) entries that you have added;
(b) preloaded entries that you have edited; and (c) the
information from your File and Options pages.
The remaining .DAT files are associated with the GUI setup and
registration programs.
- Why is my K95CUSTOM.INI ignored
when I launch a connection from the Dialer?
- Your K95.INI and K95CUSTOM.INI files are indeed
executed, but the commands that come from the Dialer are executed after them,
so when there is a conflict the Dialer settings override the
INI-file settings. Make sure your Dialing Options menu notebook contains the
desired settings, and also the notebook pages for the entries in question.
The primary purpose of the INI files in K-95 is for when you start
K95.EXE without the Dialer (or for key or macro definitions that
you always want to be in effect and that don't conflict with settings made
in the Dialer). As a last resort, you can enter commands
into the Login Script text box in the Dialer entry – the commands in this box
are executed last.
STARTING, STOPPING, AND PASSING ARGUMENTS TO
KERMIT 95
[
Next ]
[
Previous ]
[
Top ]
- Why does Kermit 95 take a few seconds to start?
- K95.EXE can take a while to start because:
- K95 performs a census of all the DLLs it needs to use – TAPI,
Kerberos, OpenSSL, Zmodem – and then adapts itself automatically when
any of the DLLs or required entry points within them are missing, rather
than just crashing like most other applications would do.
- One user found that a 2.5-minute startup delay was due to a new
Bluetooth installation and found that "If I stop my Bluetooth device, Kermit
immediately 'boots' when started. After Kermit starts, I enable Bluetooth
again and all is okay. I'm not sure why this is a problem except, I think,
Bluetooth wants to own all unused ports." Later this was confirmed:
"I removed my HP / Widcomm Bluetooth stack and replaced it with a Toshiba
Bluetooth stack. I no longer have the problem of Kermit having a
several minute delay to 'boot' unless Bluetooth is temporarily disabled.
(I do have other problems with this new stack but, at least, it doesn't
interfere with Kermit.)"
- If a SET PORT TAPI (Microsoft Telephony)
or other TAPI-related command appears in your
K95CUSTOM.INI, TAPI must be initialized, which takes some time,
especially if your modem is turned off or not connected.
- An incorrect DNS configuration on the PC might cause the Kerberos
DLL to take a long time trying to initialize itself.
- The initialization and customization file(s) are read unless you have
started K95 with the "-Y" command-line option.
- Lack of physical memory might require that Windows 95 allocate swap space
on the hard disk.
If you use K95 to make different types of connections, not just TAPI, take
the TAPI-related commands out of your K95CUSTOM.INI file.
The following command-line options can be used to tell K95 not to load certain
DLLs; this can speed startup:
- -# 2: Do not load Network DLLs (such as Winsock).
- -# 4: Do not load TAPI DLLs (for dialing out).
- -# 8: Do not load Security DLLs (for Kerberos, OpenSSL, encryption).
- -# 16: Do not load XYZMODEM DLLs (for XYZMODEM file transfer).
These numbers are powers of 2, representing single bits, and can be added to
form a "bit mask" of options. Thus "-# 30" means don't
load any of the above. On a 90 MHz PC, starting K95 1.1.16 with "-#
30" took about 1 second; without it about 4 seconds. You can omit
the network DLLs if you will not be making network connections. You can omit
TAPI if (a) you will not be making dialout connections, or (b)
you will be using COM1 or COM2 directly rather than the TAPI modem device
(i.e. the Control Panel name for the modem).
You can omit Kerberos DLLs if you will not be making secure connections with
Kerberos authentication. You can omit the XYZMODEM DLLs if you will not be
transferring files with XMODEM, YMODEM, or ZMODEM.
- Kermit 95 won't start at all!
- Sometimes it seems that Kermit 95 "just sits there" when you start it
for the first time after installing it, showing a blank black screen, or a
toolbar and menu bar with nothing below it. In some cases this happens only
on unprivileged user accounts, whereas K95 starts normally on accounts with
Administrator privilege. This problem is frequently reported when
running Kermit 95 on a remote desktop via Windows Terminal Services.
Diagnosis:
Part of Kermit 95's startup sequence is to query Microsoft Telephony (TAPI)
to obtain a list of installed modems, as well as area and country codes and
other dialing information. If the machine's Phone and Modem options in the
Control Panel have not been set and the user does not the necessary
privileges to set them (as is usually the case with Terminal Server), then
Kermit 95 will hang for almost two minutes on startup while the Telephony
API attempts to initialize its state. This is true on any machine, not just
Terminal Server.
Cure:
When installing Kermit 95, the Administrator should ensure the machine's
Phone and Modem Control Panel settings are filled in appropriately. About
Terminal Services, one user also comments, "I used the setup launch icon
from the kermit setup directory while logged in as Administrator [but]
apparently, when using Terminal Services, most (if not all) applications
need to be installed using Add/Remove Software, otherwise it misses some
setting which I have no clue about."
- K95 won't start because "Cannot create crypto provider service"
- The PROV_RSA_FULL Cryptographic Service Provider, which is one of the
sources of randomness used to secure SSL/TLS and SSH, is either not installed
on your machine (when it should be) or is inaccessible to your account.
If you get this message, first make sure you have the
current release of K95; if not,
upgrade.
- Why does it take K95 several seconds to exit?
- K95.EXE might take a while to exit because:
- K95 is careful to release all resources that it allocates.
- K95 is careful to close connections properly instead of
just killing the subsystems (TAPI, Winsock, ...)
It can take Windows 20-30 seconds to release the TAPI device if your
modem is disconnected or powered off. When it is connected and turned on,
it still can take 5-10 seconds. That's Windows, not Kermit, being slow.
If you can use the SET PORT COMx / SET MODEM TYPE xxx interface
instead of the TAPI one (which is possible only for standard COM ports, not
Winmodems, etc), opening and closing of modems will be faster.
- How can I make K95 start in a given screen location?
- The GUI version (K95G) accepts --xpos: and --xpos:
command-line options. Arguments are in pixels and so depend on your PC's
graphics resolution. You can put these in a .bat file or a
shortcut.
The GUI version also has a SET GUI WINDOW POSITION x y command to
let you specify the screen location in a script.
You can also specify the startup location for any connection in your Dialer
database, on each entry's GUI Settings page.
- How can I run a K95 script with arguments?
- From a command window or Batch file:
k95 scriptfilename = arg1 arg2 arg3 ...
The equal sign (=) is necessary. arg1 becomes \%1;
arg2 becomes \%2, etc. Note that you can not pass
arguments on the command line if you invoke the script directly:
scriptfilename.KSC arg1 arg2 arg3 ...
scriptfilename.KSC = arg1 arg2 arg3 ...
Neither one of these forms works because Windows does not pass the arguments
along when the application is invoked through the filename extension of a
"data file" (.KSC in this case).
Specify the full pathname of K95 (or K95G) if it is not in the PATH.
Specify the full pathname of the script file if it is not in the current
directory.
In a shortcut to K95 or K95G you can put the script file name and arguments
after the Kermit 95 executable name in the Target box of the Shortcut
properties.
In a shortcut to a Kermit 95 script file, you can put the arguments to the
script after the script file name in the Target box of the Shortcut properties.
From the Kermit 95 prompt, or within a Kermit 95 script, you can use the TAKE
command, followed by the script file name, followed by its arguments.
- How can I mix K95 arguments and script arguments on the command
line?
- Give the script file name as the first command-line argument. Then
the K95 command-line arguments. Then an equal sign (=), and finally the
arguments for the script. Example:
k95g oofa.ksc --xpos:500 --ypos:500 = "This is script arg 1" scriptarg2
- How can I run a K95 script by clicking on a URL?
- Just make sure the script file name ends in ".ksc". Then use a
URL (ftp:, http:, file:,
whatever) that points to the script. Examples:
ftp://ftp.kermitproject.org/kermit/scripts/helper.ksc
- How can I start K95 minimized?
- You can do this in a Shortcut – edit the properties and Choose
Minimized (Console version only, not GUI). You can also start the Console
version minimized with the Windows command START /MIN. This is useful for
running Kermit scripts that don't need to interact with the user:
@start /w /min "C:\Program Files\Kermit 95 2.1\k95.exe" scriptname = args...
K95 2.1.3 and later also have a --minimized command-line option
(--maximized too).
- Can I run K95 in a shell window of Windows EMACS?
- Yes. You have to use the Console version (K95.EXE,
not K95G.EXE). Start it like this (96 = 32 + 64, the codes for
"use standard input" and "use standard output"):
k95 -# 96
You can use it to make any kind of connection that you could make from
a regular window: Telnet, SSH, Dialout, FTP, etc, and you can transfer
files over the connection in the normal way.
The only fly in the ointment is that your keystrokes are read by EMACS, not
K95, and EMACS intercepts Alt keys, F keys, and all Control characters, and
furthermore, doesn't pass your keystrokes to Kermit until after you press the
Enter key, so command-line editing (e.g. Ctrl-U), completion (Esc or
Tab), ?-help, etc, don't work as they do when K95 has "direct access" to
the keyboard. Escaping back from CONNECT mode is a bit tricky too; you have
to type:
Ctrl-Q Ctrl-] c CR
That's Ctrl-Q followed by Ctrl-Rightbracket, then the letter C, then press
the Enter key. In fact, every control character is intercepted by EMACS,
so to pass it through to Kermit you have to quote it with Ctrl-Q, and you
probably also have to hit Enter afterwards.
And of course, when K95 is using stdio, there is no terminal emulation,
so you can't (for example) run EMACS in your CONNECT session to the host
:-)
But on the plus side, your CONNECT session is an EMACS buffer, so you
can move around in it, edit it, etc, with regular EMACS commands.
[
Next ]
[
Previous ]
[
Top ]
- The Two Ways to Access a Serial Port or Modem
- DOS veterans are accustomed to addressing serial ports (and modems
through them) as COM1, COM2, etc, and to some extent Windows supports this
model, at least when the PC actually has a real serial port. Increasingly,
however, serial ports are becoming more abstractions than actual hardware,
and Windows' DOS-like COM-port driver tends not to work with them:
Winmodems, USB ports or modems, etc. The native Windows model for accessing
serial ports and modems is called TAPI (Telecommunications Application
Program Interface). You should be able to refer to any Windows serial port
or modem through its Control Panel name. All TAPI devices are listed in
the Modems tab of the Phone and Modem Options folder of the Windows
Control Panel. A TAPI device is referred to in Kermit 95 by the name listed
there, but with all spaces replaced by underscores.
Kermit 95 lets you use either the DOS-like interface or the TAPI interface.
The rule of thumb is: if one doesn't work, try the other. Example:
DOS-Like Method
| TAPI Method
|
set modem type usrobotics
set port com1
set speed 57600
dial 18007654321
| set port tapi Courier_V.Everything_EXT_PnP_(V90-x2)
set speed 57600
dial 18007654321
|
If you have only one TAPI device, that is the default device name for the
SET PORT TAPI command; in that case you don't have to spell out the device
name, you can just use:
set port tapi
For more about TAPI, consult the document
TAPI - Microsoft Telephony included with the Kermit 95:
Help→Kermit 95 Manual→TAPI Command Reference
plus the other relevant items in this section, especially the next two:
- How do I connect Kermit 95 to another device
that's not a modem?
- Such as router, a microcontroller, some piece of medical or factory-floor
equipment. If you are trying to connect K95 to a
Cincinnati Press Brake
machine, CLICK HERE.
If you are trying to connect K95 to an HP Calculator,
CLICK HERE.
- You will need the appropriate cable, with the
right connector on each end (9-pin or 25-pin or whatever), the right gender
(male or female), and with various wires crossed, at minimum Receive and
Transmit, rather than straight through. This is called a NULL MODEM cable,
in contrast to modem cable, which is used to connect a computer or terminal
to a modem, in which all the wires are straight through. Presumably the
maker of the device will provide information about the required cable. If
you can't get a null modem cable, you can use one or two modem cables plus a
Modem Eliminator (also called a Null Modem Adapter) of the appropriate shape
and genders. CLICK HERE to read more about null
modem cables and modem eliminators.
- Connect the PC to the device with the null modem cable.
- Start K95G.EXE and give it the following commands:
set port com1 # Or COM2 or whatever the port is
set carrier-watch off # Assume there is no carrier signal
set flow none # Assume there is no flow control
set speed 9600 # Or whatever the speed has to be
connect # Begin terminal emulation
If the "set port" command gets an error messages, then read the next
sections. Otherwise now you're in the (usually blue) "terminal screen". If
you press the Enter key, you should see an intelligible response from the
device – a login or other prompt, a menu, or somesuch. If not:
- Maybe the PC port your cable is plugged in to is not the one you think
it is. If you tried COM1, try COM2, and vice versa.
- Maybe the speed is wrong. Try different speeds: 1200, 2400, 4800,
9600, 19200, 38400, 57600.
- Maybe the port on the device is not configured for interaction.
Check the documentation for the device.
- Maybe the
cable is not appropriate, or is loose, or has
broken or missing wires.
There are many tools and techniques you can use for troubleshooting –
breakout boxes, loopback connectors, data scopes, etc – but
that's beyond the scope of this document. See, for example, Appendix II
of Using C-Kermit.
- Can I Use K95 with a USB modem?
- In most cases, yes. It requires a driver from the vendor so that
the modem shows up either as a serial port or a TAPI device (see the
first item in this section).
- If the driver is emulating a serial port, you'll need to find out which
port number it is using: COM1, COM2, COM3, ... You can do this by
giving SET PORT commands at the K95> prompt; for example:
[C:\Users\fdc\tmp] K-95> set port com1
Sorry, can't open connection: com1
[C:\Users\fdc\tmp] K-95> set port com2
Sorry, can't open connection: com2
[C:\Users\fdc\tmp] K-95> set port com3
[C:\Users\fdc\tmp] K-95>
In most cases, the port number will be 3 or higher since COM1 and COM2 are
usually reserved for real serial ports. If the SET PORT command does
not produce an error message, you might have identified the simulated serial
port used by the USB modem. You can check this by watching the modems and
giving a HANGUP command to Kermit:
[C:\Users\fdc\tmp] K-95> hangup
The DTR light should go off for about a second. You can also check the
modem directly by entering the Terminal Screen as follows:
[C:\Users\fdc\tmp] K-95> set speed 57600
[C:\Users\fdc\tmp] K-95> set carrier-watch off
[C:\Users\fdc\tmp] K-95> connect
And then type AT (uppercase letters A and T) and press enter. You should
see either "OK" or "1" on your screen. You can return to the Command Screen
by clicking the little button with two arrows
in the toolbar.
- If the USB modem driver installs the modem as a TAPI device, you should
be able to see its name if you:
[C:\Users\fdc\tmp] K-95> set modem type tapi ?
or if you look in the Control Panel under Phones and Modems.
- Can I Use Kermit to Connect Two PCs by
Their Serial Ports?
- Yes. You need a
null modem cable, as described in the previous item.
Then start Kermit 95 on each PC, give an appropriate SET PORT command to
each copy of K95, set each port to the same speed, and give a CONNECT
command to each. At this point, whatever you type on one PC's keyboard
should appear on the other PC's screen. This demonstrates a successful
connection. At this point you can (for example) put one copy in server
mode, and give client commands to the other copy, or write a script for the
client, in which it gives commands to the server, whatever you want. (Read
the next few items about SET PORT commands.)
- SET PORT COM1 doesn't work!
- There are several possibilities. The most obvious one is that you
have plugged your cable into (say) COM2 but you have told Kermit to use
(say) COM1. The COM ports are not labeled on some PCs, so trial and error
will be necessary. Try SET PORT COM1, and if that doesn't work, SET PORT
COM2, SET PORT COM3, and so on. You can also look in the Control Panel
to see what COM ports are actually defined on your PC (the dialog may
vary from one Windows version to another):
Control Panel
→
System
→
Hardware tab
→
Device Manager
→
Ports
Another possibility is that some other process has the desired port open
already; Windows won't let Kermit open it at the same time.
Let's assume you have a cable connecting your serial port to another
computer or to a modem, and that is is the
appropriate kind of cable (null
modem or modem, respectively), and no other process is using it. If the SET
PORT command identifies the physical port you are using, then SHOW COMM
should say that at least one of the following modem signals is "On": DSR,
CTS, or CD. Example:
[C:\tmp\] K-95> set port 1
[C:\tmp\] K-95> show comm
Communications Parameters:
Port: com1, speed: 1200, mode: local, modem: generic
Parity: none, stop-bits: (default) (8N1)
Duplex: full, flow: rts/cts, handshake: none
Carrier-watch: auto, close-on-disconnect: off
Terminal bytesize: 8, escape character: 29 (^])
Priority: regular
Carrier Detect (CD): Off
Dataset Ready (DSR): On
Clear To Send (CTS): On
Ring Indicator (RI): Off
Data Terminal Ready (DTR): (unknown)
Request To Send (RTS): (unknown)
[C:\tmp\] K-95>
In that case, you probably have the correct port and now you can start
experimenting with the speed, flow control, and parity. If they are all Off
or Unknown, you probably have the wrong port or the wrong kind of cable (modem instead of null modem, or
vice versa). HINTS:
- If CD is Off, you have to tell Kermit to SET CARRIER-WATCH OFF before
you can use the connection (see manual for explanation).
- If CTS is Off, you have to tell Kermit to SET FLOW NONE or SET FLOW
XON/XOFF, otherwise communication will not be possible (see manual).
- When changing COM ports, you have to re-issue your SET SPEED, SET FLOW,
and SET CARRIER-WATCH commands because these settings are particular to each
port. Give the SET PORT command first, then the settings that go with that
port, e.g.:
SET PORT COM2
SET SPEED 9600
SET FLOW NONE
SET CARRIER-WATCH OFF
CONNECT
A second possibility is that the port on the other computer is not
configured to do anything. For example, if it's a Unix computer, you have
to configure it for logins, or else you won't see anything when you connect
to it. See previous item in this FAQ.
A third possibility is that the port is a Windows-only device that can't be
accessed through the COM port drivers because the underlying hardware (if
any) is not the same as a real COM port, so you have to use the native
Windows software interface, called TAPI, rather than the direct device
("DOS") interface to access it. So, for example, rather than:
SET PORT COM1
you might have to use:
SET PORT TAPI Communications_cable_between_two_computers
Look in the Control Panel's Modems folder and see what's there (in Windows
XP, it's the Phones and Modems folder, and then you have to choose the
Modems tab). Look at the list of modems. Do you see "Communications cable
between two computers"? If so, try the SET PORT TAPI command shown just
above. If not:
- Click the Add button.
- When the Wizard appears, click the check box that says "Don't detect my
modem..."
- Click Next.
- Under (Standard Modem Types) you should see:
Communications cable between two computers
listed; select this and then click Next.
- Choose the COM port you want to use (such as COM1), then click Next.
- Once the Wizard completes, click Finish, you should see the new item.
- Close out of the Phone and Modem options, close Control Panel.
Finally, if you have more than two COM ports, or a serial mouse, or any
other devices that use IRQ 3 or 4, you might also have an interrupt
conflict. Solving PC interrupt conflicts is WAY beyond the scope of this
document.
- Kermit vs TAPI Dialing
- There are two ways to dial TAPI modems. The default method is to have
the Windows Telephony (TAPI) subsystem configure and dial the modem (SET
TAPI MODEM-DIALING ON). If you want Kermit to dial the modem itself
(or you want to interact with the modem by hand in CONNECT mode) you must
tell Kermit to SET TAPI MODEM-DIALING OFF before you open the port:
SET TAPI MODEM-DIALING OFF
SET PORT TAPI device-name
SET SPEED 57600 # Or other desired speed
DIAL number
Or if you want to dial the number by hand:
SET TAPI MODEM-DIALING ON
SET CARRIER-WATCH OFF
SET PORT TAPI device-name
SET SPEED 57600 # Or other desired speed
CONNECT # Enter terminal screen
AT # Now maybe you can type modem commands
OK
By-hand dialing is not guaranteed to work with TAPI modems. Who knows,
maybe the modem and its driver use some secret dialing protocol instead of
AT commands.
For a variety of reasons, one dialing method might work when another one
doesn't. If TAPI dialing doesn't work, try Kermit dialing. And vice versa.
- Will K95 Let My PC Accept Incoming Calls?
- Normally you can't dial and log in to Windows and get a text-based shell
like you can do with VMS, Unix, and other conventional operating systems
– Windows was not designed to allow that. But you can still set up
Kermit on Windows to accept incoming calls and provide a file-transfer and
management service. There are various ways to do this, of which the most
user-friendly, called host mode, is described HERE and, in more
detail, in Chapter 9 of your Kermit 95 manual (Help → Kermit
95 Manual →
Chapter 9: Host Mode).
You can also write a Kermit script that awaits and handles incoming
calls. Here's a simple example:
set port tapi # Or "set port com1", "set modem type usr", etc
set speed 57600 # Or other speed
set flow rts/cts # Always use hardware flow control if available
set carrier-watch auto # (see below)
disable cd # (if desired) Don't let client change server directory
while true { # Loop to wait for any number of calls
cd some-directory # Change to desired directory
answer 0 # Wait for call to come in
if success server # If answered successfully, enter server mode
}
SET CARRIER-WATCH AUTO means that Kermit does not require a carrier signal
from the modem while waiting for a call to come in, but then requires the
carrier signal after the call is answered so it can detect a disconnection
and automatically exit from server mode and go back to await another call.
Meanwhile, the ANSWER command automatically hangs up the phone and resets
the modem before putting the modem into answer mode.
Obviously many variations and refinements are possible; for example, you can
DISABLE SEND to allow only uploads, or DISABLE RECEIVE to allow only
downloads.
Suppose the script shown above is named ANSWER.KSC. The
".KSC" filetype associates it automatically with Kermit 95, so
you can "run" it the same way you would run any program – double-click on
its icon or shortcut, put it in your Startup folder, put it in the System
Startup folder, type its pathname at a CMD prompt, add it to your Start
menu, etc.
- Should I Use Host Mode or an ANSWER Script?
- Host Mode lets people dial up your PC and interact with a menu, whereas
the ANSWER script above is strictly for file transfer, and suitable for
automated transfers. The ANSWER script requires no authentication, whereas
host mode requires you to set up a multiple-user pseudo-user-ID/password
system, in which each user must give a username and password to get the
menu. The tradeoffs – simple ANSWER script versus Host Mode – are many,
but remember, both are just scripts. You can change them to do whatever you
want, or write your own. The basic mechanism for accepting incoming calls
is shown in the ANSWER script above; whatever else you want to do is up to
you.
- Can I Always Have Host Mode (or an ANSWER Script) Running?
- The simplest way to do this is to put the script in the System
Startup folder, e.g. HOSTMDM.KSC or ANSWER.KSC. Make sure
the script does not require interaction from the PC keyboard. If you don't
want the Kermit window showing you can include the appropriate command-line
option for that, as described HERE, e.g.:
"C:\Program Files\Kermit 95 2.1\k95g.exe" "path of script" --minimize
On Windows NT, 2000, and XP, you can make any application into a Service.
Go to the
Microsoft
Download Center and search for the Resource Kit that goes with your
version of Windows. Within the kit you will find a program called
SRVANY.EXE and a Microsoft Word documentation file call SRVANY.DOC.
Follow the directions provided in SRVANY.DOC for installing a
non-service as a service. If you want to run a Kermit script as a service,
you have to put the scriptfile pathname as the first argument to the
pathname of the Kermit 95 executable (as shown above) in the service setup
dialog. Also include "-# 128" (Do not terminate process in
response to Session Logoff, "help options -#"). Example:
path\k95g.exe scriptfilepathname -# 128 [ = any parameters for script... ]
- My connection is horrible, my scripts don't work
- We often get complaints that a dialup script that worked correctly on
one PC fails miserably when run on another PC. The answer is usually that
the new PC does not have a real and properly functioning modem; instead it
has a cheap simulated modem, or "Winmodem", explained
HERE. Serial-port / modem communications can't be
expected to work well unless your PC is equipped with a reliable internal
modem, or a true buffered serial port (16550A UART) and a reputable external
modem. "But" (you say) "Internet connections with the same modem work fine!"
That's an illusion. The modem is getting gobs of errors but you don't see
them because TCP/IP hides them from you; the only effect you see is slowness
caused by repeated retransmissions.
Problems with Winmodems surface most frequently during script execution (as
opposed to online interactive sessions) because OUTPUT commands can
overdrive the Winmodem. Winmodems don't expect fast output from the PC but
typing (at 10cps or less) doesn't bother them. You can work around this
problem by adding a SET OUTPUT PACING command to your script to slow down
the rate at which OUTPUT sends characters to the modem.
- My connection fails with "ttsetspd failed"
- When you make a connection with a modem, the modem reports the connection
speed with a message like "CONNECT 31000". Usually this is the speed between
the two modems, not the speed between your modem and your PC. In some cases,
however, it can be the speed between your modem and your PC, depending
on your modem make and model and configuration. In that case, Kermit has to
change its interface speed to match the one reported by the modem. The
classic example is the Hayes 2400 SmartModem – if you dial it at 2400 bps,
but the other modem supports only 1200 bps, your modem has to drop its
speed down to match. This was many years ago, before the days of hardware
flow control and "speed buffering". Nevertheless, Kermit has a setting to
provide for this behavior, since some people still need it. The setting is:
set modem speed-matching { on, off }
SPEED-MATCHING ON means that Kermit should change its interface speed to
match what the modem reports. Of course this setting is OFF by default for
compatibility with modern modems.
The problem happens when Kermit's SPEED-MATCHING setting in ON but the
modem is not really changing its interface speed. Then Kermit tries to
change its interface speed to the one reported in the modem's CONNECT
message. If it succeeds, you won't have any useful communication because
the two interfaces are set to different speeds. If it fails
("ttsspd failed") it's because the reported speed (e.g. 31000) is not a
legal interface speed (you can get a list of legal interface by typing
"set speed ?" at the K-95> prompt).
The "ttsspd failed" problem happens most commonly when you SET PORT TAPI to
use Microsoft's built-in modem database, but the database erroneously calls
for speed matching. The solution is to tell Kermit to SET MODEM
SPEED-MATCHING OFF after you have selected the TAPI modem:
set port tapi
set modem speed-matching off
- Can K95 dial my ISP?
- Because of Kermit 95's flexibility and programmability, many people ask
us if there is a way that Kermit 95 can be used to make Dial Up Networking
connections, in place of the standard Windows way. A variation on this
question is: since Kermit can make modem calls, can I use it to make dialed
connections to FTP servers? Unfortunately, the answer is no; Microsoft does
not provide a way to let an application make a connection to a PPP or SLIP
or FTP server (or Microsoft Windows Terminal Server) and then turn the
connection over to the TCP/IP (or other network protocol) stack. The only
way in Windows 95/98/ME or NT/2000/XP to make a dialup networking connection
is with the built-in Dialup Networking dialer or (in Windows NT) RAS. OS/2, on the
other hand, allows this and Kermit 95 for OS/2 has this feature for both PPP
and SLIP.
- How do I use K95 with Cincinnati press brake machines?
- We have a whole FAQ for just this topic;
CLICK HERE to read it.
- How can I make credit-card calls?
- This applies when you have defined a dialing location in TAPI that includes
a credit card number.
If you are using the K95 Dialer:
- In the Dialer's main menu, choose Options.
- Choose Dialing.
- Make sure that both TAPI Modem Dialing and TAPI Phone Number Conversions
are checked.
Then when placing a call, make sure:
- Your current modem is a TAPI device (not COM1, COM2, etc).
- Your current location is the one with the credit card information.
- The phone number is portable format, e.g. +1 (212) 7654321.
If the phone number is not in portable format, neither Kermit nor TAPI will
be able to apply any prefixes or suffixes, including the credit card number.
(This process is referred to as "Phone number conversions" in the menus.)
To create a new TAPI Location that uses a Credit Card:
- In the K95 Dialer choose "TAPI->Dialing Properties..."
to display the dialog box.
- Click on the "New" button to create a new entry.
- Fill in the appropriate "area code" and numbers to use for
getting an external line
- Check the "Dial using Calling Card" box and then press "Change"
- Select the appropriate Calling Card company and service from
the list.
- Fill in the Calling Card number.
- Close all the dialogs to return to the K95 Dialer.
- To make the new location the active location, use the
"Location->Current->" list to check the new location.
Now when you dial, these dialing rules – including the calling card
number – will be used.
- Can K95 make connections through the parallel port?
- In Windows NT, no; in Windows 95, 98, ME, 2000, and XP, yes. In Windows
NT, it is not possible to "set port lpt1" – i.e. to use a parallel port as a
communications device, because bidirectional parallel ports are not supported
by the NT drivers. But they are in Windows 95, 98, ME, 2000, and XP, which
include a COM-to-LPT interface. So in those Windows versions, you can:
SET PORT LPT1
(or other parallel-port device). Only DOS names are allowed. Parallel ports
(like Serial ports) are not automatically installed as TAPI devices since they
are not modems. If you want a parallel port installed as TAPI device you must
manually install it as a "Direct Serial Connection" device.
- Can K95 use dialout modems on Telnet terminal servers?
- Yes, this has always been possible. The command sequence is:
set host hostname port
set modem type name
...
dial phone-number
However, since the modem is at the other end of a Telnet connection, you
would not normally be able to control its serial-port settings. But if the
terminal server supports
RFC2217
Telnet COM Port Control K95 can do everything it could do with a local
PC COM port: set the serial port interface speed and flow control method,
sense modem signals, control the DTR signal, send BREAK, etc.
- Can K95 be used with ADSL modems?
- ADSL modems are generally used to make Internet connections.
Kermit 95 can be used as a Telnet, SSH, Rlogin, FTP, or HTTP client over
any Internet connection: SLIP, PPP, ADSL, DSL, Ethernet, you name it.
But it doesn't access the network device directly, it goes through the
Windows network stack.
- Does K95 work with Novell NASI modem sharing?
- K95 works with any software that provides a TAPI interface or a COM port
interface, and should work with any software that exports a Win32 device name.
According to the Novell Support Website,
http://support.novell.com/
on 24 July 1998,
"In order for NT to access the modem pool, WIN2NCS version 2.11 must be
used. . . .
Windows NT is now supported. However, there is still an issue with
the interaction of Win2NCS with Microsoft's TAPI which may cause
problems with Host mode on some Remote Control applications. This is
currently under investigation."
(The download link provided for WIN2NCS no longer works.)
One user reported trouble using NASI until they selected "use hardware
flow control always" in the NASI Workstation Global Settings configuration
dialog.
- Can K95 be used with ISDN?
- ISDN (Integrated Services Digital Network)
is a digital alternative of the analog telephone system.
CLICK HERE for an
ISDN tutorial. Kermit 95 can be used with ISDN in the following ways:
- Kermit 95 works with any ISDN connection that provides TCP/IP services.
In this case, K95 is simply a Telnet or Rlogin client, as it would be on any
other kind of TCP/IP connection.
- Kermit 95 works with any ISDN device that provides a Windows Telephony
Service Provider Interface (TSPI). In this case, Kermit can place ISDN calls
using TAPI. Example: the AVM Fritz!Card with CapiPort driver, or the Teles
X.75 Modem TAPI device for Windows 95.
- Kermit 95 works with any ISDN device that provides a 32-bit COM-port
emulator, such as the version of Teles CAPI for Windows NT.
Kermit 95 does not include a direct CAPI interface.
NETWORK CONNECTIONS
[
Next ]
[
Previous ]
[
Top ]
- Will K95 let my PC accept incoming network connections?
- Yes. The preferred method for this in Windows NT, 2000, and XP is
to install K95 as an Internet Kermit Service, explained
HERE. You can also use host mode, which
can be used in Windows 95/98/ME as well as NT/2000/XP, and is explained
HERE. You can also execute a command such as:
set host /server * 3000
to tell K95 to wait for an incoming TCP/IP connection on port 3000 (or other
port) and then automatically enter server mode when the connection comes in.
- How do I tell which network interface to use?
-
On PCs that have more than one network interface (e.g. one for DSL to
the outside world, another for a local network) you can force K95 to use a
particular one with the SET TCP ADDRESS command, specifying the address
that is associated with the desired interface.
In the Dialer on TCP/IP Settings page you will find a checkbox labeled "Use
Default IP Address on Local Machine". If you uncheck the box, you will be
allowed to specified an address which Kermit 95 should bind to when
establishing connections.
Under almost all circumstances there will be no reason for you to use this.
The only reason you should use this is if you have multiple network adapters
which each can route to the destination address. For instance, you have a
direct path and an alternate path over a VPN connection and the VPN software
has not properly configured the routing tables to make the VPN be the
default. Then you could enter the IP address assigned to the VPN and Kermit
95 will ensure that it uses the VPN for outbound packets. (However, Kermit
95 cannot force inbound packets to be delivered via the VPN.)
- Kermit 95 Won't Connect to Certain TCP Ports
- Kermit does not disallow connection to any TCP port. If the connection
is failing (but connections to other ports succeed) it is being blocked by
something outside Kermit. This could be a firewall anywhere along the path
from your PC to the ultimate destination. In your own PC, you might find
your Internet Connection Firewall or antivirus product (such as McAfee
ViruScan Enterprise) is blocking connections to certain ports, such as 25,
which is not unreasonable in these times of e-mail viruses.
- Can Kermit 95 dial my PPP (or SLIP or ADSL) connection?
- In OS/2: yes. In Windows, no. Windows provides no mechanism for a user
application to turn a modem connection over to the Windows TCP/IP stack. This
question is answered in more detail in the previous
section.
- Can Kermit 95 be the Telnet helper for my Web Browser?
- Yes. This gives you many advantages over the regular Telnet program.
Just to name a few: you can transfer files while in your Telnet
session; you have more and better terminal emulations to choose from;
and you have colors, scrollback, key mapping, and local printing.
Simply point your Browser at the TELNET.EXE program in the Kermit 95
directory instead of at regular system Telnet.
- Why does Dialup networking pop up whenever I make a
Telnet connection?
- This is not a Kermit problem – the same thing would happen with any
Internet application, such as Microsoft Telnet or FTP. To fix: open your
Windows 95 Dial Up Networking folder (should be in your "My Computer"
folder), go to Connections .. Settings .. General and choose "Don't
prompt to use Dial-Up Networking".
- Why does my Dialup Networking Connection freeze occasionally?
- Most likely because you have "Allow OS to power down the NIC to save
power" checked in the Control Panel.
- How can I force the Telnet server to issue a login prompt?
- When K-95 is used to Telnet to a host that whose Telnet server supports the
TELNET NEW-ENVIRONMENT option or certain other options, K-95 sends your
Windows user ID automatically, unless you have done something to prevent this
from happening. In this case, the host does not prompt you for a user ID, but
just a password.
If your Windows user ID is the same as your ID on the host you are Telneting
to, you only need to supply your password on the host, since it already has
your user ID.
However, if they are not the same, or if you want to ensure predictable
behavior, e.g. in a script program, you can instruct K-95 not to send your
user ID with the command:
set login userid
(without a user ID). Then the host will give its normal login: or
Username: prompt. Put this command in your K95CUSTOM.INI
file or your script file, depending on where/when you want it to apply.
- How do I make secure Internet connections?
- Kermit 95 can make secure TCP/IP connections using SSH v1 or v2
(K95 1.1.21 and later), SSL, TLS, Kerberos 4, Kerberos 5, and
Secure Remote Password (SRP) (CLICK HERE
for information about secure Telnet servers). The secure connection methods
are documented in the Kermit 95 Manual and in several supplementary documents.
Secure connections are usually configured by network administrators rather
than end users; consult your network administrator to see what forms of
security are available at your site and to find out how to configure Kermit 95
to use them if they are among the methods supported by K95. If you are
the network administrator and you need assistance, send email to support@kermitproject.org.
CLICK HERE for details about Kermit's security
methods.
- Why doesn't K95 support SOCKS5?
- Although SOCKS5 is an open protocol (RFC 1928), the
SOCKS5
reference implementation must be licensed for use, which would drive the
cost, and therefore the price, of K95 up considerably. To add SOCKS5 to K95
would require a new implementation be written from scratch, something we have
not had time to do. If you're a programmer and you want SOCKS5 added to K95,
feel free to do the work (by adding it to C-Kermit; K95 shares the same
network code); if you're interested in doing this,
send us e-mail.
- Can I make Kerberized Telnet connections through a Network Address
Translator (NAT)?
- An addressless ticket is required. But the version of MIT Kerberos for
Windows which ships with Kermit 95 does not support addressless tickets in
the Leash ticket manager. Future upgrades of Kermit 95 (when available)
will include versions of MIT Kerberos for Windows which do. The first
version of KfW to support addressless tickets is 2.5. You can download a
zip file of the KfW binaries from
http://web.mit.edu/kerberos/.
The MIT binaries must replace those installed in the Kermit 95 program
directory.
- Can I use Kerberized FTP through a NAT?
- No, Kerberized FTP uses channel bindings. You cannot successfully use it
over a NAT. This is a limitation of Kerberos protocol design.
Also see: The FTP Client FAQ and
Integrating Kermit 95 with Other Applications.
TERMINAL EMULATION
[
Next ]
[
Previous ]
[
Top ]
- Why Does My VT220 or VT320 Session Get Stuck?
- Short answer: It's a conflict between the VT220/VT320
architecture, which is designed to work with character sets that follow the
ISO standard structure, and Microsoft character sets found in emails and
other text originating from Windows that violate that structure. When
Kermit 95 seems to be hung, look in the status line in the bottom of the
screen and you will see something like "DCS String" on the right. Kermit is
waiting for the rest of the DCS string, which, if you are reading
Microsoft-style text, will never come.
- To clear this condition, use
Alt-R to reset the terminal emulator.
-
To avoid it altogether,
change Kermit's terminal character set from Latin-1 (ISO 8859-1) to CP1252.
Longer answer:
In the modern age, in which all the hard-fought standards of past decades
have flown out the Window, I've had to switch from Latin-1 as my normal
character set to CP1252, in order to keep my terminal emulator from getting
wedged hundreds of times a day by "smart quotes" and other atrocities
stuffed into the C1 control area. Sad to say, ISO 8859-1 and the other ISO
Latin alphabets are next to useless now in the terminal-host environment
because of Microsoft code page pollution. (It's fine that companies have
their own proprietary code pages, but these should not be used for
interchange on the open network, but too bad, it's already happened; the
Internet is full of this stuff, and to make matters worse, as often as not
it's labeled as ISO-8859-x.)
This, in turn, makes the Kermit's emulation of DEC VT220 and VT320 terminals
problematic, because they were designed to use the 8-bit C1 controls of ISO
6449 and hosts that know about these terminals can and sometimes do use
those controls (VMS in particular).
This is especially unfortunate since K95's default terminal emulation is
VT320. New users will often find their very first terminal session getting
stuck or going crazy, which does not leave a very good first impression.
Just remember that terminal emulation means doing what a particular terminal
would do. If you were using a real VT220 (or 320, 420, or 520) terminal in
the same situation, it would become totally wedged in the same way (but with
less indication of why).
To adapt Kermit 95 to the new way of the world, change the character set
from Latin1 to CP1252 (or from any other Latin alphabet that you are using
to the corresponding
Windows Code Page). This, by the way, is something you could not do
with a real VT terminal! To change K95's terminal character set to CP1252:
- In the K95 GUI Toolbar, choose CP1252 in
the character-set combo box; or:
- At the K-95> command prompt, type the command
SET TERMINAL CHARACTER-SET CP1252 (which may be abbreviated
SET TERM CHAR CP1252); or:
- Put this command in your K95CUSTOM.INI
file; or:
- Add this command to any connection scripts that might need it; or:
- Choose CP1252 in the Character Set box of the Terminal page in the
Dialer entry for each connection where it is necessary.
VMS poses a particular problem because it is perhaps unique among host
platforms in actually using the standard 8-bit C1 control characters to
control the terminal. You can tell VMS not to do this with the following
DCL command:
$ SET TERM /NOEIGHT
This should inhibit VMS from sending 8-bit controls (in which case it sends
the corresponding 7-bit two-character sequences, such as ESC P instead of
DCS), but still allows the display of 8-bit text.
- How Do I Find Out What K95's Current Keymap Is?
- For some background on Kermit key mapping, see the K95 manual:
Toolbar → Help → Kermit 95 Manual → Contents →
Using the Terminal Emulator → Key Mapping
Here is a complete and current list of Kermit's "keyboard verbs" for each
terminal family:
http://www.kermitproject.org/kverbs.html
Kverbs start with \K, followed by a descriptive name, like
"\Kkp9", meaning "Send what the Numeric Keypad 9 key would send",
or "\Kdecf07", "Send what what the DEC (VT220/320) F7 key would
send".
The first group of Kverbs in the table are strictly local in function, such as
"\Kpaste", "\Kholdscrn", and the various local scrolling
keys that allow you to move around in K95's scrollback buffer.
Then come the Kverbs for each terminal family. In these lists, each Kverb
is shown together with the actual terminal key to which it corresponds, for
example, in the Wyse terminal section, "\Kwyreplace" corresponds to
the Wyse terminal Replace key.
In Kermit 95, you can see what a particular key is mapped to as follows:
- First make sure K95 is set to emulate the desired type of terminal.
You can make this selection on the K95 Toolbar (which also shows the current
emulation).
- Use Alt-x (if necessary) to get to the K95 command screen (the command
screen is shown above; it is usually white on black, with the K-95>
prompt visible, as shown).
- At the K-95> prompt type:
show key
and then press the desired key or key combination.
To find out what all the key assignments are at once use:
save keymap k95keymap.ksc
Now the file k95keymap.ksc (in K95's current directory) contains
the current key assignments (of course you could give this file any other
name you want, and you can put it in any directory you want). You can use
this file in conjunction with the Kverbs table to
find out which PC key corresponds to which terminal key. Once you know how
the keys are mapped, you can test them against your application and satisfy
yourself that they work. Then, if you wish, you can remap them to suit your
preferences, simply by editing the k95keymap.ksc file using a
plain-text editor such as Notepad. Read the next item for instructions on
loading a keymap.
- How Do I Load a Keymap File?
- A key map file is like any other Kermit command file; it's just a file
containing commands for Kermit. You have to tell Kermit, somehow, to
execute the commands from that file. There are many ways to do this,
including:
- At the K-95> prompt, give a TAKE command for the file, e.g.:
K-95> take k95keymap.ksc
If the file is not in K-95's current directory, you have to include the
relative or full pathname, sufficient to let K-95 know where it is. HINT:
use "forward slash" as the directory separator to avoid quoting problems,
and if the file specification includes any spaces, enclose it in doublequotes:
K-95> take "C:/Documents and Settings/fdc/Application Data/Kermit 95/k95keymap.ksc"
- If you always want the key map to be in effect, put the TAKE command
in your K95CUSTOM.INI file (CLICK HERE for how to
do this or see the README FILE for a thorough
orientation to Where Things Are).
- If you always want to use a given key mapping for certain connections
but not others, specify it in the desired Dialer entries. On the Keyboard
page, under Key Map, click the button next to Read from file, then click
Browse to find the file, then use the file browser to locate the file, then
click Open. A copy of the file will appear in the text window of the
Keyboard page and will be used whenever you launch this entry.
Alternatively, make sure the file that contains the key mapping commands
has the filetype ".KSC", and then put it (or a link to it) on your
desktop, and then launch Kermit 95 by double clicking its icon.
- If you have custom-made scripts for certain applications or hosts,
you can add a TAKE command for the keymap to those scripts.
For samples of Kermit 95 Key Mapping files see:
- The key maps that are distributed with Kermit 95, which are also
available HERE.
- Some additional ones in the C-Kermit Script Library.
- Arkansas Medicare Key Map
- Health-care providers in Arkansas who previously had been using ProComm
to access the state Medicare site have been instructed to switch to Kermit
95 since ProComm is not supported on Windows XP. Unfortunately they are not
given clear instructions on how to configure Kermit 95 for this service.
The missing instructions are:
- Set the terminal emulation to VT100.
- Load the custom key map created by Arkansas Medicare.
CLICK
HERE to download a copy of this map.
See previous item about how to load a key map file.
In the K95 Dialer, you can make an entry for Arkansas Medicare if you
don't already have one.
- My Backspace Key Doesn't Work!
- Please read THIS.
- My Arrow Keys Don't Work!
- Arrows are not normal characters. There are no arrow characters in
(e.g.) the ASCII character set. Therefore terminal makers had to invent
codes or sequences for arrow keys to send. Each kind of terminal sends
its own special codes or sequences. So the first step in making arrow keys
work is to make sure Kermit's terminal type agrees with the host computer's
(or application's) idea of what kind of terminal you have. See the
Backspace page for details.
To complicate the situation, on certain common types of terminals, notably
the DEC VT100 series (VT100, VT102, VT220, VT320, etc), arrow keys can be in
one of two
modes: "Cursor" or "Application". In each mode, they send different
codes. Thus, not only must Kermit's terminal type agree with the host,
but so must the arrow keypad mode.
By default (that is, unless you give SET KEY commands to change things),
Kermit uses the PC keyboard arrow keys as the VT terminal arrow keys. Each
key has a "verb" assigned to it:
Key
| Keycode
| Assignment
| Description
|
Up Arrow
| \4390
| \Kuparr
| Sends what the terminal's Up-Arrow key sends
|
Down Arrow
| \4392
| \Kdnarr
| Sends what the terminal's Down-Arrow key sends
|
Right Arrow
| \4391
| \Krtarr
| Sends what the terminal's Right-Arrow key sends
|
Left Arrow
| \4389
| \Klfarr
| Sends what the terminal's Left-Arrow key sends
|
The \Kxxxx's are Kermit Keyboard Verbs (Kverbs). The arrow-key
Kverbs track the arrow keypad mode automatically. For example, in
VT100-series terminals:
Kverb
| Cursor Mode
| Application Mode
|
\Kuparr
| CSI A
| SS3 A
|
\Kdnarr
| CSI B
| SS3 B
|
\Krtarr
| CSI C
| SS3 C
|
\Klfarr
| CSI D
| SS3 D
|
CSI is ESC (ASCII 27) followed by left bracket ([) on a
7-bit connection or decimal 155 on an 8-bit connection, and SS3 is ESC
followed by O (uppercase letter O) on a 7-bit connection and decimal 143 on an
8-bit connection. Thus, as you can see, in VTxxx emulation each arrow key
can send any of four different code sequences depending on the arrow keypad
mode (Cursor or Application) and Terminal Controls Mode (7-bit or 8-bit).
How does the arrow keypad mode change? The host can change it by sending
special escape sequences, or you can change it yourself by using the command:
SET TERMINAL ARROW-KEYS { CURSOR, APPLICATION }
Ditto for Terminal Controls Mode:
SET TERMINAL CONTROLS { 7, 8 }
- My Numeric Keypad Doesn't Work!
- Essentially the same story as the previous items (Arrow keys). Like
the cursor (arrow) keypad, the numeric keypad can be in one of two modes:
Numeric or Application. In Numeric mode, it sends what is printed on the
keytop (except the Num Lock key). In Application mode it sends special
escape sequences. The default assignments of the numeric keypad keys are
Kverbs: \Kkp0, \Kkp1, \Kkp2, ... \Kkp9,
\Kkp0 for the digits, and:
Key
| Keycode
| Assignment
| Description
|
Num Lock
| \4496
| \Kgold
| Sends what the terminal's "Gold" (PF1) key sends
|
Keypad Slash (/)
| \4463
| \Kpf2
| Sends what the terminal's PF2 key sends
|
Keypad Asterisk (*)
| \362
| \Kpf3
| Sends what the terminal's PF3 key sends
|
Keypad Minus (-)
| \365
| \Kpf4
| Sends what the terminal's PF4 key sends
|
Keypad Plus (+)
| \363
| \Kpcoma
| Sends what the terminal's keypad comma key sends
|
Keypad Enter
| \4365
| \Kpenter
| Sends what the terminal's keypad Enter key sends
|
Problems occur when the terminal types don't match, the numeric keypad modes
don't match, and/or the terminal controls modes don't match. Sometimes when
the terminal receives "garbage" from the host, this can change the keypad
mode. Relevant commands:
SET TERMINAL TYPE name
SET TERMINAL KEYPAD-MODE { NUMERIC, APPLICATION }
SET TERMINAL CONTROLS { 7, 8 }
The Kverbs that are assigned to the non-digit keypad keys by default vary with
the terminal type. This example shows VT100-series terminal assignments.
Other types of terminals do not have Gold or PFn keys and therefore
have different verbs assigned.
Depending on the terminal type, the digit keys themselves can affected by the
keypad mode. When the keypad is in Application mode, they send escape
sequences (e.g. in VT100 emulation, the '4' key sends ESC, uppercase letter
'O', then lowercase letter 't'). When the keypad is in numeric mode, they
send the digits that appear on their keytops (the '4' key sends the digit '4').
K95's numeric is in numeric mode by default. It can be changed by the
SET TERMINAL KEYPAD command or by an escape sequence from the host (or
"garbage" that mimics the escape sequence). To get the keypad back in numeric
mode, you can:
- Press Alt-r (hold down the Alt key, press the 'R' key). This is the
RESET Key (kverb \Kreset, unless you've reassigned it).
- Give the command SET TERMINAL KEYPAD MODE NUMERIC at the K-95>
prompt.
- Have the host application send the appropriate escape sequence.
CLICK HERE for a diagram of the DEC
editing and numeric keypads.
- My Function Keys Don't Work!
- Kermit 95 automatically assigns the right codes or sequences to the
function keys for the terminal you are emulating. If function keys like
F1, F2, etc, don't work, then:
- Kermit's terminal type does not match that of the application on the
other end of the connection. You have to choose matching terminal types.
- Kermit's has been told to emulate a kind of terminal that does not
have function keys, such as VT100 or ANSI. If you want to have function
keys (e.g. because the host application expects you to use them), you must
choose a terminal type that supports them, that is also supported by the
host application.
CLICK HERE for a list.
- Kermit's terminal emulation is in 8-bit-controls mode and the host isn't
receiving or understanding the 8-bit characters (VT220 or VT320 only).
Of course you can also assign anything else you want to function keys with
the SET [TERMINAL] KEY command – commonly-used shell commands, whatever.
For detailed information about Kermit 95's Function key mapping for DEC
VT220 and VT320 emulation, CLICK HERE.
DEC VT100-series terminals (VT100, VT101, VT102, VT125, etc) do not have
F keys. But they do have PF keys as the top row of the numeric
keypad: PF1-PF4. PF1 is also called the "Gold Key".
DEC VT200-series terminals
(VT220, VT320, etc), have function keys
F1 through F20, but F1-F5 are reserved for local use by the terminal.
If you have host software that wants you to "press F1" (or F2-F5) on a
VT220 or higher, that software would not work with a terminal because those
keys don't send anything. These terminals, the like VT100-series, have
PF1-PF4; try using them instead of F1-F4. Otherwise some investigation will
be needed to find out what the host application expects to receive from the
DEC F1-F5 keys! (This is always possible, but sometimes difficult.)
Higher-numbered function keys can be problematic. For example DEC
VT220-series terminals have function keys up to F20, but the PC keyboard
only has them up to F12. In this case there must be a mapping.
Kermit's default mapping is Alt-F1 → F11,
Alt-F2 → F12, ... Alt-F10 → F20.
- My Editing Keypad Doesn't Work!
- In most terminal emulations, notably VT100 and above but also many
others, Kermit's editing keypad performs local functions: Page Up scrolls
the screen up to access the Kermit's scrollback buffer, and so on. Here are
the default assignments for VTxxx emulation:
PC Key
| Unmodified
| With Alt Key
| With Shift Key
| With Ctrl Key
|
Insert
| Undefined
| DEC Find (\KdecFind)
| Paste (\Kpaste)
| \KmarkCopyClip
|
Home
| Top of Scrollback buffer (\Khome)
| DEC Insert Here (\KdecInsert)
| Undefined
| Undefined
|
Page Up
| Local scroll up one screen (\KupScn)
| DEC Remove (\KdecRemove)
| Undefined
| Local scroll up one line (\KupOne)
|
Delete
| Sends DEL (\127)
| DEC Select (\KdecSelect)
| Sends DEL (\127)
| Sends Backspace (\8)
|
End
| Bottom of scrollback buffer (\Kend)
| Sends DEL (\127)
| DEC Prev Screen (\KdecPrev)
| Undefined
|
Page Down
| Local scroll down one screen (\KdnScn)
| DEC Next Screen (\KdecNext)
| Undefined
| Local scroll down one line (\KdnOne)
|
If you
want the editing keypad to act like the DEC VT220 (or VT320, VT420, or
VT520) keypad, you can use the Alt Key in combination with these keys.
By default, K95's VT220 and VT320 emulators assign the editing keys
positionally, rather than according to keytop labels:
DEC Keys:
|
Find
| Insert Here
| Remove
|
Select
| Prev Screen
| Next Screen
|
|
|
PC Keys:
|
Insert
| Home
| Page Up
|
Delete
| End
| Page Down
|
|
So on the PC keyboard, Alt-Insert = DEC Find; Alt-Home = DEC Insert Here, etc.
Of course you can remap these functions any way you want, for example:
set key \4397 \KdecFind # Gray Insert = DEC Find
set key \4388 \KdecInsert # Gray Home = DEC Insert Here
set key \4385 \KdecRemove # Gray Page Up = DEC Remove
set key \4398 \KdecSelect # Gray Delete = DEC Select
set key \4387 \KdecPrev # Gray End = DEC Prev Screen
set key \4386 \KdecPrev # Gray Page Down = DEC Next Screen
This map assigns the functions to the same keys, but without requiring you
to use the Alt key. The map is "positional", corresponding to the VT220
keys. Of course you can also assign them any other way you want, e.g.
according to the keytop labels (to the extent they correspond). Put these
commands in an appropriate place (see the first couple items in this section for details).
- Help! My Keyboard Has Gone Crazy!
- The most likely explanation is that you accidentally typed one of the
following key combinations:
- Left-Alt-Left-Shift: This is a Windows function that Kermit never sees.
If you have more than one keyboard language defined, this toggles your
keyboard among them. You can undo this by typing Left-Alt-Left-Shift again,
as many times as needed to return to the desired keyboard language (the number
depends on how many keyboard languages you have defined). Or you can open the
keyboard icon on the Windows Taskbar and explicitly select the desired
language. Or if you really don't need to have multiple keyboard languages
defined: use Control Panel → Regional and Language Options →
Languages → Text services and input languages to remove keyboard
languages; if you have only one defined, there will be no mysterious
keyboard-language switching.
- Right-Ctrl-Right-Shift: Depending on what Windows version you have,
this one might might also toggle among keyboard languages.
- Ctrl-CapsLock: This toggles PCTERM mode in Kermit's emulator, in which
each key sends separate up/down codes. If you get into this mode by accident,
Kermit's Terminal Screen status line says:
PCTERM Ctrl-CAPSLOCK to deactivate.
(if your current emulation includes a status line). In any case, you can
restore the keyboard to normal with another Ctrl-CapsLock or, in K95G, in
the Actions menu ("PCterm Keyboard", which toggles the PCterm keyboard on
and off).
- How Do I Defeat Idle Session Termination?
- If you have a terminal session to another computer and you don't transmit
any characters to it for a certain amount of time, your session might be
terminated by the remote computer or by something between it and Kermit
(but not by Kermit!) – network address translators, firewalls, routers, etc.
To defeat this, you can tell Kermit to "do something" automatically every so
often after you haven't transmitted anything on the connection for a given
amount of time. The commands are:
- SET TERMINAL IDLE-TIMEOUT number
- Sets the limit on idle time in CONNECT mode to the given number of
seconds. 0 (the default) means no limit.
- SET TERMINAL IDLE-ACTION {
EXIT, HANGUP, OUTPUT [ text ], RETURN }
- Specifies the action to be taken when a CONNECT session is idle for the
number of seconds given by SET TERMINAL IDLE-TIMEOUT. The default action
is to RETURN to command mode. EXIT exits from Kermit; HANGUP hangs up the
connection, and OUTPUT sends the given text to the host without leaving
CONNECT mode; if no text is given a NUL (0) character is sent.
And for Telnet connections:
- SET TERMINAL IDLE-ACTION
{ TELNET-NOP, TELNET-AYT }
- Sends the indicated Telnet protocol message: No Operation (NOP) or
"Are You There?" (AYT).
If you have a Telnet connection, try one of these; it is preferable to
sending characters to the host session, since these Telnet messages are
intercepted by the Telnet server and never reach your host session, yet
they count as activity on the connection and should defeat any idle
monitors between here and there.
Example 1: Suppose a certain Telnet connection has a five-minute idle limit;
If you don't transmit anything to the host for five minutes (300 seconds)
your session is closed. To defeat this, do:
set terminal idle-timeout 270 # 4.5 minutes
set terminal idle-action telnet-ayt # Send Telnet "Are You There?"
Example 2: Suppose a certain dialup connection has a 10-minute idle limit;
If you don't transmit anything to the host for ten minutes (600 seconds)
your session is closed. Since it's not a network connection, you can't
send network protocol messages; you have to send an actual character.
Pick a character that is least likely to cause anything to happen on the
remote end, such as NUL (ASCII 0) or Space (ASCII 32):
set terminal idle-timeout 570 # 9.5 minutes
set terminal idle-action output # Send NUL
or:
set terminal idle-timeout 570 ; 9.5 minutes
set terminal idle-action output " " ; Send Space
If you want these commands to be in effect for all sessions, put them in
your K95CUSTOM.INI file. If you want them
to be in effect for certain connections only, put them in the text box
of the Login Settings page of the Dialer entry for each desired connection,
or just type the commands at the K-95> prompt.
- How do I Assign Colors to Screen Attributes?
- Terminals (depending on which kind) are capable of showing characters
with all sorts of different attributes: bold, dim, blinking, reverse video,
underlined, italic, protected, etc. Kermit 95 supports all these. and more.
Sometimes people want to have certain attributes shown as colors of their
choice. K95 supports this for the following attributes: Blink, Protected,
Reverse, and Underline. You need two commands for this. First disable normal
treatment of the given display attribute with:
- SET TERMINAL ATTRIBUTE name-of-attribute OFF
- Tells K95 not to display the named attribute. Choices include:
BLINK, PROTECTED, REVERSE, and UNDERLINE.
Example: SET TERMINAL ATTRIBUTE UNDERLINE OFF.
Then specify the colors to be used to simulate the attribute:
- SET TERMINAL COLOR attribute-type foreground background
- Chooses the fore- and background colors for items of the named type,
including REVERSE-VIDEO and UNDERLINED-TEXT. Example:
SET TERMINAL COLOR UNDERLINE RED BLACK.
We don't support color substitution for all attributes (such as Bold,
Dim, Italic, Invisible) since that gets into combinatorial problems: what
happens when a character has multiple attributes, e.g. Bold, Blinking,
Underlined, and Reverse? Plus that fact that color itself can be attribute.
Similarly, assigning colors to a combination of attributes is not supported
either.
- Problems with Linux Terminal Emulation
- The definition of the Linux "terminal" is constantly changing and must
be updated in Kermit 95 every time it changes, all the while trying to ensure
it still works with the previous definitions. It's a moving target. One
item to be aware of: recent editions of the Linux Console terminfo/termcap
command your terminal into a particular character set, which depends on
your Linux locale. This happens silently and invisibly when you log in to
Linux, and perhaps also at other times. You should also be aware that the
Linux console does not support IBM PC code pages or Windows code pages.
- Problems with SCO ANSI Terminal Emulation
- This is a long story, to be fleshed out later. Very briefly:
Old SCO operating systems, particularly SCO UNIX 3.2v4.x and OSR5 versions
through 5.0.4, have an ANSI terminal type that is not compatible with
everybody else's ANSI terminal type. In Kermit we call this SCOANSI. But
older SCO operating systems do not recognize SCOANSI (or "scoansi") as a
valid terminal type name. Therefore, when making Telnet, Rlogin, or SSH
connections to SCO, you have to tell Kermit to lie about its terminal type:
set terminal type scoansi ; What I am
set telnet terminal-type ansi ; What I say I am
The same might (or might not) apply to some or all releases of UnixWare
and Open Unix 8. It's necessary in any SCO operating system that uses
SCO ANSI but does not have a terminal type called "scoansi".
UNFORTUNATELY there are still some complications:
- You can configure this setup in the Dialer for Telnet connections, on the
Terminal page and the Telnet page. But for SSH (and possibly Rlogin)
connections, the Telnet page is grayed out (this will be fixed in K95 2.1.4).
In that case, put the SET TELNET TERMINAL-TYPE command in the Keyboard page
script text box.
- Under certain as-yet unknown circumstances (but we suspect this happens
when a Telnet, Rlogin, or SSH client announces its terminal emulation as
ANSI or SCOANSI), the SCO operating system activates "mapchan", which
interferes with both terminal emulation and file transfer by "mapping"
certain characters to other characters. To see if this has happened to you,
type "mapchan" at the shell prompt after logging in. If the response is
a bunch of data (rather than the word "null"), you must turn off mapchan
with the following shell command:
mapchan -n
- How Do I Access the Microsoft VTNT Telnet Server?
- Use Kermit 95's built-in VTNT terminal type and then make a Telnet
connection to the Windows machine where the Microsoft SFU Telnet server is
running. Note that VTNT is a private and undocumented Microsoft protocol,
which we had to reverse engineer. K95 1.1.20 supports VTNT as it existed
at the time (1999), called SFU V1. After 1.1.20 was released, Microsoft
changed VTNT for Windows 2000 and Windows XP; this is SFU V2. Thus if you
are using K95 1.1.20 to make a VTNT connection to Windows 2000 or XP, it
won't work right and you need to upgrade to the current version of K95.
VTNT is Unicode based. If you are using a Console version of K95, you must
select a Unicode-based TrueType font such as Lucida Console.
Also see the section discussing Microsoft Windows Telnet Server
and Kermit 95 in
http://www.kermit-project.org/telnet.html.
- How Do I Swap the Ctrl and Caps Lock keys?
- Old timers and touch typists like the Ctrl key to be where Caps Lock
is, and Esc to be above Tab and left of "1". Kermit 95 does not access the
keyboard at level that would allow moving shift/modifier functions like
Ctrl, Caps Lock, Shift, or Alt, but several methods are available external
to K95:
- Software Drivers
- At least two are available:
CTRL2CAP
and
REMAPKEY.
The current versions of both of these seem to be for Windows NT (2000, XP)
only but an earlier version of CTRL2CAP also worked for Windows 95/98/ME.
Look in Google for other options.
- Replacement Keyboards
- IBM-like keyboards from
Unicomp,
Avant,
LinuXcare,
and elsewhere that specialize in swapping Ctrl and Caps Lock, Esc and
Grave/Tilde, and in some cases allowing for user customizations. The
advantage of doing it in the keyboard itself rather than in the software means
you don't have to change the software every time you upgrade or switch
operating systems. Also (in some cases) the keytops are labeled
appropriately.
- How Do I Access IBM Mainframes?
- Presently, Kermit 95 does not include IBM 3270 terminal emulation, nor a
tn3270 client. The only way it can have IBM mainframe fullscreen sessions is
through an intermediate 3270 protocol converter:
- Dialup to a Series/1, 7171, 4994, or the like.
- Dialup or Telnet to a Cisco terminal server; tn3270 from there.
- Dialup/Telnet/Rlogin/SSH to any Unix host that has a tn3270 program;
tn3270 from there to the mainframe.
Most IBM mainframe operating systems support "linemode" sessions, which are
similar to hardcopy sessions – no screen formatting. Unless your IBM
mainframe has linemode disabled, you should be able to establish a regular
Telnet session to it. You can transfer files between K95 and Kermit-370 over
any of these kinds of connections.
- How Do I Disable Scrollback?
- In Kermit 95 2.1.3 you can disable the GUI scroll bars, as well as the
keyboard verbs that accomplish scrolling – no matter what keys they are
assigned to – with the new NOSCROLL command or the new --noscroll
command-line option. In earlier releases:
In the Console version, you can simply remap all the scrollback keys
to execute the \Kignore verb:
set key \4385 \Kignore ; Gray Page Up
set key \4386 \Kignore ; Gray Page Down
set key \4388 \Kignore ; Gray Home
set key \5409 \Kignore ; Ctrl Gray Page Up
set key \5410 \Kignore ; Ctrl Gray Page Down
You can do this in the GUI version too, but that doesn't remove the
scrollbar. However, it's harder to scroll back by accident with the mouse
than it is to hit the wrong key by mistake.
In both the Console and GUI version, you can limit the scrollback
capacity with:
set terminal scrollback number-of-lines ; (Terminal screen)
set command scrollback number-of-lines ; (Command screen)
However, the minimum number of lines is 256.
- How Do I Clear the Screen without Saving it in Scrollback?
- Material is saved in scrollback whenever (a) a line scrolls off the
top of the screen or (b) the whole screen is cleared. To clear the
screen without having it saved in scrollback, have the host send an escape
sequence like this:
<ESC>[2;1H<ESC>[J<ESC>[1;1H<ESC>[K
(replace <ESC> with an actual Esc character). What it does:
- Puts cursor on the second screen line, left margin.
- Clears from cursor to end of screen.
- Puts cursor in home position.
- Clears from cursor to end of line.
These forms of clearing do not enter anything into the scrollback buffer.
- Where is the technical documentation for xxx emulation?
- The specifications for each terminal, such as VT320, HPTERM, AIXTERM, etc,
might be several hundred pages long, and many of them are proprietary.
Purchase the manuals from the current marketer of the terminal. Manuals are
still being sold for all Wyse and DEC VT terminals. Note that (a) DEC sold
off its terminal products division years ago, and it has probably changed
hands several times since then, and (b) DEC was sold to Compaq, and later
Compaq was bought by Hewlett Packard. DEC and Wyse terminal manuals tend to
be quite expensive.
- Documentation for the DEC VT5xx terminal
can be purchased from Boundless Technologies.
- Wyse terminal documentation can be found at
wyse.com.
- QANSI, QNX, Linux, and BeTERM, are documented in the
man pages of the appropriate operating system.
- AT386 is documented in the SCO Unixware man pages.
- The SCOANSI specification can be found at the
SCO website
(sorry, seems to be defunct).
- The AIXTERM manual is published
on the Web by IBM
(this one doesn't work any more either, sorry).
- The HFT manual is also somewhere at ibm.com
(try searching).
- SNI manuals are published by Siemens/Nixdorf
(this one is gone too).
- Avatar is documented in the Fido database.
- VT52/100/102/220/320 sequences are included in
Using MS-DOS
Kermit, 2nd Edition.
For further information, visit Richard Shuford's
Video
Terminal Information site.
- Why does scrolling or echoing seem slow?
- They don't to most people. But on certain PCs, under certain
circumstances, there might be a perceptible delay in scrolling or in echoing
of the characters you type. This delay can have several components:
- Delays in the connection itself;
- How heavily loaded Windows is;
- Whether you have a client or a server edition of Windows;
- Windows scheduling of K95's several threads and its semaphore management;
- An extra (double) layer of overhead imposed by CONAGENT.EXE
(Windows 95/98/ME only).
- Peculiarities of your video adapter and driver;
- Certain other applications that might be running;
- Windows TCP/IP policies or heuristics;
- K95's own screen update algorithm.
Kermit 95 virtualizes the display. This is how it is capable of functioning
as both a console and a GUI application not to mention supporting other
operating systems such as OS/2. Any perceptible delays are usually due to
thread allocation algorithms within the OS. If you are using K95 on a Windows
Server edition, you should be aware that the OS is tuned to favor server,
rather than client, applications, e.g. by allocating longer timeslices, and of
course it runs an increased number of processes with "service" priority, which
can result in some jumpiness between the threads.
Normally K95 refreshes the entire screen every 100 milliseconds, i.e. 10 times
per second. This has proven to provide the best overall throughput, which is
always a tradeoff between (a) responsiveness to keystrokes, and
(b) speed of displaying large amounts of scrolling text. You can
change the balance and the frequency with the command:
- SET TERMINAL SCREEN-UPDATE { FAST, SMOOTH } [ milliseconds ]
- Chooses the mechanism used for screen updating and the update frequency.
Defaults are FAST scrolling with updates every 100 milliseconds.
A smaller interval might produce snappier echoing, but probably at the expense
of scrolling speed. SMOOTH forces screen refresh with every incoming
character, and so turns the balance to totally favor fast echoing.
In version 1.1.16, K95's echoing strategy was redesigned to give
snappier echoing on modem connections, virtually eliminating any delay that
can not be attributable to external causes. Echoing of a
character from the local modem's command processor now takes less than 0.001
second, compared to about 0.110 second in 1.1.15.
Also, beginning in 1.1.16, screen updates are optimized. This results in
noticeable speed improvements on most PCs, but paradoxically, slows down some
others. To disable optimization, use:
SET TERMINAL SCREEN-OPTIMIZE OFF
On TCP/IP connections (Telnet, SSH, Rlogin) you might be able to speed up
echoing by disabling the "Nagle algorithm" in Windows TCP/IP, which saves up
characters for a while before deciding to send them in case any more will be
added to the queue, thus allowing more efficient transmission (more characters
per TCP packet) but, obviously, slower response to keystrokes. To do this,
give the command:
SET TCP NODELAY OFF
This command must be given before
the connection is made because it affects how the connection is opened.
One user reported severe sluggishness on a certain PC but not on others.
Eventually the problem was traced to a new monitor he had just installed,
which came with a utility called Display Switcher (DS4.EXE), which
had been installed as an autostart "service" as part of the monitor
installation, and which tended to run wild and consume excessive CPU cycles.
Although it seemed at first to affect only Kermit 95, as the day progressed,
other applications slowed down too. Rebooting didn't help, of course, so it
had to be removed from the Startup folder.
- Does Kermit 95 Support Arabic Terminal Emulation?
- As a terminal emulator, Kermit 95 has no explicit support for Right-to-Left
text presentation or for automatic switching of print direction based on
character properties.
Traditionally, these matters would be left to the host computer and its
applications. For example, with Hebrew (another RTL language), Unix
applications such as the ALEPH bibliographical systems, or special
versions of the Vi text editor, would take care of character presentation
by sending escape sequences to position each character at the right place
on the screen. You can read more about this in the Kermit 95 manual:
Help →
Kermit 95 Manual →
Index to Reference Materials →
Character Sets →
Hebrew Terminal Emulation
The same would be true for Arabic, but I don't know the situation for host
applications and software. If your host computers have software that takes
responsibility for positioning each character, then you should be able to
use Kermit 95 for Arabic if (a) you choose an appropriate font,
(b) you have activated an appropriate keyboard driver, and
(c) the host is using one of the following character sets:
- PC Code Page 864
- PC Code Page 1256
- ISO 8859-6
- UTF-8
There is also the complication that Arabic (unlike "square Hebrew") has
complex shaping rules based on context. Kermit 95 would not handle this,
any more than any character-cell terminal which it emulates would. (I am
aware that terminals designed specifically for Arabic existed in the past,
but Kermit does not emulate any of them, because we have never been able to
obtain technical details.)
- Does Kermit 95 Support Hebrew Terminal Emulation?
- See the previous question. Also see text and sample screen shots
HERE. Kermit 95 supports the following
Hebrew terminal character sets:
- Hebrew-7
- PC Code Page 862
- PC Code Page 916
- PC Code Page 1255
- ISO 8859-8
- UTF-8
In addition, Kermit 95 has a built-in Hebrew Keyboard Mode, that can be
used to enter Hebrew letters from (e.g.) a US keyboard without having to
load a Windows Hebrew keyboard driver. See:
Help →
Kermit 95 Manual →
Index to Reference Materials →
Character Sets →
Hebrew Terminal Emulation
[
Next ]
[
Previous ]
[
Top ]
Be sure to read the sections on printing in the Kermit 95 manual:
- Help →
Kermit 95 manual →
Index to Reference Materials →
Terminal Emulation →
Printer Setup and Troubleshooting
- Help →
Kermit 95 manual →
7. Using the Terminal Emulator →
Local Printing and Host-Initiated Printing
- Why did my printer suddenly start printing?
- The most likely explanation is that you accidentally typed one of the
following key combinations: Alt-P (print screen), Alt-O (start
Copy-to-Printer), Alt-E (force printer page eject / formfeed), or the
Print Screen key. Also, the host might have sent a "transparent print" escape
sequence, or noise or binary data arrived at the terminal emulator that is the
same as such a sequence. Use Alt-R to reset the terminal and cancel
Copy-to-Printer or transparent printing.
- Can Kermit 95 use Winprinters?
- As noted in the documentation, Kermit 95 can print only on printers
capable of printing either raw text and/or PostScript. Kermit does not
support Graphical Device Contexts for Printer output, used by Winprinters.
From Chapter 7 of the Kermit 95 online manual:
So-called "WinPrinters" are presently not supported by Kermit 95. These
printers are marketed specifically for use with Microsoft Windows operating
systems, and work only with Microsoft Windows. It might seem strange that
Kermit 95 does not support them, since Kermit 95 is a native Windows 32-bit
application, but "WinPrinters" require the print job to be formatted by the
Win32 application. Transparent printing material, however, contains escape
sequences or other non-textual data that can not be formatted as text.
Ironically, WinPrinters come with a 16-bit driver for use by DOS
applications, but since K95 is a 32-bit application, it can't see this driver.
Presently, the only way to print on a WinPrinter from Kermit 95 is to:
set printer xxx
where xxx is a filename, and then to:
run copy /b xxx prn
(i.e. run the DOS command to copy the print file in binary mode to the DOS
printer). A series of macros can be defined to accomplish this, and can be
assigned to hot keys to make printing to Windows printers relatively painless.
|
KERMIT FILE TRANSFER
[
Next ]
[
Previous ]
[
Top ]
- How Do I Download a File?
- The easiest way to download a file using Kermit protocol is to log in to
the other computer (using SSH, Telnet, Dialup, whatever), and then do
whatever is required on that host to initiate a Kermit download. For
example, if the host is Unix (that is, Linux, OpenBSD, Mac OS X, Solaris,
AIX, HP-UX, etc), and it has C-Kermit installed, you can type:
$ kermit -s image.jpg
The Kermit 95 terminal emulator automatically sees that a file is coming
and it switches into "Kermit Receive" mode and receives the file. When
the transfer is over, it automatically puts you back in the terminal window.
This process is called "autodownload" and it is governed by the SET TERMINAL
AUTODOWNLOAD command.
- How Can I Suppress the Download Dialog Boxes?
- By default, when an autodownload is initiated, K95 pops up a dialog box in
which you can accept or refuse the incoming file. To suppress these dialogs
during autodownloads use SET FILE AUTODOWNLOAD ON (the default setting is
ASK, for security reasons).
- How Do I Upload a File?
- The current version of Kermit 95 does not have a GUI file upload dialog.
We hope to add one in the next release. When the computer on the other end
of the connection is a general-purpose timesharing system like Unix or VMS,
everything can be controlled from the far end and, as explained in the K95 Tutorial, in that case you don't really need an
upload dialog in K95.
But increasingly, the thing on the other end of the connection is something
else entirely, such as a menu, e.g. for uploading insurance claims or
purchase orders. Most of these menu systems do not know how to command
Kermit 95, automatically through its terminal screen, to upload a given file
(they could do this but they don't). So once you choose the "upload"
item on menu, you have to return to K95 and tell it which file(s) to send.
This is where an upload dialog would come in handy. Until such time as one
is added, you'll need to do it the old-fashioned way:
- Change the K95 window from the Terminal Screen to the Command Screen.
You can do this by clicking the second Toolbar button (the one with the two
arrows), or by entering Alt-x on your keyboard (hold down the Alt key and
press the x key).
- At the K-95> prompt, type the word "send", then a space,
then the filename, and the press the Enter key. For example (the part you
type is underlined):
K-95> send invoice.doc
- You will see a file-transfer progress display something like this:
Kermit 95 2.1.3, 1 Jan 2003, This_PC [000.000.000.000]
Current Directory: C:/fdc/tmp9/xx_files/
Network Host: somehost.xyzcorp.com (UNIX)
Network Type: SSH (SECURE)
Parity: none
RTT/Timeout: 08 / 00
SENDING: Invoice.doc
File Type: BINARY
File Size: 311372
Percent Done: 100
Kermit Protocol: ...10...20...30...40...50...60...70...80...90..100
Elapsed Time: 00:00:17
Transfer Rate, CPS: 10699
Window Slots: STREAMING
Packet Type: D
Packet Count: 84
Packet Length: 8
Error Count: 0
Last Error:
- When the bar reaches 100%, the K-95> prompt reappears.
You can return to the terminal screen by clicking the same Toolbar
button or entering Alt-x again, or by giving the CONNECT command at the
prompt (type "c" or "connect") and then press the Enter key.
This example assumes the file you want to upload is in K95's current
directory, and you only want to upload one file. If that's not the case,
keep reading.
- How do I Upload a File That's in Another Folder?
-
In the SEND command, you can specify the file's entire pathname, for example:
K-95> send c:\business\invoice.doc
But if the pathname contains any spaces, as often happens in Windows,
you have to enclose the whole thing in doublequotes:
K-95> send "C:\Documents and Settings\myname\My Documents\invoice.doc"
Well this is a lot of stuff to type so there is a shortcut:
K-95> kcd personal
K-95> send invoice.doc
or:
K-95> send \v(personal)invoice.doc
This is only one example, which applies only to your "My Documents"
directory. These shortcuts are explained in the Kermit 95 README file, in
the Files and
Directories section.
- How do I Upload Multiple Files at Once?
-
To send multiple files with a single command, you can use "wildcard"
notation, in which special characters such as asterisk are used to "match"
one or more characters from a filename. For example:
K-95> send *.doc
tells K95 to send all the files in the current directory whose names
end with ".doc". For details about wildcard syntax. type
"help wildcard" at the K-95> prompt.
Another way to send multiple files at once is to use the MSEND command,
which lets you name one, two, three, or more files to be sent:
K-95> msend invoice.doc revenue.xls addresses.txt
- How Do I Choose a Different File Transfer Protocol?
-
On terminal connections, Kermit 95 supports Kermit, Xmodem, Ymodem, and
Zmodem protocols (it also supports FTP transfers but those don't take place
on a terminal connection). The file sender and the file receiver have to
use the same protocol or the transfer will fail. The default protocol is
Kermit. You can choose a different protocol in various ways, including:
- On the File Transfer page of the Dialer entry for the connection; or:
- By giving a SET PROTOCOL command in the K95 command window, e.g.:
K-95> set protocol zmodem
K-95> send invoice.doc
- Or by including a protocol selection switch in a SEND command:
K-95> send /protocol:zmodem invoice.doc
- Problems Uploading Files?
- Kermit 95 as well as C-Kermit 7.0 and later, when using Kermit protocol,
default to high-performance file-transfer settings: long packets, sliding
windows, "cautious" (rather than "paranoid") control-character prefixing,
and – on connections that allow it – streaming. But, as we point out in
the documentation, these settings are less likely to work everywhere
than the normal conservative settings that are the default in most other
Kermit programs, and which are the cause of the widely held misconception that "Kermit is slow".
Sometimes file transfers – especially uploads of binary files –
fail using these settings. Such failures can almost always be fixed by
restoring full control-character prefixing:
SET PREFIXING ALL
Or in the Dialer, edit the connection's File Transfer page. Change
Performance to Custom, and change Control Char Prefixing to Never.
If that doesn't help, then give this command:
CAUTIOUS
If you still have problems, give this command:
ROBUST
(You can choose these on the Dialer's File Transfer page too).
If none of that helps, then consult Chapter 10 of Using C-Kermit,
2nd Edition: "Solving File Transfer Problems". And if that doesn't
help, maybe K95's file-transfer partner has a defective Kermit implementation.
Kermit 95 offers workarounds for most of the implementation bugs we know
about in other products;
click
HERE and
HERE for details.
- Problems transferring files with the Cincinnati Press Brake?
- Please read our Cincinnati Press Brake FAQ .
- Problems transferring files with the HP-48?
- HP-48 Series calculators included an embedded Kermit protocol allowing
programs and data to be imported from and exported to your PC. The
procedures for using it are documented HERE.
THE BUILT-IN FTP CLIENT
[
Next ]
[
Previous ]
[
Top ]
This section has been moved to:
The Kermit FTP Client FAQ.
ASSORTED HINTS AND TIPS
[
Next ]
[
Previous ]
[
Top ]
- How Do I Capture the Output of a K95 Command?
- Of course you can use the mouse to copy text from the command screen
and paste it into any other application. This includes not just the visible
screen; K95 also lets you scroll back while copying. Or you can scroll back
first and copy downwards, etc.
Some Kermit commands have options to write their output to a file. For
example, REMOTE commands allow Unix-like redirectors at the end, for example:
remote directory *.jpg > jpglist.txt
The DIRECTORY, GREP, and TYPE commands include /OUPUT: switches that
tell them to write their output to the given file, e.g.:
directory /recursive /after:-5days /sort:date /output:recent.txt *.[ch]
K95 also lets you clear and save both command and terminal screens and
scrollback into a file with the CLEAR and SAVE commands. To create a file
showing the results of one or more commands, do this:
set command more-prompting off
clear command scrollback
(execute desired commands here)
save command scrollback filename
- Using K95 with Host-Based E-Mail Programs
- As described HERE,
in these days of e-mail viruses, it is not a bad idea to avoid PC-based email
programs and read all your email with a host-based plain-text e-mail client
like Pine, Rmail, or MM. When you do this, you see MIME enclosures in their
raw encoded format; for example base-64 encoding: many, many lines of:
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYF
BgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAQNBgADASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
So how to view that snapshot that Aunt Hilda sent you? The labor-intensive
method is to save the message in a separate file, edit out the base-64 encoded
picture, save that to still another file, decode it into its original JPG,
GIF, or BMP format into yet another file using the appropriate decoder, and
then either put it on your own host-based website and (after setting the
permissions appropriately) and view it from your PC browser, or download it to
your PC and tell K95 to "run start hilda.jpg" or
whatever.
Here's an easier method, but one that's not quite as safe:
- Make sure the message doesn't contain any enclosures besides .jpg,
.gif or .bmp. Also make sure it's from someone you know
and that it contains text that they wrote that makes sense to you, like
"Here's a cute picture of little Otto at the beach". Just because it SAYS
it's from somebody you know doesn't mean it really is! (Any mail that you
receive these days, even from a friend or family member, is just as likely
to have been generated automatically by a virus program.)
- Tell your mail program to copy the message to a file, xxx.eml.
Substitute whatever you want for xxx, but you must use the
".eml" extension because that's the one Windows associates with
its e-mail client.
- Exit from your e-mail program and download the .eml file to
windows:
kermit -s xxx.eml (Substitute actual file name)
- Escape back to the Kermit prompt with Alt-x and type:
run start xxx.eml (Substitute actual file name)
This starts your Windows e-mail client (e.g. Outlook Express) with the
mail message in it so you can see the picture(s). But again: be careful!
If the message contained any enclosures other than pictures (such as
Visual Basic scripts, Microsoft Word documents, HTML, ActiveX, etc),
they could give your PC a virus, as explained
in the Safe Computing
document. In more recent versions of Windows, particularly those with
security patches, the Microsoft mail client might refuse to show you any
enclosures that are not pictures.
- Accessing a Port-Blocked Mail Server with SSH Port Forwarding
- Suppose you're on a business trip with your Windows laptop that you
normally use to read your email using a Windows-based mail client. You find
that you can't get at the mail server because you're outside the corporate
firewall. But you can still make SSH connections through the firewall.
Here's how you can use Kermit 95 to "tunnel" through your SSH connection to
mail server. Before making your SSH connection, give a command such as:
ssh add local-port 25 email.xyzcorp.com 25
in which email.xyzcorp.com should be replaced by the hostname of your own mail
server, and 25 is the Simple Mail Transfer Protocol (SMTP, i.e. mail server)
Internet port. This sets up TCP port 25 on your PC to forward to port 25
on the e-mail host through the SSH tunnel.
Now SSH to your login host. In your mail program, set the SMTP server to
"localhost". Then as long as you keep the SSH connection open, you can use
your mail program in the usual way.
The same trick can be used for any other TCP service that might be blocked
from normal access.
INTEGRATING KERMIT 95 WITH OTHER APPLICATIONS
[ Next ]
[
Previous ]
[
Top ]
Also see:
What Is Kermit?
by Ishakawa, Section
"Embedded System Development and Kermit".
If you have a C or C++ or Java application that already includes
communications i/o and you just want to add Kermit file transfer protocol to
it, you can use Embedded Kermit. If you need more
than that, read on.
- How do I embed Kermit in my application?
- Many software makers ask us for Kermit software in special forms that can
be embedded in their applications, to provide file transfer or other
communications functions to their customers. But each software maker wants
something different:
- Connection establishment but no data transfer
- Data transfer using pre-existing connection
- Connection establishment and data transfer
- File transfer only without "bells and whistles"
- Scripting but not terminal emulation
- Terminal emulation but not file transfer
- Serial communication but not networking
- Networking but not serial communications
- Binary file transfer but not text
- Greek character-set conversion but not Cyrillic
- Access to shell escapes allowed
- Access to shell escapes forbidden
- Secure authentication and strong encryption
- No need for security
- A pretty display
- No display at all
and on and on. And they desire this functionality to be packaged as a link
library for this or that platform, a DLL, an OCX, a VBX, an Active X control,
a .NET component, a COM object,
a Delphi component, a Netscape Plugin, a Java object, a Visual FoxPro object,
a Windows Service, etc etc etc. The combinations of functionality and
interface are many, and there is no way we can satisfy them without warehouses
full of programmers, which nobody can afford to pay for.
Consequently we recommend that software makers who wish to embed Kermit
functionality in their products (communications, scripting, file transfer,
terminal emulation, character-set translation, etc) license and use the
programs we already have available. See the next item for an example.
The "API" (Application Program Interface) is the command language. It
is more fully expressive, precise, comprehensive, and portable than any
other API that could be designed (look at all the commands in C-Kermit or
MS-DOS Kermit or Kermit 95; each one is there for a reason). As new releases
of the Kermit program come out, your product can be easily updated and will
benefit from all the new features, fixes, and speedups automatically.
The recommended method of embedding Kermit in another application is via
command-line invocation. The Kermit command line can contain a selection of
simple commands, and it can also refer to more complex command files or
scripts composed by or for your application. Kermit can be configured to
create any kind of log you need, and it can return the status of its
operations in various ways that can be used by your application.
When you license Kermit software for embedding in your application, we are
happy to work with you to ensure it meets your needs. And if Kermit
protocol transfers are important to you, then it should also be important to
you to come to the source – we designed and created the protocol, we
continue to improve it, we believe in it, and we stand behind it.
Following this advice allows each party to concentrate on what they are good
at, rather than unnecessarily duplicating efforts and "reinventing the wheel".
You concentrate on your application; we'll do the communications. We support
our software, you support yours, everybody is happy.
Kermit 95 version 2.1.3 (January 2003) includes new "lockdown" features of
special interest to those who which to integrate Kermit 95 sessions with
their own applications. For details, see the
release notes.
- How do I invoke Kermit 95 from Visual Basic?
- Easy. First refer to Using C-Kermit, "Starting and Stopping
C-Kermit". Note that you can invoke K95 with a command-line argument
specifying the name of a file containing commands to execute; this filename
must be the first argument after the program name.
Suppose, for example, K95.EXE is in the PATH, and the command file is
called UPDATE.KSC. Then the command line would be, simply:
k95 update.ksc
The command file can be prefabricated, or it can be created dynamically by
your application. If it is not in the current directory, of course you must
specify the full path:
k95 d:\scripts\update.ksc
If you want K95 to exit automatically when the script is complete, put EXIT
commands in the script wherever you want to return control to your VB program.
To invoke K95 from VB, use:
Shell (commandline, windowstyle)
where commandline is the command with which to invoke Kermit 95, such
as "k95 update.ksc", and windowstyle is one of the
following:
0 - Hidden
1 - Window has focus and is restored
2 - Window is an icon with focus
3 - Window is maximized with focus
4 - Window is restored, current window keeps focus
6 - Window is an icon, current window keeps focus
The Shell() function returns Kermit 95's task ID.
- How do I Make Kermit 95 use an existing connection?
- Invoke Kermit 95 with a command-line option that specifies the
file handle for the open connection. The format depends on whether it is
a serial or network connection:
- For serial-port or modem connections
- Use the command-line option
"-l" with the numeric file handle of the open port or modem as
an argument. Example:
"C:\Program Files\Kermit 95 2.1\k95g.exe" -l 664
- For Telnet Connections
- Use
"-j" (lowercase) or "-J" (uppercase) with the numeric
socket handle as an argument, perhaps prefixed by an underscore or dollar sign:
- -j _number
- The -j _number option is similar to -l
one, except a TCP/IP connection is assumed for the open handle. Kermit 95
is prepared to accept Telnet negotiations but does not initiate them.
- -J _number
- -J $number
- When started this way, K95 treats the number as a TCP/IP socket handle.
If the number is prefaced with an underscore, the socket is being used as
a telnet client connection. If the number is prefaced by a U.S. currency
(dollar) sign, the socket is being used as a telnet server connection.
Example:
"C:\Program Files\Kermit 95 2.1\k95g.exe" -j _636
If you want to invoke Kermit to perform only one action, such as receiving
a file (as you might do when using Kermit as a file-transfer agent within
another application), put the desired action option after the
-l or -j argument:
"C:\Program Files\Kermit 95 2.1\k95g.exe" -j _636 -r
In this case you might also want to include other command-line options to
inhibit execution of the initialization file (-Y), loading of
unneeded DLLs (-#), suppress unwanted messages (-Q), etc.
See the Kermit 95 manual or type "help options" at the K-95>
prompt for documentation of K95's command-line options.
When you invoke Kermit with an open file or socket handle on the command
line, Kermit does NOT close the connection when it exits.
For testing, you can use Kermit 95 to make a connection and then invoke a
second copy of itself to use it. Example for serial-port connection:
K-95> set port com1
K-95> set speed 57600
K-95> run start \v(exedir)k95g.exe -l \v(ttyfd)
Kermit's \v(exedir) variable contains the full path of the
directory containing the Kermit executable, complete with trailing directory
separator. The \v(ttyfd) variable contains the numeric file handle
of the open connection.
Example for Telnet connection:
K-95> set host xyzcorp.com
K-95> run start \v(exedir)k95g.exe -j _\v(ttyfd)
When the spawned copy of Kermit exits, it does NOT close the connection;
thus it should still be open and usable by the original process that
spawned Kermit.
-
How do I invoke K95 on a Raw Socket Connection?
- Telnet ports are 23 and 1649. If you want Kermit to open the connection,
simply specify a non-Telnet TCP port (socket) number in the -j or
-J argument, e.g.:
"pathname\k95g" -j xyzcorp.com:3000
then Kermit does not send Telnet negotiations. Obviously the target host
must have a service listening on that port. Alternatively, you can use a
short script such as the following:
set login userid ; Don't try to send authentication info
set network directory ; Skip host lookups
set network type tcp/ip ; It's a TCP/IP connection
if fail end 1 TCP/IP Failed ; Make sure Kermit supports this
set exit on-disconnect on ; (or OFF as desired)
set host \%1:\%2 /raw-socket ; "Open" the connection as a raw socket
if success connect ; (or whatever else you wish Kermit to do)
Suppose this script is called "rawsocket.ksc", it's in the PATH, and
Kermit 95 is the registered application for ".ksc" files.
Then your application can invoke it like this:
rawsocket.ksc = hostname port
Suppose you wanted to make K95, executing this script, the Telnet
application for your browser, to force raw-socket connections for all
"telnet://" URLs. In that case you would define the Telnet
invocation string as:
"pathname\k95g.exe" rawsocket.ksc = hostname port
where pathname is the location of the Kermit 95 executable and
hostname and port are in whatever notation required by your
browser to indicate parameter substitution. This assumes your browser
allows you to extract the hostname and protocol from the
"telnet://" URL (as opposed to, say, passing the entire URL, which
would force Kermit to use Telnet protocol).
If you wish to pass the socket handle of an already-open raw socket
connection to Kermit, you can't do it as described in the previous
section because at present there is no command-line option to specify the
protocol (or lack of one), nor can you include a port number with a socket
handle; thus when given a -j or -J command-line option
with a socket handle number, Kermit assumes a Telnet connection and sends
Telnet negotiations. To force Kermit to treat the connection as a raw
(no-protocol) socket, you can create a short script, such as this:
set network directory "" ; Don't look anything up
set telnet wait off ; Don't wait for Telnet negotiations
set exit hangup off ; Don't close the socket upon exit
set host _\%1 7777 /raw ; "Open" the already-open socket
and then instead of invoking Kermit 95 directly with the -j or
-J command line option, you would invoke the script like this:
"pathname\k95g.exe" openrawsocket.ksc = socketnumber
replacing socketnumber by the numeric socket number. This replaces
the \%1 formal parameter in the script so, for example, if you
invoke the script as follows:
"C:\Program Files\Kermit 95 2.1\k95g.exe" rawsocket.ksc = 644
the SET HOST command becomes:
set host _644 7777 /raw ; "Open" the already-open socket
When any SET HOST class command is given a numeric argument preceded by an
underscore (or a dollar sign), this indicates an already-open socket. The
port number (7777 in this example) must be given but is ignored. The SET
EXIT HANGUP command in the script prevents Kermit from closing the
connection when it exits, so the invoking process will still have it available.
- How do I invoke Kermit 95 from C++?
- The following code snippet illustrates how to start K95.EXE
(the console version) from a C++ application that wants to open the serial
port itself. This might be done, for example, to keep a call open while
invoking Kermit 95 several different times on the same connection. Of
course many variations and refinements are possible. The Kermit 95
invocation is like this:
k95.exe -l 1234
where "1234" is the numeric file handle of the open serial port. Of course
you can add any other desired command-line options; for example, the name of
a script file to be executed:
k95.exe -l 1234 -C "take makethecall"
This tells Kermit the port is already open gives it the handle to use,
and then has it execute the file called "makethecall", which contains Kermit
commands (e.g. to make a modem call). This file should include the command
SET EXIT HANGUP OFF, to prevent Kermit from hanging up when exiting.
Here is the C++ code illustrating how to do this:
char buf[64];
SECURITY_ATTRIBUTES sec;
STARTUPINFO si;
PROCESS_INFORMATION StartKermitProcessInfo;
sec.nLength = sizeof(sec); // Set security parameters
sec.lpSecurityDescriptor = NULL;
sec.bInheritHandle = TRUE; // Let new process inherit handle
memset(&si, 0, sizeof(STARTUPINFO)); // Set desired startup info
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = ShowCmd;
HANDLE // Open real serial port
hComm = CreateFile( "COM1",
GENERIC_READ|GENERIC_WRITE,
0, // NOT exclusive access
&sec, // security attributes
OPEN_EXISTING, // device must exist
FILE_FLAG_OVERLAPPED, // use overlapped i/o
NULL // hTemplate
);
if (hFile == INVALID_HANDLE_VALUE) {
// handle error...
}
sprintf(buf,"k95.exe -l %ul",hComm); // K95 invocation command line
if (CreateProcess( NULL, // Start K95
buf,
NULL,
NULL,
TRUE,
CREATE_NEW_CONSOLE|CREATE_NEW_PROCESS_GROUP,
NULL,
NULL,
&si,
&StartKermitProcessInfo
) {
// handle error...
} else {
CloseHandle(StartKermitProcessInfo.hProcess);
CloseHandle(StartKermitProcessInfo.hThread);
}
Replace "k95.exe" with "k95g.exe" if you prefer the GUI
version, and include the full path if necessary.
For further information, see the
Microsoft
Windows API Reference.
- How do I invoke Kermit 95 from Java?
- You have to use the GUI version of Kermit 95 2.0 or later for this
(K95G.EXE, not K95.EXE).
If you need to use the Console
version (K95.EXE) for some reason, you have to work around problems
with how javaw.exe starts Console applications, you must begin with a
Console window, run java.exe in it, and then start K95.EXE
from there.
If you want Kermit to use an existing network connection (one that was made
from your Java application), the socket must be inherited from the
parent process. Here's an example that starts K95G to have it receive a
file (-r) on an open socket connection. In this case, it was found
that the "$" prefix to the socket handle was required to prevent Windows
from "aborting" the socket before control was returned to the Java process:
private void RunKermit_ReceiveFile(int socketHandle) {
Process p = null;
try {
p = Runtime.getRuntime().exec(
"C:\\Program Files\\Kermit 95 2.1\\k95g.exe -j $" +
Integer.toString(socketHandle) +
" -r"
);
} catch (IOException e) {
e.printStackTrace();
}
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Here's the code snippet from the same application that returns the socket
handle by using java.lang.reflect to extract the protected socket file
descriptor, so it can be passed to Kermit 95:
private int getSocketHandle(Socket clientSocket) throws Exception {
// Get the SocketImpl impl object from the client socket
Field socketImplField = getFieldFromClass("java.net.Socket","impl");
socketImplField.setAccessible(true);
SocketImpl impl = (SocketImpl)socketImplField.get(clientSocket);
// Get the FileDescriptor fd object from the impl object
Field fileDescriptorField = getFieldFromClass("java.net.SocketImpl","fd");
fileDescriptorField.setAccessible(true);
FileDescriptor fd = (FileDescriptor)fileDescriptorField.get(impl);
// Get the int fd from the fd (FileDescriptor) object
Field socketHandleField = getFieldFromClass("java.io.FileDescriptor","fd");
socketHandleField.setAccessible(true);
int socketHandle = socketHandleField.getInt(fd);
return socketHandle;
}
private Field getFieldFromClass(String className, String fieldName)
throws Exception {
Class tempClass = Class.forName(className);
Field[] classFields = tempClass.getDeclaredFields();
for (int i = 0; i<fields.length; i++)
{
if (fields[i].getName().equals(fieldName))
return fields[i];
}
return null;
}
Thanks to Marcus Mullins for the Java code samples.
If your application contains all the necessary communications functions
(connection establishment, i/o, etc) and you prefer to integrate
Kermit file-transfer protocol code directly into your Java application,
you can use the Java version of E-Kermit;
contact us for details.
[ Top ]
[ Kermit 95 Home ]