Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, for more info) to build successfully.

Manual.txt 8.9 KB
Newer Older
deuce's avatar
deuce committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
                           SyncTERM v1.0

SyncTERM is a terminal program written specifically for connecting to
Bulleten Board Systems (BBSs).  Despite the name, SyncTERM is in no way
Synchronet specific, it just happens to share a large portion of code
with the rest of the Synchronet project, and live in the same CVS


If you need help with SyncTERM, the best places are:

1) IRC:
   Connect to and find Deuce in #Synchronet.  Ask your
   question, then idle.  I can take hours to respond.  Do not give up,
   this is the quickest way to get a response.
2) E-Mail:
   I am usually fairly responsive to emails sent to me at  Please describe your issue as clearly as possible.
3) Dove-Net:
   I usually read Dove-Net regularly, and many other users can often
   help with support issues.  Ask questions in the Hardware/Software Help
   sub.  If your local BBS does not carry Dove-Net, you can telnet to and leave messages there.
4) SourceForge:
   The official SyncTERM project page at has a bug tracker and other
   features that will email me and provide tracking for issues that
   are filed.

Throughout this document, I will mention things which are not supported.
These are things which I don't normally test, and are unlikely to work
at any given time.  If you ask for support on one of these issues, I may
help out, or I may not.  It doesn't bother me if you ask for help on
these things, but if you continue to ask for help after I refuse, it will
make it less likely I'll work on it in the future.


I started writing SyncTERM in June of 2004.  There weren't any good BBS
deuce's avatar
deuce committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
clients available for FreeBSD at the time, so I started writing one.
Initially, it was RLogin only and no file transfer support existed or
was planned. since RLogin supports auto-login with user ID and password
on Synchronet systems, and RLogin is a much simpler protocol than telnet,
no telnet support was planned.  Digital Man (authour of Synchronet) added
telnet and ZModem support a year later, and SyncTERM became a generally
usable BBS client.  New features continued to be added slowly over the

                        Getting SyncTERM

Releases of SyncTERM are available on the SourceForge project page.
Nightly builds and source bundles are also available at for the more adventurous.

                 Compiling SyncTERM from Source

Windows users should not need to build SyncTERM from source. Windows
specifically is not an easy build to do.  The Windows builds are done on
a FreeBSD system using MinGW, and this is the only supported build method

