Jump to content

PIP.COM

From Alfawiki
Adapted from the English Wikipedia article PIP.COM, available under CC BY-SA 4.0Updated 9 August 2025
Peripheral Interchange Program (PIP)
Company typeSoftware utility
IndustryComputer software
FoundedEarly 1960s
FounderHarrison "Dit" Morse
ProductsFile transfer tool

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

History

Initially called ATLATL ("Anything, Lord, to Anything, Lord"), PIP was engineered to provide device-independent file copying capabilities. Its command syntax transitioned from

PIP destination←source /switches

using the left-arrow symbol from the 1963 ASCII set found on Flexowriter keyboards, to

PIP destination=source

to support newer terminal devices that lacked the left-arrow character. Additionally, an underscore (_) was sometimes employed as a delimiter between destination and source.

File specifications comprised device codes (such as DK for disk, LP for line printer, MT for magnetic tape), unit numbers ranging from 0 to 7, followed by a colon, filename, and extension. PIP enabled file copying between any compatible device and filename combinations.

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

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

PIP in CP/M and MP/M

Gary Kildall, creator of CP/M and MP/M, drew heavily on Digital Equipment systems like RSTS/E for the PDP-11 when designing their file structures and command processors. Within CP/M, the PIP command managed file transfers not only between floppy disks but also with several special device files:

  • — system console (for input/output)
  • — auxiliary device; earlier versions of CP/M used (paper tape punch) and (paper tape reader)
  • — output device for listing, typically a printer
  • — printer output with added features such as line numbering, tab expansion, and form feeds
  • — null device analogous to \Device\Null or /dev/null
  • — input that generates end-of-file characters (ASCII )
  • and — customizable input/output devices defaulting to and , respectively
  • — punch card reader unit

These special files were not fully-fledged device files; their support was confined exclusively to PIP operations. The customizable devices and were implemented through fixed entry points at PIP’s initialization, allowing OEMs or end-users to patch them for tailored I/O functionality. PIP allocated 246 bytes specifically for these modifications.

Both PIP destination=source and the older undocumented PIP destination_source command forms were supported by PIP. However, CP/M did not enforce strict filename character rules, which led to issues when filenames contained underscores that conflicted with PIP’s parsing logic.

Reserved filenames in Microsoft Windows

The design of the PIP utility influenced Microsoft Windows’ list of reserved filenames, including CON, PRN, AUX, NUL, as well as COM0–COM9 and LPT0–LPT9. This case-insensitive restriction applies universally to all file basenames—for instance, Con.txt is disallowed—reflecting legacy device naming conventions inherited from PIP’s original architecture.

References