AX.25 Version 2 Multi-channel TNC FIRMWARE (version 1.2) Copyright 1986, Ronald E. Raikes (WA8DED) This firmware supports the full AX.25 link-layer protocol, version 2.0 as described in the ARRL specification dated October 1984, as well as the pre-existing version 1.x. This implementation supports multiple simultaneous link connections with either version protocol. This release has been assembled for a maximum of four connections, although any reasonable number of connections is possible by changing one MAXLNK symbol in the source equate file. The firmware is contained in two 2764 EPROMs, and is intended to be installed in a TAPR TNC-1 (or equivalent, such as the AEA PKT-1 or Heath HD-4040) in sockets U11 (C000) and U12 (E000). This assumes that a 6264 RAM is already installed in socket U7, with additional 6264 RAMs optionally installed in sockets U8, U9, and U10 in any combination (verify that pin 26 is connected to +5v). Additional RAM is highly desirable if multi- channel or unattended operation is anticipated. When installing the EPROMs (including newer versions), it will be necessary to start the tnc with the PARAMETER SOURCE switch set to the PROM position. This will cause default parameters to be written into NOVRAM memory but not PERMed. The RS-232 port will be initialized to 300 baud with xon/xoff handshaking. The tnc source call sign will be all blanks, and should be set with the 'I' command, as well as any other default parameters that might need changing, before issuing a 'PERM' command. At this point, the PARAMETER SOURCE switch may be set to NOVRAM for subsequent operation. If the terminal baud rate has been changed, the new value will take effect following a reset. If the tnc source call sign is left blank, the tnc will not activate the transmitter PTT line. Commands and information are sent to the tnc in the form of lines. Lines may be up to 256 characters long, including the terminating CARRIAGE RETURN. If the 256th character entered is not a CARRIAGE RETURN, it will be discarded and a BELL character will be output to the terminal. BACKSPACE and DELETE may be used to remove single characters from the line. The entire line may be permanently backspaced out by entering a CONTROL-U or CONTROL- X. A CONTROL-R will temporarily backspace out any partial line to allow incoming frames to be displayed. A second CONTROL-R will then restore the line to allow continuation of entry. During the time a partial line is saved, only another CONTROL-R will be accepted from the keyboard (with the exception of xon/xoff, of course). BELL characters are echoed to the terminal when entered or removed. Lines which begin with an ESCAPE character (echoed as '* ') are interpreted as commands. If a command is issued with no parameter, the current value of that commands parameter is displayed. An embedded NULL character in a command will cause the remainder of the line to be ignored. Lines without a leading ESCAPE character are sent as information. The firmware provides the operator with five virtual tnc channels, numbered 0 to 4. The terminal is logically attached to only one of these channels at a time, selected by the 'S' command. Information sent on channel 0 is always unproto. The unproto path may be set by issuing a 'C' command when channel 0 is selected. Channels 1 - 4 are also unproto if they are not currently connected. Outgoing connect requests may be issued on any unconnected channel, while incoming connect requests will use the first available channel (provided the maximum number of connections set by the 'Y' command will not be exceeded). Information received on a connected channel that is not currently selected will remain queued there until that channel is selected (the 'L' command is useful in determining if there is information waiting on other channels). Information for transmission is sent only to the currently selected channel. When a connection is ended, any information that has not been transmitted or acknowledged will be discarded. Received information will remain queued, however, until it has been displayed. If a new digipeater path is desired while a connection is being established or is in progress, it is not necessary to disconnect first. Simply re-issuing the 'C' command will re-establish the connection via the new path without any loss of information. Attempting to connect to the same station on more than one channel is not permitted. Which protocol version is used to initiate a connection is controlled by the 'V' command, but the version will be changed automatically, if necessary, to conform to the version of the tnc responding. Version 2 protocol is more effecient in terms of network throughput and loading, especially under severe conditions. Version 2 protocol is the default and should be used whenever possible. (NOTE: The existing firmware supplied by TAPR for the TNC-1 (v3.x) will NOT digipeat version 2 protocol. This is expected to remedied in v4.0. All other tnc's and digipeaters encountered to date digipeat version 2 properly.) When version 2 protocol is used, a watch-dog timer is started whenever information is not being transmitted. If the tnc remains idle for three minutes, it will poll the other tnc to determine if the link is still established. If no response is received after the number of tries set by the 'N' command, the tnc will attempt to re-establish the connection. This procedure will also detect the case where someone connects and then leaves without disconnecting. Changing the protocol version during a connection is not permitted. The 'F', 'N', 'O', and 'V' commands maintain individual parameters for each channel. The value stored in channel 0 is the value that is saved in NOVRAM. This value is used to initialize channels 1 - 4 after a reset, and to re-initialize channels 1 - 4 after a disconnect. This allows the values to be changed independently on each channel, prior to and during a connection, and then automatically revert back to the standard values when the connection is ended. A 'D' command issued on a disconnected channel 1 - 4 will also re-initialize that channel. Frame monitoring is controlled by the 'M' command. The command parameter determines the types of frames monitored, and is a list of desired frames chosen from the letters in the following table: LTR FRAME --- ----- N None I I frames U UI frames S Supervisory frames C Monitor while connected R Monitor received frames (addressed to) T Monitor transmitted frames (addressed from) + Call signs to be included (maximum of 8) - Call signs to be excluded (maximum of 8) The '+' and '-' parameters may not be used together. If either is used, it must be the last parameter (followed by one to eight call signs, if applicable). If no list of call signs is specified to be included or excluded, all call signs will be candidates for monitoring. Entering a '+' or '-' with no call signs will empty the list. An asterisk displayed after a call sign in the digipeater list indicates the frame was transmitted by that station. The control field displayed will be one of the following: NAME DESCRIPTION ---- ----------- RRa - Receive Ready RNRa - Receive Not Ready REJa - Reject UI - Unnumbered Information DM - Disconnected Mode SABM - Connect Request DISC - Disconnect Request UA - Unnumbered Acknowledge FRMR - Frame Reject Iab - Information ?ccH - Unknown a = Next expected frame number (0 - 7) b = Frame number of this frame (0 - 7) cc = Hexadecimal value In addition, one of the following characters will be displayed, reflecting the protocol version, command/response bits, and the poll/final bit: (blank) = version 1 frame without poll/final bit ! = version 1 frame with poll/final bit ^ = version 2 command frame without poll bit + = version 2 command frame with poll bit - = version 2 response frame with final bit v = version 2 response frame without final bit The protocol identifier field is displayed in hexadecimal, which is currently always an F0, signifying that no layer 3 is implemented. An unattended mode, controlled by the 'U' command, provides for sending user supplied text to a connecting station, and then allows that station to leave a brief message. This mode can operate on all channels simultaneously, but in no way limits the operators ability to interact with one of the connected channels or the ability to make outgoing connect requests. When unattended mode is enabled, link status messages are queued to the associated channel and not output to the terminal unless that channel is currently selected. Link status messages will therefore be displayed in chronological order with the information from that channel. In addition, text supplied by the user with the 'U' command will be sent to any station that connects. If channel 0 is left selected, stations may then connect and leave messages on channels 1 - 4 (limited by the 'Y' parameter, of course). The 'L' command may be used to determine if messages have been left on any channel. Selecting a channel containing messages will cause all link status and information from that channel to be displayed. If xon/xoff handshaking is enabled, CONTROL-S and CONTROL-Q may be used to regulate the output to the terminal to allow comfortable reading. Also provided, but intended to be used very sparingly, is an unattended QST facility. In this mode, user supplied text may be automatically transmitted unproto to the path set on channel 0, at periodic intervals spaced 1 - 65,535 minutes apart. The interval and text must be entered each time QST mode is enabled. Use of unattended QST messages is generally degrading to network performance and is considered by many to be an annoyance, and should only be used when absolutely necessary. The tnc parallel port supplies link status information for channel 1 on lines PA0, PA1, and PA2 for use with an external status indicator. The following link states are possible: 1 = Disconnected 2 = Link Setup 3 = Frame Reject 4 = Disconnect Request 5 = Information Transfer The firmware source is written in 6809 assembly language. Emphasis was placed on using a state table driven design, utilizing the state tables provided in the ARRL specification. The source was assembled using a 6809 cross assembler from 2500 AD Software running on a Z-80/8086 TurboDOS development system (CP/M & MS-DOS compatable). NOTE: A very small number of Western Digital 1933 HDLC Controller ICs manufactured in 1981 and 1982 have been found to be defective. The symptoms are erratic and unreliable operation of the tnc, due to the hdlc controller occasionally failing to interrupt upon successful completion of frame transmission. These defective parts can be identified by inspecting the mask number on the underneath side of the IC. The defective mask number begins with the letters 'BA', and should be replaced. The current replacement part is called 1935 and requires no changes. COMMAND SUMMARY =============== COMMAND PARAMETER DESCRIPTION ------- --------- ----------- A (1) 0 Auto linefeed disabled 1 Auto linefeed enabled B (6) 1-15 Terminal baud rate C Cs1 [Cs2 ... Cs9] Connect path (0=unproto path) D Disconnect E (1) 0 Echo input disabled 1 Echo input enabled * F (3) 1-15 Frame acknowledge (seconds) G [0] Get information (host mode) [1] Get link status (host mode) H (1200) 50-9600 HDLC baud rate I Cs Tnc source call sign JHOST (0) 0 Terminal mode enabled 1 Host mode enabled K 1-2 Calibrate L [0-4] Display channel status M (IU) NIUSCRT+- Monitor mode * N (10) 0-255 Number of tries (0=forever) * O (4) 1-7 Number of outstanding I frames PERM Save parameters to NOVRAM QRES Re-start firmware R (1) 0 Repeater disabled 1 Repeater enabled S (1) 0-4 Select channel (0=unproto) T (30) 0-127 Transmitter delay (10ms) U (0) 0 [text] Unattended mode disabled 1 [text] Unattended mode enabled 2 interval text QST mode enabled * V (2) 1 Version 1 protocol initiated 2 Version 2 protocol initiated W (16) 0-127 Repeater wait (10ms) X (1) 0 Transmitter PTT disabled 1 Transmitter PTT enabled Y (1) 0-4 Maximum connections Z (3) 0 Flow disabled, xon/off disabled 1 Flow enabled, xon/off disabled 2 Flow disabled, xon/off enabled 3 Flow enabled, xon/off enabled @ B Display number of free buffers C (0) 0 Fast clock disabled 1 Fast clock enabled P (F0) 0-FF Protocol id (hex) S Display current link state T2 (100) 0-255 Timer T2 interval (10ms) T3 (18000) 0-32767 Timer T3 interval (10ms) Default values are shown in parenthesis * These commands are applicable to each connection channel (Values set on channel 0 are used after a reset and disconnect to initialize each connection channel) COMMAND DESCRIPTION =================== The 'A' command is used to enable or disable the automatic insertion of LINEFEED characters after CARRIAGE RETURN characters to the terminal. This parameter is stored in NOVRAM. The 'B' command is used to set the terminal baud rate, using one of the following parameters: Parameter Baud rate --------- --------- 1 50 2 75 3 110 4 135 5 150 6 300 7 600 8 1200 9 1800 10 2400 11 3600 12 4800 13 7200 14 9600 15 19200 After setting the baud rate with the 'B' command, the value must be PERMed, and will then take effect following a reset. Baud rates above 4800 may not be reliable with sustained input (commands or information) from a host computer due to the slow cpu clock rate and non-vectored interrupt architecture. The 'C' command is used to initiate a link connection. Note that NO 'v' or 'via' is used between the destination call sign and the digipeater call signs. A 'C' command may be issued on a channel already in use to change the digipeater call signs, but not the destination call sign. A 'C' command issued when channel 0 is selected sets the unproto path. Attempting to connect to the same station on more than one channel is not permitted. The 'D' command is used to initiate a link disconnection. A 'D' command issued during the establishment or dis-establishment of a link will cause an immediate return to the disconnected state. A 'D' command issued on a disconnected channel will re- initialize the connection dependent parameters to the values stored in channel 0. The 'E' command is used to enable or disable the echoing of input (commands and information) to the terminal. This parameter is stored in NOVRAM. The 'F' command is used to set the frame acknowledgement interval. This interval is used to compute the timeout interval before a packet is retransmitted, using the formula: time (seconds) = frame ack * (2 * number of digipeaters + 1) A separate frame acknowlegement interval value is maintained for each connection channel. The value stored in channel 0 is used to initialize each connection channel after a reset or disconnection, and is the value that is stored in NOVRAM. The 'G' command is used to interrogate virtual tnc channels when host mode is enabled. If no parameter is specified, the next chronological item (information or link status) will be returned, provided there is one. This command is invalid in terminal mode. A later section is devoted to host mode operation. The 'H' command is used to set the HDLC baud rate. Non- standard values are rounded down to the next possible baud rate. In this case, use an 'H' command with no paramter to display the value actually set. This parameter is stored in NOVRAM. HDLC rates up to 9600 baud are supported if the fast clock mode is enabled. The 'I' command is used to set the tnc source call sign. The initial value is all blanks. After the source call sign has been entered, the 'PERM' command should be used to save it for use during subsequent operation. Changing the tnc source call sign while connected is not permitted. If the tnc source call sign is left blank, the tnc will not activate the transmitter PTT line. The 'JHOST' command is used to select between terminal and host modes. A later section is devoted to host mode operation. The 'K' command is used to calibrate the tnc modem. The following parameters set the calibration modes listed: Parameter Calibration --------- ----------- 1 FREQUENCY COUNTER 2 TONE LEVEL & NULL The frequency counter mode will display the measured frequencies on the terminal. When each mode is selected, jumpers settings are displayed as well as the appropriate ajustment points. The values shown in parenthesis are the normal targets for 1200 baud operation. The 'L' command is used to display the link status of one or all channels. Information displayed includes the connection path, number of receive frames not yet displayed, number of send frames not yet transmitted, number of transmitted frames not yet acknowledged, and the current retry count. A '+' character preceeding the channel number indicates the currently selected channel. Operation of this command when host mode is enabled is somewhat different, and is described in a later section. The 'M' command is used to set the frame monitoring mode. The command parameter determines the types of frames monitored, and is a list of desired frames chosen from the letters in the following table: LTR FRAME --- ----- N None I I frames U UI frames S Supervisory frames C Monitor while connected R Monitor received frames (addressed to) T Monitor transmitted frames (addressed from) + Call signs to be included (maximum of 8) - Call signs to be excluded (maximum of 8) The '+' and '-' parameters may not be used together. If either is used, it must be the last parameter (followed by one to eight call signs, if applicable). If no list of call signs is specified to be included or excluded, all call signs will be candidates for monitoring. Entering a '+' or '-' with no call signs will empty the list. This parameter is stored in NOVRAM. The 'N' command is used to set the maximum number of times a frame will be transmitted without receiving an appropriate acknowledgement, before a link failure is assumed. A separate maximum number of tries value is maintained for each connection channel. The value stored in channel 0 is used to initialize each connection channel after a reset or disconnection, and is the value that is stored in NOVRAM. The 'O' command is used to set the maximum number of unacknowledged I frames that may be outstanding at any one time. A separate maximum number of unacknowledged I frames value is maintained for each connection channel. The value stored in channel 0 is used to initialize each connection channel after a reset or disconnection, and is the value that is stored in NOVRAM. The 'PERM' command is used to change the parameter values stored in NOVRAM to those that are currently set. The 'QRES' command is used to restart the firmware as if a hardware reset had been issued. The 'R' command is used to enable or disable the digipeating of frames. This parameter is stored in NOVRAM. The 'S' command is used to select the current channel number. This parameter is stored in NOVRAM. The 'T' command is used to set the transmitter keyup delay interval. The parameter is specified in 10ms increments. This parameter is stored in NOVRAM. The 'U' command is used to enable or disable unattended modes. If QST mode is not used, previously entered text will be retained if new text is not provided. If QST mode is selected, the interval and text must be supplied. The QST interval is specified in minutes from 1 - 65,535. The 'V' command is used to select whether version 1 or 2 protocol will be used to initiate a link connection. A separate protocol version value is maintained for each connection channel. The value stored in channel 0 is used to initialize each connection channel after a reset or disconnection, and is the value that is stored in NOVRAM. Interrogating this parameter during a connection will reflect the protocol version currently being used on that channel. Changing the protocol version during a connection is not permitted. The 'W' command is used to set the digipeater wait interval. The parameter is specified in 10ms increments. This parameter is stored in NOVRAM. The 'X' command is used to enable or disable the transmitter PTT line. This parameter is stored in NOVRAM. The 'Y' command is used to set the maximum number of connections that may established by incoming requests. This command has no effect on the operators ability to initiate outgoing connection requests. This parameter is stored in NOVRAM. The 'Z' command is used to enable or disable flow control and xon/xoff handshaking to the terminal. If flow control is enabled, output to the terminal will be inhibited while entering commands or information. If flow control is disabled, output to the terminal will not be restricted. Flow control and xon/xoff handshaking should be disabled during periods in which the tnc is operated without a terminal, to avoid suspending output which will consume buffers. If xon/xoff handshaking is enabled, crt scrolling may be stopped and started using CONTROL-S and CONTROL- Q characters. Flow control and xon/xoff handshaking are not performed when host mode is enabled. This parameter is stored in NOVRAM. The '@' command is a software maintenance command. A parameter of 'B' will display the number of free buffers. A parameter of 'C0' will select timing parameters for the slower cpu clock rate. A parameter of 'C1' will select timing parameters for the faster cpu clock rate. The 'C' parameter is stored in NOVRAM and must be PERMed if the change is to stay in effect following a reset. The 'P' parameter is used to set the protocol id byte for each channel and is supplied and displayed in hexadecimal. A parameter of 'S' will display the current link state. The 'T2' parameter is used to set the timer T2 interval, just as the 'T3' parameter is used to set the timer T3 interval. The timer intervals are specified in 10ms increments, and both are stored in NOVRAM. Timer T2 controls the amount of delay between the time an information frame is received and the time the resulting response frame is sent. This delay allows multiple frames to be acknowledged with a single response. Timer T3 is used maintain link integrity. If there is no activity during the T3 interval, the tnc will poll to verify the distant station is still connected. HOST MODE OPERATION =================== Host mode is intended to provide a user interface suitable for operation under control of a host processor. Commands and information to the tnc, as well as status and information from the tnc, are clearly identified to allow orderly and unambiguous communication. To alleviate any need for hardware or software handshaking, the tnc will not send to the host processor unsolicited, and all exchanges are limited to 256 bytes. Information transfers are fully transparent. When host mode is enabled, the first byte sent to the tnc must be a channel number. If information is being sent, the second byte must be a binary 0. If a command is being sent, the second byte must be a binary 1. The third byte must be the binary length of the actual information or command, decremented by 1 (vacuous information or commands are not permitted). The actual information or command bytes must follow last. Information sent to channel 0 will be sent unproto. Information sent to an unconnected channel 1 - 4 will be discarded. The tnc will respond to both information and commands with a channel number first, followed by a binary code of 0, 1, or 2, signalling success or failure. Codes of 1 or 2 will be followed by a null terminated message. Channels may be interrogated for incoming information or link status by using the 'G' command. Monitor headers and monitor information will always be sent to channel 0, along with connect request link status messages. All other link status messages will be sent to the appropriate channel, along with that channels connected information. In response to a 'G' command, the tnc will respond with a channel number first, followed by a binary code of 0 if nothing is available, or a binary code of 3 - 7, identifying the bytes that follow. A code of 4 indicates the monitored frame does not contain an information field. A code of 5 indicates the monitored frame does contain an information field, and the next 'G' command on channel 0 will return that information field, preceeded by a code of 6. Host to Tnc ----------- CHANNEL CODE DESCRIPTION ------- ---- ----------- n 0 Information (preceeded by length-1) n 1 Command (preceeded by length-1) Tnc to Host ----------- CHANNEL CODE DESCRIPTION ------- ---- ----------- n 0 Success (nothing follows) n 1 Success (message follows, null terminated) n 2 Failure (message follows, null terminated) n 3 Link Status (null terminated) n 4 Monitor Header (null terminated) n 5 Monitor Header (null terminated) n 6 Monitor Information (preceeded by length-1) n 7 Connect Information (preceeded by length-1) Success messages ---------------- {channel status} {parameter value} CHANNEL NOT CONNECTED Failure messages ---------------- INVALID COMMAND TNC BUSY - LINE IGNORED CHANNEL ALREADY CONNECTED STATION ALREADY CONNECTED Link Status messages -------------------- BUSY fm {call} via {digipeaters} CONNECTED to {call} via {digipeaters} LINK RESET fm {call} via {digipeaters} LINK RESET to {call} via {digipeaters} DISCONNECTED fm {call} via {digipeaters} LINK FAILURE with {call} via {digipeaters} CONNECT REQUEST fm {call} via {digipeaters} FRAME REJECT (x y z) fm {call} via {digipeaters} FRAME REJECT (x y z) to {call} via {digipeaters} x y z = FRMR information bytes Monitor Header format --------------------- fm {call} to {call} via {digipeaters} ctl {name} pid {hex} Channel Status format --------------------- a b c d e f a = Number of link status messages not yet displayed b = Number of receive frames not yet displayed c = Number of send frames not yet transmitted d = Number of transmitted frames not yet acknowledged e = Number of tries on current operation f = Link state Possible link states are: 0 = Disconnected 1 = Link Setup 2 = Frame Reject 3 = Disconnect Request 4 = Information Transfer 5 = Reject Frame Sent 6 = Waiting Acknowledgement 7 = Device Busy 8 = Remote Device Busy 9 = Both Devices Busy 10 = Waiting Acknowledgement and Device Busy 11 = Waiting Acknowledgement and Remote Busy 12 = Waiting Acknowledgement and Both Devices Busy 13 = Reject Frame Sent and Device Busy 14 = Reject Frame Sent and Remote Busy 15 = Reject Frame Sent and Both Devices Busy NOTE 1: Only items a and b are displayed for channel 0. NOTE 2: Only states 0 - 4 are possible if version 1 is in use. DEFAULT PARAMETERS ================== In some instances, it may be desirable to have default parameters which differ from the standard values. To allow easy access, all default parameters have been placed at the beginning of the EPROM. The following listing defines the layout of this area: TYPE VALUE DESCRIPTION ---- ----- ----------- BYTE 1BH COMMAND CHARACTER BYTE ' ',60H SOURCE CALL SIGN (SEE NOTE 1) WORD 000AH HDLC BAUD RATE DIVISOR (SEE NOTE 2) BYTE 06H TERMINAL BAUD RATE BYTE 01H MAXIMUM CONNECTIONS BYTE 03H MONITOR MODE (SEE NOTE 3) BYTE 01H REPEATER DISABLE/ENABLE BYTE 10H REPEATER WAIT (10ms) BYTE 1EH TRANSMITTER DELAY (10ms) BYTE 03H FLOW CONTROL MODE BYTE 01H TRANSMITTER PTT DISABLE/ENABLE BYTE 01H CHANNEL NUMBER BYTE 01H AUTO LINEFEED DISABLE/ENABLE BYTE 01H ECHO COMMAND LINE DISABLE/ENABLE BYTE 01H VERSION 2 INITIATED DISABLE/ENABLE BYTE 04H MAXIMUM UNACKNOWLEDGED FRAMES BYTE 0AH MAXIMUM TRY COUNT BYTE 03H FRAME ACKNOWLEDGE INTERVAL BYTE 00H FAST CLOCK DISABLE/ENABLE BYTE 64H TIMER T2 INTERVAL (10ms) WORD 4650H TIMER T3 INTERVAL (10ms) BYTE F0H PROTOCOL ID BYTE 'CQ ',60H UNPROTO CALL SIGN (SEE NOTE 1) BYTE 01H VALIDATE CALL SIGN ENABLE/DISABLE BYTE 00H STOP BIT/WORD LENGTH (SEE NOTE 4) BYTE 00H PARITY (SEE NOTE 5) DISABLE = 00H / ENABLE = 01H NOTE 1: The secondary station id must be shifted left one bit and or'ed with 60H. NOTE 2: The HDLC baud rate divisor is computed using the formula: SLOW CLOCK: divisor = (14400 / buad rate) - 2 FAST CLOCK: divisor = (28800 / buad rate) - 2 The HDLC baud rate divisor is stored most significant byte first. NOTE 3: The monitor mode is composed from the following bits: BIT FRAME --- ----- 0 I frames 1 UI frames 2 Supervisory frames 3 Monitor while connected 4 Monitor received frames (addressed to) 5 Monitor transmitted frames (addressed from) NOTE 4: Stop bit and word length is controlled by the following bit assignments: BIT 7 STOP BIT ----- -------- 0 1 stop bit 1 2 stop bits 1 1.5 stop bits (word length=5/parity disabled) 1 1 stop bit (word length=8/parity enabled) BIT 6-5 WORD LENGTH ------- ----------- 0 0 8 bits 0 1 7 bits 1 0 6 bits 1 1 5 bits Bits 4-0 MUST be set to 0. NOTE 5: Parity is controlled by the following bit assignments: BIT 7-6 PARITY CONTROL ------- -------------- 0 0 Odd parity transmitted/received 0 1 Even parity transmitted/received 1 0 Mark parity transmitted/parity check disabled 1 1 Space parity transmitted/parity check disabled BIT 5 PARITY ENABLE ----- ------------- 0 Parity disabled 1 Parity enabled Bits 4-0 MUST be set to 0.