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:
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).
Start Of Header. Defines the beginning of a block containing application control information, such as addresses, message numbers, etc.
Start of Text. Identifies the end of a Header block and the beginning of a block of text.
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.
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.
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.
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.
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.
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.
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.
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.
Data Link Escape. Used as part of control sequences or to escape control characters (to take control characters literally) when in transparent text mode.
Reverse Interrupt. The receiver transmits this sequence to alert the transmitter that it has a high priority message to send.
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.
- DLE EOT
Switched Line Disconnect. This two-byte sequence indicates to the receiver that the transmitter will be disconnecting the line (hangup).
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.