This document provides some notes on the open source release of Kermit 95 (called C-Kermit for Windows in previous releases) and some of my plans for it.
The latest release is up on the Kermit Project website, and the
latest source code is available on github. You contact myself (David Goodwin) and Frank da Cruz by emailing ckw@kermitproject.org.
Jump to: New in Beta 7 | Plans for Beta 8 | Progress Updates (dailyish) | Ideas for Future Releases
| kermitproject.org | Github | Documentation
| Feature Comparison (vs PuTTY and Tera Term)
Last updated: Thursday, 24-Apr-2025 09:57:39 NZST
UPDATE
Kermit 95 v3.0 beta 7 is now available for Windows and OS/2 from Github
and the The Kermit Project Website.
This beta sees the return of 32bit OS/2 support, adds port and X11 forwarding over SSH, adds REXX scripting support on x86 Windows XP or newer, along with a selection of other new features,
enhancements and bug fixes. For more details, see the release page on Github linked above.
At the moment my goals are: Fix the stuff thats broken or missing since Kermit 95 and generally get it working nicely
on modern Windows (I want to use it instead of PuTTY), while also maintaining and even extending support for vintage
windows systems (I want to use it instead of HyperTerm). Releases now contain as many as fourteen(!) builds to support
different CPU Architectures (x86, x86-64, ARM, ARM64, Itanium, Alpha, MIPS and PowerPC) on Windows versions going all
the way back to NT 3.50 from September 1994, in addition to 32bit IBM OS/2.
New in Beta 7
Beta 7, released on 27 January 2025, brings a selection of new features, enhancements and bug fixes.
See the release page for a nice tidy
list, or the old unordered list that used to be here.
Plans for beta 8
Subject to change based on available free time and what I feel like working on. Stuff that is done is above the line, stuff to do is below it.
- Upgraded to C-Kermit 10.0 Beta.12
- Upgraded to OpenSSL 3.4.1
- #458 - Revised control sequences documentation
- #461 - Upgraded to Regina REXX 3.9.7
- #301 - review and merge a tidyup of K95.EXE-specific code thats ending up in K95G.EXE when it shouldn't
- #255 - ADDS Regent 25 terminal emulation, written against the documentation rather than a physical example. I'd like to get someone
with access to one of these terminals to check its accuracy but struggled to find any interest. Likely the only chance of getting it tested is just to put it out there.
- #391 - Add a K95/Kermit95 terminal emulation option, something that a terminfo entry could be created for so that K-95 doesn't have
to pretend to be the linux console or xterm to get all of its features used.
- At least one terminal emulator enhancement, probably one of the following (the first two are not easy):
- #251 - Alternate Screen Buffer
- #194 - 256 colour/24-bit colour support
- #123 - OSC 8 Hyperlink support
- Further SSH enhancements. Possibly one or more of the following:
- #78 - HTTP proxy traversal
- #361 - SOCKS proxy traversal
- #357 - Support the various "SET TCP" settings for the SSH socket
- #105 - Better SSH Agent support (probably the most useful, but will require adding support to libssh first so likely not easy)
- #297 - Dynamic port forwarding (probably the second most useful of these, but likely to be a lot of work)
- maybe (probably not) suffer through the absurd undocumented complexity of building a windows install program (this would help with ensuring the Visual C++ runtime, ctl3d, etc, is installed
properly, along with making it easier to configure things like iksd, and maybe allow a single download for all four modern windows architectures)
Updates
Progress to the eighth windows beta, in New Zealand time (UTC+13). Updates are a little bit less than daily at the moment due to other commitments.
- 21-APR-2025 Impllemented DECRQSS for everything else K95 supports: DECSLPP, DECSTGLT, DECSTBM, DECSACE, DECSCA, DECSCL, DECSASD, DECSSDT, DECSCPP, and DECUSR
- 20-APR-2025 Further work on 24-bit RGB support and related areas:
- Fixed a few bugs
- Implemented DECRQSS for SGR
- 19-APR-2025 Further work on 24-bit RGB support and related areas:
- Fixed DECSCUSR not turning cursor blinking on or off
- Added a new command to set the text cursor color: SET TERMINAL COLOR CURSOR. Both FG and BG can be set, but only BG has any effect at the moment
- Implemented xterms OSC-12 for setting the text cursor background color
- Implemented xterms OSC-112 for resetting the text cursor background color
- Adjusted the TELNET and SSH clients to push the COLORTERM environment variable if they can when 24-bit color is enabled as some applications rely on this
environment variable, rather than $TERM, to detect 24-bit color support
- 18-APR-2025 Further work on 24-bit RGB support and related areas:
- Reworked implementation of SGR-38 and -48 to fix a number of bugs
- Enabled OSC-5 in non-RGB builds (the nearest palette color is used)
- Enabled SET TERM COLOR x RGB r g b RGB r g b available in non-RGB builds (it just picks the nearest palette color)
- Fixed up a few places that were assuming indexex color to handle RGB color too
- Added the ability to simulate the DIM attribute with a fixed color rather than foreground intensity, and made K95G obey true dim being disabled
- Implemented the linux console terminal control sequence CSI 1 ; n ] to set the underline attribute foreground color
- Implemented the linux console terminal control sequence CSI 2 ; n ] to set the dim attribute foreground color
- Implemented the linux console terminal control sequence CSI 8 ] to set the current color attribute as the default attribute
- Impelemented SGR-21 as the underline attribute in the linux console terminal emulation
- Enabled SCOSC and SCORC for linux console emulation
- 17-APR-2025 Further work on 24-bit RGB support:
- Support setting blink as a color rather than reverse background intensity when blink attribute is off
- Support setting bold as a fixed color rather than foreground intensity when bold attribute is off
- Support setting screen parts (simlated attribute color, status line, etc) to any palette color with new INDEX keyword, eg
SET TERMINAL COLOR TERMINAL INDEX 80 BLACK
- Support setting screen parts (simulated attribute color, status line, etc) to any arbitrary RGB value with new RGB keyword, eg
SET TERMINAL COLOR TERMINAL RGB 255 110 0 BLACK
- Implemented three xterm Operating System Commands
- OSC-5 - set attribute color (bold, underline, blink, reverse or italic)
- OSC-6 - enable/disable attribute as color (bold, underline, blink, reverse or italic)
- OSC-105 - reset attribute color (bold, underline, blink, reverse or italic)
- 16-APR-2025 Continued work on 24-bit RGB support. The work done earlier to support 256-colours makes 24-bit support much easier - less than
a days work and here is the first time Kermit 95 has ever shown 24-bit colour:

- 15-APR-2025 Started work on 24-bit RGB support
- 14-APR-2025 With the following done, 256-color support is basically finished!
- Implemented the two broken linux OSCs for setting the palette
- Ran the code through a bunch of older compilers and fixed compatibility issues
- 13-APR-2025 Implemented colour quantization so that setting 24-bit RGB values via SGR-38 and SGR-48 does something sensible. This is also used in 16-color
console builds to map xterms 88-colour or 256-colour on to the 16-colour palette the console and OS/2 versions are limited to
- 12-APR-2025 Completely reworked the way OSCs are parsed and...
- Added support for xterms OSC-4 to change the colour palette
- Added support for xterms OSC-104 to reset the colour palette
- Added support for xterms OSC-2 and OSC-I sequences for setting the window title
- 11-APR-2025 Continued work on 256-colour support. Updated SET GUI RGBCOLOR and SHOW GUI to support working with colours by index to make working with the
larger colour palettes possible
- 10-APR-2025 Supporting more than 16 colours is a lot of work! It is mostly working now, but there is still a fair bit more to go to finish it off:

- 9-APR-2025 Continued work on 256-colour support
- 8-APR-2025 Continued work on 256-colour support
- 7-APR-2025 Continued work on 256-colour support
- 6-APR-2025 Continued work on 256-colour K95
- 5-APR-2025 Overhauled the gitub-hosted K95 website. It exists primarily to provide online access to the current documentation
and previously just had documentation links, but as its visible to google I figure it ought to at least have some information on what Kermit 95 is too. I'll probably
copy much of this content over to the github repo readme file too as its a little bit more concise and user-oriented than the information that is currently there
- 4-APR-2025 Finished taking fresh screenshots of K95 running on all the platforms I have access too, required as the last set was before the re-brand back to Kermit 95:
Screenshots
- 3-APR-2025
- Fixed a problem with building libssh via Github Actions introduced by an upgraded cmake version on the github build agents
- Fixed a number of issues with the "insecure" build of Kermit 95 on GitHub actions (the one built with Visual C++ 2003 including SRP, Kerberos IV and an old version of OpenSSL)
- Upgraded to Regina REXX 3.9.7
- 2-APR-2025
- 22-MAY-2025 The last few weeks have mostly been a mix of preparing the C-Kermit 10.0 Beta.12 release (now available) and revising the control sequences documentation
- 9-MAY-2025 Continued revising control sequences documentation
- 8-MAY-2025 Finished converting the control seqeuences documentation to XML format
- 7-MAY-2025 Started revising the control sequences documentation and converting it to XML format
- 19-FEB-2025 Spent the day attempting to refactor the colour handling code in the terminal emulator so that support for more than 16 colours can eventually
be added. No promises though! I have probably a few hundred lines like "attribute = ((attribute & 0x8F) | ((l << 4)));" to make sense of and turn into
function calls that get/set foreground/background colours rather than bitwise anding and shifting and oring to pack colours into bytes. And then I've got to figure out how
on earth to test these changes. Only then can I actually start looking at adding support for 256 colours or 24-bit colour like xterm/PuTTY/etc have.
- 17-FEB-2024 Investigated building Kermit 95 against WolfSSL rather than OpenSSL, as WolfSSL can be built with OpenWatcom (and so might be an option for TLS support on OS/2
or Vintage Windows). Currently have it as far as a single unresolved external symbol at the link step - SSL_copy_session_id. WolfSSL's OpenSSL compatibility layer doesn't
seem to provide this so I'll need to figure out why the FTP client is calling it, and what should be done in WolfSSL instead.
- 15-FEB-2025 Some work on merging changes people had sent through for the next C-Kermit release
- 5-FEB-2025 Further testing between MS-DOS Kermit and Kermit 95. As the subject of how to transfer files reliably between old DOS machines and modern Windows or Linux
PCs comes up occasionally, and sometimes specifcially how to get MS-DOS Kermit to do this job, I spent the evening writing up a whole bunch of
MS-DOS Kermit Notes. Its not quite a tutorial, but it may provide some help to new or struggling users.
- 4-FEB-2025 After spending a few days sorting out a working MDA display, my Turbo XT clone is up and running
nicely. Spent a bunch of time testing transfers between MS-DOS Kermit and Kermit 95
- 1-FEB-2025
- Configured github to host the K-95 manual, which is now available here: https://davidrg.github.io/ckwin/current/.
- Fixed a pair of minor errors in the manual
- Bumped the version number to Beta 8 which will be the next release (in a few months if there are no major issues with beta 7)
- Spent a while looking at a weird build issue with Open Watcom that popped up on the GitHub build agents after 1PM local time (or 00:00 on the build agents clock). No obvious
cause besides the date changing. Before the date changed it built fine, now the Open Watcom 1.9 nmake clone is giving "Error(E08): Invalid macro name ()" or
"Error(E07): Expecting a Form Qualifier". For now, Open Watcom builds are disabled.
- 27-JAN-2025
- Checked compiler compatibility is unchanged
- Updated the readme file and a few other things for beta 7
- Beta 7 is tagged and building....
- Released Kermit 95 3.0 beta 7
- 26-JAN-2025 Set a license for the manual and merged it in
- 18-JAN-2025 Finished bracketed paste implementation
- 16-JAN-2025 Comitted the draft Kermit 95 Control Sequences document - this will go out with the next release
- 15-JAN-2025 Slowly getting back into things. I'll probably aim to do the next release on the first weekend I've got free (takes a while to build and package K95 for all 13 OS+architecture combinations,
especially when a few of the builds have to be done on genuine 90s hardware). In the meantime, today I got an initial implementation of xterms Bracketed-Paste feature going.
- 3-DEC-2024 More control sequences documentation tidyup
- 2-DEC-2024 Spent a bit of time tidying up the control sequences documentation
- 30-NOV-2024 Adjusted the manual build scripts to support inserting a note at the top of each page
- 29-NOV-2024 Sent through the updated K95 manual to Frank for review
- 28-NOV-2024
- Improved K95 manual build scripts and fixed issues preventing them from working when run from Github Actions
- Merged some mroe CI improvements from Jiri Malak
- 27-NOV-2024 Merged some changes from Jiri Malak to improve the CI build
- 26-NOV-2024 Fix the "TYPE" command complaining that /HEIGHT was specified without /GUI when it wasn't
- 25-NOV-2024 Merge fix for ARM32 build from Jiri Malak
- 15-NOV-2024
Reimplemented the menubar/toolbar/statusbar checkboxes in the dialers GUI settings page - these were new in K95 2.1.3 but the open source dialer code is based on something closer to 2.1.2. The new implementation
is compatbile with data files from K95 2.1.3.
- 14-NOV-2024
- Fixed K95 bug 797 - Dialer generated connection scripts include SET LOGIN PROMPT and SET LOGIN PASSWORD commands when the fields are empty. This can break the use of the standard login.ksc script.
- Fixed K95 bug 770 - The dialer did not load the FTP port number when opening the general settings page causing it to be cleared on save
- 13-NOV-2024 Fixed K95G crashing if the window is closed or File->Exit is used while a connection is active and GUI dialogs are turned
off
- 12-NOV-2024 Fixed the ssh.exe stub not being included in the distribution
- 11-NOV-2024
- Further work revising the K95 manual. All broken links are now fixed! Aside from the Kermit Security Reference and some
other bits that can't be finialised until closer to a stable release and/or when windows installers are built, its pretty much
done.
- Fixed the help text for set terminal apc
- Merged a pair of pull requests from Jiri
- 10-NOV-2024
- Upgraded to OpenSSL 3.4
- Fixed REXX errors not being shown
- Merged a few pull requests from Jiri to fix various code issues, mostly around DLL calling conventions.
- 9-NOV-2024
- Applied a fix from MichalN to get NetBIOS working properly on OS/2 for the first time since K95 1.1.17
- Fixed Emacs disabling mouse reporting
- 6-NOV-2024
- Merged five pull requests from Jiri to tidy up various things
- Fixed OpenSSL not being included in ARM32 builds again
- 4-NOV-2024
- Finished updating the K95 manual preparation script
- Merged a pull request from Jiri
- 3-NOV-2024 Merged a pull request from Jiri
- 31-OCT-2024
- More work on k95-manual preparation REXX script
- Merged three pull requests from Jiri to fix up intptr types on OS/2, some calling convention issues on OS/2, and missing types in a number of
declarations around the place
- 30-OCT-2024 More work on k95-manual preparation REXX script
- 29-OCT-2024
- Started investigating doing some of the k95-manual preparation in REXX rather than KSC (having regular expressions makes some things
much easier
- Fixed REXX subcommand handler not being registered properly for some reason
- Merged a pull request from Jiri to make assignments in expressions clearer
- 28-OCT-2024
- Prepared a patch for Regina Rexx to add Visual C++ support for x86, MIPS, PowerPC and Alpha and submittted it so that hopefully most if not all
versions of Kermit 95 for Windows can have REXX support
- Added REXX documentation to the distribution
- RexxRE, a regular expressions library, is now included in the distribution
- 27-OCT-2024 Merged a number of pull requests from Jiri to clean up various code issues around the place
- 26-OCT-2024
- Got the OS/2 full-screen VGA/SVGA font DLL (pcfonts.dll) building
- More documentation updates
- 25-OCT-2024 More updating the documentation. In particular, details on REXX support and making Named Pipe connections have been moved out of the
OS/2 page as they're no longer OS/2-specific features
- 24-OCT-2024 Revised some more documentation
- 20-OCT-2024
- Merged a bunch of OS/2 fixes in. The next release will include OS/2 binaries!
- Revised some more documentation
- 18-OCT-2024 Updated Github CI to automatically generate the OS/2 installation package.
- 17-OCT-2024
- Fixed issue in the console version (k95.exe) with command screen being given random colours during startup which aren't reset if K95 exits early.
The issue was caused by K95 attempting to get the background colour at the cursors coordinates without checking to see if the cursor actually
had valid coordinates.
- Fixed the -h and --help command line options not working. Some change in the K95 2.2 development had broken K95s stdout ability
(-# 64) in addition to the help arguments when K95 was not being started as IKSD. I am not sure why this change was made, but it has
been reverted.
- Significantly improved performance of the -h and --help command line options: K95 no longer pauses for 5 seconds before returning
you to the shell
- Replaced the telnet.exe and rlogin.exe stubs with the correct ones that match what was in K95 2.1.3. This sees the return of the ssh.exe, ftp.exe,
http.exe and ktelnet.exe stubs
- 16-OCT-2024 Investigated issue with the telnet.exe and rlogin.exe stubs behaving differently from K95 2.1.3
- 14-OCT-2024 New Kverbs to scroll up/down half a screen. The default mapping of the mouse wheel has changed to
scroll half a screen at a time, rather than one line at a time. Shift+scroll now does a line at a time by default. You can of course change this
with the set mouse wheel command.
- 13-OCT-2024
- Applied a fix for MichalN to get TCP/IP working on unpatched OS/2 Warp 3, Warp 4 Server and Warp 4 (build the DLL with -sg)
- Adjusted building of the SSH backends to hide SSH Agent and GSSAPI commands and help when the backend or windows version doesn't support those
features
- 12-OCT-2024 Support for SSH Agent forwarding
- 11-OCT-2024
- Fix generation of 4096bit RSA SSH keys
- Moved the HELP SSH and HELP SET SSH text into the SSH backend so different DLLs can supply appropriate help content
- Fixed various build warnings
- Documented the SKERMIT command
- Added very limited SSH Agent support - libssh is very limited in what it can do here
- More work revising the manual
- 10-OCT-2024
- Fix some SET SSH commands being hidden when they shouldn't be (bug introduced in the SSH-DLL refactoring a while back)
- New set ssh directory command to choose where K95 looks for identity and known host files by default
- Changes to allow SSH connections to traverse HTTP and SOCKS proxies in the future without needing to change the DLL interface
- Change to support the various set tcp commands for SSH connections without needing to change the DLL inteface
- Ported the SSH DLL interface code and the null ssh backend to OS/2. This doesn't result in actual SSH support on OS/2, but it does
mean that all thats standing in the way of SSH-on-OS/2 is either porting the existing libssh-based backend DLL, or writing a new
one using some other library
- Further work revising the manual, made easier now that the K95 3.0 SSH backend behaves more like the 2.1.3 backend.
- 9-OCT-2024
- Enabled more optimisations for OS/2 release builds thanks to MichalN figuring out what was up with the -ox compiler switch
- Changed the SSH directory from \v(home).ssh to \v(appdata)ssh
- 8-OCT-2024
- More revising the manual
- Fixed the default location of the SSH global known hosts file - it was previously in an invalid location for windows (/etc/ssh/known_hosts),
now its back where past versions of K95 expected it (\v(common)ssh\known_hosts2)
- Changed the default location for the SSH user known hosts file. In K95 3.0 beta 2 it was accidentally changed from
\v(appdata)ssh/known_hosts2 to \v(home).ssh/known_hosts. Anyone wanting K95 to share the OpenSSH known hosts file on
windows can explicitly opt in to this by adding set ssh v2 user-known-hosts-file \v(home).ssh/known_hosts to their k95custom.ini
- 7-OCT-2024
- Fixed building of P2.DLL (the X/Y/Z-MODEM DLL for OS/2) with Open Watcom
- Received some test reports that indicate TCP/IP is working on IBM OS/2 2.1x with IBM TCP/IP 2.0, and on IBM OS/2 Warp 3+ with IBM TCP/IP 4.1 (MPTS 5.5). TCP/IP is
currently broken on OS/2 Warp 3 (incl. Warp 4 Advanced Server which is really Warp 3) with IBM TCP/IP 3.x for at this time unknown reasons
- Spent some time investigating without success why the OS/2 verison of the dialer doesn't work when built with Open Watcom
- 6-OCT-2024
- Finished up scripts to produce the OS/2 distribution archives of Kermit 95
- Finished tidying up the OS/2 setup program for Kermit 95 and gave it a bit of testing on OS/2 Warp 3
- 4-OCT-2024
- Merged more clean-up change sets from Jiří Malák
- Started tiding up the distribution process for OS/2 Kermit 95
- 3-OCT-2024 Merged tidy-up pull request from Jiří Malák
- 1-OCT-2024
- Merged another four sets of changes from Jiří Malák to tidy up various type mismatches and other minor build issues. One of these likely
solves an issue in the Dialer when loading the default web browser on OS/2
- Building of the TCP/IP support DLL for IBM OS/2 4.0 and older is working now. The Open Source Kermit 95 can make TCP/IP connections for the
first time on OS/2 Warp 4! It doesn't work on Warp Advanced Server though, and compatibility with Warp 3 connect and OS/2 2.x is currently
unknown.
- A new TCP/IP support DLL has been added for the new 32bit TCP/IP stack introduced with OS/2 Warp Server for eBusiness and newer releases.
- 30-SEP-2024
- Merged two sets of changes from Jiří Malák tidying up various build warnings
- Spent a little time investigating the TCP/IP situation on IBM OS/2. OpenWatcom doesn't support the TCP/IP stack on OS/2 Warp 4 and older, but
it turns out the required SDK is present on the OS/2 Warp 4 CD-ROM!
- 29-SEP-2024
- Thanks to MichalN, the issues with loading the TCP/IP DLL on IBM OS/2 have been resolved
- MichalN has also got to the bottom of why loading NetBIOS support on IBM OS/2 crashes Kermit 95. While testing the fix it has been discovered
that NetBIOS support on OS/2 has probably been broken since Kermit 95 1.1.19 (February 2000) - the set host command does nothing at
all in Kermit 95 2.1.3 or the current open-source release when the network type is NetBIOS. This has been fixed based on code from C-Kermit 6.0
bringing up a new problem: accepting or making NetBIOS connections crashes Kermit 95.
- 28-SEP-2024
- Merged a number of changes to fix warnings and build issues affecting OpenWatcom 2.0 from Jiří Malák
- When the menu bar is hidden with the set gui menubar visible off command, important menu items now appear in the window menu
accessible by right-clicking on the window icon or title bar
- Fixed bug #116 - \Kexit (Alt+x) doesn't update the state of the associated toolbar button
- 27-SEP-2024
- Merged some improvements to the CI build scripts from Jiří Malák
- Renamed the following commands (original commands still work but are now hidden):
- set gui menubar off becomes set gui menubar disabled, and set gui menubar on is now hidden (it does nothing)
- set gui toolbar off becomes set gui toolbar disabled, and set gui toolbar on is now hidden (it does nothing)
- Added new command for showing/hiding the menubar/toolbar/statusbar. Unlike the commandline options, you can use these anytime. They do nothing if
the various bars were turned off via command-line option (eg, --nomenubar or --nobars):
- set gui menubar visible { on, off }
- set gui toolbar visible { on, off }
- set gui statusbar { on, off }
- 24-SEP-204
- ZLIB is now available on ARM32 (Windows RT) and ARM64 (Windows 10/11) devices
- Continued work revising the manual
- 23-SEP-2024 SSH is now available on ARM32 devices (Windows RT)
- 22-SEP-2024
- Changed K95G to no longer open COM1 automatically on start
- Started work on two new Kverbs to scroll up/down half a screen - \Kuphscn and \Kdnhscn. These should be a better default for
the scroll wheel than scrolling up/down one line
- 21-SEP-2024 revising manual
- 20-SEP-2024 revising manual
- 19-SEP-2024
- Upgraded to OpenSSL 3.0.15
- Further work revising the manual
- 18-SEP-2024 Merged in the Kermit 95 branch - the rebranding has landed.
- 11-SEP-2024 Investigated building REXX support for older and non-x86 versions of Windows. This will require submitting some patches if it
is to be supported.
- 10-SEP-2024 Added a REXX "Exit Handler" so that the say command works. This is currently Windows only as based on the
K95 manual it doesn't seem to have been necessary on OS/2. REXX support is now included in 32bit and 64bit x86 builds on Github for XP and
newer.
- 9-SEP-2024 Investigated REXX support on Windows. Turns out the API for integrating REXX is/was some kind of standard and an open-source
REXX implementation supports both Windows and the same API as OS/2. Only very minor changes were required to get it minimally functional on
Windows
- 8-SEP-2024
- For the past week or so I've been attempting to document all of the control sequences implemented by Kermit 95s ANSI-like
terminal emulations in a similar manner to the XTerm documentation. Turning thousands of lines of C into thousands of lines of HTML has
turned out to be a pretty massive job, but a first draft is almost done.
- Fixed a problem with ARM32 builds not including OpenSSL libraries
- 28-AUG-2024
- Fixed #293 - running invalid commands in a PTY causes a crash
- Fixed #256 - you can now dial modems on NT 3.50
- Added the new commands SSH REMOVE { LOCAL, REMOTE } to remove individual port forwards
- Further checking and revising upf the K95 manual
- 27-AUG-2024 Finished of X11 forwarding (except for set ssh xauth-location - K95 2.1.3 never actually ran xauth when
configured to do so, so I won't bother to for now either)
- 26-AUG-2024 Started looking into X11 forwarding.
- 25-AUG-2024 Finished up support for SSH port forwarding!
- 24-AUG-2024 Further work on SSH direct port forwarding - its almost working! I can load webpages through it, but sometimes a
new connection seems to stall/not work.
- 23-AUG-2024
- Continued revising the K95 manual
- ctrl2cap.vxd will now be included in builds targeting Windows 9x again. I found where it originally came from and its souce code and
the license doesn't forbid redistribution
- Started working on SSH direct port forwarding
- 22-AUG-2024 Continued revising the K95 manual
- 21-AUG-2024
- Continued revising the K95 manual
- Re-did the re-branding of the dialer as somehow window sizes got messed up. The usability of the Zinc Designer is not good!
- 20-AUG-2024 Wrote a Kermit script to dates and version numbers in the K95 manual to match the version of K95 thats running the script
so these don't have to be manually updated for each release, and also update last modified dates where they occur to match the date of the
last git commit that modified that file
- 19-AUG-2024
- Confirmed that setmode itself works fine, it just really doesn't like O_SEQUENTIAL for some reason. Kind of smells like a bug
in the C Runtime, or perhaps O_SEQUENTIAL is being removed. Looks like you can set this cache hint when opening the file (mode "S")
which seems to work fine (or at least not crash) so that appears to fix the bug.
- Fixed hitting backspace in an empty search-in-buffer crashing
- 18-AUG-2024 More investigating the fopen crash bug. It appears to be caused by setting the O_SEQUENTIAL mode on the file
(a windows-specific hint to the cache manager). There seems to be some inconsistency about whether O_SEQUENTIAL is defined or not, but
regardless of whether it is, passing it to setmode casues a crash.
- 17-AUG-2024
- Merged in multi-SSH-backend support (#175)
- Finished the work to rename C-Kermit for Windows back to Kermit 95. The changes aren't merged in to the made codebase yet though.
- Spent some time investigating why fopen is crashing in Beta 6
- 16-AUG-2024 Sorted out CI building of multiple SSH backends for platforms where it makes sense
- 12-AUG-2024 Continued documentation updates. I've pulled NEWBUGS.TXT into K95BUGS.HTML and added any bugs that are still open (either due
to never being fixed, or being fixed in code that was never open-sourced) to github. I've also added bugs logged in github that affect K95 2.1.3
(bugs that weren't new to 3.0 due to all the changes) to K95BUGS.HTML
- 11-AUG-2024
- Documentation Updates
- Merged in the final C-Kermit 10.0 Beta.11 code
- Ran final test build with all supported x86 compilers
- Tagged the Beta 6 release and ran the beta6 release builds for all platforms. Beta 6 is done!
- 10-AUG-2024 Documentation updates
- 9-AUG-2024 Documentation updates
- 8-AUG-2024 Fixed paging for "help options all" where argument help contains linebreaks. Also spent some time revising the K95 manual
- 6-AUG-2024 Ran test builds on MIPS (in an emulator) to confirm everything still builds there.
- 5-AUG-2024 Ran test builds on Alpha and PowerPC Windows NT to confirm everything is still building and working there. Checked over
the change log and wrote a draft of the release notes. Goal is for Beta 6 this week.
- 4-AUG-2024
- Finally overcame a tricky bug on Windows XP and Server 2003 which would cause K95 to crash when making an SSH connection when using an
SSH backend DLL.
- K95 now automatically loads the right SSH backend based on available dependencies (eg, Kerberos) and OS (Windows XP). No more renaming
DLL files if you want to use Kerberos or Windows XP.
- Gave the currently loaded SSH backend DLL control over over a few of the "set ssh" keyword tables. These are all for ciphers and other
things that will be specific to a given SSH implementation and will need updating from time to time based on libssh updates.
- Various SSH commands and options are now disabled and hidden unless the currently loaded SSH backend claims it supports those features
- Most of the commands and options affected are ones that the current SSH backend based on libssh does not currently support and
likely never will - instead of outright removing them as originally planned, now they'll just be disabled unless some future
SSH backend comes along wanting to use them
- This means that if a future SSH backend wanted to, for example, support SSH V1 it just needs to report that capability
to K95 and all the various SSH V1 commands and options will be made available again.
- 30-JUL-2024 Continued work on DLLification of the SSH code. set ssh, set network type ssh, skermit and all
ssh commands except for a new ssh load command are disabled unless K95 managed to load an SSH DLL on startup. The new
ssh load command is only available when no SSH DLL is loaded. It allows the user to specify a DLL to try and load to enable SSH
features
- 29-JUL-2024 Continued work on DLLification of the SSH code. Its being done as an additional build option:
- No SSH support at all - this is what Windows NT, 9x, 2000, and OS/2 currently get (SSHBUILTIN not defined)
- LibSSH SSH support - if libssh isn't available/won't load then K95 won't run. Only Windows XP and newer can support this, and Windows XP will
probably become incompatible in the not too distant future (I'm already having to patch libssh to make it work on XP for beta 6). (SSHBUILTIN defined)
- new: Generic SSH DLL support - ssh commands are only available if a compatible ssh DLL can be loaded. The existing libssh integration
bits will be built as a DLL for Windows XP or newer. Users could supply their own non-libssh DLLs to use instead, including on OS/2 or
Windows NT/9x/2000 where libssh won't run. (SSHBUILTIN and SSH_DLL defined)
- 28-JUL-2024 Started work on being able to load the SSH backend at runtime rather than having it compiled into the application. Currently
the user has to choose between two different DLLs (one kerberos-enabled, one not), and in beta 6 there will be a second copy of both of those
DLLs for Windows XP users. Being able to load the DLL at runtime, when complete, should bring the following benefits:
- K95 will be able to automatically try loading a few SSH DLLs one after another until a compatible one is found. This saves the user having to
move around or rename DLLs as they currently do.
- K95 will still be able to start and run even if loading of a SSH dll fails - the various SSH commands will just be disabled
- Alternative SSH backends could be developed, possibly by 3rd parties. Someone might want to try extracting the SSH implementation from PuTTY
and wrapping it up in a DLL to provide Windows 9x/NT builds of K95 with SSH support, or try building a compatible SSH DLL for OS/2
This work won't appear in beta 6 even if its done in time for the release - due to the scale of the change I'd prefer to give it a bit more
testing myself and release it in beta 7 if its working well enough by then
- 26-JUL-2024 Upgraded to zlib 1.3.1
- 25-JUL-2024
- Fixed bug #187 - terminal area will not resize larger than the primary display, attempts to do so (eg, maximising K95G on a display that
is taller than the primary) just introduce white space around the edges
- #186 - increased the maximum number of terminal columns in K95G to 512, enough to fill a 4K display at a 10pt font. This change only
affects K95G on modern windows. The console version (K95.exe) remains limited to 256 columns at this time, and the enhancement has
been excluded from versions of K95G targeting vintage PCs which are more likely to be impacted by the additional 1MB of RAM this
change demands and less likely to have a display large enough to actually display that many columns.
- Further work revising the manual
- 24-JUL-2024 Started revising the manual
- 23-JUL-2024 Further rebranding work on a branch. Should have got everything but some of the documentation so far (changelog, ssh readme,
build instructions, etc)
- 17-JUL-2024 Confirmed that modem support (TAPI and direct/built-in) still works in both the 32bit and 64bit builds of CKW. This hasn't
been tested in any Kermit 95 builds since at least 2.1.3 so its good to confirm it still works. The actual testing was a bit involved as
I haven't had a landline in years and the old copper phone network is starting to be decomissioned nation-wide so soon no one will
have a landline. For testing purposes I've set up a small PBX and was able to dial between a 56k and a 28.8k modem reliably with one end
using a windows TAPI device and the other end controlling an external serial modem connected to another machine via RFC2217 Telnet Com-port-control.
- 15-JUL-2024 Did some initial rebranding work on a branch. No decision at this stage on which release the rebrand will appear in.
- 1-JUL-2024 "fixed" a Windows XP compatibility issue introduced with the new version of libssh. Windows XP users will from
now on have to swap out ssh.dll with a special version modified for windows XP. The SSH Readme included in the doc folder and as part of
the upcoming release has a section down the bottom with the details.
- 30-JUN-2024 and 29-JUN: Added ADDS Regent 25 emulation. Seems to be working,
but could do with more testing before it appears in a normal release.
Some test binaries are available here - choose the "regent25" terminal type. Please report any bugs encountered.
- 29-JUN-2024 Imported latest C-Kermit 10 code from Frank
- 26-JUN-2024 Added a DECRQCRA implementation
- 25-JUN-2024 Fixed some issues with Github CI
- 6-JUN-2024 Updated to OpenSSL 3.0.14
- 3-MAR-2024
- Fixed the 'show network' command claiming SSH isn't available
- Fixed the 'show network' command mentioning SSH V1 (which is no longer supported)
- Added the C-Kermit beta number and the Windows beta number to the About dialog (Help>>About)
- Bumped the windows beta to 6
- Fixed some CI build issues
- Started investigating the status of libssh on Windows XP: libssh 0.10.6, a security update, has introduced a dependency on Windows Vista.
I may look at building a patch to reverse this for a special Windows XP build of CKW
- 16-FEB-2024
- A selection of changes to the makefile and github actions CI workflow to handle the situation where we're cross-compiling
for an incompatbile target architecture (x86/x86-64 to arm/arm64/ia64/alpha64) where the version of wart generated won't run on
the host systems processor. This situation is now detected and building of wart skipped. In this situation you can either supply
a version of wart compatible with the host processor which will then be used in the build process (which is what Github Actions CI
does now - produces an x86 build of wart and uses it for the ARM/ARM64/IA64 builds), or just run wart yourself when necessary.
- Merged in the 2024-02-06 C-Kermit 10.0 Pre-beta.11 code
- 15-FEB-2024 wWork on merging in the latest C-Kermit pre-beta.11 code in a branch.
Cross-compiling for Itanium and ARM is currently failing due to the reintroduction of WART which is currently being built for the
target CPU architecture rather than that of the build host.
- 14-FEB-2024 Update changelog
- 13-FEB-2024 Upgrade to OpenSSL 3.0.13
- 8-JAN-2024 Upgrade to OpenSSL 3.0.12 and libssh 0.10.6
- 30-SEP-2023 Upgrade to OpenSSL 3.0.11
- 25-SEP-2023 Update compiler support documentation
- 21-SEP-2023 Corrections to the SSH readme
- 18-SEP-2023 Update changelog
- 17-SEP-2023 Merge in latest code from FdC
- 15-SEP-2023 Fixed another 64 warnings. K95.EXE, K95G.EXE and related bits now build with OpenWatcom generating only a small handful of
warnings - all of them are of either the "variable/label not referenced" or "unreachable code" kind. These are things that would either be
too messy to fix, or I'm not sure if they really are safe to fix. When built with older versions of Visual C++ there are still around 900
warnings such as "integral size mismatch in argument; conversion supplied" but I'll deal with them another day.
- 14-SEP-2023 Fixed another 44 warnings - just about done with K95G.EXE built with OpenWatcom. Also setup OpenVMS x86 for building C-Kermit
so I can be sure none of this warnings-fixing work is causing problems there. Linux is already checked automatically for build failures by
Github
- 13-SEP-2023
- Fixed an issue related to available SSH auth methods changing during authentication. In this case, keyboard-interactive
wasn't available until after a password was entered at which point it became required. This is now fixed
- SSH authentication methods are now attempted in the order specified by "set ssh v2 authentication" just as in Kermit 95 (previously
in CKW this list was simply treated as the available options with the order being fixed)
- 12-SEP-2023 Fixed another 23 warnings - only 57 to go
- 11-SEP-2023
- Fixed #227 - the SSH, SSL and Kerberos settings weren't visible in
the dialer when using 64bit C-Kermit due to the DLLs also being 64bit. The dialer tries to load the DLLs which failes in
this scenario due to the dialer still being 32bit. The SSH, SSL and Kerberos options are now permanently on whether support
is available or not - easier than trying to be smart and detect if the DLLs are there, especially given the OpenSSL DLLs
name tends to change with version now.
- Added a message to the end of the default k95custom.ini which will display when the console version (k95.exe) is run to direct
new users towards the GUI version (k95g.exe) instead
- Fixed another 29 compile warnings - only about 83 to go for k95g.exe!
- 9-SEP-2023
- Fixed the help text for "set gui window position" - this command actually is implemented and it works fine
- 4-SEP-2023
- The default k95custom.ini now checks for ssh support and the GUI before running those commands.
This should put an end to startup errors when using the console version or running a version
without SSH support
- Fixed C-Kermit not being able to find the dialer window if it wasn't launched by the dialer.
Turns out C-Kermit looks for it by window title so the re-branding broke it.
- 30-AUG-2023
- Fixed another 30 compile warnings. Still quite a few to go
- Setup github to do automatically perform a linux build of the latest version of C-Kermit using the shared modules from C-Kermit for Windows.
This is just to check that any changes I make to files matching ck[on]*.* don't break anything on Linux.
- 29-AUG-2023 Another 86 warnings fixed in k95g.exe. The total so far is over 814.
- 28-AUG-2023 More compile warnings in k95g.exe fixed: 143
- 27-AUG-2023
- Setup IKSD on ftp2.zx.net.nz - now you can download Kermit via Kermit!
At the C-Kermit prompt, iksd /user:anonymous ftp2.zx.net.nz
- Added the iksdnt and kui build configs to CI. This is only to ensure affected code isn't accidentally
broken - there are no plans to ship these binaries at this time.
- 23-AUG-2023 Fixed another 53 compile warnings in k95g.exe
- 22-AUG-2023 Fixed another 185 compile warnings in k95g.exe - still lots more
- 21-AUG-2023 Fixed over 350 compile warnings in k95g.exe - many more remain
- 20-AUG-2023 Fixed some more makefile issues with OpenZinc and did a full build with Visual C++ 4.0 on the AlphaStation
- 19-AUG-2023 I have permission from Microsoft to use Visual C++ 4.0 RISC Edition and Visual C++ 6.0 Alpha Platform Edition!
- Setup the PowerPC machine, installed Visual C++ 4.0 and did a full build including OpenZinc and the dialer
- Setup a MIPS emulator, installed Visual C++ 4.0 and did a full build including OpenZinc and the dialer
- Setup the AlphaStation, installed Visual C++ 4.0 and 6.0, fixed some OpenZinc makefile issues and did a full build including OpenZinc and the dialer using Visual C++ 6.0
- 12-AUG-2023
- Added some scripts to make building OpenSSL and LibSSH a bit easier
- Upgraded to OpenSSL 3.0.10
- 11-AUG-2023 Upgraded to OpenSSL 1.1.1v
- 6-AUG-2023 Spent a few days fixing up my IBM RS/6000 43P-7248 and getting Windows NT installed on it (only ever ran AIX on it before).
Fixed issues building for PowerPC NT and added support for building the dialer (really OpenZinc) for PowerPC NT)
- 13-JUL-2023 Fixed bug #221 on Windows NT 3.51 and newer: directory listings now correctly
report sizes (and dates) for large files. The bug remains on NT 3.1/3.50.
- 5-JUL-2023 Updated this page: beta 5 is out now! Now working towards beta 6
- 4-JUL-2023 Produced release builds for CKW Beta 5, did some testing and then sent out the release
- 3-JUL-2023 Fixed some build issues on AXP and AXP64 with the NT 3.50 and January 2000 SDKs (plus oldnames.lib from Visual C++ 4.0)
- 2-JUL-2023
- Fixed the "show versions" command crashing in 64bit builds (it was a missing function prototype)
- Set unm_mch properly for systems running 64bit or ARM windows so that "Machine:" in the show features output doesn't come back as "unknown"
- Fixed the OS version string shown in the "show versions" command
- Set the most recent change date and set the version number to 10.0 for all Win32 modules that have been changed since Kermit 95 2.2 so the
"show versions" command doesn't claim these modules are old
- 1-JUL-2023
- Switched automated builds on github actions to use jom instead of nmake. Jom is an nmake clone that knows how to schedule jobs
across multiple CPUs (the equivalent of the -j option in GNU Make) significantly reducing build times on windows
- Updated the build documentation to cover jom
- Updated the screenshot on github to a recent build running on Windows 11
- Checked the changelog and created the "What's New in Beta 5" page
- Finalised the downloads readme page listing all the builds that will be available in beta 5, which versions of Windows and CPU architectures
they're for, and which features they lack
- 30-JUN-2023
- Merged in the latest C-Kermit Beta.10 development snapshot
- Created some Virtual Machines to test the upcoming release in
- 25-JUN-2023
- Upgraded to OpenSSL 1.1.1u as it works on all supported architectures (3.0.9 and 3.1.1 do too, but libssh gives a link error on x86-64 that requires further investigation)
- Documented ctl3d32.dll installation process for the dialer
- Documented the set browser command in k95custom.ini better to explain where the default browser setting comes from and why
- 24-JUN-2023
- Merged in the latest C-Kermit for UNIX changes - now tracking Beta.10
- Did some testing with new versions of OpenSSL (1.1.1u, 3.0.9, 3.1.1) and it looks like the build issues on ARM and IA64 have been fixed.
- Spent a little time trying out jom instead of nmake for running the automated CI builds
- 23-JUN-2023 Took a short break from new PC setup, and...
- Fixed building of cryptdll with Visual C++ 2002 (not sure how this ever worked if it did)
- All components can now be built with all versions of Visual C++ using jom
instead of nmake resulting in much reduced build times on multiprocessor
machines
- Made some improvements to the status line to prioritise showing the hostname
over the exittext (showing "Command: Alt-X" by default):
- If the maximum width for the exittext field has been increased from
20 columns to 30 to handle some longer key names properly. This
may reduce the width of the hostname field when \Kexit is mapped
to a sequence with a longer name.
- If the hostname is too long to fit in the available space, the exittext
field will be hidden and its space given to the hostname.
- The width of the hostname field now increases (or decreases) with the
width of the terminal
- Added a little extra padding between the exit text and hostname fields
when sufficient space is available
- 22-JUN-2023 I've taken a little break to sort out a new PC. Until now I was using either a late 2009 desktop (Core i7 860 "Lynnfield" quad core, 16GB RAM),
or a 2018 Thinkpad T470 laptop (Core i5 7200U "Kaby Lake-U" dual core mobile, 16GB RAM). The CPU in the laptop is a low-end low power part as I did not
buy it with software development in mind (it was bought to control a telescope so battery life was more important) so while a lot newer than the desktop it was
only very marginally faster. I assembled the new desktop (AMD Ryzen 7700X octa-core, 32GB RAM) yesterday and is now up and running Windows 11. I don't have most of my software
setup yet so that will be the job for the next few days. Build times are noitcably faster. A full build of CKW on my laptop took 2 minutes 32 seconds. On the desktop
with no other changes its down to 46 seconds. Switching the make tool from nmake to jom brings the full build time down to 9 seconds!
Development on CKW will probably resume properly next week once I've finished setting up the new PC.
- 14-JUN-2023 Added ctl3dins.exe back to the distribution, adjusted a table in the changelog so it converts to HTML properly, started work on the download
readme/index page: I think a new release of CKW is well overdue
- 13-JUN-2023 k95custom.ini is now distributed as k95custom.sample. This should prevent upgrading users from accidentally overwriting their customised k95custom.ini.
k95.ini will now automatically rename k95custom.sample to k95custom.ini if it can't find k95custom.ini in any of the usual places.
- 2-JUN-2023 Fixed incorrect colour and logfile defaults in the DEFAULT template the dialer automatically creates on first run. This bug was resulting in users
who use the dialer getting a green terminal background when they should have got blue (along with other messed up colours). This bug affected the dialer in Kermit 95
too though users would have only encountered it if they deleted C:\ProgramData\Kermit 95\dialinf.dat
- 30-MAY-2023
- Updated libssh to 0.10.5
- Updated the changelog to reflect whats coming in beta 5
- The "show features" command now shows if DECnet, SuperLAT and PTY are available or not as not all builds include these features
- 29-MAY-2023
- Enabled kerberos (GSSAPI) authentication for SSH. Seems to work well though the deployment side of things is a bit annoying. The kerberos-enabled
ssh.dll won't work unless MIT Kerberos for Windows is installed so we're probably going to have to distribute two ssh DLLs - one with kerberos and one without as
most users won't have or need Kerberos.
- Spent some time trying to find a telnet or ftp server to test CKWs built-in kerberos support against but I can't find anything. I will just have to assume
the built-in kerberos support still works
- 28-MAY-2023 Spent some time chasing down a crash when running 32bit CKW with kerberos. The crash is coming from inside the error_message function in comerr32.dll
from MIT Kerberos for Windows. This only seems to affect running 32bit CKW with 64bit KFW - using 32bit KFW appears to be fine. Maybe its a bug in the 32bit libs
packaged with 64bit KFW, or some issue with the way CKW is initialising kerberos (race condition perhaps).
- 27-MAY-2023
- Finally fixed build error in ck_crp.c when building k95crypt.dll with kerberos enabled
- Configured CI to build kerberiszed CKW for modern windows
- Started setting up a Kerberos test environment so I can confirm kerberos support in CKW actually works still
- 26-MAY-2023 Support for building with internal DES/CAST implementation instead of k95crypt.dll
- 21-MAY-2023 Fixed building of FTP GSSAPI support on Windows
- 20-MAY-2023 Further Kerberos work: It now builds with the latest version of Kerberos for WIndows (4.1) which is Kerberos V only. KFW 3.2.2 also builds fine
(that one supports Kerberos IV and V). Further work is still required to sort out a build error with the DES/CAST crypto DLL when Kerberos is enabled,
as well as figuring out how to build libssh with GSSAPI support, and setting up kerberos-enabled automatic CI builds. Plus I'm going to have to actually
setup a Kerberos environemnt to test all of this against!
- 19-MAY-2023 Spent some time getting Kerberos support building again. This is still using an ancient (though slightly less ancient) version of MIT Kerberos
for Windows. Goal right now is to get whats there building and working, then maybe upgrade to a current version of K4W. Kerberos support won't
appear in standard beta releases until a newer version is working.
- 18-MAY-2023 Tidied up and committed the AXP64 changes
- 17-MAY-2023 Got CKW building with the Alpha compiler in the January 2000 Platform SDK. This compiler is probably both the newest publicly released Windows
compiler for the DEC Alpha and the oldest publicly released 64bit compiler for Windows. So now CKW builds for 64bit Windows on the DEC Alpha, a version
of windows never publicly released by Microsoft (all public versions of NT for the Alpha were 32bit). So I've got 64bit Alpha CKW binaries that will
run on nothing at all! But it does at least confirm CKWs portability.
- 15-MAY-2023 Spent a bunch of time investigating IKSD on Windows and confirming it still works
- 14-MAY-2023 Merged in the final C-Kermit 10.0 Beta.09 code. Given how long its been since the last beta (almost 6 months!) its tempting to do another beta
release sooner rather than delaying until the terminal emulator enhancements I'm working on are ready. Perhaps I'll give it another week or two
and if the terminal emulator enhacements aren't close to ready then they can be delayed until beta 6.
- 13-MAY-2023 Finally got around to installing the new x86 version of OpenVMS so now I've got access to more than just Linux/UNIX systems to point CKW at
- 12-MAY-2023 Implemented a few more XTWINOPTS
- 11-MAY-2023 Investigated the remaining issue with DECERA: We're missing the DECSLRM and DECLRMM escape sequences which were new to the VT420. Looks
like there is no way to avoid implementing these too as a lot of software today makes use of it (when available) to significantly improve performance.
Due to the high difficulty of adding these I'll leave them until all the other "easy" tests are dealt with. Like XTWINOPS: One more of these has been
implemented.
- 10-MAY-2023
- DECRQCRA escape sequence isn't implemented correctly (yet) but it seems good enough to satisfy the tests for now. Still need to add a setting
to turn this escape on/off (for security)
- Reduced the risk of an out-of-bounds array access on SGR colour lookup
- Fixed some bugs in the VT420 DECERA escape (Erase Rectangle)
- Fixed DECERA being ignored when no parameters were supplied (should erase the entire screen)
- Fixed DECERA acting when given an invalid rec (should *probably* do nothing like xterm, need to get out the VT520 and confirm
this isn't xterm-specific behaviour)
- CKW now passes 225/552 tests (41%) - twice as many as before, and almost as many as iTerm2
- 9-MAY-2023: Worked on implementing enoguh of the DECRQCRA escape sequence to satisfy the automated tests which use it to peek at whats on screen
- 8-MAY-2023:
- Managed to get an "xterm" terminal type to appear in the UI (there are quite a few places that need updating). Compared to the "linux" terminal
type this passes an additional 8 tests, and fails two new ones. CKW is also responding to a lot more
escape sequences, though these are still failing (gone from "no response" to "incorrect response").
- 7-MAY-2023:
- Fixed receiving of CSI > Pm t - this xterm-specific escape sequence is now ignored rather than minimising the window
- Implemented xterm escape sequence CSI 1 8 ; Ps ; Ps t (get text area size in characters)
- Tested the CKW terminal emulator with esctest2. Initial results (using the "linux" terminal type): 113/552 (22%).
Supposedly xterm scores 93% and iTerm2 55%
- Started looking into whether it would be possible to provide an "xterm" emulation option. This may be worthwhile as a way of making more of CKWs
terminal emulation features (those that go beyond the VT220) available to modern linux hosts which don't know anything about CKW or its abilities.
At the moment telling CKW to emulate the Linux Console Terminal ("Linux") gives you at least colour and mouse interaction, but there are
still other features CKW supports that the Linux Console doesn't, along with extensions the Linux Console supports that CKW doesn't currently
implement or doesn't implement correctly (like the palette escape sequences). Of the terminals terminfo commonly knows about, CKW is probably
closer to (though still a fair distance from) xterm than anything else, and this aligns more with features likely to be added in the future
(eg, 256 colours). And today xterm tends to be what most newer software expects - few people are connecting to modern linux hosts with a VT220
or anything that specifically emulates one. Most people are connecting with xterm or something pretending to be xterm (PuTTY, iTerm2, the many
emulators that wrap VTE, etc).
- 6-MAY-2023: Fixed intro text (SSH v1 is not supported anymore)
- 5-MAY-2023: Merged in latest code from Frank
- 4-MAY-2023: Fixed OpenWatcom build issue
- 3-MAY-2023: Fix issues encountered when cross-compiling CKW from Linux and updated build documentation. CKW can now be (mostly) built with MinGW
- 2-MAY-2023: The X/Y/Z-MODEM library (p95.dll) can now be built with GCC too. That just leaves SSL and SSH.
- 1-MAY-2023: Futher porting to GCC: The GUI version now builds and runs! screenshot
- 30-APR-2023: Further porting to GCC. The CKW code uses cast-as-lvalue quite a bit (>400 of them), which GCC hasn't supported since 4.0.
They're all used for getting function pointers out of libraries (DLLs) loaded at runtime. I've written typedefs for a bunch of them
and switche dhtem to regular rvalue casts so it now builds fine without Kerberos, SRP or SSLDLL support which I think is fine. SSLDLL
support hasn't worked since OpenSSL 0.9.8 and there is little reason to fix it, and the Kerberos and SRP dependencies are still too old
to ship so builds don't normally include them anyway.
- 29-APR-2023: Initial porting to GCC. The console version (k95.exe) now builds though a few things need tidying up
- 28-APR-2023: Started looking at building with GCC. There is no intention to switch release builds away from Visual C++, this is just to make it
easier for potential contributors. GCC (MinGW) is relatively common on Windows these days, and its also the easiest option for cross-compiling
Windows applications from Linux. Adding GCC support makes it more likely potential contributors already have CKW-compatible compiler installed.
- 27-APR-2023: Adjusted the automatic builds that Github does to produce a build with SRP enabled. This is not a revival of SRP support
in CKW, its just an automated check to ensure the ancient SRP support that is already there doesn't get accidentally broken making it harder
to resurrect in the future should someone choose to. As this build is done with the ancient libsrp and an equally ancient version of OpenSSL
its not going to be included in releases. If you really needed it for some reason though, the "ckwin-vc7.1-x86-insecure" artifact on Github Actions
is the one you want.
- 26-APR-2023: Put together a quick table of what the various source files are to make finding things easier. Found a few likely unused things
that can be deleted at some point in the process.
- 25-APR-2023: Checked the hostmode script still works, adjusted distribution to include hostmode and other sample scripts. Spent a bit of time
playing around with kermit scripting to see if it might be possible to build a markdown-to-html converter but I suspect its wildcards
arent quite enough to pull it off easily
- 24-APR-2023: Added TLS SNI support to the HTTPS and secure telnet clients
- 23-APR-2023: Sorted out SSL/TLS support for C-Kermit for Windows on Intel Itanium. Unfortunately SSH isn't possbile due to the age of the compiler
- 22-APR-2023: C-Kermit for Windows also now builds for: ARM32, ARM64 and IA-64 (Itanium). Of those only ARM64 has SSH support currently, and Itanium doesn't
have SSL/TLS support yet. I don't have any Windows-compatible ARM or Itanium machines to test on so at this stage its only known to build
for those platforms - I have no idea if the binaries will actually run.
- 21-APR-2023: k95g now builds for 64bit windows! Also fixed the SSH bug (there were two actually, one of which must have surely been causing problems
in 32bit builds too) so SSH now works from 64bit C-Kermit for Windows! I even wrote this update with a 64bit build!
- 20-APR-2023: Further work on porting CKW to x86-64, now looking at the GUI-mode terminal (k95g.exe)
- 19-APR-2023: Some final CKW-on-Alpha work: Copying all the object files to a PC and linking with the Visual C++ 4.0 (x86) linker produces a working
Alpha NT binary. The resulting map file suggests 'end' is coming from the C Runtime - not sure what can be done about that. Building with the same compiler
and linker flags as the sample apps in the NT 3.50 SDK (which all build fine on Alpha) didn't fix anything. For now I'm all out of ideas and further progress
will probably depend on buying a copy of Visual C++ RISC Edition from somewhere. Based on the results so far though I expect it should build ok for Alpha
using Visual C++ RISC Edition version 4.0 or newer.
- 17-APR-2023: C-Kermit is so close to building for Alpha NT but I suspect the Windows NT 3.50 SDK is just not quite enough. Its currently
failing at the link step complaining that the 'end' symbol is reserved. It builds fine with the x86 version of the NT 3.50 SDK so this issue seems
to be specific to the Alpha. Its starting to look like this won't be possbile without buying a copy of Visual C++ RISC Edition which is basically
impossible in 2023
- 16-APR-2023: Got distracted from the 64bit porting because it turns out my AlphaStation works! Spent a bunch of time trying to build C-Kermit for
Alpha NT using the only compiler I have - the one in the Windows NT 3.50 SDK
- 15-APR-2023: Further regression fixing.
- 14-APR-2023: Mostly fixing regressions in 32bit compiler support. At this stage everything but the GUI (k95g) and dialer builds fine for 64bit Windows,
though most of it is completely untested and likely broken - SSH connections at least just crash. Building the dialer for 64bit windows likely isn't possible
due to OpenZinc - yet another reason to rewrite it.
- 12-APR-2023: Further 64bit porting work. Also provided some assistance getting it building for PowerPC Windows NT
(screenshot,
test build from tenox)
- 11-APR-2023: Further work on porting to 64bit Windows. Most 64bit related warnings in the console version (k95.exe) have been fixed and it
can now start and make telnet connections. SSL, SSH, X/Y/Z MODEM and antique telnet encryption haven't been ported yet along with the GUI version.
Things are looking fairly promising though.
- 10-APR-2023: Initial work on C-Kermit for 64bit Windows - it now builds without errors but its a long way from actually working.
Lots of warnings about truncated pointers and other nasty things will need to be fixed before it has any chance of doing more than crashing on
startup
- 21-MAR-2023: CKW should now build fine for MIPS Windows NT for anyone with the necessary hardware and compiler.
TAPI support is disabled on MIPS due to a compiler issue. The status of the dialer is unknown but likely works.
- 17-MAR-2023:
- Fixed received files not having their modified dates set on builds for modern versions of Windows
- Fixed entering plane-1 unicode values with Alt+n
- 16-MAR-2023:
- Fixed "show terminal" not showing autodownload=ask
- Fixed receiving files when autodownload=ask and the specified filename includes a path using UNIX path seperators (eg: send test.txt C:/temp/test.txt)
- Adjusted the default k95custom.ini to set autodownload=on (instead of ask), and switch into the users home directory rather than leaving the current
directory as, most likely, the directory where CKW lives
- Fixed Visual C++ 2017 build failure (and also likely 2015, 2013)
- 18-FEB-2023: No code changes, just some planning. Going to try and get in at least 30 minutes of work a day to fix bugs, maybe more time on weekends to
tackle missing features like SSH Agent support
- 12-FEB-2023: Fixed some build errors with vintage Visual C++ and merged a fix from Jeffrey Johnson to prevent CKW crashing when run under WINE
- 11-FEB-2023: Investigated changes in Visual C++ 2.2 and whether it can build the same feature set as Visual C++ 4.0. Looks likely, further testing
and makefile changes required
- 7-FEB-2023: Tidied up initial NT 3.1 support and merged into main. The NT 3.50 build now includes by default very limited NT 3.1 support
- 6-FEB-2023: Fixed a bug in the GetShortPathName implementation for Windows NT 3.10
- 4-FEB-2023: Limited time today so fixed some CI issues and some OS/2 binaries that weren't being build when they should be
- 3-FEB-2023: Further investigation into why the dialer doesn't start on OS/2. Conclusion: no idea. Time I moved on to more important things
- 2-FEB-2023: Spent some time getting the dialer to build for OS/2 with OpenWatcom. It builds now, but it doesn't run. Not sure why yet.
- 1-FEB-2023: Finished off SRP work. CKW can be built with SRP support but it requires an ancient version of OpenSSL (prior to version 1.1) so we won't
be able to include SRP support in standard builds unless the original Stanford SRP implementation is replaced with one that's still maintained
(perhaps the one from OpenSSL?). Until then, the old SRP support is there and buildable if anyone needs it.
- 31-JAN-2023: Spent some time getting SRP support going again - this was mostly just fixing up some things in the makefiles and build environment setup script.
- 27-JAN-2023: Window sizing has been tamed on NT 3.1 and now the status bar works too! And manual window resizing which I broke earlier is also now fixed.
- 26-JAN-2023: Finally figured out the cause of the K95G window sizing on NT 3.1 when built with Visual C++ 2.0 - will attempt a fix tomorrow or the day after.
Cause was microsoft changing the status bar window class name between NT 3.10 and 3.50 which prevents the status bar from beging created on one or the other
depending on the version of the Win32 SDK being used. CKW doesn't notice creation of the status bar failed and tries to get its dimensions which come back
as garbage. Fix is to detect windows version (NT 3.10 or 3.50) and use the appropriate window class name.
Once fixed I'll probably just merge the NT 3.1 branch - networking is still broken, as is the console version when built with Visual C++ 1.0, but
those can be fixed later.
- 25-JAN-2023:
- Spent a few hours trying to figure out why the K95G windows size goes nuts on NT 3.1 only when built with Visual C++ 2.0 (1.0 is fine on NT 3.1,
2.0 is fine on NT 3.50)
- Merged a fix from Jeffrey Johnson (trn) to fix SSH none auth (connection attempts to SSH servers supporting anonymous logins would just hang)
- Cause of crash when running under WINE has been identified by trn - problem with WINEs TAPI implementation, the fix will be merged in once the NT 3.1 branch
is merged as both branches involve OS version detection changes
- 23-JAN-2023:
- Further debugging. Still not entirely sure whats causing the crash - tempting just to park this and move on to more important things;
As annoying as it is to have CKW working on all but one versions of 32bit or better Windows,
NT 3.1 support isn't exactly a useful feature in 2023
- Updated the about dialog: Removed the text listing missing features (the features mentioned are no longer missing depending on build options), and added my name.
- 22-JAN-2023: Trying to find source of crash on NT3.1 VCNT console build - seems likely to be something on the screen update thread
- 21-JAN-2023: Finished tidying up the NT 3.1/3.50 targets and fixed remaining Visual C++ 1.0 32-bit edition build errors. Everything now
builds for Windows NT 3.1 - just have to fix the bugs
- 15-JAN-2023: Spent a little time tidying up NT 3.1/3.50 targets with the goal of producing one build that works on both using whatever Win32
APIs are available on the host operating system
- 14-JAN-2023: Split the NT 3.1 and NT 3.50 targets - APIs not available on NT 3.1 are now properly available when targeting NT 3.50
- 21-DEC-2022:
- Added the beta4 release to github (forgot to do it earlier)
- Fixed a bunch of build errors with Visual C++ 1.0 32-bit edition: cknker.exe (aka k95.exe) and k95g.exe now build
- K95G starts successfully on Windows NT 3.1 - Screenshot. C-Kermit for Windows has now run on every 32bit or better x86
version of Window released! Lots of work will be required to make it worth including Windows NT 3.1 support in future releases though:
- Telnet connections die after a little while or possibly after a certain amount of data has been received
- The way serial ports are configured has been changed so serial connections may well be broken too
- The console version doesn't work properly on NT 3.1 - it dies on startup. Works fine on Windows 10 though so it could be some difference in Windows APIs
- Some tidy-up work needs to be done so that both NT 3.1 and NT 3.50 can be targeted properly.
- 16-DEC-2022 Revised this page - now working towards beta 5
- 15-DEC-2022 Packaged up C-Kermit for Windows Beta 4 for release and tested on a selection of Windows versions
- 13-DEC-2022:
- Fixed openssl not being included in github artifacts
- Merged k95crypt stuff - the Telnet Encryption Option is now supported again
- Merged in the latest Beta.08 code from FDC dated 12-DEC
- Adjusted the github automated builds to convert the changelog and ssh-readme to HTML for automatic inclusion in generated artifacts
- Did some testing with SSH-DSA support - it seems to work fine?
- 12-DEC-2022: Tidied up the building of the k95crypt component
- 11-DEC-2022:
- Fixed window resizing on Windows NT 3.5x - its not perfect, but it seems to work
- Adjusted environment setup script to support forcing SSH/SSL/ZLIB off even if the libraries are detected
- Figured out how to build k95crypt.dll allowing various obsolete encryption options to be supported again
- 9-DEC-2022:
- Further work on XYZ Modem support
- Fixed build issued with OpenWatcom 1.9
- Fixed build issues with the Visual C++ 2003 toolkit
- Setup automated builds via Github Actions
- Added a versioninfo resource to the dll
- Updated build documentation
- Merged into main: X/Y/Z Modem is back!
- Revised the README file
- Fixed "no arrow-key support" showing in the show features output (arrow keys are always supported on Windows and OS/2)
- Merged in C-Kermit 10.0 beta.07!
- Updated the change-log with everything guaranteed to go out in the fourth beta
- Added a few bug reports received via email to the issue tracker so they don't get lost
- Started planning for Dialer changes to allow it (and its data files) to co-exist with the Kermit-95 version now that they're semi-incompatbile with each other
- 8-DEC-2022: Work on XYZ Modem support
- Added relicensed 'P' sources from Kermit 95 2.1.3 to source control (this is the XYZ Modem library)
- Updated build scripts, fixed a minor issue in p_tl.c to do with changes in definitions in CKW headers
- Tested the build with Visual C++ 4.0, 5.0, 6.0, 7.0: No problems
- Fixed an issue in the windows makefile, now builds fine with Visual C++ 2.0 as well
- Now builds fine with Visual C++ 2015 and newer too - another makefile issue.
- Tested zmodem send/receive with a Visual C++ 2022 build - seems to work fine
- Tested zmodem receive with a Visual C++ 2.0 build - no problems
- Tested building with OpenWatcom 1.9: the linker can't handle the def file and I'm not sure why. Might have to
see if p_transfer can be suitably exported without using the def file for OpenWatcom - a job for
tomorrow.
- 7-DEC-2022: Approval has been given to release the re-licensed 'P' source code! In the coming days it will be made available under the 3-clause BSD license, same as CKW itself.
- 2-DEC-2022: Merged in the latest C-Kermit 10.0 beta.07 work-in-progress code - currently on the ckb7 branch, submitted changes back to fdc.
- 1-DEC-2022:
- Fixed use of deprecated SSLv23_server_method()
- Had a look at \Kmouseurl behaviour - turns out its triggering of the browser for non-url clicks is intentional. Might be worth adding a variant
that only triggers for obvious URL clicks at some point as \Kmouseurl as it is would be unsuitable for binding to mouse button 1
- 29-NOV-2022: A little work towards integrated x/y/z modem support in anticipation of its open-sourcing
- Fixed some build errors related to integrated XYZ-modem support - it now builds fine with Visual C++ 6.
- Fixed bug: when p95.dll is missing, "set protocol xmodem" succeeds even though xyzmodem support is unavailable. From there you are prevented from setting the
protocol back to kermit - "set protocol kermit" gives an error about X/Y/Z Modem support being unavailable
- 19-NOV-2022: Updated help menu items in CKW and the Dialer
- 16-NOV-2022: Window sizing is now working correctly on NT 3.x, just need to implement the resize rectangle
- 15-NOV-2022: Spent some time re-implementing window sizing for NT 3.x which does not provide the WM_SIZING and WM_EXITSIZEMOVE events.
- 14-NOV-2022:
- Re-enabled DECnet support. Turns out this doesn't depend on any SDK - if you have Pathworks32 installed it should just work. I don't have a Pathworks32 license
so no way of testing if it really does work myself
- Adjusted build scripts to enable SuperLAT support when the headers are available, and updated the build documentation to cover SuperLAT support. Meridian made the
SuperLAT headers publicly available on their website but the license is unclear so SuperLAT support will remain a custom build option and won't be enabled by
default.
- 13-NOV-2022:
- SSH connections will now prompt for a username rather than failing with an error if the default login userid has been unset (this is how Kermit 95 behaved)
- Fixed help error: hmac-md5 is not supported, but hmac-sha1 is
- Dialer: removed SSH v1 options as CKW now supports SSH 2.0 exclusively
- Dialer: Updated the lists of available ciphers, macs and host key algorithms to match what CKW actually supports
- 12-NOV-2022:
- OpenSSL 3.0.7 works fine with Visual C++ 2022 as long as you modify the supplied ssl.h with the change
suggested in this OpenSSL bug report
- Spent a bunch of time trying to build C-Kermit with SSL on github actions. Its currently failing when building with OpenSSL 3.0.7 but I'm
not sure if I'm doing something wrong or if there is some C-Kermit issue. I'll investigate further some other day
- Fixed the manual command
- The show mouse command no longer tries to print non-printable characters bound to mouse events.
- 11-NOV-2022:
- Upgraded to openssl 1.1.1s
- Updated some out of date actions in the CI build workflow
- Did a bit of testing with OpenSSL 3.0.7. Looks like there is a bug in its
headers that renders it partially incompatible with Visual C++ 2022
- 8-NOV-2022:
- The old K95 Registry Tool released in October 1997 for Kermit 95 v1.1.14 has been rebranded for CKW
- Added the new CKW icon to the dialer executable
- Adjusted the Registry Tool to use the new CKW icon for the CKW shortcuts rather than the dialer icon
- Adjusted the Registry Tool to not set an icon for the user manual link in the start menu
- 7-NOV-2022:
- Fixed some errors in the CI build script that were preventing automated builds with OpenWatcom from completing successfully sometimes
- Merged the dialer code into the main branch - the only known regression (compared to Kermit 95 v2.1.3) now is missing window icons but
I suspect thats an OpenZinc bug as the OpenZinc utilities have this issue too so I'm not going to bother doing anything about it
- #12 - dropped the /ALIGN linker flag. Visual C++ has issued a warning
inresponse to this linker flag since November 1997 and I'm fairly certain C-Kermit doesn't require its executable segments to be aligned
on 1000 byte boundaries. Possibly its just a left-over default from project files generated with Visual C++ 4.0 and older
- 6-NOV-2022: Fixed the dialer context menu! Was not particularly easy - I suspect I've hit a few bugs in Zinc, but it works now.
- 5-NOV-2022: Back to work on C-Kermit for Windows!
- Merged in the latest C-Kermit 10.0 Beta.06 changes - this must be the easiest merge so far!
- Ran Beta.06 through Visual C++ 2.0, 6.0 and 2022 - all three built ant ran successfully
- Upgraded to zlib 1.2.13 fixing CVE-2022-37434
-
- Spent some time trying to get context (right-click) menus working in the Dialer again. I have absolutely no idea why they're
broken - the dialer is watching for the right-click event but something (Zinc?) is swallowing the event and I have no idea why or whats changed
to break it now.
Thats actually the wrong event to use for context menus anyway - WM_CONTEXTMENU should be used instead as this is triggered by
more than just right-click (eg, the context-menu button on windows keyboards). I've got the context menu working again via this event, now I just
need to figure out how to select the list item under the cursor on WM_CONTEXTMENU!
- 1-OCT-2022:
- Ran the ckw10b5 branch through Visual C++ 2022, 6.0 and 2.0
- Merged the ckw10b5 branch into main - the next windows beta will be based on C-Kermit 10.0 beta.05!
- 30-SEP-2022: Merged C-Kermit 10.0 beta.05 into the ckw10b5 branch
- 27-SEP-2022:
- Merged in the latest C-Kermit 10.0 beta.05 changes
- Added an example to set the default download directory in the default k95custom.ini
- Updated welcome.txt from fdc
- 26-SEP-2022:
- Dropped the "Good {Morning, Afternoon, Evening}, smile!" thing from the default k95.ini
- Deleted some unusued souce files: ck_ssh.c, cknssl.c, test.c - if these have ever been used it was for some old version of Kermit 95
- Merged in the latest C-Kermit 10.0 beta.05 changes
- Got the dialer building with Visual C++ 2.0 which means NT 3.50 support is possible though untested
- Rebranded the old Registry tool for CKW and got it building with OpenWatcom
- Tidied up build scripts a little
- Updated setenv.bat to support building k95cinit.exe
- Documented how to build k95cinit.exe
- 25-SEP-2022:
- Merged in recent changes from Frank
- Spent some time with the Visual C++ profiler. SSH file transfers are now much faster.
- Tested compiler compatibility for the Dialer: Visual C++ 4.0, 5.0 work. 7.0 (2002) has been fixed.
- Updated build instructions to cover the dialer
- Timezone changed - NZ is now at UTC+13 for summer
- 24-SEP-2022: Merged in latest C-Kermit development code again - looks like we're almost back in sync!
- 23-SEP-2022:
- The show ssh command now includes the libssh version number
- Added a welcome message displayed from the default k95custom.ini
- Merged mouse reporting code in
- Merged in the latest C-Kermit 10 development code (in a branch for now)
- 22-SEP-2022: Merged in changes from Frank for new copy /toscreen /interpret command syntax which does what type /interpret should do
but with less character set encoding madness on Windows
- 21-SEP-2022: Finished implementation of SGR and URXVT mouse reporting modes plus adjusted terminal reset to deactivate mouse reporting.
- 20-SEP-2022: Started work on SGR and RXVT mouse tracking modes
- 19-SEP-2022:
- Finished up work on mouse reporting for now. Might be nice to add support for UTF-8 coordinate encoding to properly support large terminals - haven't
decided if I'll bother just yet.
- Fixed cursor (and other elements) not blinking reliably, especially at lower screen update intervals.
- 18-SEP-2022:
- Fixed the set mouse activate command (aka set terminal mouse) - you can now turn mouse interactions off entirely in K95G
- Fixed support for the third mouse button in K95G
- Mapping the mouse drag event to \Kignore (with set mouse button 1 none drag \Kignore) now prevents a mark from being set on drag
- Fixed decoding of mouse wheel events
- Continued work on mouse reporting: Can now either forward all events to the remote host, or only forward events that are not handled by CKW
(events mapped to \Kignore). Mouse wheel works now too (eg, rolling the wheel scrolls the selected pane in midnight commander rather than
scrolling the terminal window). New set mouse reporting command to configure it. vttest tests pass. Almost done!
- 17-SEP-2022:
- Got the Dialer building with OpenWatcom 1.9. It can now be built with a free compiler!
- Configured CI to build the dialer too
- Initial work on xterm-compatbile mouse reporting: I can click on things in applications, like htop, that support mouse reporting!
Still to be done: a command to enable/disable mouse reporting (set mouse reporting enabled?), don't send mouse reports if
there is an action bound to a mouse event (eg, if right-click is bound to \Kpaste then don't send reports on right-click), and perhaps
a setting to send reports instead of any configured action (eg, right-click does \Kpaste except when an application turns
mouse reporting on in which case the right-click is sent to the application and it does whatever it wants with it)
- 16-SEP-2022:
- Beta 3 is out!
- Updated this page - now working towards beta 4
- Updated the dialer git branch and pushed to github
- Tidied up the new compiler-detecting build environment script a little
- Did some research into how xterm mouse reporting works
- 15-SEP-2022:
- Merged in a fix for file transfers to E-Kermit from Frank
- Produced fresh Beta 3 release candidate builds for XP SP+ (incl. SSH, SSL, PTY), NT 3.51/95+, and NT 3.50
- 14-SEP-2022:
- Updated the change log for Beta 3
- Produced Beta 3 release candidate builds for XP SP+ (incl. SSH, SSL, PTY), NT 3.51/95+, and NT 3.50
- Confirmed beta 3 still builds with: Visual C++ 2.0, 4.0, 97 (5.0), 6.0 SP6, 2002 (7.0), 2003 (7.1), 2015 (14.0), 2019 (14.2), 2022 (14.3), OpenWatcom 1.9 Win32, OpenWatcom 1.9 OS/2
- Confirmed beta 3 can be built on Windows NT 4.0 with Visual C++ 4.0 (this is required for MIPS, PowerPC and Alpha builds should they happen at some point)
- Confirmed beta 3 runs on Windows NT Workstation 3.50 when built with Visual C++ 2.0
- Confirmed beta 3 runs on Windows NT Workstation 3.51 and Windows 95 when built with Visual C++ 6.0
- Confirmed beta 3 runs on Windows XP SP3 and can make SSH connections
- Prepared a whats-new document for Beta 3
- 13-SEP-2022:
- Configured TLS on ftp.zx.net.nz and checked that ftps works in C-Kermit for Windows - it does
- Disabled type/interpret as it doesn't work on windows currently
- Dropped "+SSL" from the herald - C-Kermit for Windows has a lot more build options than just SSL support so there isn't much reason to call out that specifically
in such a prominent place. Plus most users on windows will be getting standard builds with a standard set of features - everyone on Windows 10
will have SSL.
- Added the Windows-specific beta number alongside the wider C-Kermit beta number.
- Spent some time investigating why resize-changes-font doesn't work on NT 3.51. Turns out WM_SIZING doesn't exist on NT 3.51 at all - its new to NT 4.0 and
Windows 95. Will have to find a workaround specially for NT 3.51.
- 12-SEP-2022: Fixed #92 - linux private mode escape sequences for setting and resetting the palette
are now parsed and thrown away (like xterm when the brokenLinuxOSC setting is turned on). Inability to handle these broken OSC escape sequences was preventing
many applications like GNU Nano or htop from coming back correctly after being suspended with Ctrl+Z when using the linux terminal type
- 11-SEP-2022
- Started preparing the change log and other bits for the release of beta 3 which should be ready to go in a few days
- Spent some time investigating performance of file transfers over SSH. No obvious cause for the slow speed. Will have to find a profiler and investigate
further - something for beta 4 perhaps
- Spent some time investigating crash when stopping a file transfer with Ctrl+C. Cause not clear - sometimes it dies releasing a mutex which I think should
only happen if the thread doesn't own that mutex. Perhaps the transfer is being canceled from the wrong thread? I have a feeling this one will be tricky
to fix assuming I can find the cause.
- #71 - Fixed SSH keyboard interactive authentication
- 10-SEP-2022:
- #22 - Fixed incorrect (too narrow) window size on first run
- #98 - Made the set terminal screen-update fast x command do something for K95G.
It seems previously this command only worked for the console version (k95.exe) - regardless of what you set the screen update interval too, the GUI
version of Kermit 95 2.1.3 only updates every 100ms which makes it feel a bit sluggish. Setting it to something smaller like 10ms or even 20ms feels
much better! At the moment set terminal screen-update smooth still does nothing in K95G.
- "Fixed" drawing of the cursor. Previously it was being drawn directly to the screen and if you looked carefully you could see this happen. The cursor didn't
blink on and off solidly, it more wiped in and out from top to bottom. This was epecially noticable with the full/block cursor
- 09-SEP-2022: Spent some time investigating why on first run the window size is half the width it should be. Haven't fixed it yet but close. While investigating
this I also figured out why keyboard input feels a little sluggish: Its only updating the UI every 100ms! This seems to be the case regardless of the
set terminal screen-update setting. Dropping it to 10ms greatly improves smoothness and responsiveness but also makes the cursor blink way too fast. A job
for tomorrow!
- 08-SEP-2022: Fixed #67 - OpenWatcom builds with ZLIB fail
- 07-SEP-2022:
- Updated TLS support for secure ftp and telnet. Untested at this stage but it should work - need to setup secure telnet and ftp servers some time to
test against
- Minor update to dialer about screen
- Fixed the /subsystem SSH qualifier allowing kermit to be used as an SSH subsystem for file management.
- Checked secure telnet (over SSL/TLS) still works - no problems connecting to the telnet-ssl server provided by Debian
- Upgraded to libssh 0.10.3
- 06-SEP-2022:
- The latest version of OpenSSL (3.0.5) now works!
- Also fixed HTTPS compatibility with many/most websites: We were only using TLS 1.0 before which is deprecated and usually disabled today. Now when building
with OpenSSL 1.1.0 or better we use a newer method that negotiates the best TLS version supported
- Figured out how to build OpenSSL for Windows XP. Minimum system requirements for SSH in Beta 3 should drop from Vista to XP.
- 05-SEP-2022:
- Now builds with:
- OpenSSL 1.0.2u of 2019-12-20
- OpenSSL 1.1.0l of 2019-09-10
- OpenSSL 1.1.1q of 2022-07-05 (current release)
- It also builds with OpenSSL 3.0.4 though it doesn't work properly yet
- Automated the fetching of ca_certs.pem for CI, updated mkdist to include licenses, etc
- 04-SEP-2022:
- Fixed the space command and bug #53 - reciving large files fails with "Refused, size"
- Spent some time investigating SSL support in a branch. After fixing some issues, it now builds with:
- OpenSSL 0.9.8zf of 2016-01-29
- OpenSSL 1.0.0s of 2016-01-29
- OpenSSL 1.0.1u of 2016-09-22
Building with SSLDLL only works with 0.9.8.
- 03-SEP-2022:
- Improvements and fixes to "ssh key create" - now outputs the key fingerprint
- Tested the dialer out a bit and fixed a bug with the SSH options. Packaged up what should be good enough as a first beta of an open-source dialer
- Implemented "ssh key display". The IETF output format is not supported but the other three (fingerprint, openssh, ssh.com) are.
- Implemented "ssh key change-passphrase"
- Removed "ssh v2 rekey" as libssh does not support rekeying on demand
- 02-SEP-2022:
- Finished off the "ssh key create" command
- Added an example k95custom.ini file
- Merged in Windows NT 3.50 support
- Added se.exe to the makefile. It will be included in future releases now.
- Upgraded to libssh 0.10.1
- Tried to install Windows NT on the AlphaServer: I was unsuccessful - hardware issues
- 01-SEP-2022: File save dialogs on Windows ME, Windows 2000 and newer are now the standard type for those versions of windows (with navigation features on the left), rather
than the old Windows-95 style. Dialogs on 95/98/NT are unaffected
- 31-AUG-2022: Have "ssh key create" working properly now, just need to tidy it up tomorrow and implement display and change passphrase options
- 30-AUG-2022: Not much time so only got a little work done on the "ssh key" commands
- 29-AUG-2022
- Adjusted uq_file so that a GUI save-as dialog can be produced with a "Save" button rather than a "Download" button
- Continued work on the "ssh key" commands
- 28-AUG-2022
- Fixed a bug introduced by the "ssh user@host" change
- Got rid of: set ssh {k4, k5, krb4, krb5, kerberos4, kerberos5} - if Kerberos support ever arrives for SSH it will be via GSSAPI
- Integrated some changes from Frank: beta number now shows in the herald, and the type command now has a new /interpret qualifier
- Updated the news text with some stuff from Frank
- Improved error message when no auth methods supported by the server are enabled
- Implemented support for an ssh proxy command, then discovered libssh doesn't actually implement
this setting on windows. So the new "set ssh proxy-command" is commented out for now until Win32 support appears in libssh.
- Started work on the "ssh key" commands
- 27-AUG-2022
- Added keep-alive setting. Interval is set via "set ssh heartbeat", default is 0 (off).
- Removed unsupported auth methods from "set ssh v2 authentication"
- Implemented "set ssh v2 hostkey-algorithms"
- Implemented "set ssh v2 macs"
- Added new command: "set ssh v2 key-exchange-methods"
- "set tcp nodelay" should affect SSH sessions now too
- Added support for "user@host" syntax to SSH command. "ssh root@myhost" should do the same as "ssh myhost /user:root" now. The implementation is pretty basic
and may not handle weird input well but when it works it should be less confusing to new users.
- Implemented mouse wheel support for Windows via the new "set mouse wheel" command. Requires Visual C++ 6.0 or newer.
- 25-AUG-2022
- Implemented the set ssh v2 ciphers command. This means the list of valid options for that command has changed to match those supported by libssh.
- Removed obsolete SSH v1 commands which will never be supported (because libssh removed sshv1 support): set ssh v1, ssh key v1,
set ssh version 1
- Started looking into options to keep SSH sessions alive when left idle. Made a quick change and will leave a session overnight to see if this method works
- 24-AUG-2022
- Replaced Kermit-95 references with C-Kermit in the dialer window resources. It is now the C-Kermit for Windows dialer.
- Created a manifest file for the dialer - it now picks up (some) modern UI controls
- Got Zinc built with ctl3d so the Dialer looks less like something recompiled from 16bit windows
- Spent some time trying to figure out why the dialer connection list context menu isn't working and I have no idea - I can't find any code for the context menu
so I've no idea how it was working in K95 2.1.3. I'll have another look at it some other day - there is probably something I'm missing that might be more
obvious if I'd bothered to learn Zinc
- 23-AUG-2022
- Reworked build environment script to detect compiler and setup the environment for OpenZinc (add the compililer-specific lib dir to the library path, set an
environment variable with the makefile to use when building OpenZinc, etc)
- Replaced Kermit-95 references with C-Kermit in the dialer source code
- Replaced Kermit-95 references with C-Kermit in the dialer help resources
- 22-AUG-2022
- Fixed branding issues on OS/2: titlebar now reads "C-Kermit for OS/2" rather than "C-Kermit for Windows", the prompt is now "C-Kermit>" like on other platforms
rather than "CKW>", and also adjusted the program title in some help text.
- Merged OS/2 Watcom fixes into main - fixing networking, etc, can be handled later now that it builds and runs with freely available tools.
- Spent some time sorting out makefiles for OpenZinc. Builds fine with Visual C++ 4.0, 5.0, 6.0, 7.0. Visual C++ 2003 toolkit fails (lib tool missing).
Visual C++ 14.x (2015-2022) has other issues - easily fixed errors in design\i18n\locale.cpp and \design\image\image2.cpp plus unresolved
symbol errors at the link stage which I've not resolved yet - Visual C++ 14.x can wait for another day once the dialer is in a releaseable state and modern
compiler support actually matters.
- 21-AUG-2022
- Tidied up the OS/2 makefile, added missing resources to git, wrote a mkdist script, updated the build workflow. Github now produces OS/2 binaries on every push
to the OS2 branch!
- Fixed the auto-download "ask" setting not working on NT 3.51
- 20-AUG-2022
- Fixed the terminal window being cleared the first time you move the K95G window when the resize mode is "changes dimensions". I hope this also changes the other
random occurances of the terminal being cleared on move.
- Fixed the terminal not scrolling correctly in OpenWatcom builds
- Got cross-compiled OS/2 binaries working on OS/2! Problem was the global 'vmode' is declared as BYTE but all over the place it was being redeclared
as 'extern int vmode' which would result in its value turning to garbage eventually and crashing the application, and also having NetBIOS support
enabled at build time also causes it to crash. So with NetBIOS turned off it now runs though TCP/IP isn't working at the moment and in a few places
its calling itself "C-Kermit for Windows" which won't do. But it is progress! Here is a screenshot of C-Kermit 10 for OS/2!
- 18-AUG-2022
- Fixed compatibility with the OpenWatcom 2.0 fork (tested with the 2022-08-18 build)
- Ran the code through the OpenWatcom AXP Cross-compiler. Amazingly the compiler actually built everything - I was really expecting the compiler to crash
or otherwise fail in some way. Perhaps there have been improvements since I last tried it. The current OpenWatcom 2.0 builds don't include all the AXP bits
(no linker or assembler, and no libraries) so no executables were produced. Some time I'll rebuild OpenWatcom from source and see if I can get it to make
all the alpha bits that are normally disabled. If I can get it to spit out some working binaries perhaps the third beta will gain a CPU architecture!
- 17-AUG-2022
- Fixed ConPTY-enabled builds not working on anything older than Windows 10 version 1809. The presence of ConPTY code no longer affects windows version
compatibility (beyond what the compiler required to support it can target)
- Fixed builds with Visual C++ 2012-2019 not working on Windows XP
- Had a go at getting SSH working on Windows XP but I can't find a way of building OpenSSL 1.1.1q (required by libssh) that doesn't result in it depending on
bcrypt.dll, something only available from Windows Vista onwards
- Sent a build to Frank - this will be C-Kermit 10.0 beta.04 for Windows beta 2 assuming no problems are found. All going well it will be up on the kermit project
website in a few days. Changes made to C-Kermit code shared with other platforms (ck[cu]* files) will be included in C-Kermit 10.0 beta.05.
- 16-AUG-2022
- Fixed a build issue somehow only affected Visual C++ 6 - all other commpilers I regularly test on (4.0, 5.0, 2002, 2003, 2015, 2019, 2022) were fine.
- Updated the list of known SSH issues
- Tested the VC6 build on NT 3.51 and Windows 95 - it works well
- Tested the Visual C++ 2015 build on Windows XP - did not work, the binaries being generated are somehow invalid on XP. Need to look at compiler settings
for beta 3 because it should have worked!
- Tested the Visual C++ 2022 build on Windows 7 32-bit - did not work. Turns out I'm not handling the absence of ConPTY support properly. Something to fix
in beta 3.
- My to-do list for beta 2 is now complete. A release candidate build has been produced and uploaded.
- Stripped out the registration code from the dialer and got it building with OpenZinc under Visual C++ 6.0 SP6
- 15-AUG-2022
- Tidied up and tested SSH host key verification. Seems to all be working properly
- Finished off initial SSH support. My beta-2 to-do list is empty! Just need to give everything a quick test tomorrow.
- 14-AUG-2022
- SSH session survived the night. Disconnect bug fixed I suppose - its now fully usable for interactive SSH sessions. I used it to update this page! Also spent
a bunch of time fixing an handful of other misc SSH related bugs (like canceling login causes a segfault). And I think the race condition around
file transfers is fixed now though its hard to be sure really. If its not fixed it is at least much less common now to the point where its probably not
an issue.
- Fixed broken file transfers on builds done with compilers older than Visual C++ 6.0 - turns out disabling authentication breaks transfers over telnet
(code error - missing {} when something wasn't compiled in)
- Fixed some issues on NT 3.50. Window resizing doesn't work very well when using the Scales Font resize mode because all the window sizing events CKW
uses are unavailable on NT 3.50. If the window size is a little bit too big you just get black bars on the right and bottom. Not great but better than
nothing.
- Targeting NT 3.50 no longer requires Visual C++ - OpenWatcom works too. Set the environment variable CKT_NT31=yes before running the build and you'll get
binaries that don't use any Win32 APIs that are unavilable on NT 3.50.
- 13-AUG-2022
- Spent a pile of time reviewing the new SSH code making sure all everything looked reasonable and moved on to testing. Of course it didn't work first
try. But it does work now! Left a session open to check that the random disconnect bug is gone and moved on to some easier things
- Fixed incorrect use of fsetpos - now uses appropriate Win32 API. Resuming of large file transfers should work now though I've not fixed it
- Fixed icon and versioninfo resources
- Fixed OS version checking for modern versions of windows
- Got CKWin minimally functional Windows NT 3.50. This requires a special build with a particularly antique compiler (Visual C++ 2.0). With some tidyup perhaps this may appear in
the next beta too though I can't imagine too many people are looking to transfer files to/from NT 3.50. It would leave NT 3.1 as the only 32bit (x86) desktop
windows without C-Kermit.
- 12-AUG-2022 - not enough time for the next step in the SSH work (reviewing all the code and testing it), so just some little low priority but kind of
fun things - giving my shelf of Vintage Microsoft compilers a workout. If only I could track down the RISC editions...
- Fixed build errors with Visual C++ 5.0: Just have to disable NTLM at build time and it works fine
- Fixed build errors with Visual C++ 4.0: a few #ifdefs to handle WinAPI differences
- Fixed build errors with Visual C++ 2.0 (there was no 3.0): This was a bit more involved as this compiler predates Windows 95. More #ifdefs for WinAPIs that are
unavailable before Windows 95/NT 3.51, plus fixing support for building without modem support
- Had a brief look at Visual C++ 1.0 32-bit edition (the compiler for NT 3.1). Looks do-able. The compiler is fine with the code but there are more unavailable
Windows APIs and I'm sure what exactly these are doing or how important they are at a glance. Visual C++ 2.0 can target NT 3.1 so there isn't much need
to use Visual C++ 1.0 for anything (unless I guess a MIPS build - I've not yet managed to get my hands on a newer version of that compiler)
- Pointed Visual C++ 4.0 Cross-Development Edition at it. It did make it a little way but I suspect building C-Kermit for Windows for PowerPC Classic Macintosh
would be a lot of work.
Ideas for future releases
Coming later to some other Kermit 95 Beta as free time allows - in approximate order of (my) priority:
- #80 - Test NTLM Auth, fix any issues
- m1 - Fix remaining issues with C-Kermit for OS/2: conkbg() near
the end of ckotio.c doesn't build with OpenWatcom due to issues with the OS/2 headers (currently disabled with #ifndef __WATCOMC__),
the dialer builds but crashes on startup, the legacy telnet crypto library isn't being built, and there isn't any SSL/TLS support right now
- #317 - Build a brand new connection manager to replace the dialer as the current dialer is pretty much unmaintainable
due to the status of the UI framework its built with. A fair bit of work has already gone in to this (I'm already using it) but most of the settings pages (now tabs) aren't
implemented yet so its still some way from release
- #164 - Fix issues running on Windows NT 3.10; Networking is broken (the select API is always
reporting not ready for some unknown reason), console version crashes on startup if built with Visual C++ 1.0 32bit, changes to the Serial port
code need testing to make sure that serial connections still work, and builds done with OpenWatcom fail to run (Unexpected error: 11)
- Improve the block cursor: It doesn't render nicely when its over the top of a letter at the moment. Would also be nice if it could be set to draw as an outline
when the window doesn't have focus, and perhaps an option to control its colour too
- #41 - High DPI support
- Maybe more text colour options? At the moment there is no amber option - possibly colour choices are limited to what a real terminal allows?
- Its real tempting to add tool-bar buttons for Paste and switching the resize mode between scale font and change dimensions. Maybe there are other things that would be
convenient to add too.
- Refactor the current KUI code to expose a less Win32-centric interface to the rest of C-Kermit. Others have expressed interest in trying to port the CKW
terminal emulator to C-Kermit for UNIX which would be less extremely hard if the Win32 GUI was abstracted away a bit more. It would also make it
slightly more possible to provide alternate GUIs built with other frameworks on Windows.
Unlikely Activity
Stuff I'd like to see happen but I'm unlikely to do myself - not enough free time, too much other more important stuff to do (pull reuqests welcome!)
- Improve GUI performance - currently it chokes a bit if, for example, a very large amount of output is scrolling past fast (cat a huge file for example)
making hard/impossible to cancel the operation
- #18 - New LAT implementation either written from scratch (the LAT specs are on the internet) or ported from Linux (there is an open-source implementation for
linux as part of the DECnet Linux programs which does work). IIRC LAT doesn't depend on DECnet at all - its a standalone protocol like MOP. A windows
implementation would likely have to depend on winpcap/npcap to be able to send/receive raw ethernet frames.
- #88 - Sixel support in the terminal emulator. They seem pretty popular these days.
- #32 - Get SRP back - the stanford SRP implementation is now unmaintained but OpenSSL includes SRP support. Would require someone who is familiar with OpenSSL and
would probably be quite a bit of work as I assume whatever API OpenSSL provides is probably completely different from what Stanford SRP provided. Ideally SRP support would
be contributed to libssh too if they'd have it, to match Kermit 95s support for SSH authentication using SRP.
Not Happening
This stuff is not possible and so will not happen
- win32s (windows 3.x) support: While the required compilers (Visual C++ 2.0, 4.0, OpenWatcom) are supported it is not possible to get K95 to work on Win32s for
one reason: K95 makes heavy use of threads. And threads are not supported on Win32s. It would probably be easier to build a new thing from scratch than
conditionally compile out threading from K95
Old Stuff
New in the Second Beta
- Built-in SSH! Its working pretty well now though given the substantial step up in the codes complexity I'd be surprised if there weren't annoying bugs still lurking.
Expect the reliability of SSH connections to improve in further releases plus new SSH features to be added. SSH Support requires Windows Vista or newer (I did try
to get it going on Windows XP but I can't figure out how to get OpenSSL to build in a way that works on XP)
- Windows PTY support (Windows 10 1809 or newer required) - run windows console apps inside CKW! Run CKW inside CKW! No file transfer ability though - the Windows PTY
isn't transparent. And terminal emulation glitches are possible due to Windows also doing terminal emulation in between CKW and the console app. Windows PTYs are
weird.
- Now uses modern Windows UI widgets (flat buttons, etc), so it fits in a little better when run in modern windows environments. Reverts back to the classic look when
run on classic windows.
- Fixes to the pipe command - you can now run sessions and file transfers through subprocesses such as puttys plink provided that subprocess doesn't try to use any of Windows NTs special console APIs
- Fixes to network DLL support (set network type dll) - build your own protocol DLL! I found it pretty handy for prototyping PTY support. API Documentation and Sample
Code is here: https://ftp.icm.edu.pl/packages/kermit/k95/k95dll/
- Fixed detection of newer Windows releases. Should now correctly identify Windows 10/11 in "show features" output. Note that Windows 11 will show up as Windows 10 - this
is normal, windows 11 is pretty much just windows 10 and Microsoft treats it that way in their APIS, especially around version detecting
- Resuming transfers of large files should now be fixed - the previous beta was using 32bit file positions when seeking, now the correct windows API with a
64-bit position
- Fixes to building with newer versions of Visual C++. From Visual C++ 2008 and up file transfers were broken, and Visual C++ 2015 and up wouldn't build at all.
This is all fixed and SSH-enabled builds are now done with Visual C++ 2022, the latested release.
- Fixes to building with older versions of Visual C++: version 5.0 (97) and 4.0 now work too.
- Now builds with OpenWatcom 1.9 (win32 target only). There are some bugs in the terminal emulator that need sorting though - on some (all?) synchronet BBS the terminal
doesn't scroll properly so you just get a mess on the bottom line as new lines overwrite old.
- Fixes around handling of title OSC strings - termination with a BELL is no longer specific to aixterm (the windows PTY uses it too), a buffer overflow has been fixed, and the maximum length doubled.
Known Issues
- SSH sessions may not as stable as they could be. I have seen the occasional rare disonnect but I'm not sure at this stage if its a bug in the SSH code,
if its some race condition and the session is still live but you can't interact with it anymore, or if the session has just timed out normally and CKW hasn't
noticed. It seems pretty rare and mostly only affected sessions I've left idle for hours. I'm currently trying to catch this event in the debug log to investiate
further. If it is a bug, i'll aim to get it fixed in the next beta. If it's a timeout I'll aim to handle the situation better.
- See the included ssh-readme.txt for further known SSH issues
- On Windows NT 3.51 you have to use Auto-download - if you set it to ask you'll never get prompted with a save file dialog, the transfer will just fail immediately
claiming you canceled it. This was proabbly a bug in later releases of Kermit 95 too - I think NT 3.51 support was dropped before graphical file dialogs were
added. This is fixed for the next beta.
Stuff that was new in the Third Beta
- Fixed compatibility with the OpenWatcom 2.0 fork
- #49 - Fixed terminal being cleared the first time you move the K95G window and possibly the other random occurrences of this happening
- #33 - Fixed terminal scrolling bug in OpenWatcom! Builds done with OpenWatcom are now functionally equivalent to Visual C++ 6 in platform support and features and have no
known issues unique to that compiler.
- #46 - Fixed auto-download "ask" setting not working on Windows NT 3.51
- Now builds on OS/2 with OpenWatcom. Only minimal testing has been done. Networking does not work and the builds are done without optimsiations. Further work is
required, likely by someone with OS/2 development knowledge, to get it back to the Kermit-95 level of functionality.
- #76 - Fixed idle SSH sessions timing out - run "set ssh heartbeat 60" or some other interval in seconds to keep the session alive when idle
- #44, #75 - Implemented additional SSH commands
- set ssh v2 ciphers
- set ssh v2 hostkey-algorithms. New options: ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, rsa-sha2-256, rsa-sha2-512, ssh-ed25519
- set ssh v2 macs. New options: hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-512-etm@openssh.com, none
- set ssh heartbeat-interval
- ssh key create
- ssh key display
- ssh key change-passphrase
- New command: set ssh v2 key-exchange-methods
- "set tcp nodelay" should affect SSH sessions now too
- #44 - Removed obsolete SSH commands and options that will never be implemented due to lack of support in libssh:
- set ssh v1
- set ssh version 1
- set ssh v2 authentication {external-keyex, hostbased, srp-gex-sha1}
- set ssh v2 ciphers {arcfour, blowfish-cbc, cast128-cbc, rijndael128-cbc, rijndael192-cbc, rijndael256-cbc}
- set ssh v2 macs {hmac-md5, hmac-md5-96, hmac-ripemd160, hmac-sha1-96}
- set ssh {kerberos4, kerberos5, krb4, kerb5, k4, k5}
- ssh key v1
- ssh key display /format:ietf
- ssh v2 rekey
- #81 - Added support for "user@host" syntax to SSH command. "ssh root@myhost" should do the same as "ssh myhost /user:root" now. The implementation is pretty basic
and may not handle weird input well but when it works it should be less confusing to new users.
- Added mouse wheel support. By default it scrolls one line at a time, or one screen at a time when holding Ctrl. You can remap this to whatever you like via the new
"set mouse wheel" command which works like "set mouse button".
- Improved error message when no authentication methods supported by the SSH server are enabled
- File save dialogs are now the modern (normal) type on Windows ME, 2000 and newer.
Windows 95, 98 and NT4 retain the old Windows 95-look file dialogs as before.
(#86, #87)
- #45 - Added Windows NT 3.50 and Visual C++ 2.0 support. This requires a special feature-reduced build.
- The Shell Execute utility, se.exe, is back. Documentation for it is here
- Upgraded to libssh 0.10.3
- Fixed #53 - receving large files (>4GB) no longer fails with "Refused, size"
- Fixed the "space" command - it can now report more than 4GB of free space
- #15 - OpenSSL 0.9.8 - 3.0.5 (the latest version) now works
- Added support for TLS 1.1, 1.2 and 1.3 when built with sufficiently new versions of OpenSSL - the "http" command now works with https websites following modern
security standards
- Got OpenSSL building with Windows XP compatibility: SSH now works on XP
- #72 - Fixed the ssh /subsystem qualifier. You can now use kermit over SSH like an FTP client with
ssh myhost /subsystem:kermit (or skermit myhost for short) - Documentation
- #22 - Fixed incorrect (too narrow) window size on first run
- #98 - Made the set terminal screen-update fast x command work in the GUI version of CKW. Now you
can have screen update intervals other than 100ms! I find 10ms or 20ms to be a big improvement.
- Adjusted how the cursor is drawn so it blinks more nicely in the GUI version of CKW
- #71 - Fixed SSH keyboard interactive authentication
- Fixed #92 - linux private mode escape sequences for setting and resetting the palette
are now parsed and thrown away (like xterm when the brokenLinuxOSC setting is turned on). Inability to handle these broken OSC escape sequences was preventing
many applications like GNU Nano or htop from coming back correctly after being suspended with Ctrl+Z when using the linux terminal type
New in the Fourth beta
- Fixed a bug introduced in beta 3 that can prevent the cursor and other elements on the screen with the blink attribute set from blinking reliably. If this bug is causing problems for you, you can grab
a fixed build (for XP SP+ only - email me if you need a build for older systems) from here: ckw-b3-blinkfix.zip.
- #39 - Tidy up some dialer things and get it building with newer compilers
- The dialer now builds with OpenWatcom 1.9 and is now included in Github Actions CI builds
- The Dialer code is now in the public Git repository!
- The dialer has been adjusted to build with Visual C++ 2.0 which should make NT 3.50 support possible
- The libssh version number is now included in the output of the show ssh command
- The default k95custom.ini now outputs a message on startup directing new users to have a look at k95custom.ini
- #103 - Fixed the set mouse activate command (aka set terminal mouse) in K95G (previously it only applied to the console version)
- #103 - Fixed support for the third mouse button in K95G (previously it only worked in K95G)
- Fixed a mark being set (and not cleared on mouse button release) on drag when the drag event is mapped to \Kignore
- Fixed decoding of mouse scroll wheel event coordinates
- #85 - Mouse reporting:
- X10 protocol (send button + coordinates on mouse down) supported for Linux and ANSI terminal types
- X11/Normal, URXVT and SGR protocols (send button + modifiers + coordinates on mouse down and mouse up) supported for all terminal types
- Mouse wheel supported for all but the X10 protocol: You can scroll the panels in midnight commander with the mouse wheel!
- New command: set mouse reporting x where x is one of:
- disabled - mouse events will not be reported
- enabled - Applications can turn mouse reporting on. Mouse reports will be sent only if a mouse event is mapped to \Kignore
(eg, if you map right-click to \Kpaste then right-click will never be sent)
- override - Applications can turn mouse reporting on. All mouse events will be sent to the remote host and any configured action in CKW will be ignored when mosue reporting is on.
For example, if you map right-click to \Kpaste this will only have an effect outside of applications that turn mouse reporting on.
- The show mouse command shows the mouse reporting setting plus current state (if its active or not and the protocol)
- #100 File transfers over SSH are now much faster
- #106 - Updated to C-Kermit 10.0 beta.05
- Updated to C-Kermit 10.0 beta.06
- Updated to C-Kermit 10.0 beta.07 - I need to work faster!
- Upgraded to zlib 1.2.13 fixing CVE-2022-37434
- Upgraded to openssl 1.1.1s
- The context (right-click) menu in the dialer now works again
- #12 - dropped the /ALIGN linker flag which has produced a linker warning since Visual C++ 5.0 SP3 (November 1997)
- #40 - The old registry tool (k95regtl.exe) is back and fixed up for C-Kermit as an interim solution until a proper installer
is created. This tool lets you create desktop & start menu shortcuts and the .ksc file association.
- The manual command now works
- Fixed bug: The show mouse command no longer tries to output non-printable characters bound to mouse events
- The default k95custom.ini now sets the default browser to nothing which should result in Edge being used instead of Internet Explorer. This is just a temporary workaround for
the default browser not being correctly picked up
- SSH will now prompt for a username if the default login userid has been cleared (this is how Kermit 95 behaved)
- Fixed help error: hmac-md5 is not supported, but hmac-sha1 is
- Dialer: removed SSH v1 options as CKW now supports SSH 2.0 exclusively
- Dialer: Updated the lists of available ciphers, macs and host key algorithms to match what CKW actually supports
- DECnet support is back: If you've got Pathworks32 installed you should be able to make LAT and CTERM connections. I don't have a Pathworks32 license so no way of testing this myself
- CKW can now easily be built with SuperLAT support. This won't be made available in standard builds as while Meridian made the header files publicly available the license on them is pretty unclear
- #17 - X/Y/Z MODEM support
- #97, #94 -
Fixed/implemented proper window resizing for NT 3.x
- #16 - Support for the Telnet Encryption Option (DES/CAST) is back
New in the Fifth Beta
- #145 - Anonymous SSH (userauth none) doesn't work. Bug found and fixed by Jeffrey Johnson.
- #139 - Added very limited NT 3.10 support. Networking does not work but serial might
- #127 - Crash startup under Crossover on MacOS 10.14 - thanks Jeffrey Johnson! Bug also affected WINE
- #167 - Fixed "show terminal" command showing autodownload as being "on" when it was actually set to "ask"
- #166 - Fixed receiving files with an as-name that includes a path using UNIX separators failing when
autodownload is set to "ask" in the GUI version of CKW (receiving a file sent as send foo.txt C:/temp/foo.txt now works)
- #165 - Default autodownload to "on" rather than "ask" via the default k95custom.ini
- The default k95custom.ini now changes into the users home directory on startup rather than leaving the current directory as where ever CKW was started from
- #138 - Fixed build failures with Visual C++ 2017
- #143 - Fixed builds for modern windows not setting modified time on received files
- #133 - Fixed entering plane-1 unicode values via Alt+n crashes the application (this was an old bug
inherited from Kermit 95)
- Fixed build failures with Visual C++ 4.1 and 4.2
- Fixed some issued building for RISC NT with the help of others who have the required hardware and compilers:
- Visual C++ 4.0 RISC Edition for MIPS should work (without TAPI or dialer support)
- Visual C++ 4.0 RISC Edition for PPC should work (though the dialer was not attempted, and the following features had to be disabled (with, for example,
set CKF_TAPI=no) to get it to link: TAPI, DEBUG, XYZ)
- Visual C++ 4.0 RISC Edition for Alpha probably works based on tests I've done with the NT 3.50 SDK, though I've not attempted the dialer
- #24 - Ported to 64bit Windows (x86-64). This will almost certainly introduce some new bugs, but the
compile warnings fixed in the process may fix some old ones.
- Now builds for (but has not been tested on due to lack of hardware) the following platforms:
- 64bit Windows on ARM
- 32bit Windows on ARM (Windows RT) - this does not include SSH support (libssh won't build for 32bit Windows on ARM)
- 64bit Windows on Itanium (no SSH support due to old compiler)
- #183 - Added TLS SNI support for the http and telnet clients
- #34 - Old hostmode scripts (and others) are now included in the distribution. They work about as well
as they did in K95 2.1.3. Mostly just an interesting example of a complex kermit script now
- #19 - Minimal support for building with GCC (MinGW)
- Implemented the following new escape sequences in the terminal emulator:
- CSI 1 8 ; Ps ; Ps t - get text area size in characters (xterm)
- The terminal emulator now correctly parses and ignores the following escape sequences:
- CSI > Pm t - previously receipt of this xterm-specific escape sequence would incorrectly minimise the window
- Fixed SSH bugs:
- Fixed buffer not being flushed to the terminal on logout
- Fixed server disconnect not always being detected (eg, logging out from OpenVMS leaves CKW in 'connected' mode even though the SSH session should be disconnected)
- Updated to C-Kermit 10 Beta.09
- Added sample initialisation script for IKSD. Setup instructions are here: https://kermitproject.org/k95manual/wiksdadm.html
- #31 Kerberos V support is, in theory, back. I've not managed to find any telnet or ftp servers that actually support kerberos
authentication to test against. A version of the SSH client library is also now supplied with Kerberos support - see the ssh readme for details on how to use it
- #207 - Fixed bad colour defaults in the auto-created DEFAULT template in the dialer
- Fixed bad default logfile names in the auto-created DEFAULT template in the dialer
- #169 - k95custom.ini is now distributed as k95custom.sample and renamed back by k95.ini on first run if k95custom.sample doesn't
already exist
- #214 - Upgraded to OpenSSL 1.1.1u
- #115 - Confirmed the default browser behaviour, documented it in the default k95custom.ini
New in beta 6
- #221 - Fixed directory listings reporting large file sizes as -1 and not giving a modified date
- #180 - Upgrade to OpenSSL 3.0.14
- Fixed build issues on PowerPC Windows NT, added support for building the dialer on PowerPC Windows NT with Visual C++ 4.0 RISC Edition
- Fixed build issues on MIPS Windows NT, added support for building the dialer on MIPS Windows NT with Visual C++ 4.0 RISC Edition
- Fixed build issues on Alpha Windows NT, added support for building the dialer on Alpha Windows NT with either Visual C++ 4.0 RISC Edition or Visual C++ 6.0 Alpha Platform
- Fixed a very large number of build warnings which will likely fix a few crash bugs
- #186 - Fixed terminal widths greater than 256 not being supported
- #187 - Fixed resizing of the terminal window to greater than the primary display in any dimension introducing white space
- #227 - Fixed not being able to create SSH connections in the dialer
- Upgraded to libssh 0.10.6
- Upgraded to zlib 1.3.1
- C-Kermit will now find the dialer correctly if C-kermit isn't started from the dialer. This behaviour was broken by rebranding the Kermit 95 dialer - C-Kermit looks for it by its window title.
- The default k95custom.ini no longer produces an error when it's run in the console version of C-Kermit or in a build of C-Kermit that lacks SSH support.
- The SSH client will now check which authentication methods are allowed by the server after each authentication method is attempted. This allows the client to handle servers which change their list of allowed
authentication methods during login.
- Fixed the protols shown as available in show network
- Fixed the included openssl.exe not working on Windows XP
- Fixed paging for the "help options all" command
- Help text for "set gui window position" updated: this command is supported and it does work.
- The default k95custom.ini now displays a message the console-mode version (k95.exe) is run pointing new users to the GUI version (k95g.exe)
- The SSH client will now attempt authentication methods in the order specified by set ssh v2 authentication
- About window (Help -> About) now includes the beta number
- Added help text for set terminal autopage and set terminal autoscroll
- CKW no longer rejects updated OpenSSL DLLs provided the major and minor versions match
- Implemented the DECRQCRA VT420 escape sequence which is required by esctest2
New in Beta 7
- #96 - Unsupported SSH commands are now hidden
- #175 - The SSH subsystem can now live in a DLL thats loaded at runtime allowing other non-libssh backends to be supported. The appropriate backend
(GSSAPI or no GSSAPI, Windows XP or not Windows XP) is now loaded automatically
- #288 - Fixed fopen crashing in builds for modern systems. This appears to be a result of changes in the C Runtime so may not have impacted all users
- #290 - Fixed hitting backspace in an empty search-in-buffer crashing K95
- #74 - Local and remote port forwarding over SSH
- #73 - X11 forwarding over SSH
- #293 - Fixed trying to run invalid commands in a PTY causing a crash
- #256 - Fixed modem support not being available on NT 3.50
- Fixed OpenSSL libraries not being included in ARM32 builds
- #306 - REXX support on Windows
- #247 - Change application name and version to Kermit 95 version 3.0 beta 7
- #399 - Upgraded to OpenSSL 3.4.0
- #320 - Don't automatically open COM1 when K95G starts
- #304 - Support SSH on ARM32 devices (Windows RT)
- #325 - Support zlib on ARM32 and ARM64 devices
- #107 - "set gui" commands to show or hide the menubar, toolbar and statusbar.
- #116 - Fix \Kexit (Alt+x by default) not updating the state of the associated toolbar button
- #350 - Fix the default global known hosts file not being set, and the default user known hosts file being set to the OpenSSH location
- #75 - implemented set ssh identity-file command, the last "set ssh" command that can be easily implemented for libssh
- #360 - new set ssh directory command. The default ssh directory has been changed to \v(appdata)ssh, but you can use this
new command to put it back to where it was in betas 2-6: set ssh directory \v(home).ssh
- SSH Agents are now supported on Windows 10 v1803 or newer. Only compatible with agents that support Unix Domain Sockets (AF_UNIX) - most on windows (including the one shipped with windows) don't
support this and use Named Pipes instead, which libssh does not support. PuTTYs Pageant can be made to work with some effort.
- #365 - New Kverbs to scroll up/down half a screen
- #155 - IBM OS/2: k2dc.exe and telnetpm.exe are now built
- #154 - IBM OS/2: The PM clipboard server no longer crashes on start
- #153 - IBM OS/2: The X/Y/Z-MODEM code (P) now builds for OS/2 with Open Watcom
- #56 - IBM OS/2: Building K95 with NetBIOS support no longer causes it to crash on startup (now it just crashes on connect!)
- #339 - IBM OS/2: Fix SET HOST doing nothing when network type is NetBIOS (this has likely been broken since version 1.1.19 of February 2000)
- #55 - IBM OS/2: K95 no longer crashes on startup when built with Open Watcom with all optimisations enabled
- #57 - IBM OS/2: K95 3.0 when built with Open Watcom can now load the TCP/IP support libraries from Kermit 95 2.1.2 for OS/2,
and building of cko32i20.dll (IBM TCP/IP 2.0+) with Open Watcom has been fixed. A new TCP/IP support library (cko32i41.dll) has been added for 32bit IBM TCP/IP 4.1+.
- IBM OS/2: The K95 OS/2 setup program has been fixed up and tested, and scripts to build the OS/2 installer distribution have been written and tested.
- #368 - Fix remaining NetBIOS issues on OS/2 (MichalN)
- #408 - Fix emacs turning off mouse reporting
- #322 - Fixed K95G crashing if the window is closed or File->Exit is used while a connection is active and GUI dialogs are turned off
- #281 - Fixed K95 bug 797 - Dialer generated connection scripts include SET LOGIN PROMPT and SET LOGIN PASSWORD commands when the fields are empty. This can break the use of the standard login.ksc script.
- #275 - Fixed K95 bug 770 - When editing an FTP entry in the dialer, the general settings page did not load the port number causing it to be cleared on save
- #266 - Added the menubar/toolbar/statusbar checkboxes back on to the GUI Settings page in the dialer fixing K95 bug 718 in the process. These options were
previously missing from open sources of the dialer as its based on code from K95 2.1.2 (these settings were new in 2.1.3). The new implementation is compatible with K95 2.1.3.
- #419 - Fix "TYPE" command complaining that /HEIGHT was specified without /GUI
- Documented most (all?) of the control sequences supported by Kermit 95s ANSI terminal emulations
- #122 - K95s hyperlink escape sequence is now documented in the Kermit 95 Control Sequences document
- #171 - Bracketed Pastes
- #286 - Update the K95 User manual for version 3.0
3rd-party libraries
THe original Open-Source release of Kermit 95 relied on several obsolete third-party libraries which are (increasingly were) behind the
various disabled features in Kermit 95. The specific versions were:
- Kerberos for Windows v2.2 beta 2. This belongs under /kerberos/kfw-2.2-beta-2/. The SDK alone does not appear to be sufficient - looks like you need to compile the full distribution from source. This requires Visual C++ 6.
- OpenSSL 0.9.7. This is easy enough to build. The code lives under /openssl/0.9.7/.
- Stanford Secure Remote Password libraries. I don't know which version is required but the latest release looks like it came out at around the same time as the last release of Kermit95. SRP builds just fine with Visual C++ 5. It needs to be linked against OpenSSL so that should be built first. The SRP code lives under /srp. The build has to be modified to use the dynamically linked version of the C runtime (it uses static by default).
- OpenSSH, a special variant of version 3.0.2p1 that was refactored into a library and reworked with GSSAPI and SRP support. This code has not been released (it would require significant work to bring up to
date anyway). It lives in /kermit/k95/ssh
- Meridian SuperLAT: For LAT. Unknown version, header file dates to late 1995. The SDK lived in /superlat
- DEC Pathworks32: For LAT and CTERM. Unknown version with SDK files dated late 1997. The SDK lived in /pwsdk - Turns out the SDK isn't required at all
- Zinc Application Framework v4.2 (modified): Used by the dialer. The SDK lived in /zinc
- 'P' by Oy Online Solutions Ltd: The XYZMODEM implementation. Originally a freeware DLL for OS/2, ported to Windows by Columbia which had a source code license.
It lived in /kermit/p95 - Update: As of December 2022, this library is now available under the 3 clause BSD license
Other Notes
- Source code index - list of source files and their contents.
- Targets - Some very brief notes on the targets available in the makefile.