Estudando os circuitos do Prológica CP-500

Em novembro de 2015 o Fabio Hirano e a Amanda Yumi Ambriola trouxeram para o Garoa Hacker Clube um computador Prológica CP-500 completamente desmontado. Não apenas a eletrônica mas também a carcaça, os dois drives de disquetes de 5 1/4" e o tudo de raios catódicos (CRT). Aparentemente todas as peças não-opcionais estão inclusas no conjunto de peças que recebemos, mas nitidamente faltam alguns cabos.

Na época nós promovemos um evento no Garoa para fazer a inspeção geral das peças e tentar entender se seria possível remontá-lo ou talvez ao menos inspecionar o circuito para propósitos de emulação no MAME. Segue abaixo o anúncio bem-humorado que fizemos naquela ocasião:

O anúncio ainda está disponível também no site do Garoa, nesta página do wiki.

Nos 2 anos que se passaram, entretanto, o computador ficou encostado no depósito do Garoa e só agora tomei a iniciativa de olhar de novo pra ele. Para poder estudá-lo com mais calma, trouxe as peças todas para a minha casa. Fui informado pelo Fabio e pela Yumi que o computador poderia ser meu, caso eu conseguisse consertá-lo :slight_smile:

Vale ressaltar que o CP-500 é um clone de fabricação nacional (Prológica) do computador TRS-80 Model III (Tandy / Radio Shack). Como inicialmente eu não acreditava que eu poderia encontrar documentação da versão nacional, fui diretamente buscar algum manual do original. Achei 3 documentos interessantes, dentro os quais destaco o Model III Technical Reference Manual de 1981:

Logo no início do documento há um diagrama geral dos principais elementos que compõem o sistema, dos quais tenho todos, exceto a placa RS-232 (de comunicação serial) e possuo apenas uma placa de fonte de alimentação.

Comparando o layout das placas com os diagramas contidos no manual do equipamento original, eu pude perceber que apenas a interface controladora de disquetes foi diretamente copiada. As demais placas possuem diferenças significativas de design. Nota-se nas imagens abaixo como todas as trilhas da interface de disquetes possuem exatamente o mesmo roteamento de sinal no layout da PCB e a única diferença são os textos da TANDY trocados pelos da PROLÓGICA…

Me chamou a atenção também os 3 fios soldados nessa placa. Parece um erro de projeto que só foi percebido depois da produção das PCBs. Mas se o diagrama do TRS-80 também não mostra essas ligações, então significa que isso foi um erro de projeto originalmente cometido pelos engenheiros da Tandy ?

Essa é uma questão que demandará algumas horinhas de estudo nos esquemáticos para identificar quais são esses sinais e tentar entender quais eram suas funções no circuito. Caso eu descubra mais alguma coisa, postarei minhas conclusões por aqui.

Pretendo em breve continuar essa thread com detalhes sobre a placa-mãe (onde fica o processador Z80 e a circuitaria principal do computador) e a placa da fonte de alimentação.

Happy Hacking,
Felipe “Juca” Sanches

Mapeando os sinais da correção na controladora de disquetes

Vamos lá… Temos 3 fios (dois inclinados pra cima e um para baixo), vamos descobrir o que cada um deles interliga. Para auxiliar na compreensão dessa análise, seguem abaixo o diagrama e a foto do lado superior da placa. Notem que a placa da prológica não inclui as referências para os circuitos integrados (com a letra U seguida por algum número) na camada de silk como ocorre no diagrama da Tandy, apesar de incluir as referências dos demais compenentes como capacitores (letra C), resistores (letra R) ou pontos de prova (letras T e P, do inglês “test point”).

Por enquanto vou me preocupar apenas em mapear os pinos e pastilhas sem tentar entender o significado das ligações. Após ter essas anotações em mãos, poderei olhar os datasheets dos componentes e os esquemáricos do manual do TRS-80 parar fazer uma análise mais profunda.

Os dois fios inclinados para cima interligam as pastilhas U17 e U13.

O fio da esquerda (Vamos chamá-lo de Fio A) está ligando o pino 6 da pastilha U17 ao pino 2 da pastlha U13. Já o da direita (Fio B) interliga o pino 4 da U17 ao pino 1 da U13 e também ao ponto de prova TP8 e a alguns outros CIs vizinhos. O TP8 aparentemente é um pino de alimentação (VCC ou GND). Poderemos confirmar isso mais adiante. Já o fio que se inclina para baixo (Fio C) interliga o pino 3 da pastilha U13 ao pino 11 da pastilha U10.

Descrição das pastilhas:

  • U10: 74LS260 - portas booleanas NOR ou “Não-OU” de cinco inputs cada.
  • U17: 74LS02 - portas booleanas NAND ou “Não-E” de dois inputs cada.
  • U13: WD2143 “Western Digital, Four Phase Clock Generator”, que vamos tentar estudar em mais detalhe mais pra frente.

Agora é hora de pensar um pouco antes de tirar conclusões. Mas não antes de uma boa noite de sono :smiley: Até logo!

Recapitulando…

  • Fio A: U17-6 <=> U13-2
  • Fio B: U17-4 <=> U13-1 / TP8
  • Fio C: U13-3 <=> U10-11

Seguem abaixo as pinagens das pastilhas em uso e os nomes dos sinais interligados por cada fio, mas ainda sem interpretar seu significado. Estamos apenas nos familiarizando cada vez mais com o problema.

U10: 74LS260 - Portas NOR

U13: WD2134 - Western Digital, Four Phase Clock Generator

U17: 74LS02 - Portas NAND

Fio A

  • U17-6: Entrada de uma porta NAND
  • U13-2: Saída Φ4 (fase número 4)

Aqui seria bom verificar quais são os outros sinais da porta NAND em uso.

Fio B

  • U17-4: Saída da mesma porta NAND à qual está ligado o fio A.
  • U13-1: Saída /Φ4 (fase número 4 invertida)
  • TP8: Ponto de prova número 8

Como ambos os pinos dos chips achima são sinais de saída, presumo que deve haver mais algum outro chip ligado a esse ponto.

Fio C

  • U13-3: Saída /Φ3 (fase número 3 invertida)
  • U10-11: Entrada de uma porta NOR de 5 inputs

Neste caso, vale a pena verificar quais são as outras 4 entradas dessa porta NOR e para que é usada a sua saída.

Eu ainda não entendi por completo, mas me parece que o problema que esses fios corrigem é original do TRS80 Model 3 da Tandy. O que embasa minha suposição é a observação do trecho do esquemático no manual da Tandy que contém o desenho de todas essas interconexões:

Dá pra ver nessa imagem o ponto de prova TP8 ligado na saída duma NAND (pino identificado com o número 4) cujas entradas são um sinal de RESET e, no pino 6, o sinal de fase-4 invertida proveniente da pastilha U13.

Floppy Write Pre-Compensation

Mas e aí? O que fazem esses sinais ?
No datasheet do chip WD2143 é ilustrado um uso típico que é muito similar ao que vimos acima (mas não idéntico pois não possui a lógica com um sinal de RESET daquela porta NAND):

O termo “Write PreComp” refere-se a uma técnica utilizada em placas controladoras de disquetes (e também de discos rígidos) em que é aplicado um atraso na sinalização de escrita do disco para compensar as características não-lineares de mídias de armazenamento magnéticas. Há um artigo mais detalhado sobre essa técnica na Wikipedia, que merece uma boa leitura.

Além disso, o próprio manual técnico do TRS80 é muito detalhado e contém uma seção que explica por completo o circuito da interface controladora de disco.

Daria pra continuar estudando em mais detalhes o circuito da controladora de floppy, mas acho que por enquanto estou satisfeito com esse primeiro contato. Posso voltar depois para me aprofundar mais. Acho que agora vou dar uma olhadinha nas outras placas do CP-500 pra ver o que mais temos em mãos.

Nesse domingo eu me foquei em estudar a placa-mãe P8-Rev.3 do CP-500 com o propósito de adicionar suporte à sua emulação no projeto MAME. Depois de umas 3 ou 4 horas de trabalho eu finalmente consegui!

Segue abaixo uma foto da minha mesa de trabalho (placa do CP-500, multimetro, leitor de EPROM, papel e caneta, manuais do TRS-80 e editor de texto para escrever código de emulador). E, na tela, a primeira vez que rodei com sucesso o emulador:

Pretendo em breve documentar aqui como foi feito esse processo de análise da placa e implementação do emulador. Quem já quiser ver o código, tem um pull-request aberto no GitHub aguardando a revisão de código e, se tudo estiver certo, deve entrar para o próximo release do MAME (versão 0.192) que sai mês que vem.

Happy Hacking,
Felipe “Juca” Sanches

1 curtida

Po Juca, 5 paginas de texto pra dizer que os tecnicos da prologica esqueceram de copiar 3 trilhas da placa e fizeram com fio? :smiley:

O mais importante voce nao detalhou: Quais sao as diferenças da placa-mae do TRS-80 Mod. III pro CP-500. Ate onde eu sabia, nao havia diferença nenhuma, alem do rele do cassete e daquele trampolim de memorias EPROM onde fica o BIOS. Alias eu preciso fazer um trampolim desses, ganhei este final de semana (no encontro de apple II que voce nao foi, perdeu!) uma placa mae de CP500 e uma placa de drive. Vou botar essa jaca pra funcionar numa caixinha e fazer um teclado de teclinha pra ele :smiley:

Ha Braços!

1 curtida

Na verdade não é isso. Aparentemente a cópia foi feita corretamente, mas (acho que) o original já tinha defeito. A minha interpretação é de que a interface de disco original da Tandy provavelmente também tinha o mesmo erro (e possivelmente o mesmo remendo). É meio engraçado e triste ao mesmo tempo, mas suspeito que a Prológica tenha copiado inclusive o remendo!

Os detalhes sobre as diferenças entra a placa da Prológica e o design original da Tandy eu pretendo descrever aqui “em breve”, como eu já havia mencionado anteriormente. Talvez eu consiga fazer isso no final de semana.

Em poucas palavras, tem um flip-flop fazendo chaveamento de página de memória na ROM (por meio do bit A11 do barramento de endereços) para dar acesso ao código adicional da Prológica. Mas me permita fazer no final de semana com mais calma e capricho a explicação didática do processo todo de descoberta dessas nuances e de implementação do driver de emulação no MAME.

Happy Hacking,
Felipe “Juca” Sanches

Oi Felipe,
Nesse CP500 vc também tem o sistema operacional CP/M ? Eu (ainda) tenho os disquetes dos sistemas que eu fazia na época do CP500 com sistema operacional (TRS-DOS e CP/M) e alguns softwares de desenvolvimento (dbase II). Não sei se ainda estão legíveis devido aos vários anos guardados em condições não muito saudáveis para aquelas mídias.
Os drives que você tem são de 180Kb ou 360Kb?

Abraços, 
Plinio.

PS: Ainda preciso me livrar daquelas placas de PC e tranqueiras de eletrônica em geral.

Eu não tenho nenhum disco de CP500 aqui, Plinio. Se em algum momento eu conseguir ligar novamente esse computador, terei que providenciar novos discos, talvez gerando-os a partir de imagens encontradas na internet.

Inclusive, notei que o MAME não emula corretamente ainda a carga de discos no TRS80-Model III (e também, consequentemente, no emulador de CP500) por que os formatos de arquivo usados na vasta maioria de imagens de disco, o JV3 e o DMK, ainda não são suportados. O MAME apenas implementa suporte a imagens de disco JV1, que, se entendi bem, são usados nos TRS de modelos anteriores ao Model III.

1 curtida

Olha, não sei se interessa para essa discussão (se estiver procurando apenas mídias originais em disquete ou se serve para vc os dumps), mas eu encontrei nesse site downloads de vários discos de boot e até alguns de aplicativos e jogos.

2 curtidas

Para rodar CP/M nesses mais antigos CP500, com a placa Prológica 8, precisava de uma plaquinha adicional que na épocas tinha de alguns fabricantes. O CP/M só roda nativamente a partir da placa Prológica 22, inicialmente com adição da plaquinha AX-23 que habilitava o vídeo em 80 colunas, o que já estava incorporado na placa 24 com desenvolvimento pela Prológica de alguns chips incorporando as funções.

Só agora soube, nesta página, que existiu um site CP500.com.br (http://cp500.com.br/cp500) que não está mais no ar, certamente tinha muitas informações, alguém sabe de quem era e pode ajudar a achar o contato para tentar resgatar o conteúdo, e quem sabe, colocar o site de volta à ativa?

Tem alguns backups desse site no Internet Archive:

https://web.archive.org/web/20170602063144/http://cp500.com.br/cp500

Ok, valeu. Voltei a clicar no www.cp500.com.br e dessa vez apareceu no ar, parece meio instável.