Este artigo não cita fontes confiáveis. (Dezembro de 2013) |
Peripheral Interchange Program, ou PIP, é um aplicativo utilizado para transferir arquivos nos computadores da Digital Equipment Corporation. Ele foi implementado pela primeira vez no computador PDP-6 por volta da década de 60. Foi implementado em seguida nos computadores DEC-10 e PDP-11.
História
O PIP foi desenvolvido originalmente com o nome ATLATL, um acrônimo para Anything, Lord, to Anything, Lord ("qualquer coisa, Senhor, para qualquer coisa, Senhor"). A intenção era deixar claro que se tratava de uma ferramenta independente de dispositivo.
No início, a sintaxe do comando para uso do PIP era:
PIP destino=origem
Após algum uso, alterou-se a ordem dos parâmetros e o nome do comando para COPY:
COPY origem destino
O comando COPY era um dos inúmeros programas utilitários que residiam nos computadores PDP e DEC. Na metade dos anos 70 o PIP já era muito utilizado, junto com os seus descendentes.
O PIP no CP/M
O conceito do PIP foi adicionado ao CP/M, por Gary Kildall, após o seu desenvolvimento inicial. Além de permitir o acesso de arquivos em um disquete, o PIP permitia a transferência de dados de e para estruturas chamadas de "arquivos especiais":
- CON: — console de computador (entrada/saída).
- AUX: — um dispositivo auxiliar. No CP/M 1 e 2, o PIP utiliza o PUN (paper tape punch) e RDR (paper tape reader) ao invés do AUX.
- LST: — um dispositivo de saída em lista, usualmente uma impressora.
- PRN: — como o LST, com adição de linhas numeradas, tabs expandidos, e form feeds adicionados a cada 60 linhas.
- NUL: — dispositivo nulo, de forma análoga ao /dev/zero para entrada, e ao /dev/null para saída.
- EOF: — dispositivo de entrada que produz caracteres de EOF; o código 0x1A da tabela ASCII.
- INP: — dispositivo de entrada a definir, por padrão o mesmo que o EOF.
- OUT: — dispositivo de saída a definir, por padrão o mesmo que NUL.
Porém, não existem arquivos de dispositivos verdadeiros, pois a sua manipulação é limitada no PIP. Os dois "dispositivos a definir" são implementados através de chamadas a locais fixos no início do programa PIP; o objetivo é permitir ao usuário ou ao fabricante do equipamento, a possibilidade de implementar o seu próprio dispositivo de entrada/saída. O programa contém 246 bytes de espaço livre destinado a esse propósito.
Em adição à sintaxe usual PIP destino=origem, o PIP sob o CP/M também permitia a sintaxe PIP destino_origem. O código fonte do PIP descreve o caractere '_' como "flecha para esquerda", como na versão de 1963 da tabela ASCII; em terminais utilizando esta variante do ASCII, o comando apareceria como PIP destino←origem. Este comportamento não era documentado, e o manual do usuário não inclui '_' na lista de caracteres não permitidos em nomes de arquivo; por esta razão outros programas podiam e criavam arquivos que o PIP não podia manipular.