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


#1

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.


#2

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


#3


#4

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.


#5

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.


#6

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:

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


#7

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…)


#8

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.


#9

Wow!!!


#10

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:


#11

Declarei no MAME a interface de disco do Codimex CD6809:


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:


#12

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.


#13

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.


#14

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


#15

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.


#16

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: