The
PET Transfer Protocol (
PTP), also known as
Punter or
Old Punter, was developed around 1980 by Steve Punter for use with his
PETBBS and
BBS64 bulletin board system (BBS) software. The "PET" in the name comes from the
Commodore PET computer. Compared to other contemporary protocols,
PTP is slower than
YMODEM and
ZMODEM but faster and more reliable than
XMODEM. The earliest version of Punter supports only 7-
bit transfers and uses a back-correction algorithm involving two
checksums 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 protocol of the late 1980s, which is arguably superior, it has been widely used on Commodore PET and
Commodore 64 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 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 ==