Welcome! Qodem is an open-source re-implementation of the DOS-era Qmodem serial communications package, updated for modern systems. Qodem goes beyond similar DOS-era emulators in many ways:
Users wishing to test out Qodem on live bulletin boards should check
out the Telnet BBS Guide
list of telnet-able BBS systems. For convenience, this list has been
converted into a Qodem phonebook file.
Copy it into
~/.qodem (or if on Windows, into
Documents\qodem\prefs) and load it by pressing
in the Qodem phonebook screen.
Qodem's main features are:
These features are detailed in depth in the Qodem User's Guide. The remainder of this section provides a very quick overview of the main interface.
Qodem is driven entirely by the keyboard. Qodem has two main modes of operation: the phonebook and the TERMINAL screen. The phonebook (screenshot) contains the list of sites to access, with each site being customizable for username, password, emulation, toggles, etc.. In TERMINAL mode (screenshot) most keystrokes are passed directly to the "other side" (or the local shell). Nearly all of the time pressing the ESCAPE key or the backtick (a.k.a. "reverse or open apostrophe `") will work to get out of dialogs and the phonebook screen.
Qodem is exited by pressing
Alt-X while in TERMINAL mode.
(If there is no active connection,
Ctrl-C will also bring
up the exit dialog.) Pressing 'y' or Enter at the exit prompt will
In phonebook mode, the following keystrokes will bring up the most important features:
`- Switch to TERMINAL mode.
End- navigate up and down the phonebook list.
INSERT- Insert a new entry. The entry dialog will appear. Screenshot. Most options are self-explanatory, however the connection methods may not be immediately obvious:
/bin/sh -c. This is the Swiss Army knife connection method. For example, one can use CMDLINE to punch through an IISPROXY firewall by having an ssh server listening on port 443 somewhere out there, installing cntlm and setting it up with a SOCKS5 listening port, and using a Qodem phonebook entry with CMDLINE method and address 'tsocks ssh -e none -p 443 my.remote.host' .
Spaceto bring up the pick dialog and then use arrow keys to select the option. Screenshot.
Enter- Connect to the selected entry if nothing is tagged. If some entries are tagged, begin connecting to the next tagged entry, cycling through the list if it is busy.
O- Change the visible columns in the widescreen view.
SPACE- Tag or untag an entry. Screenshot. Tagged entries can be dialed/connected in sequence with
Enter, deleted as a group with
Ctrl-D, or revised in sequence as a group with
DELETE- Delete selected entry. A dialog will come up asking to delete either the attached note or the entire entry.
N- Edit attached note in an editor. Every phonebook entry has an optional freeform text file associated with it.
Ctrl-U- Revert the phonebook to the saved copy. This can undo very recent edits to the phonebook. Exiting to TERMINAL mode saves an automatic backup.
These are just the most common commands, many others are available including find and sort functions, loading other phonebook files, manually dialing the modem, and others.
In TERMINAL mode, the following keystrokes will bring up some of the important features:
Alt-Z- Bring up the menu of commands. Screenshot. Selecting a command with Alt-keystroke will bring up that command immediately.
Alt-X- Exit Qodem.
Alt-D- Bring up the phonebook. ESC or ` to return to TERMINAL mode.
Alt-/- Enter scrollback mode. PgUp, PgDn, up arrow, down arrow, Home, and End all work to navigate the scrollback. 'S' will save the scrollback to a file, 'C' will clear the scrollback.
Alt-H- Hangup or disconnect from the remote side.
Alt-C- Clear screen.
Alt-T- Save the current screen contents to file.
PgUp- Initiate file upload. Qodem support raw ASCII transfers, several varieties of Xmodem and Ymodem, and Zmodem and Kermit. All of them should work OK on TCP/IP and error-correcting serial links. However, Kermit will fail on unreliable links like bare 3-wire RS232 or modems without error correction. Kermit will be fixed for unreliable links for the 0.4.0 release. Combinations of Alt- and Ctrl- for both
PgDnmight also work depending on the host terminfo.
PgDn- Initiate file download. Both Zmodem and Kermit also have autostart download support.
Alt-P- Enable/disable capture file. Capture can be saved in three different formats depending on the
qodemrc: 'raw' saves every byte including emulation escape sequences, 'normal' saves printable characters only after emulation processing (like a black-and-white capture), and 'html' saves both characters and colors in HTML format.
Alt-N- Bring up the configuration file
qodemrcin an editor.
Alt-J- Bring up the function key editor (keyboard macros). Screenshot. A keyboard macro is a substitution string that is sent to the remote side when a particular function key is pressed. Like Qmodem, Qodem organizes macros by the emulation, so for example you can have F10 send one thing under ANSI emulation and a different thing under VT220 emulation. However, unlike Qmodem, Qodem also has a "default" macro set, editable by pressing 'L' and then selecting
default.key. The basic rules of pressing a function key are:
^Mis replaced by carriage return.
Alt-9- Open or close the serial port. Must not already be connected to another system. For modem connections, this may cause an immediate hangup. Use the
Alt-Omodem settings menu to select the serial port device.
Alt-Y- Change current serial port settings. New setting will apply immediately, the port does not have to be closed and re-opened.
Alt-O- Change modem settings (init string, hangup string, etc).
Alt-\- Send a specific 8-bit byte or UTF-8 encoded Unicode character to the remote side.
Alt-R- Shell to the OS.
Alt-G- Change the current terminal emulation. Most are self-explanatory. The L_UTF8 and X_UTF8 emulations are LINUX and XTERM with UTF-8 encoding, respectively. The DEBUG emulation makes all received characters look like a programmer's hex dump (screenshot).
Alt-;- Change the current codepage. This only has effect on TTY, ANSI, Avatar, LINUX, and XTERM emulations; the other emulations define their glyphs in their specification. Currently supported codepages are CP437 (VGA), ISO-8859-1, CP720 (Arabic), CP737 (Greek), CP775 (Baltic Rim), CP850 (Western European), CP852 (Central European), CP857 (Turkish), CP858 (Western European with euro), CP860 (Portuguese), CP862 (Hebrew), CP863 (Quebec French), CP866 (Cyrillic), CP1250 (Central/Eastern European), CP1251 (Cyrillic), CP1252 (Western European), KOI8_R (Russian), and KOI8_U (Ukrainian).
Alt-F- Start a script. Qodem does not (yet) have its own scripting language. Instead, any program that reads stdin and writes to stdout can be run as a script that communicates directly with the remote side. Qodem strips out emulation and passes only the printable characters to the script. The program's stderr is displayed in the bottom few lines as messages to the user. Screenshot.
These are just the most common commands, many others are available including byte translation, split screen, doorway mode, special character handling for CR/NUL/DEL, and various toggles.
Throughout Qodem, the bottom line of the screen is used to report
status and provide hints about what keystrokes are available. In
TERMINAL mode the status line can be turned off
Alt-- (Alt-minus), or toggled between two different
Qodem has benefited from the work of several other people. We wish to thank a few people specifically:
For reference, the last shareware version of Qmodem (Qmodem 4.6 Test Drive) is available here. The Qmodem user's guide may provide a good starting point for understanding Qodem. It is available here in several formats:
Please note that Qodem is NOT Qmodem™. Qmodem™ is a trademarked commercial program, originally written by John Friel III, last released by Mustang Software, Inc., a quality program that can handle all kinds of serial communications needs. Newer versions of QmodemPro™ for Windows (above 2.0) can connect to hosts via telnet. Qodem has many behavior deviations from Qmodem.
More information about both Qodem and Qmodem is available on the About page.
The Qodem Project is planning to port the public release code of the HS/Link bi-directional file transfer protocol to POSIX environments. No timetable is set, but the files themselves are available here. We are working under the assumption that the original author did in fact release the code as "public domain" with his statement here (originally here).