The ANSI-BBS Specification

This specification is designed to standardize the meaning of ANSI-BBS in the communications world. It is split into three parts. General definitions are contained in the core document, specifications for the handling of server to client communications and saved ANSI-BBS files are contained in the Server Communications document, and client to server specicifications are contained in this document.

Sending characters from the client

Normal ASCII Characters

Any normal character entered at the keyboard is sent to the remote system as-is. Specifically, this includes the characters from ' ' (0x20) to '~' (0x7e) inclusive.

Control Characters

Control characters are the characters from NUL (0x00) to US (0x1f) inclusive and DEL (0x7f). Control characters except for the NUL (0x00) character entered by the user regardless if they are entered by a special key (such as TAB) or by a control-key sequence (such as CTRL-I) are to be sent unmodified to the remote system except when they are required by the underlying communication method to be handled in a special manner. This includes the Xon/Xoff (0x11 and 0x13) characters used for flow control for some serial connections and normal RLogin connections. NUL handling is not defined by this specification. The client may transmit it unmodified, may silently ignore it, or may perform some other action.

Extended ASCII Characters Subject to discussion

Client handling of extended ASCII characteres entered by the user is not defined in the specification

DISCUSSION:
In general, it is believed that extended ASCII chars should be treated as normal ASCII characters for the purpose of this specification since many languages have code pages which require this range to be useable. The lack of a standard method to agree on current code-page however makes this a tough call as it cannot be readily determined which character is intended.

Extended keystrokes

Most systems have a large number of extended keystrokes available. These keystrokes require a special sequence to be sent to the remote system. Since some of these keystrokes will be required for control of the terminal program itself, these will be split into three groups:

  1. Required keystrokes whuch MUST be sent to the remote when entered by the user.
  2. Suggested keystrokes which are discouraged from being used by the client and, if they are not so used should be sent to the remote.
  3. Optional keystrokes which may or may not be implemented by the client in any way.

All extended keystrokes sent to the server will begin with the Control Sequence Introducer (CSI) and have one or more additional characters sent. The two-character CSI consists of the ESC character (0x1b) followed by the '[' character (0x5b).

Required Extended Keystrokes

The following extended keystrokes MUST be sent to the remote system when entered by the user

KeystrokeSequence to sendNotes
Left ArrowCSID
Right ArrowCSIC
Up ArrowCSIA
Down ArrowCSIB

Suggested Extended Keystrokes

The following keystrokes are discouraged from being used by the client and, if they are not so used should be sent to the remote.

KeystrokeSequence to sendNotes
F1ESC (0x1b) 'O' 'P'
F2ESC (0x1b) 'O' 'Q'
F3ESC (0x1b) 'O' 'R'
F4ESC (0x1b) 'O' 'S'
F5ESC (0x1b) 'O' 't'
F6CSI17~
F7CSI18~
F8CSI19~
F9CSI20~
F10CSI21~
F11CSI23~
F12CSI24~
InsertCSI@
DeleteDEL (0x7f)
HomeCSIH
EndCSIK
Page UpCSIV
Page DownCSIU

Optional Extended Keystrokes

These keystrokes are low-priority ones which should send these sequences if they send anything at all

Currently, no optional extended keystrokes are defined

Please feel free to Comment on this page.