Jump to content

Peripheral Interchange Program

From Alfawiki
Peripheral Interchange Program (PIP)
Company typeSoftware utility
IndustryComputer software
Founded1960s
FounderHarrison "Dit" Morse
ProductsFile transfer utility

Peripheral Interchange Program (PIP) served as a file transfer utility designed for Digital Equipment Corporation (DEC) systems. Originally created in the early 1960s by Harrison "Dit" Morse for the PDP-6, it was subsequently modified to operate on DEC’s operating systems across PDP-10, PDP-11, and PDP-8 platforms. During the 1970s and 1980s, Digital Research incorporated PIP into their CP/M and MP/M environments.

History

Initially known as ATLATL ("Anything, Lord, to Anything, Lord"), PIP was developed as a device-agnostic file copying utility, designed to resolve issues related to secure file transfers between various devices.

The original command syntax utilized a left-arrow symbol from the 1963 ASCII character set:

PIP destination←source /switches

With changes in ASCII and the disappearance of the left-arrow character from terminal keyboards, an alternative syntax was introduced:

PIP destination=source

Additionally, the underscore (_) was accepted as a delimiter. The source and target files were specified by device type (such as DK for disk or LP for printer), unit number (ranging from 0 to 7), followed by a colon, filename, and extension. File copying could only be performed between compatible device types.

Early versions of VAX/VMS implemented commands like DIRECTORY and RENAME by internally calling RSX-11M PIP in compatibility mode. This methodology was replaced with native VAX-specific implementations starting with VAX/VMS 2.0, although PIP remained included within the VAX-11 RSX layered software package.

Throughout the mid-1980s, PIP continued to be extensively utilized on platforms including TOPS-10, TOPS-20, and PDP-11.

PIP in CP/M and MP/M

Gary Kildall, the creator of CP/M and MP/M, drew heavily on Digital Equipment’s operating systems such as RSTS/E for the PDP-11 when designing their file systems and command interpreters. In CP/M, the PIP command enabled file transfers not only between floppy disks but also with various "special files," including:

  • — system console (input/output)
  • — auxiliary device (which replaced earlier and devices in CP/M versions 1 and 2)
  • — output device for listings, usually the printer
  • — similar to , but enhanced with numbered lines, tab expansions, and form feeds every 60 lines
  • — null device analogous to \Device\Null or /dev/null
  • — input device that generates end-of-file characters (ASCII )
  • — configurable input device defaulting to
  • — punch card reader
  • — configurable output device defaulting to

These special files were not full-fledged device files; their functionality was limited exclusively to PIP operations. The customizable devices and were implemented through fixed memory addresses at PIP’s start-up, enabling OEMs or users to modify these locations to support additional input/output hardware. The program allocated 246 bytes specifically for such customization.

PIP accepted both the syntax PIP destination=source and the older undocumented form PIP destination_source. Due to CP/M’s lack of strict filename character rules, filenames containing underscores occasionally caused parsing difficulties with PIP.

Reserved filenames in Microsoft Windows

The heritage of PIP is reflected in Microsoft Windows’ reserved filenames, which include CON, PRN, AUX, NUL, COM0 through COM9, and LPT0 through LPT9. These names are reserved without regard to case sensitivity and apply even when used as base filenames, rendering names like Con.txt invalid.

References