Classic Computer Magazine Archive COMPUTE! ISSUE 54 / NOVEMBER 1984 / PAGE 50

Bulletin Board Basics

Gregg Peele,
Assistant Programming Supervisor

When you press a key to send a chatacter from your computer to another system, you set in motion a series of events.

First, your terminal software—the program that tells your computer how to communicate with another computer—sends the character to a device called a UART, which stands for Universal Asynchronous Receiver Transmitter. (The VIC-20 and Commodore 64 computers do not have a UART. Instead, they use special built-in software to emulate a UART.) The UART breaks the eight-bit byte that makes up the character into a serial stream of eight sequential bits, then adds special bits to the character. Start and stop bits are added to signal the beginning and end of the byte (character) being sent, and the parity bit is altered to allow any transmission errors to be detected. There are a couple of different systems for this error-checking, or parity-checking. Like most other factors in telecommunications, the most important thing is not which type of parity you use (you don't have to use parity at all), but that both the sending and receiving systems agree to use the same type of parity.

All the bits are then sent to the modem, which converts them from their digital form into analog tones which a telephone can transmit. A tone of a certain pitch represents a binary 0, and another tone represents a binary 1. Following the Bell 103 standard for modem protocol—the specific rules of the road for communications—both of these pitches are within a specific range determined by whether your modem is set to originate or answer a transmission. If you linking to a bulletin board system (BBS), you should set your modem to originate. Bulletin board systems normally set their modems in answer mode. Modems use one set of frequencies to listen and another set to talk. That's how computer can use a single telephone line to both send and receive.

The receiving computer's modem translates the analog tones back into digital data, which the BBS program use to control some function or print a character on the system operator's (sysop's) screen. If the two computer systems are in full duplex mode, then the characters are echoed back to the sender from the receiver. These echoed character are then printed on the sender's screen.

In half-duplex, the characters sent are automatically printed on the sender's screen before being transmitted, but communication is only one-way; characters are not echoed. Full duplex is considered best since, with half-duplex, there is no direct way to tell whether the other system is receiving you. Full duplex lets you know immediately if your connection is working correctly.

Just as communication between humans requires a common language, the language of computers must be agreed upon by both parties. ASCII (American Standard Code for Information Interchange) is standard code representing each letter, number, and punctuation mark, plus a few common control keys. The Commodore 64, VIC, and Plus/4 computers use a modified version of ASCII. To accress an ASCII BBS system with these computers, you must have a terminal program which translate the normal Commodore codes to ASCII.

Even with such a program, certain incompatibilities may exist between systems which use ASCII. For instance, BBS systems may offer an option for an extra linefeed with each return character. If your terminal program includes a linefeed (moves the cursor down a line) when you hit RETURN, you won't need the extra linefeed. Other characters may also cause problems. The delete character, for instance, which is usually CHR$(127), may be CHR$(20) or even another character on some systems. Hopefully, your terminal program will allow you to alter the characters sent and recerived so you can match the computer you're communicating with. If you have questions about the codes used with a particular system, leave a note for the sysop. Most sysops are technically proficient and are glad to help you make your system work with their BBS.

Transferring programs and other files over the phone lines (uploading/downloading) is one of the most useful functions of BBS communications. This can be a complex procedure, often requiring a special terminal program designed specifically for a certain type of BBS. These programs are designed to compensate for noise in phone lines which may garble characters.

Often, to insure accuracy, a checksum is added to each block of transmitted data. The checksum indicates whether a bit has been scrambled during transmission. If an error occurs, the data is sent again. This process is repeated until the entire file is successfully transferred.

The two communicating computers handle all of this automatically. Such communication between two computers without human intervention is called handshaking. In this case, handshaking lets such computer know if the blocks of data were properly sent and received.

Since there are several different file transfer schemes, be sure that your particular program is compatible with the BBS you're calling. Again, the sysop can help you decide on the appropriate program to use with the BBS.