Tirando da caixa um CP 400 Color II da Prológica

Além do CP 200 também estou colocando algumas fotos do CP 400 do meu pai. Com esse eu lembro de ter ficado várias horas em frente.

4 curtidas

Da época em que era OK dizer RS-232 na embalagem do produto :smiley:

1 curtida

Muito tempo atrás o meu amigo Manoel Lemos levou ao Garoa Hacker Clube o CP400 Color II dele. Ligamos o computador no projetor e rapidamente a conversa chegou no ponto em que ponderamos se esse modelo já estava ou não emulado no MAME. Uma rápida consulta ao código fonte nos mostrou que o MAME já tinha o CP400, mas não tinha o CP400 Color II.

Naquele dia ponderamos sobre como fazer a extração da ROM, mas não chegamos a executar nenhum procedimento por falta de equipamento adequado. Nessa semana (muitos meses depois do encontro inicial no Garoa) o Manoel me contactou avisando que estava efetuando aextração da ROM e pedindo ajuda para verificar se o procedimento de dump estava correto. Eu não sei exatamente o que ele fez no lab dele, mas suspeito que tenha usado um cabo FTDI para comunicar por uma porta serial enviando dados para o Mac dele.

Na imagem abaixo vemos o resultado do procedimento feito pelo Manoel:

Vemos alí as strings COLOR BASIC 1.0 PROLOGICA e 1984 PROLOGICA, o que parecia muito promissor. Entretanto, depois de analisar o conteúdo desse arquivo binário de 64kbytes correspondente a todo o espaço de endereçamento de 16 bits do computador e separar a região dos endereços relativos às ROMs (o resto em geral é RAM ou mapeamento em memória de dispositivos de hardware) percebi que o conteúdo é absolutamente idêntico ao das ROMs do CP400 que já estão cadastradas no MAME!

Então surgiu a dúvida: se as ROMs são idênticas, então qual é a diferença entre o CP400 e o CP400 Color II ?!

A primeira diferença perceptível é no layout do teclado. Comparem abaixo as fotos dos dois modelos:

O CP400 Color II tem 4 teclas adicionais: CTRL, PA1, PA2 e PA3.

1 curtida

Interessante notar que o primeiro modelo já tinha um vinco retangular no tamanho exato do teclado do segundo modelo. Acho que isso é uma evidência de que o segundo modelo já estava planejado na época em que lançaram o primeiro… Esse tipo de coisa deve ter barateado a produção da carcaça do segundo modelo já que deve ter viabilizado uma adaptação simples no molde de injeção plástica, reaproveitando grande parte do molde anterior.

Fui ler o código do driver de emulação dos computadores modelo TRS80 Color Computer (CoCo) e derivados no mame em src/mame/drivers/coco12.cpp e achei lá o seguinte layout de teclado:

Notem que na linha da matriz selecionada pelo bit 6 da porta A, temos 4 bits da porta PB marcados como “N/c” (not connected). Meu entendimento é que os projetistas da Prológica viram esses bits não usados e optaram por mapear alí as 4 novas teclas. Só não sei em qual ordem foi feito esse mapeamento de CTRL, PA1, PA2 e PA3. Mas fiz um chute inicial:

E usei isso para declarar os inputs de um driver derivado que chamei de cp400c2:

Outros clones nacionais do TRS CoCo:

Como se vê na imagem acima, aproveitei a oportunidade para revisar os metadados de outros clones nacionais do Color Computer. Os 2 clones fabricados pela Codimex eu adicionei hoje utilizando as ROMs disponibilizadas poe Daniel Campos no site Datassette:

https://datassette.org/softwares/tandy-trs-color/codimex-cd-6809-color-basic-extended-basic

Aqui vemos a tela do MAME agora emulando também as versões de 1983 e de 1984 do Codimex CD-6809:

No site do Daniel Campos tem uma entrevista com Claudio José Richter, o projetista desse computador:
http://amxproject.com/?p=2775

A matéria inclui um link para scans lindos dos esquemáticos originais!

Ainda falta eu adicionar ao MAME a ROM da unidade de disco do Codimex disponível aqui: https://datassette.org/softwares/tandy-trs-color/codimex-disk-basic-v-10

O Daniel Campos fez um trabalho incrível de restauração de uma dessas aqui:
http://amxproject.com/?p=2747

1 curtida

Estou publicando essas modificações no MAME no branch coco_br do meu fork pessoal do MAME no GitHub:

Mas como ainda há algumas informações a confirmar como por exemplo o mapeamento correto das 4 teclas extras do CP400 Color II e a adição de ROMs de disco do Codimex ainda não abri um pull request. Farei isso em breve assim que eu achar que o código está bom para ser incorporado oficialmente a um release futuro do MAME.

