Terminais seriais da Scopus - modelos Sagitta 150 e Sagitta 180

Por conta da minha postagem recente aqui sobre o computador CP-500 da Prológica, fui convidado pela professora Tereza Cristina Melo de Brito Carvalho a visitar o Acervo Histórico de Tecnologia de Informação que foi montado recentemente na Poli-USP.

Na minha primeira visita, além de conhecer a exposição em si, que tem vários itens bem interessantes, tive a oportunidade de também ver os materiais do acervo não exposto. E alí o que mais me chamou a atenção foi um par de terminais seriais projetados e fabricados pela Scopus no final da década de 70.

Esse terminal provavelmente foi projetado pelo professor Edson Fregni, que foi também o projetista da unidade de controle da CPU do computador Patinho Feio.

Assim que eu vi o terminal eu de imediato pedi autorização pra abri-lo e inspecionar seus circuitos. E o procedimento foi mais fácil do que eu imaginava… :wink:

A parte do equipamento onde o CRT fica instalado abre para trás com uma dobradiça. E o gabinete não estava aparafusado, então qualquer pessoa que empurre a tela pra cima consegue abrir o terminal instantaneamente para acessar a sua placa eletrônica.

Naturalmente eu extraí um dump das quatro EPROMs do terminal de modelo Sagitta 180. Eu tentei também fazer o dump da ROM única do outro terminal, que é de um modelo anterior, Sagitta 150, mas o chip estava com algum defeito e não consegui de forma alguma efetuar uma cópia consistente dos dados.

Ao longo dos dias seguintes, escrevi um emulador para esses terminais da Scopus no MAME. O processo de desenvolvimento desse driver de emulação contou com a ajuda do Werner Moeke, que conheci 2 anos atrás no Garoa Hacker Clube e que, recentemente, entrou em contato por conta do interesse pelo resgate histórico de computadores antigos.

Uma surpresa foi notar ao inspecionar com um editor hexadecimal que a primeira ROM (aquela que tem a etiqueta escrito “Sagitta 180”) possui strings indicando o modelo 150! A segunda e a terceira ROMs, identificadas com os números 1 e 2 (já que supostamente a primeira é a número zero), nitidamente contém todo o resto do código. Posso afirmar isso por que a terceira ROM termina com uma enorme região cheia de zeros. Ou seja, o programa era maior que 2 ROMs, mas menor que 3 ROMs cheias.

Mas e a quarta ROM? Bem… aí é que está um mistério, uma coisa curiosa. Eu esperaria que a quarta ROM fosse identificada pelo número 3, formando um conjunto de ROMs numeradas como 0, 1, 2 e 3. Mas não! A quarta ROM tem o número zero escrito em sua etiqueta! E pra confundir ainda mais a cabeça, é relativamente similar (perante inspeção visual do conteúdo) à primeira ROM, mas nesse caso contém strings a identificando como modelo “Sagitta 180”.

Então o que acho que acontece aqui é que os projetistas devem ter desenhado a placa contendo um mecanismo de chaveamento de ROMs e talvez tenham fabricado os terminais do modelo 180 simplesmente adicionando 3 ROMs extras, uma das quais deve substituir a primeira, do modelo 150. Uma vantagem de fazer isso talvez seja uma opção de retro-compatibilidade com o modelo anterior.

Eu ainda não sei os detalhes de funcionamento do suposto mecanismo de chaveamento de ROMs. Então simplesmente carreguei o emulador com a ROM do modelo 150 para conseguir essa tela de boot:

E depois carreguei as ROMs do modelo 180 para conseguir essa outra tela inicial:

O código de emulação do terminal está aguardando review e merge no github do MAME:

Consta “non-working” na descrição por que ainda falta emular o teclado desses terminais. Mas grande parte do resto já funciona, inclusive a emulação da comunicação serial.

A emulação do teclado até então tem se mostrado ser a parte mais complicada desse desafio. Ontem eu estive mais uma vez na USP e voltei a inspecionar essa parte do circuito. Consegui levantar empiricamente uma parte do esquemático eletrônico dessa região da placa, mas ainda não tenho clareza a respeito do funcionamento exato do teclado e como a CPU faz a leitura das teclas pressionadas. Está claro que, como de praxe, trata-se de uma técnica de multiplexação da matriz de teclas. Mas ainda falta descobrir em quais portas do espaço de I/O são feitos os acessos e qual a lógica especifica envolvida na leitura.

