Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Peripheral Interchange Program
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|File transfer utility}} {{More citations needed|date=July 2009}} {{Infobox software | name = Peripheral Interchange Program (PIP) | logo = | screenshot = | screenshot size = | caption = | author = [[Digital Equipment Corporation]] / Harrison "Dit" Morse | developer = [[Digital Research]] / [[Gary Kildall]], [[Heath Company]] | released = {{Start date and age|1960s}} | latest release version = | latest release date = | operating system = [[DEC BATCH-11/DOS-11|BATCH-11/DOS-11]], [[RT-11]], [[RSTS/E]], [[RSX-11]], [[OS/8]], [[TOPS-10]], [[TOPS-20]], [[CP/M]], [[MP/M]], [[DOS Plus]], [[HDOS]], [[OpenVMS|VMS]] | genre = [[Command (computing)|Command]] | license = | website = }} '''Peripheral Interchange Program''' ('''PIP''') was a utility to transfer files on and between devices on [[Digital Equipment Corporation]]'s computers. It was first implemented on the [[PDP-6]] architecture by Harrison "Dit" Morse early in the 1960s. It was subsequently implemented for DEC's operating systems for [[PDP-10]], [[PDP-11]], and [[PDP-8]]<ref>[https://www.grc.com/pdp-8/docs/OS8_System_Reference_Manual.pdf OS/8], ''OS/8 System Reference Manual''</ref> architectures. In the 1970s and 1980s [[Digital Research]] implemented PIP on [[CP/M]]<ref>[http://www.tramm.li/i8080/cpm22-m.pdf CP/M], ''CP/M Operating System Manual''</ref> and [[MP/M]].<ref>[http://www.cpm.z80.de/manuals/mpm2ug.pdf MP/M], ''MP/M Operating System User's Guide''</ref> ==History== It is said that during development it was named ATLATL, which is an acronym for "Anything, Lord to Anything, Lord."<ref>[http://www.jargon.net/jargonfile/p/PIP.html PIP], ''The [[Jargon File]]''</ref> This humorously described both its purpose as a device-independent [[file copying]] tool and the difficulties at the time of safely copying files between devices. The original PIP syntax was PIP destinationโsource /switches using the left-arrow character from the [[ASCII]]-1963 character set that the [[Friden Flexowriter|Flexowriter]] keyboards of the time used. As other terminals were introduced that used later versions of ASCII (without the left-arrow character), PIP allowed the syntax PIP destination=source The [[underscore]] ([[Underscore|_]]) character, which was in the same ASCII character position that left-arrow had occupied, was still supported to separate the destination and source specifications. Source and destination were ''file specification'' strings. These consisted of a device name, typically 2 characters for device type such as DK (disk), LP (line printer), MT (magnetic tape), etc. and a unit number from 0 to 7, a colon (:), filename and extension. Copying was generally permitted between any file specification to any other where it made sense. Early versions of [[VAX/VMS]] implemented certain [[DIGITAL Command Language|DCL]] commands, such as [[Directory (OpenVMS command)|DIRECTORY]] and [[ren (command)|RENAME]], by running [[RSX-11M]] PIP in compatibility mode. This usage of PIP was replaced by VAX-specific code in VAX/VMS 2.0,<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/2.0/AA-D015C-TE_VAX_VMS_2.0_Release_Notes_198003.pdf|title=VAX/VMS Release Notes Version 2.0}}</ref> but PIP remained as part of the VAX-11 RSX layered product for VMS.<ref>{{cite web|url= https://manx-docs.org/collections/antonio/dec/aedl72cte.pdf|title=VAX-11 RSX Software Product Description}}</ref> As late as the mid-1980s, PIP was still in common use on [[TOPS-10]], [[TOPS-20]] and [[PDP-11]] systems. ==PIP in CP/M and MP/M== [[File:CPM-86.png|thumb|<code>PIP.CMD</code> in [[CP/M-86]]]] [[File:Digital Research DOS Plus Version 1.2 720x400.png|thumb|Example using the <code>PIP</code> command in [[DOS Plus]] to create a text file from {{tt|CON:}} console input]] [[Gary Kildall]], who developed [[CP/M]] and [[MP/M]], based much of the design of its file structure and command processor on operating systems from Digital Equipment, such as [[RSTS/E]] for the PDP-11. Besides accessing files on a [[floppy disk]], the PIP command in CP/M could also transfer data to and from the following "special files": *{{tt|CON:}} โ [[System console|console]] (input and output) *{{tt|AUX:}} โ an auxiliary device. In CP/M 1 and 2, PIP used {{tt|PUN:}} (paper tape punch) and {{tt|RDR:}} (paper tape reader) instead of {{tt|AUX:}} *{{tt|LST:}} โ list output device, usually the [[computer printer|printer]] *{{tt|PRN:}} โ as {{tt|LST:}}, but lines were numbered, tabs expanded and form feeds added every 60 lines *{{tt|[[Null device|NUL:]]}} โ null device, akin to [[Null device|\Device\Null]] and [[Null device|/dev/null]] *{{tt|EOF:}} โ input device that produced [[end-of-file]] characters, [[ASCII]] {{tt|0x1A}} *{{tt|INP:}} โ custom input device, by default the same as {{tt|EOF:}} *{{tt|PUN:}} โ punch card unit: *{{tt|OUT:}} โ custom output device, by default the same as {{tt|NUL:}} These were not true [[device file]]s, however, because their handling was limited to PIP. The two custom devices {{tt|INP:}} and {{tt|OUT:}} were implemented as calls to fixed locations at the start of the PIP program; the intention was that the user, or the [[Original Equipment Manufacturer|OEM]], could [[Software patch|patch]] these locations to add their own input or output devices. 246 bytes of free space were left in the program for this purpose. In addition to the usual <code>PIP destination=source</code> syntax, PIP under CP/M still allowed the old <code>PIP destination_source</code> form. This behaviour was not documented, and CP/M generally did not have a standard for which characters could appear in file names; therefore other programs could and did create filenames containing underscore characters, which PIP could not handle. ==Reserved filenames in Microsoft Windows== The PIP program is the reason for [https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions reserved filenames] in Microsoft Windows: <code>CON</code> <code>PRN</code> <code>AUX</code> <code>NUL</code> <code>COM0</code> <code>COM1</code> <code>COM2</code> <code>COM3</code> <code>COM4</code> <code>COM5</code> <code>COM6</code> <code>COM7</code> <code>COM8</code> <code>COM9</code> <code>LPT0</code> <code>LPT1</code> <code>LPT2</code> <code>LPT3</code> <code>LPT4</code> <code>LPT5</code> <code>LPT6</code> <code>LPT7</code> <code>LPT8</code> <code>LPT9</code>. This limitation is case-insensitive, and also applies to basenames. So for example, <code>Con.txt</code> is an invalid filename. ==See also== *[[copy (command)]] โ RT-11, RSX-11, OpenVMS, AmigaOS, DOS, OS/2 and Microsoft Windows command for copying data *[[cp (Unix)]] โ Unix command for copying data *[[Kermit (protocol)]] ==References== {{Reflist}} {{Digital Research}} [[Category:CP/M software]] [[Category:File copy utilities]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Digital Research
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:More citations needed
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Tt
(
edit
)