C1 (protocol)
   HOME

TheInfoList



OR:

Punter is a
protocol for file transfer This article lists communication protocols that are designed for file transfer over a telecommunications network. Protocols for shared file systems—such as 9P and the Network File System—are beyond the scope of this article, as are file s ...
developed in the 1980s by Steve Punter. There are various types of Punter such as PET Transfer Protocol (''PTP''), ''C1'' and ''C2''.


PET Transfer Protocol

The PET Transfer Protocol (''PTP''), also known as ''Punter'' or ''Old Punter'', was developed by Steve Punter for use with his PETBBS and BBS64
bulletin board system A bulletin board system (BBS), also called computer bulletin board service (CBBS), is a computer server running software that allows users to connect to the system using a terminal program. Once logged in, the user can perform functions such as ...
(BBS) software. The "PET" in the name comes from the
Commodore PET The Commodore PET is a line of personal computers produced starting in 1977 by Commodore International. A single all-in-one case combines a MOS Technology 6502 microprocessor, Commodore BASIC in read-only memory, keyboard, monochrome monitor, an ...
computer. Compared to other contemporary protocols, ''PTP'' is slower than
YMODEM YMODEM is a file transfer protocol used between microcomputers connected together using modems. It was primarily used to transfer files to and from bulletin board systems. YMODEM was developed by Chuck Forsberg as an expansion of XMODEM and was f ...
and
ZMODEM ZMODEM is an inline file transfer protocol developed by Chuck Forsberg in 1986, in a project funded by Telenet in order to improve file transfers on their X.25 network. In addition to dramatically improved performance compared to older protocols, ...
but faster and more reliable than XMODEM. The earliest version of Punter supports only 7-
bit The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represente ...
transfers and uses a back-correction algorithm involving two
checksum A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data ...
s for failsafes. One of the two checksums is additive, and the other is Boolean in nature (executing EOR instructions), making for an easy to understand algorithm for other programmers to understand and emulate. Having two checksums both of them being 16 bits wide makes it significantly more accurate than the single-byte checksum used by XMODEM, its major competitor in the early 1980s. Regardless of the potential for errors to creep in, in comparison to the
YMODEM YMODEM is a file transfer protocol used between microcomputers connected together using modems. It was primarily used to transfer files to and from bulletin board systems. YMODEM was developed by Chuck Forsberg as an expansion of XMODEM and was f ...
protocol of the late 1980s, which is arguably superior, it has been widely used on Commodore PET and
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in the Guinness ...
based bulletin boards.


Terminal output

Not all of the transmission is visible to the user. The most noticeable part of the transmission is the report of status codes like ACK, GOO, BAD, and SYN for handshaking results. A typical transmission might look like "ACKGOOGOOGOOGOOBADGOOGOOGOOBADGOO," with bad blocks reported to the user just as frequently as they occurred. This allows users to record the error rate according to hour and day of the week, and determine which hours of the day and which days of the week had cleaner phone lines. Unlike modern computers, the C64 and C128 can poll the User Port (where the
modem A modulator-demodulator or modem is a computer hardware device that converts data from a digital format into a format suitable for an analog transmission medium such as telephone or radio. A modem transmits data by Modulation#Digital modulati ...
is interfaced) at slightly different baud rates and connection speeds. For instance, a transmission at 1200 baud on Sunday evening might actually produce fewer errors than 2400 baud on Tuesday afternoon. By choosing slower baud rates, files can actually be transmitted faster, since there are fewer resends.


C1

In 1984, Steve Punter released a successor to ''PTP'' called ''C1'', or ''New Punter''. ''C1'' was the standard protocol for use on Commodore
BBS BBS may refer to: Ammunition * BBs, BB gun metal bullets * BBs, airsoft gun plastic pellets Computing and gaming * Bulletin board system, a computer server users dial into via dial-up or telnet; precursor to the Internet * BIOS Boot Specificat ...
es, and was rarely supported by
terminal Terminal may refer to: Computing Hardware * Terminal (electronics), a device for joining electrical circuits together * Terminal (telecommunication), a device communicating over a line * Computer terminal, a set of primary input and output dev ...
or BBS software for other
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s. The ''C1'' specification was rife with inaccuracies and ambiguities, making it difficult to implement from scratch. Nevertheless, the protocol came into widespread use because Punter released the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
for the original implementation into the
public domain The public domain (PD) consists of all the creative work A creative work is a manifestation of creative effort including fine artwork (sculpture, paintings, drawing, sketching, performance art), dance, writing (literature), filmmaking, ...
. ''C1'' could transmit block sizes up to 255
byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
s with a recommended (but not enforced) minimum of 40 bytes and an overhead of 7 bytes per block. It is optimized for transferring files stored by 8-bit
Commodore Commodore may refer to: Ranks * Commodore (rank), a naval rank ** Commodore (Royal Navy), in the United Kingdom ** Commodore (United States) ** Commodore (Canada) ** Commodore (Finland) ** Commodore (Germany) or ''Kommodore'' * Air commodore ...
computers, whose
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicat ...
treats executable and sequential files identically.


Multi-Punter

The term Multi-Punter can refer to any one of three or four mutually incompatible third-party variants of ''C1'' which permit batch-file transfers, as opposed to ''C1'', which was designed for single-file transfers. One such variant, ''C2'', also known simply as Punter, was developed by Punter. As with ''C1'', it is optimized for transferring files stored by 8-bit Commodore computers. Another variant was developed {{circa, 1987 by Alan Peters.


External links


Steve Punter's original C1 specificationC1 specification with interpretive annotationsPunter program for IBM PC systems
* ews:4528.274478BD@zswamp.fidonet.org Notes on implementing C1 and Peters' Multi-Punterbr>Thread discussing the details of the protocolModern description/analysis of the Punter protocol
BBS file transfer protocols Commodore 64