For *nix systems (Linux, FreeBSD, OS X, and others), a GNU make based
build system is used.  There are a number of optional dependencies, and
a large number of supported compile flags (many of which are shared with

The biggest optional dependency is SDL 1.2 (from
SyncTERM can use SDL for both graphics and sound.  If SDL is available,
it is highly reccomended that it be used.  X11 can also be used for
graphics, and OSS, ALSA, or Portaudio can also provide sound.  These use
run-time linking, so at compile time, only the headers are needed.
Static linking with SDL is also supported, but the other optional
dependencies can not be statically linked.

For SSH, a copy of Peter Gutmann's Cryptlib is provided along with a set
of patches.  This is still an optional dependency, so if Cryptlib doesn't
build on your platform, you can still use SyncTERM's other connection
options.  Cryptlib must be statically linked if it is used.

Once you have the desired dependencies installed, change to the syncterm
directory in the source tree (ie: syncterm-YYYYMMDD/src/syncterm) and
run the "make RELEASE=1" command.  This will generate the binary in a
subdirectory with the following name format:

[compiler] is either gcc or clang depending on the system compiler.
[os] is the OS name reported by uname.
[arch] is the architecture reported by uname unless it is x86 compatible
       in which case it is forced to x86 for historical reasons.
[build] is "release" for release builds and "debug" for debug builds.

                           Running SyncTERM

SyncTERM supports many command-line options to control behaviour.  Options
begin with a - followed by one or more other characters.  The following
options are supported (options are not case sensitive):

    Specifying -6 forces SyncTERM to use IPv6 addresses when possible.

    Specifying -4 forces SyncTERM to use IPv4 addresses when possible.

    Specifies the escape delay in ANSI on Curses modes.  The escape delay
    is how long SyncTERM will wait after an escape key is received from the
    user to see if it's a control sequence or a bare ESC press.  The units
    are millisecods, and the default is 25.

    Use SSH mode when connecting.

    Selects the output mode.  Not all modes are available in all builds or
    on all platforms.  Legal vales are:

    A - ANSI output mode.  This mode outputs ANSI control sequences to stdout.
        This can be used as a door on BBSs or on some terminals.  This is not
        generally something a normal user would ever want to use.

    C - Curses output mode.  UNIX only mode which uses the curses library to
        run in a terminal window.

    F - Curses with forced IBM character set.  UNIX only mode which uses
        curses, but instead of the curses-defined alternative character set,
        assumes that the IBM CP437 character set can be output.

    X - X11 output mode.  UNIX only mode which directly uses the X11 libraries
        for drawing.

    W - Windows console mode.  Windows only mode which uses the system console
        APIs for output.

    S[WF] - SDL window output mode.  Uses the SDL library for output.  The
        default mode.  Additionally, a 'W' or 'F' can be specified to force
        windowed or full-screen mode respectively.

    Specifies the number of lines on the "screen".  Supported values are:
    14, 21, 25 (default), 28, 43, 50, and 60.

    Use RLogin mode when connecting.

    Use Telnet mode when connecting.

    Use "safe" mode.  This mode attempts to restrict the ability of the user
    to modify the local drive contents.  This has not been exhaustively audited,
    and should therefore not be trusted.

After the options, a full URI, hostname, or dialing directory entry may be
specified.  Supported URI schemes are:
rlogin://, ssh://, telnet://, raw://, shell://.

If there is an entry matching the URI, hostname, or entry name, the settings will
be loaded from the BBS list, then modified per the command-line arguments.

                          The User InterFaCe
deuce's avatar
deuce committed

Menus in SyncTERM use a common user interface library named UIFC.  This
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
library was originally developed for Synchronet.

The following is the general behaviour of UIFC menus.

Mouse controls:

Right-click: Same as pressing ESC (ie: exit menu).

Left-click: Select an item in a menu.

	If there is a blank line at the end of the menu, you can select
	it to insert a new item.

	Menus have a standard set of mouse controls

	If you click outside of a menu, that menu is usually closed, but
	in some cases, it may simply become inactive.
deuce's avatar
deuce committed

	At the top of each menu is a block which is used to close the menu.
deuce's avatar
deuce committed

190 191 192 193 194 195
	If there is help for the menu, there is also a ? button to bring
	up the help.

	If there are more options than fit in the window, is a scrollbar
	on the left side.

deuce's avatar
deuce committed
196 197
Left-Drag: Select and copy a region (the copy is made when the button is released).

198 199 200 201 202 203 204 205 206 207
Middle-click: Paste from PRIMARY selection or clipboard.

Keyboard Controls:

Return: Select the currently highlighted option.  If there is a blank
	line at the end of the menu, you can select it to insert a new

Escape: Exit the current menu.
Backspace: An alias for Escape.
CTRL-C: An alias for Escape (Except when F5 is available)
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232

Home: Jump to the beginning of the menu
CTRL-B: An alias for Home

Up Arrow: Move to the previous item in the list

Page Up: Jump up in the menu by one screen.
CTRL-U: An alias for Page Up

Page Down: Jump down in the menu by one screen.
CTRL-D: An alias for Page Down

End: Jump to the end of the menu
CTRL-E: An alias for End

Down Arrow: Move to the next item in the list.

F1: Help
CTRL-Z: An alias for F1

F2: Edit

F5: Copy
CTRL-Insert: An alias for F5
CTRL-C: An alias for F5 (Overrides the alias for ESC)
234 235 236 237 238 239 240 241 242 243 244

Shift-Delete: Cut
CTRL-X: An alias for Shift-Delete

F6: Paste
Shift-Insert: An alias for F6
CTRL-V: An alias for F6

Insert: Inserts a new item.
+: An alias for Insert

deuce's avatar
deuce committed
Delete: Delete item at current location
246 247 248 249 250 251 252 253 254
-: An alias for Delete

Any letter or number: Jumps to the next item that has that character
earliest in it's name.

                         The Dialing Directory

This is the default startup screen if no BBS is specified on the command-line.