RETURN Protocol Information


The IBM Bisync Protocol


Bisync is an abbreviation for Binary Synchronous Communication (BSC), a data communication protocol developed by IBM in 1967. It’s primary purpose was to link System 360/370 processors with the IBM 2780 and 3780 Remote Job Entry (RJE) terminals. The 2780 was later renamed the 3780 and consisted of a card reader for input, and a printer for output.

IBM Bisync protocol enjoyed widespread use through the 1970s and 1980s. The popularity of the protocol resulted in many cloned variations, such as Burroughs Poll/Select, Unisys Uniscope, Honewell VIP/RLP, and protocol variants from NCR and Tandem. Despite its 30-year service life, Bisync protocol is still found in use today. In fact, many ATM machines use Bisync protocol, or a variation of it.

Bisync is a Character-Oriented Protocol (COP) designed for use over synchronous transmission facilities. Efficiency is gained since no Start and Stop bits are used, as is the case with asynchronous facilities.

Bisync Control Characters

IBM Bisync uses certain control codes as part of it’s line protocol. These are summarized below:

  • SYN
    Synchronization characters. Hexadecimal “16” in ASCII mode, Hexadecimal “32” in EBCDIC. May be used to “sync fill” in a middle of a block (or DLE SYN for transparent blocks).
  • SOH
    Start Of Header. Defines the beginning of a block containing application control information, such as addresses, message numbers, etc.
  • STX
    Start of Text. Identifies the end of a Header block and the beginning of a block of text.
  • ETB
    End of Transmission Block. Terminates SOH and/or STX blocks. A BCC character always follows the ETB. ETB also requires a response from the remote end.
  • ETX
    End of Transmission Block. Terminates SOH and/or STX blocks. A BCC character always follows an ETX. ETX requires a response from the remote end.
  • EOT
    End of Transmission. Causes receiving station to reset to Control mode. It is also the response to polls when the transmitter has nothing to send. The transmitter may also send an EOT as an abort signal if it can no longer transmit.
  • ENQ
    Enquiry. ENQ is used to request retransmission of a block of data. ENQ also indicates the end of a polling or select sequence for multipoint circuits, and is used to bid for the line in point-to-point circuits.
  • ACK0
    This is a two character sequence used to acknowledge line bids on point-to-point circuits, or the response to station selection on multipoint circuits. ACK0 and ACK1 will alternate in positive acknowledgements to blocks of received data. Receipt of the wrong (unanticipated) ACK sequence indicates a protocol error.
  • ACK1
    This is a two character sequence used in positive acknowledgements of received blocks of data. ACK0 and ACK1 alternate in consecutive, positive acknowledgements of data.
  • WACK
    Wait-before-transmit Acknowledgment. This two-byte sequence indicates a temporary problem with receiving data to the transmitter. The normal response to a WACK is for the transmitter to send an ENQ, EOT, or DLE EOT.
  • NAK
    Negative Acknowledgement. Indicates that the last received block was in error. Also used to indicate not ready conditions in point-to-point line bids, or multipoint station selection.
  • DLE
    Data Link Escape. Used as part of control sequences or to escape control characters (to take control characters literally) when in transparent text mode.
  • RVI
    Reverse Interrupt. The receiver transmits this sequence to alert the transmitter that it has a high priority message to send.
  • TTD
    Temporary Text Delay. The transmitter sends this two-byte code when it wishes to keep the session active, but is not ready to send immediately. It is sent every two seconds to avoid the 3 second receiver abort. The receiver response to a TTD is a NAK.
    Switched Line Disconnect. This two-byte sequence indicates to the receiver that the transmitter will be disconnecting the line (hangup).


Control Sequences

The following diagram depicts the multiple byte sequences used for Bisync protocol control. Note that the actual characters used depend upon whether the ASCII or EBCDIC character language is used.