quinta-feira, setembro 17, 2020

Memórias dos Anos 80: Estágio na Scopus Tecnologia - parte III, o MicroScopus

Baseada no microprocessador 8080, a linha de terminais TVA1000 estava a um passo de ser um microcomputador. Este passo foi dado em 1980 com o lançamento do MicroScopus, um micro de 8 bits com sistema CP/M-80.


O uC20 à esquerda e o uC200 à direita



Olhando para trás, agora é claro que este projeto ilustra o conflito entre o prático e o filosófico e as limitações da equipe de desenvolvimento da Scopus.

O Hardware

O que faltava para um TVA1000 virar um micro? Era preciso aumentar a memória Ram para 64K (usando 32 chips de 16Kx1), acrescentar um recurso de chaveamento de memória para permitir colocar e tirar a EPROM do mapa da memória, e ligar uma interface de disquete.

A Scopus já tinha uma interface de disquete pronta, graças a um projeto feito para a Buroughs/Unisys: o DE-1500. O DE-1500 era um terminal de entrada de dados (data entry), composto de um terminal TVA1000 acrescido de uma ou duas unidades de disquete 8 polegadas. Infelizmente tive pouco contato com ele e não sei detalhes sobre o software, mas sei que incluía algum rudimento de sistema operacional e uma linguagem para definição das telas de entrada de dados.

O MicroScopus (uC10) original padecia de algumas limitações de desempenho. A primeira era a própria CPU, um 8080 rodando alguma coisa acima de 3MHz. Os concorrentes usavam um Z80 rodando a pelo menos 4MHz. Por motivos que nunca me foram claros, a Scopus utilizava somente processadores Intel. O resultado foi uma nova versão usando o 8085 a 5MHz, o uC20 com as unidades de disquete no "carrinho de chá".

Tinha somente um destes modelos com 8085 no laboratório e um fato me chamou a atenção: uma série de fios de wire-wrap percorrendo a placa de ponta a ponta. Comentando com um dos meus amigos do departamento de hardware, ele disse que era a via de dados do processador. As trilhas na placa sofriam interferência demais do resto do circuito, impedindo o funcionamento confiável. Todos os MicroScopus com 8085 estavam sendo produzidos com estes fios soldados.

O outro problema era a capacidade dos disquetes. Trabalhando com face simples e densidade simples, ela era limitada a 250Kbytes. Como falei anos atrás, a Scopus teve dificuldade em fazer uma interface densidade dupla confiável. A solução foi copiar o layout da placa do projeto de referência do fabricante (detalhes no link).

(Estes problemas de layout e ruído se manifestariam de forma mais forte na hora do projeto do Nexus 1600, o micro de 16 bits, mas vou falar sobre isso bem mais para frente).

Um último comentário sobre o hardware diz respeito ao teclado e ao vídeo. Esta parte foi influenciada pelo contato com um terminal de vídeo da HP, particularmente o uso de teclas de função. As últimas linhas da tela eram normalmente usadas para indicar as funções destas tecla e caracteres semi-gráficos e vídeo reverso eram usados para montar formulários nas telas.

Anos mais tarde seria lançado o uC200, inspirado na nova linha de terminais TVA2000 e com a (tardia) opção de disquetes de 5 1/4". Pessoalmente nunca gostei muito do visual dele, a foto no começo não dá uma ideia real do tamanho dele.

O Software

O software era um calcanhar de Aquiles na política de reserva de mercado. A regra era a pirataria, variando apenas o nível da cara de pau. Aqui a Scopus fez algo impressionante: licenciou o CP/M-80 e várias linguagens da Microsoft, com direito aos fontes. Até onde sei, foi a única fazer isso. (Quem estiver curioso sobre estes fontes, uma boa parte deles está hoje em dia na internet).

O núcleo do CP-M/80 era escrito em Assembler e os utilitários em PL/M-80 (uma linguagem criada pela Intel).  Apesar de ter os fontes, existiam alguns empecilhos técnicos em compilá-los e, cedendo à pressão para o lançamento rápido, a Scopus simplesmente editou os executáveis para traduzir as mensagens.

A Scopus trabalhou durante muito tempo no projeto de um sistema operacional de rede para o MicroScopus (o Multiplus), mas acho que isso só foi disponibilizado para um cliente.

Um colega talentoso, por pura farra, passou os fontes do CP-M/80 por um tradutor de Assembly de 8080 para 8086 (que foi a estratégia usada por muitos softwares conhecidos, como o WordStar e DBase) e conseguiu rodar parcialmente em um equipamento da Scopus com processador 8086.

Os fontes das linguagens foram bem mais usados. Uma coisa que me surpreendeu quando eu vi um primeiro micro com CP-M/80 foi o COBOL-80, um compilador de COBOL distribuído pela Microsoft (digo distribuído porque os fontes revelavam que tinha sido feito por outra empresa). A Scopus tinha vários clientes que usavam isso e logo descobriram que ele tinha vários bugs... Pelo que me contaram o compilador não estava escritos diretamente em Assembly. Os recursos de macros e compilação condicional eram usados e abusados para criar uma linguagem própria (isso era bem comum na época, a própria Scopus tinha uma linguagem para implementar protocolos de comunicação). Os fontes do BASIC seriam usados para fazer um interpretador BASIC para o Nexus, o micro de 16 bits. 

Durante parte do meu estágio eu estudei o fonte do utilitário PIP, que era o equivalente ao COPY do MSDOS (mas com uma sintaxe terrível). Do alto da minha arrogância juvenil estava certo que conseguiria fazer algo muito mais eficiente (escrevendo em Assembly, é claro). Mas esse projeto não foi em frente.

O principal projeto do meu estágio foi um utilitário (cujo nome não lembro) para o MicroScopus, mas isso será assunto do próximo post.



Nenhum comentário: