||Source tarball - All platforms
||Windows 32-bit Installer
||Windows 32-bit Standalone Executable
||Debian Linux 64-bit - Curses/Command Line
||Debian Linux 64-bit - X11
||Debian Linux 32-bit - Curses/Command Line
||Debian Linux 32-bit - X11
||Fedora Linux 64-bit - Curses/Command Line
||Fedora Linux 64-bit - X11
||Fedora Linux 32-bit - Curses/Command Line
||Fedora Linux 32-bit - X11
||OSX 64-bit - App Bundle (loads qodem-bin in Terminal.app)
X11 Version Notes
To build the X11 version, run
configure --enable-x11 and
make. PDCurses will be built first in the lib/pdcurses
subdirectory, and then Qodem will be built
Some known issues of the X11 build are:
- Mouse buttons work, but mouse tracking does not. This is due
to a difference in how the PDCurses library handles mouse
behavior compared to ncurses.
- Numeric keypad function key macros might not work on some
keyboards. This appears to be an issue in PDcurses handling of
X keyboard input.
Win32 Version Notes
To build the Win32 version, build each of the following projects in
Then rename the vc6qodem.exe produced to qodem.exe and use InnoSetup
with the build/win32/qodem-isetup.iss script to create the final
Some known issues of the Win32 build are:
- Mouse buttons work, but mouse tracking does not. This is due to a
difference in how the PDCurses library handles mouse behavior
compared to ncurses.
- SSH support is only provided by cryptlib. Some OpenSSH servers
are configured such that cryptlib cannot connect to them. It is
hoped that a future version of cryptlib supports ChaCha20, Poly1305,
- Serial port support is very experimental.
- Files are stored under the current user's documents folder
My Documents or
Documents) in a
contains the configuration options.
- LOCAL connections
cmd.exe will not respond
to any input until the user presses Enter.
- Quicklearn scripts are still written in Perl. All scripts assume
that "perl" will run
them. Strawberry Perl
Qodem relies on external code/libraries:
- On Windows, Qodem
uses cryptlib for ssh
client and host sshd server support. On Unix, Qodem defaults to
using only the standard system ssh for client support and no
sshd host mode at all unless --enable-ssh is passed to
- Qodem packages its own modified version
of PDCurses for
the X11 build.
- A modified version of
win32a fork is used for the Win32 build.
packages miniupnpc for
UPnP support in host mode.
1.0.0 Development Snapshot
A work-in-progress 1.0.0 development
source tarball is available here.
The corresponding Windows
installer is here.
New features in the development version include:
--xterm command line option: suppresses the
terminal mode banner and status line, disables phonebook and
serial port, doorway is set to MIXED mode, and immediately
launches a shell. When the shell exits, Qodem exits.
--geometry command line option to
choose COLS x ROWS on startup.
- X11/Win32: Recognizes window title changes in XTERM/X_UTF8
and changes the window title appropriately.
- All: ANSI keyboard mappings now match SyncTERM/Netrunner.
- Curses: Improved detection and passing through of xterm
modified function keys.
- X11/Win32: Shift-PgUp will now enter scrollback.
status_line option in qodemrc: if false,
status line is turned off on startup.
$SHELL environment variable now recognized
and used for
shell option in qodemrc.
- X11/Curses: configure detects and uses system-provided
miniupnpc if available.
- X11: font can be changed via
x11_font option in
- X11: blinking cursor, blinking text.
- X11/Win32: Shift/Ctrl-Ins pastes from system clipboard.
- Several command line options to select keyboard macro file,
translate table file, etc.
- PETSCII and ATASCII support.
- X11/Win32: Double-width character support.
- Miscellaneous bug fixes.
Qodem uses GNU autoconf, but may have problems on some less-tested
platforms (e.g. BSD, OSX). For those who wish to get a working
binary, a much simpler makefile is provided
build/Makefile.generic clean qodem to build. CFLAGS and LDLIBS
may need to be adjusted to suit.
All features for the 1.0.0 release are now present, though some may
This project was originally thought to only require 20,000-ish lines
of code (measured with 'wc') to replicate the key features of
lrzsz was supposed to handle the file
transfer protocols; command-line clients would handle the actual
connections. Qodem would be more glue than anything else. However,
each key feature turned out to be much more extensive: VT100 required
a lot of testing; file transfer protocols had to be implemented inline
to provide proper reporting and user control; eventual Win32 support
required code to handle telnet/rlogin/etc.; host mode required
server-side code for the protocols, and integrating with UPnP was an
obvious needed feature; the list goes on. Today qodem exceeds 95,000
LOC but has only a few bugs to go. The point now of 1.0.0 is to
finish the vision: go beyond feature parity with Qmodem™ and
instead strive to be an excellent client for modern BBSes and other
servers. See here for a more detailed
discussion of the long slog to 1.0.0.