CADNET employs a data protocol which provides a means for specification of the filename, etc. on initialization, transmission of data records of length up to 512 (fixed length records) or 132 bytes (variable length records), retransmission of and protocol line on timeout or checksum errors, closing the output file, and for forcing the receiving task to exit. There are several different types of sequences (or transmitted lines) in the protocol. One type is used in initializing a file transfer (to start a particular file), several different types exist for transmitting logical records (or portions thereof), one is used for indicating the end of the file being transmitted, and there is a special sequence for indicating that the receiving task should release the communication line and exit. Numeric values are part of most of the different sequence types, representing lengths, checksums, etc. All such values are encoded as two bytes, each representing 2 octal digits with the ascii characters SPACE to __ (40 to 137, octal). The first contains the higher order 2 octal digits, and the second the lower order 2 octal digits. Thus, these numbers are restricted to 4 octal digits, with a range of 0-4095. In the description of these sequences below, anything enclosed in "< >" is a description of a single character, while anything enclosed in "[ ]" is a description of a logical group of characters. Consecutive capital letters are the ASCII name for a control character. The top line is the sequence transmitted by XMT, and the second line is the normal response sequence transmitted by RECEIV. The checksum is the sum of all the transmitted characters, mod 4096. If the checksum matches, the normal response sequence is sent. If the checksum does not match, a retransmission is signalled by the retransmit sequence, listed on the third line. The communication initailization sequence is given once for every file transfered. [checksum] [filename length] [record length] [file name] [checksum] [transmission length] A record length of zero is given for a varible record length file. Individual lines of the file can now be transmitted. However, there is a limit to the number of characters that can be transmitted consecutively without loss. The loss arises from an overflow of the AST character queue maintained by the executive on the remote computer. Therefore CADNET will only transmit 40 characters of data in any sequence. A line longer than 40 characters must be split into two or more segments, and transmitted in as many sequences. The format of a data line representing a logical record of length 0 is: [checksum] [checksum] [transmission length] [logical record length] The format of a data line not holding the end of the logical record is: [checksum] [data subsequences] [checksum] [transmission length] The format of a data line holding the end of the logical record is: [checksum] [data subsequences] [checksum] [transmission length] [logical record length] An end-of-file: [checksum] [checksum] In each case, the CR is stripped off by RSX. Since files often have control characters, which cannot be transmitted directly, CADNET has three subsequence to transmit them. Since they are contained within sequences RECEIV will not reply, but when computing the line length for a reply each subsequence will be counted as a single character. Subsequences can be split between consecutive sequences which transmit part of the same line. Control character subsequence (ASCII code 0 to 40(8)). ENQ Negative characters from 200(8) to 240(8) BS Negative characters from 240(8) to 377(8) BEL xmt <-- --> rcv send init line, checksum response send data line, checksum response send data line, checksum response send data line, checksum garbled: nack error msg, resend timeout: nack eof response ??? exit are all timeouts covered???