quinta-feira, novembro 05, 2020

Memórias dos Anos 80: O Nexus 1600, parte 2 (Hardware)

Continuando de onde paramos no post anterior, o projeto do Nexus 1600 fugiu um pouco da estrutura tradicional da Scopus, com uma interferência menor do "Comitê de Tecnologia" e uma autonomia maior do líder do projeto. Neste post vou falar um pouco sobre os acertos e erros (na minha visão) no projeto do hardware.


A linha básica do projeto era ser algo compatível com o PC IBM, mas melhor. No início do projeto tivemos algumas reuniões com o marketing, e a principal recomendação deles foi acrescentar o suporte aos disquetes de 8", pois nenhuma empresa aceitaria os disquetes "de brinquedo" de 5 1/4".

Os projetistas eram, em retrospecto, bem inexperientes. Os principais projetistas da parte digital foram um colega de turma (meu companheiro no projeto de formatura) e um de uma turma anterior. A placa de vídeo foi projetada por um engenheiro formado na turma seguinte à minha (portanto recém formado). As ferramentas disponíveis eram precárias (por exemplo, os osciloscópios disponíveis eram de 25MHz).

Na placa de sistema, a principal decisão foi suportar a operação a 8MHz, além dos 4.77MHz do PC original. Potencialmente isto seria uma grande vantagem sobre os concorrentes, mas a implementação disso foi através de jumpers na placa. Ou seja, para mudar a velocidade era preciso desligar o micro e retirar a tampa. Some a isso que muitos softwares eram sensíveis à velocidade e dá para começar a entender a fama de "incompatível" que os concorrentes iriam colar ao Nexus.

Uma decisão certeira, antecipando ao PC XT, foi o uso de chips de 64 Kbits de Ram, permitindo a expansão para 256K na placa mãe.

Uma decisão esdrúxula (em retrospecto) foi usar uma USART 8251 para a interface com o teclado. Embora isso fosse mais eficiente que o "bit banging" feito pelo PC IBM, isso foi mais uma fonte de incompatibilidade para softwares que interagiam diretamente com o teclado, como alguns sistemas operacionais. A situação não era totalmente grave, pois a solução adotada era compatível com aplicativos que assumiam a interrupção de teclado e liam as teclas diretamente do hardware. Mas operações como comandar o teclado eram feitas de forma diferente.

O teclado, aliás, era muito bom. Feito com as mesmas teclas indutivas que o TVA-1000 e o micro Scopus original, tinha pequenos aperfeiçoamentos no layout.

A interface de disquete tinha duas diferenças notáveis em relação à do PC-IBM. A primeira era seguir na parte analógica o circuito e layout da interface de disquete do micro Scopus (devido aos traumas com ela). A segunda era a presença de um conector imenso na parte traseira, para permitir conectar um gabinete com os disquetes de 8" (acho que este gabinete nunca chegou a ser produzido, todo mundo ficou contente com os disquetes "de brinquedo").

Uma questão de honra na placa de vídeo era ser capaz de conciliar os acessos à memória feitos pelo processador com os feitos pelo hardware de vídeo. Isto se mostrou bem complicado e o circuito ocupou duas placas ao invés de uma. O resultado foi muito bom, desde que o software tirasse proveito disso (como a BIOS do Nexus fazia).

Uma outra antecipação ao XT foi incluir uma interface de disco rígido. Entretanto, o HD era montado em um gabinete externo.

Um protótipo foi montado usando a técnica de wire-wrap (como no meu projeto de formatura). Algo bem impressionante, dada a quantidade de chips e ligações. Uma certa quantidade de softwares (incluindo alguns jogos) foram comprados para teste de compatibilidade. Este protótipo ficava numa sala no último andar do prédio e várias vezes eu ia lá no final do dia confirmar a compatibilidade dos jogos...

Com o protótipo funcionando, o passo seguinte era a placa de circuito impresso. Trabalho feito à mão por um "layoutista".

Quando as placas chegaram, é claro que não funcionaram. Nada de estranho até aí, já era costuma um trabalho paciente de conferir a placa com o protótipo atrás de pequenos erros. O problema é que a placa insistia em não funcionar.

O lançamento do Nexus (o projeto que ia salvar a Scopus!) ia ser feito em uma feira. A data ia se aproximando, a placa não funcionava e o pânico foi se instalando. Foram feitas algumas tentativas muito loucas de montar uma mistura da placa com o protótipo para tentar identificar onde esta problema, e nada. A Scopus tinha um emulador (ICE) do 8088, quando fomos tentar usar ele acabamos fazendo uma ligação ao contrário e pifamos o ICE...

Finalmente um engenheiro mais experiente (que não participava do projeto) fez o diagnóstico e achou uma solução. O problema era de ruído nos sinais. A velocidade "estonteante" de 4.77MHz era demais para a placa dupla face com layout feito a mão. A solução para a feira foi extremamente artesanal. Um pino foi soldado em cada pino de terra dos CIs e uma placa de cobre com a furação da placa mãe foi soldada por baixo, fazendo um "plano terra". Um monte de capacitores adicionais forma colocados em pontos estratégicos. Resistores foram soldados nos conectores de expansão para reduzir a reflexão de sinais. Acho que pelo menos uma dúzia de micros foram montados desta forma.

A solução para a produção original não era muito melhor. A principal diferença é que o plano terra era um PCI fina colocada por cima da placa normal (eliminando a necessidade de soldar os pinos). Os resistores para a via de expansão foram montados em um placa espetada no último slot. Micros destes chegaram a ser entregues para clientes.

A solução mais definitiva foi contratar um serviço de CAD (algo extremamente caro na época) para reprojetar a placa. Esta nova placa funcionava perfeitamente, mas esqueceram de avisar os requisitos mecânicos. O resultado é que, se colocada no lugar da placa original, os slots ficavam defasados em relação à carcaça. No meu trabalho seguinte tinha um micro da produção original. Quando ele pifou o técnico precisou pegar uma furadeira e fazer novos furos de fixação para colocar a placa nova.

Um comentário:

Anônimo disse...

Muito bom. Suas crônicas são de longe o melhor evento das minhas quintas-feiras. Abração.