# Xerox Alto

O Xerox Alto foi um microcomputador (computador pessoal) pioneiro desenvolvido no setor de pesquisa Xerox PARC da empresa Xerox Corporation em 1973, foi o primeiro a utilizar a metáfora da "mesa de trabalho" (do inglês desktop) e, uma interface gráfica de usuário (GUI, na sigla em inglês), mouse de três botões, ligação com impressora e, uso de e-mail.
Embora seja citado como o primeiro computador pessoal, alguns sistemas anteriores, como o Datapoint 2200 também se encaixam no termo, porém o Alto nunca foi planejado para ser um produto de fabricação em massa. Mas foi o primeiro a ter uma interface gráfica.

## História

O Alto foi idealizado em 1972 num memorando escrito por Butler Lampson, e projetado principalmente por Chuck Thacker. De maior influência foi o sistema educacional PLATO desenvolvido no Education Research Laboratory na Universidade de Illinois. Sendo apenas demonstrado para a diretoria da companhia Xerox, que decidiu manter a estratégia, focada em impressão e sem comercialização. Apenas foi instalado no escritórios da própria companhia e no governo americano e do exército.
Ele tinha 128 KiB (expansíveis até 512 KiB) de memória principal e um cartucho removível com capacidade de 2,5 MiB, tudo isso incluído em um gabinete do tamanho de um pequeno refrigerador. A UCP do Alto era um processador inovador que usava microcódigo para a maioria das funções de E/S em vez de usar hardware. O processador de microcódigo possuía 16 tarefas, uma das quais executava o conjunto de instruções normais (semelhante ao do Data General Nova), e as demais usadas para vídeo, atualização da memória, disco, rede, e outras funções de entrada e saída. Por exemplo, o controlador de vídeo em bitmap era um pouco mais do que um registrador de deslocamento de 16 bits; o microcódigo era usado para buscar os dados na memória principal e colocá-los no registrador de deslocamento.
Além de uma conexão Ethernet o único outro dispositivo comum de saída do Alto era um monitor de vídeo CRT comum (preto e branco), montado em modo vertical ("retrato"), diferentemente da orientação horizontal mais comum ("paisagem"). Seus dispositivos de entrada eram um teclado customizado, um mouse de três botões e um chorded keyset opcional de cinco teclas. Os dois últimos foram tomados de empréstimo ao SRI's On-Line System; o mouse tornou-se um sucesso instantâneo entre os usuários do Alto, o chorded keyset nunca se tornou popular.
O mouse tinha 3 botões. Os primeiros mouses eram mecânicos e usavam dois discos perpendiculares (logo substituídos pelos mouses de bolinha, inventados por Bill English) e os botões eram barras estreitas dispostos de cima para baixo em vez de lado a lado.
Cada tecla do teclado representava um bit em separado num conjunto de registradores. Esta característica era usada para mudar de onde o Alto deveria inicializar o sistema. Os registradores de teclado eram usados como endereço no disco de inicialização, e pressionando-se determinadas teclas ao pressionar o botão de boot, diferentes microcódigos e SOs podiam ser carregados. Isto deu origem à expressão "nose boot", ("inicializar com o nariz"), onde a quantidade de teclas necessárias para inicializar um sistema operacional de teste era maior do que os dedos disponíveis. Os "nose boots" tornaram-se obsoletos com o advento do programa "move2keys" ("mexa duas teclas"), que mudavam arquivos no disco para que uma sequência específica de teclas pudesse ser usada.
Vários outros dispositivos de E/S estavam disponíveis para o Alto, incluindo uma câmera de TV, uma impressora margarida Hy-Type e uma porta paralela, embora não fossem muito comuns. O Alto podia inclusive controlar discos externos e atuar como um servidor de arquivos. Esta era uma aplicação comum para a máquina.

## Software

Inicialmente os programas para o Alto foram escritos na linguagem de programação BCPL, e posteriormente na linguagem Mesa, que não foi muito utilizada fora do PARC, mas, mais tarde, influenciou várias outras linguagens, como por exemplo a Modula. O teclado do Alto não possuía o caractere "_", o qual era substituído pelo caractere de "seta para a esquerda" usado na linguagem como operador de atribuição. Esta característica do teclado do Alto pode ter sido a fonte do estilo CamelCase para identificadores compostos. Outra característica do Alto era seu modo programável ao nível de microcódigo pelo usuário.
O Alto ajudou a popularizar o uso de modelos de gráficos raster para todas as saídas, incluindo textos e gráficos. Ele também introduziu o conceito de transferência de blocos de bit, ou Bit blit, como a interface fundamental de programação de tela. A despeito de sua memória reduzida, um bom número de programas inovadores foram escritos para o Alto, incluindo o Bravo, primeiro processador de texto WYSIWYG ("What You See Is What You Get") e o Gypsy, editor de dados gráficos (bitmaps, placas de circuito impresso, CIs, etc), as primeiras versões de ambiente Smalltalk, e um dos primeiros jogos em rede multiplayer (o Alto Trek, de Gene Ball).