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 repository. Support If you need help with SyncTERM, the best places are: 1) IRC: Connect to irc.synchro.net 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 shurd@sasktel.net. 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 vert.synchro.net and leave messages there. 4) SourceForge: The official SyncTERM project page at http://www.sf.net/projects/syncterm 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. History I started writing SyncTERM in June of 2004. There weren't any good BBS 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 years. Getting SyncTERM Releases of SyncTERM are available on the SourceForge project page. Nightly builds and source bundles are also available at http://syncterm.bbsdev.net/ 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 currently. 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 Synchronet). The biggest optional dependency is SDL 1.2 (from http://libsdl.org). 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].[os].[arch].exe.[build] [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): -6 Specifying -6 forces SyncTERM to use IPv6 addresses when possible. -4 Specifying -4 forces SyncTERM to use IPv4 addresses when possible. -E## 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. -H Use SSH mode when connecting. -I[ACFXWS[WF]O[WF]] 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. -L## Specifies the number of lines on the "screen". Supported values are: 14, 21, 25 (default), 28, 43, 50, and 60. -R Use RLogin mode when connecting. -T Use Telnet mode when connecting. -S 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 Menus in SyncTERM use a common user interface library named UIFC. This 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. At the top of each menu is a block which is used to close the menu. 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. Left-Drag: Select and copy a region (the copy is made when the button is released). 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 item. Escape: Exit the current menu. Backspace: An alias for Escape. CTRL-C: An alias for Escape (Except when F5 is available) 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) 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 Delete: Delete item at current location -: 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.