Peripheral Interchange Program

From Wikipedia, the free encyclopedia

Peripheral Interchange Program (PIP) was an utility to transfer data files on Digital Equipment Corporation's computers. It was first implemented on the PDP-6 sometime in the 1960's. It was subsequently implemented on both the DEC-10 and PDP-11.

[edit] History

PIP was originally named ATLATL, which was an acronym for "Anything Lord to Anything Lord." This described its purpose as a device independent file copying tool.

After some use, it was finally realized that the hand-crafted syntax:

PIP destination=source

actually was inverted from common English usage. Thus the command:

COPY source destination 

syntax was born, one of the dozens of utilities that resided on the PDP and DEC machines. As late as the mid 1970s, PIP was in common use, alongside its descendant.

[edit] PIP in CP/M

After Gary Kildall started CP/M, he took the PIP and file concepts as well. Besides accessing files on a floppy disk, PIP in CP/M could also transfer data to and from the following "special files":

  • CON:console (input and output)
  • AUX: — an auxiliary device. In CP/M 1 and 2, PIP used PUN: (paper tape punch) and RDR: (paper tape reader) instead of AUX:.
  • LST: — list output device, usually the printer
  • PRN: — as LST:, but lines were numbered, tabs expanded and form feeds added every 60 lines.
  • NUL: — null device, working akin to /dev/zero for input and /dev/null for output
  • EOF: — input device that produces end-of-file characters, ASCII 0x1A
  • INP: — custom input device, by default the same as EOF:.
  • OUT: — custom output device, by default the same as NUL:.

These are not true device files however, because their handling is limited to PIP. The two custom devices were implemented by calls to fixed locations at the start of the PIP program; the intention was that the user, or the OEM, could patch these locations to add their own input or output device. 246 bytes of free space were left in the program for this purpose.

In addition to the usual PIP destination=source syntax, PIP under CP/M also allowed PIP destination_source. The source code for PIP describes the '_' character as "left arrow", as in ASCII-1963; on terminals using this variant of ASCII, the command would have appeared as PIP destination←source. This behaviour was not documented, and the user manual did not include '_' in the list of characters not allowed in filenames; therefore other programs could and did create filenames containing underscore characters, which PIP could not then handle.

[edit] See also

In other languages