Continuando a postagem, mostrarei aqui como solucionar a incompatibilidade da interface CAS com a ROM do TK90X.
A tela acima mostra que é possível fazer com que o DOS funcione, inclusive aparece a linha de comandos que não era acessível porque o computador travava. Na verdade o Otto Frederico Pereira Carvalho tinha demonstrado que era possível compatibilizar a ROM da Microdigital com o DOS na interface
CBI-95, porém ele fez uso de uma EPROM de 16KB no lugar de 8KB. Não cheguei a verificar como Otto contornou o problema, mas acredito que o que eu fiz não é muito diferente.
Tive que intercalar no meio da sub-rotina INITVARS as instruções introduzidas pela Microdigital entre 15611-15614. Isto obrigou-me a adicionar uma instrução JR em 15609, para que INITVARS pudesse prosseguir saltando os códigos intercalados. Com isto, eu teria que empurrar para frente o restante do código da referida sub-rotina e todas as outras que viessem adiante. Não haveria espaço para comportar esses 6 bytes extras na EPROM, portanto removi essa quantidade de memória movendo as sub-rotinas PRT_ENTER e BAS_RST16 para região que não era usada, a partir de 15345 (felizmente mesmo com apenas 8 KB, há espaços não usados na ROM CAS). No fim, a maior parte das rotinas ficaram em seu lugar, evitando uma eventual incompatibilidade com programas.
Esqueci de mencionar na postagem sobre o
disassembly da CAS, que a listagem que eu produzi pode ser montada por um programa
assembler. No caso, só testei com o
pasmo, com sucesso. O que fiz então foi modificar a listagem (o código fonte modificado encontra-se aqui) para incorporar as alterações citadas, tomando cuidado para duplicar as modificações nas duas páginas de 8 KB. Depois fiz a montagem do binário com o pasmo (disponível aqui), coloquei no subdiretório do
SpecEmu e fiz um
link simbólico como CBI-24.BIN. Iniciando a emulação, o resultado foi um sucesso, aparecendo a tela inicial do DOS do começo desta postagem.
Diversos comandos do DOS mostraram-se funcionais, como o CAT na tela acima. Consegui carregar vários programas sem problema algum. Embora não tenha feito testes exaustivos no emulador, acredito que todos os comandos funcionarão a contento.
O binário de 16K é adequado para o emulador, mas na verdade a EPROM da CAS tem 8 KB. Fiz dois arquivos binários que são as duas metades com o comando dd:
$ dd if=CAS-1986-16K-PatchFMM001.bin of=1.bin bs=1024 count=8
$ dd if=CAS-1986-16K-PatchFMM001.bin of=2.bin bs=1024 skip=8
Como checagem adicional, comparei as duas metades, que deveriam ser idênticas:
$ cmp -l 1.bin 2.bin
Felizmente deram iguais na comparação, então peguei uma delas, renomeei para um nome mais significativo e deixei à disposição aqui. Entretanto este arquivo ainda não é adequado para gravar numa EPROM, pois alguns sinais estão trocados na placa de circuito impresso da interface CAS. Deixo ao cargo do leitor para promover as devidas trocas de bits, pois eu não teria como testar por não possuir o
hardware real. Quem sabe se o Eduardo Luccas não faça isso para nós.
Atualização: o Danjovic elaborou um
script em Python para inverter os bits 0 e 7, produzindo um arquivo adequado para queimar EPROM. Experimentei no binário que eu montei e estou disponibilizando aqui o resultado. Como não tenho o
hardware para testar, não dou certeza de seu funcionamento.
loading...
E no feriado que passou além de assistir toda a primeira temporada de "Mr. Robot" (série sobre um maluco que insere uma Raspberry Pi num controle de temperatura), tive uma ideia para usar a EPROM PLD, mas que não foi muito pra frente. Geralmente eu...
A interface de drive da Cheyenne Advanced Systems (CAS) vem com uma ROM do ZX Spectrum para contornar a incompatibilidade com a do TK90X. Depois do disassembly da ROM da CAS ter ficado completo, fica possível entender a causa. Mas, antes, eu preciso...
Eu não possuo um gravador de EPROM e alguns amigos gentilmente têm feito gravações para mim. Porém com algumas experiências que tenho feito, acredito que essa demanda irá diminuir. A Multiface 1 que acabei de montar (foto acima) está usando...
Visitando o site do Eduardo Luccas, encontrei um item interessante para download que seria a imagem (dump) da EPROM da interface de demonstração do TK90X. Pela descrição dada, seria uma interface conectada a TK90X em exposição em loja, que ficaria...
Conforme mencionei em postagem passada, a minha interface Explorer não fornece valor do registrador do PSG AY-3-8912 na porta 65533, como ocorre no ZX Spectrum 128. Isto traz uma incompatibilidade que não é percebida na maioria dos programas, mas me...