O Manoel Lemos informou que fará um teste para ver o que aparece na tela ao pressionar cada uma das novas teclas. No MAME eu vejo alguns caracteres diferentes. Se forem os mesmos, poderemos com isso inferir o mapeamento correto.

Na imagem acima pressionei em sequência as teclas Ctrl, Alt-esquerdo, Alt-direito e backslash que eu mapeei no meu chute inicial respectivamente às teclas CTRL, PA1, PA2 e PA3 com a seguinte alocação de bits na matriz do teclado (provavelmente incorreta):

Algumas referências afirmam que essas teclas são programáveis para assumir funções especiais. Outros inclusive mencionam que são programáveis “em Assembly”. Mas não achei nenhum lugar explicando exatamente como isso é feito. Talvez algum software escrito pela própria Prológica faça uso dessas teclas, mas até agora não vi ninguém capaz de explicar isso em mais detalhes. Cheguei a analisar trechos do código da ROM usando o debugger do MAME, mas eu não estou muito familiarizado com os mnemônicos do M6809 e fiquei um pouco perdido, apesar de ter achado o que parece ser uma parte do código de varredura do teclado:

Pra quem estiver curioso sobre como eu cheguei nesse trecho de código, usei um watchpoint de leituras e escritas no bloco de endereços de FF00 até FF1F que, se entendi bem, é onde está mapeado o chip PIA0 para interfaceamento com portas paralelas de I/O. O comando para isso é aquele wp ff00, 20, rw visto na imagem acima. O log de endereços onde o watchpoint detectou escritas nas portas nos mostra um padrão de escritas que corresponde a cada um dos 8 bits sendo ativados (em lógica negativa) sequencialmente: FE, FD, FB, F7, EF, DF, BF e 7F. Essa sequência provavelmente é o que seleciona cada uma das colunas da matriz do teclado. E as leituras intercaladas suspeito que sejam para ler o status de pressionamento das teclas da coluna selecionada.

Com um pouco mais de calma acho que dá pra analisar melhor isso e determinar se a ROM dos CP400 já traz algum mecanismo para gerenciamento das funções dessas 4 teclas extra, ou se “programá-las em assembly” simplesmente significa fazer algo similar ao código parcialmente exibido na imagem acima por conta própria em seus programas.

(acho bem provavel que seja essa a explicação, aliás…)

Olá Felipe, excelente post, parabéns! Com relação às teclas PA, houve uma menção da imprensa especializada da época (1985) de que serviriam para a expansão para CP/M que seria lançada para o CP 400, mas nunca divulgaram nada a mais. Outra hipótese era que seriam usadas para emulação de terminal IBM 3270, onde essas teclas teriam utilidade, porém não conheço nenhum software de emulação para o TRS Color nesse sentido.

Wow!!!

O Manoel Lemos fez um mapeamento do que aparece na tela quando ele pressiona as 4 teclas adicionais:

E com base nessa imagem, concluo que o meu chute inicial estava correto! Rodei de novo o MAME e testei todas essas combinações do diagrama do Manoel e está 100% coerente com a minha emulação :smiley:

1 curtida

Declarei no MAME a interface de disco do Codimex CD6809:

https://github.com/felipesanches/mame/commit/d9db236d7d2154861f66b456d304d953974bdb2f

E finalmente abri o pull request para esses novos drivers de emulação de clones brasileiros de ColorComputer serem incorporados ao próximo release do MAME:

1 curtida

Felipe,

Conforme já havia falado no grupo do Clube Color lá no face, as teclas PA1, PA2, etc, provavelmente derivaram dos teclados feitos por terceiros lá nos EUA pela HJL para o TRS Color. Acredito que as teclas mapeadas foram as mesmas.

A ROM do CP-400 é cópia fiel da ROM da Tandy, só traduziram o label inicial e algumas mensagens de erro. Abaixo tem uma tabelinha comparativa que fiz sobre as ROMs dos clones nacionais em comparação a da Tandy.

1 curtida

Gente, essas fitas todas mostradas lá em cima já foram dumpadas? Tem muita pouca coisa online…

Nope. Ainda me faltam tempo e um tape deck, meu pai fala que deveria usar um mono, não stereo, não sei se isso procede.

Olha, o que eu dumpei aqui de fita de MSX, foi em aparelho de som normal mesmo, gravei tudo em 44Khz 16 bits.

Mas usei a saída de fone de ouvido, ligada no PC para gravar os WAVs. Funcionou sem problema algum :slight_smile:

Devido a possíveis problemas de Copyright as modificações eram importantes e normalmente a justiça acatava que se tratava de programa ou hardware diferente, em razão disso as ações das fabricantes externa não prosperavam no Brasil, ainda mais com a antiga lei de reserva de mercado informático.