In the early 1960s there were not large networks of terminals and time-sharing
computers and VDUs were not yet developed. Computers were run as batch systems,
most programmers would write out their programs on coding sheets, these would
then be converted into stacks of punched cards by keypunch operators using stand-alone
electro-mechanical devices such as the IBM 29 cardpunch. The computer operator
then loaded the cards and ran the program, the results were printed and sent
back to the operator.
For companies with branch offices there was a need for programs to be run,
and the results printed, remotely. To do this remote job entry devices were
developed such as the IBM 2780 and later the IBM 3780, these consoles contain
a card reader and printer. These devices need a comms link which is fast and
also has some error protection.
IBM therefore used a synchronous protocol - Bi-Sync. Two character codes had
to be accommodated in a synchronous data link protocol, these were,
8-bit EBCDIC (used on IBMs S/360)
and 7-bit + parity ASCII
Cluster Controllers
The original version of BSC handled error checking and multi-point lines,
however it did not completely handle component selection, nor did it handle
the requirements of a cluster controller.
Component selection was handled by sending data to each device one at a time (a restriction that was overcome by the HASP multi-leaving protocol, which defined fields within the data to further define the destination device but required a minicomputer terminal to decode the message). The advent of 3270 clusters required a further change to the BSC protocol, which was duly done: BSC3, as this version is known, was designed to treat each screen as a separate device. In total there are three incompatible versions of the BSC protocol.
2 - Overview of BSC
- Half duplex
- Allows Multipoint configurations.
- All transmission starts with PAD SYN SYN to establish bit and character synchronization.
- Error checking only done on messages containing data, not on short control sequences.
- Not layered - Control characters depend on character code used.
- Control characters may be used both for high level functions and for data link control.
- Each message must be individually acknowledged before the next can be sent.
although much more modern and efficient data link protocols are available
(SDLC,HDLC,X.25) BSC is still in use on many existing terminals.
3 - Character Codes
The following tables show how each character can be coded as a number, the
tables contain not only printable characters such as upper case letters, lower
case letters, numbers and punctuation but also control codes for controling
the information exchange which are explained later.
The tables are arranged with the most significant hexadecimal number across
and the least significant number down so that, for example, in the EBCDIC table
lower case 'a' is coded as 81 in hexadecimal which is 10000001 in binary.
EBCDIC character codes
ASCII character codes
SIX-BIT character codes
goto next document - data link control