Depois da aula (aqui e aqui) que Mestre Jecel nos deu sobre 68000, ele agora conta as histórias dos projetos realizados por ele usando o venerando microprocessador da Motorola. Puxa uma cadeira e senta no chão.
Como eu havia prometido, vou fazer uma descrição dos oito projetos que fiz com processadores 680×0. Destes, apenas cinco foram construídos e normalmente eu nem menciono os dois primeiros, mas neste caso acho que eles ajudam a dar o contexto dos demais projetos.
O resumo do projeto 1: numa interface de disquetes para um computador Z80 (chamado Einstein, mas sem nenhuma relação com o micro inglês) eu vi que os drives em si eram tão caros (quase $1000 cada no Brasil em 1982) que seria possível colocar um 68000 e uns 256KB de memória na placa sem aumentar muito o preço do conjunto. Ai a versão K7 do micro seria razoavelmente barata e a versão de disquetes bem poderosa.
Voltando um pouco: em 1980 eu estava no primeiro ano do curso de engenharia na Poli. Naquela época não era dividido no vestibular – a lista alfabética de 600 alunos era dividida em 10 classes de 60. Infelizmente na classe dos Josés e Joãos não tinha ninguém além de mim interessado em computadores ou eletrônica como meus amigos do colegial (que aproveitamos muito o fato da escola ficar a poucos quarteirões da Sta. Efigênia). Meu pai trabalhava na Philco-Ford (mais tarde Ford Eletrônica e hoje Visteon) e tinha muito contato com fornecedores como a Motorola. Um dia o pessoal da Motorola estava jogando fora material antigo e perguntaram para meu pai se ele gostaria de ficar com este kit:
http://www.68bits.com/mek6800d2.html
Nós construímos a máquina e eu projetei uma fonte para ela (com um transformador super pesado) que construímos também. Até então eu só conhecia o processador 8080 de um curso da revista Nova Eletrônica e foi muito bom aprender algo diferente.
No fim do ano vi um cartaz anunciando um curso da linguagem Algol. Normalmente era pago, mas para quem quisesse concorrer a um estágio no CCE-USP (Centro de Computação Eletrônica) seria de graça. No fim do curso teria uma primeira prova de seleção, e os selecionados fariam um curso de SPSS (Statistical Package for the Social Sciences), um de Cobol e um de computação gráfica com um projeto no PDP-11. Ai uma segunda prova selecionaria 9 estagiários para a área de software e 1 para hardware desenvolvendo placas para um sistema “home brew” com o processador 6800 que ligava vários periféricos ao Burroughs B6700.
Claro que no dia da entrevista depois das provas eu levei o manual do meu MEK6800D2 para me distrair enquanto esperava minha vez de ser chamado 😉
Meu primeiro projeto como estagiário de hardware foi uma interface para enviar mensagens para o TV Typewriter (http://en.wikipedia.org/wiki/TV_Typewriter) ligado a uma televisão gigante. O segundo projeto foi uma interface para ligar leitores óticos de cartões (da Fujitsu importados do japão, mas com plaquinhas da Edisa num pacote separado para a gente substituir as originais). Apesar do que eles diziam para os vestibulandos de que era necessário preencher com cuidado os cartões de resposta “senão o computador não consegue ler”, na verdade o conteúdo dos cartões eram datilografados em terminais por operadoras (cada cartão por duas operadoras diferentes para evitar erros). O vestibular Fuvest de 1982 foi o primeiro onde realmente o computador leu os cartões.
Por mais divertido que fosse mexer com computadores grandes, não era a mesma coisa que ter o meu computador. O kit 6800 com seus 128 bytes de memória e interface hexadecimal era muito limitado. Eu e dois amigos que também faziam estágio no CCE, o Ruy Pinto Cesar Neto e o Mauro Múrcia, resolvemos construir nosso próprio computador baseado no Z80. A idéia era usar o TMS9918 para o vídeo e o TMS5220 (sintetizador de voz) para o áudio. Eu bolei um esquema de expansão com cartuchos, onde cada novo cartucho tinha um conector para o próximo de modo que a máquina em si só tinha um conector. A solução de chaveamento de bancos permitiria até 256KB e os cartuchos de memória seria auto configurados numa solução levemente parecida com a do Apple II.
Nós chegamos a construir o “miolo” da máquina. Eu tinha visto um artigo na revista Byte sobre a controladora de memória dinâmica do TRS-80 e era várias vezes mais complexa que minha solução. Gastei um mês tentando descobrir em que situações o TRS-80 funcionaria mas o meu circuito não. Não consegui achar, então construímos o circuito e funcionou perfeitamente. Mas a Texas Instruments não me enviava informações técnicas sobre o TMS9918 de modo que não dava para avançar nesta parte.
O micro básico usaria um gravador K7 para armazenar dados, mas nós sabíamos que no futuro iriamos querer expandir para ter uma ou duas unidades de disquetes. Junto com o kit 6800, eu tinha recebido da Motorola um monte de material sobre o 68000 (isso eles não estavam jogando fora). Por isso em 1981 eu já conhecia este processador tão bem quanto o 6800 ou o Z80 (fiz questão de esquecer a maioria do que eu sabia sobre o 8080). Tive a ideia de fazer o cartucho de interface para disquetes ser um computador completo que usaria o Einstein básico apenas como um terminal inteligente
Uma FIFO bidirecional ligaria os dois processadores, gerando interrupções quando estivesse cheia ou vazia. Recentemente descobri que o famoso “tube” do BBC Micro funciona exatamente assim. Eu sempre pensei que o processador acoplado poderia acessar a memória do micro (como o Softcard Z80 da Microsoft para o Apple II, por exemplo) mas pelo visto eles chegaram à mesma conclusão que eu. É mais fácil ter dois computadores independentes, cada um encarando o outro como periférico, do que um multiprocessador de verdade.
Em maio de 1982 o Ruy saiu do CCE para projetar o primeiro clone de PC no Brasil para a Softec. Eu sai no fim de julho para fazer o projeto que vou descrever da próxima vez. A falta de contato com meus dois amigos acabou com o projeto do Einstein na prática. Recebi o material da Texas no início de 1983 (e isso só porque desisti de tentar pedir do Brasil e pedi para alguém que morava nos EUA para escrever para eles – realmente a Internet e datasheets em PDF melhoraram muuuuuito esta parte), mas ai já era tarde demais.
A razão pela qual normalmente não menciono este projeto é que a interface de expansão não chegou nem a ter um esquema detalhado. Foi algo que ficou mais na ideia mesmo, e o micro principal só foi parcialmente construído. Se você acharem este tipo de coisa interessante, vou descrever os outros 7 projetos. Não sei se a grande dose de autobiografia não tornou o texto muito chato.
Originalmente publicado na lista 68000 do Google Groups. Aguardem os próximos capítulos.
(Chato??? Só pra quem não é nerd de raiz qui nem nóis!)
O modelo de paralelismo da linguagem Go suporta o mesmo paradigma que o Jecel menciona, com comunicação por canais ao invés de memória compartilhada.
Tipo, as threads de um programa (ou seja lá como se chamem… ah, “goroutines”) só se comunicam por FIFOs? *Checando Wikipedia* Lá diz… “Goroutines can share data with other goroutines” — isso quer dizer outra estrutura além dos channels?
Você pode usar mutexes se quiser, mas na maioria das vezes não precisa, e canais são mais eficientes. Com canais o runtime consegue até pegar automaticamente alguns tipos de deadlock.
Show de bola! Muito legal!! Conta mais… Adorei!!
Por favor continue com as estorias, tambem sou dessa epoca. Nesse tempo , na empresa em que trabalhava tinhamos kits com 68000 abandonados pelo pessoal de P&D e que a garotada da manutenção ( do qual eu fazia parte ) herdou, brincou , desenvolveu gigs de teste de placa e testou conceitos de sistemas operacionais. Era uma boa época.
A diferença entre homens e meninos =D
Eu também quero mais. Muito interessante saber das páginas da história da computação no Brasil.
Como de costume é simplesmente sensacional ler qualquer coisa que o Jecel escreve! 🙂 Continuem com a série, por favor! 🙂
Olá
JuanJecel!Gostei muito da história. Se escrever outras, com certeza acompanharei. É o tipo de leitura que aprecio grandemente.
Um grande abraço!
Já leu a parte 2?