Além de desvendar esses mecanismos de chaveamento de ROMs e de leitura do teclado para completar a implementação do emulador, uma outra coisa interessante a se fazer é tentar ligar de fato os terminais de verdade. É possível hoje em dia conectar um desses terminais a um computador por meio de cabo USB-Serial (como os que a gente usava pra programar Arduinos antigos).

Um cabo USB junto a um adaptador RS232 da FTDI como esse, por exemplo, também serve:

Em teoria é possível, por exemplo, configurar por meio do arquivo /etc/inittab a abertura de um console de login com uma sessão do bash do meu laptop num desses terminais da Scopus. A maior questão entretanto é que antes de ligar é bom verificar se os capacitores estão bons ou se precisam ser trocados, pois provavelmente já devem todos ter ressecados ao longo dos últimos 30 e tantos anos. A última revisão técnica, segundo uma etiqueta que achei dentro de um deles foi em 1982 e dizia “Fonte OK” / “Placa Digital OK”… :wink:

Happy Hacking!
Felipe “Juca” Sanches

1 curtida

Esse aqui é um rascunho inicial do circuito do teclado. Aquele chip 74LS145 à esquerda é um multiplexador BCD usado para ativar as linhas do teclado. E ele é controlado por um contador de 4 bits. Fora isso, não está claro ainda quem pulsa o contador, e nem como é feita a leitura do padrão de pressionamento de teclas da “linha” selecionada…

Até tenho um circuito um pouco mais detalhado que eu consegui transcrever ao longo do dia, mas como o dia foi escurecendo foi ficando mais difícil de tirar uma foto legível da lousa branca:

Um amigo fez a observação de que o equipamento tem aproximadamente a minha idade. Eu nasci em 16 de dezembro de 1983. A última revisão marcada na etiqueta do equipamento é de 1982. Mas o equipamento em si foi lançado no mercado em 1979. :smiley:

Eu tenho uma foto em algum lugar, na sta ifigenia, com uma PAREDE (!) de teclados desses atras de mim. Lembro que trouxe um ou dois pra casa, quando eu morava no RJ.

Sabe dizer se os computadores da exposição funcionam? Se quem mantém a exposição está se preocupando com isso também?

Sim, eles estão interessados em fazer isso. E eu estou começando a ajudá-los a colocar alguns equipamentos para funcionar. Se vamos conseguir não sei dizer ainda. Mas os primeiros testes serão provavelmente com esses terminais seriais. Depois podemos partir para outros computadores, como um PC XT que eles tem lá, por exemplo…

Armando, a idéia futura realmente seria em ver quais computadores (e periféricos) estão funcionais e/ou que possam ser restaurados. Neste primeiro momento estamos tentando coletar peças representativas para a história da computação, desde os terminais e micros de mesa, passando por dispositivos móveis, pela convergência digital e pela Internet até os atuais smartphones. Ainda estamos em processo de catalogação das peças doadas para o espaço e criação de uma exposição virtual destas peças.

2 curtidas

Saiu o MAME 0.194 incluindo o driver de emulação do Sagitta 180:

@FSanches, eu tenho um terminal desse Sagitta 150 que está funcionando.
Eu inicialmente queria comprar um terminal antigo para instalar um Raspberry Pi, mas como ele está ligando e inicializando normalmente, eu achei melhor tentar justamente conectá-lo a um computador através da porta dele mesmo, porém sou apenas um entusiasta e não um técnico.
Se tiver interesse, ele está à disposição pra mexer e testar :wink:

Legal, @Lhifabri! Eu tenho interesse sim. Você mora em qual cidade/bairro?

Estou na zona norte de SP
Meu email: lhifabri@gmail.com

Montei muitos na fábrica na Av. Mutinga, entre 1981 e 1983. Saudades !!!

1 curtida

Que legal!!! :smiley: