Usando o O.T.L.A. nos TKs

Em 21 de Abril de 2012

Na década de 80, o melhor amigo dos micros 8 bits era sem dúvida alguma o gravador. Não que o sistema fosse o ideal, mas era barato e cabia no orçamento, principalmente para quem já teve que fazer um esforço extra para comprar o micro. Eu também não tive como fugir disso e tanto meu TK85 quanto meu TK90X foram usados com um gravador National e muitas fitas BASF e VAT. O pior mesmo era os intermináveis minutos (na verdade 3 ou 4) entre o comando LOAD e o fim do carregamento.

Bem, muitos anos depois surgiu o projeto O.T.L.A. que engenhosamente aproveitava a entrada original de cassete dos micros mas com equipamentos de áudio mais modernos, como CDs, MP3 Players ou a própria saída de áudio de PCs. Explicando rapidamente, o O.T.L.A. que é um software gratuito e com código aberto, converte um arquivo, por exemplo, .TAP no caso do ZX Spectrum, para um formato de audio próprio que pode chegar a ser 10 vezes mais rápido que o original. Isso quer dizer, um jogo completo de 48k em apenas 30 segundos! E o O.T.L.A. não se limita apenas ao Spectrum e pode ser usado para as linhas ZX81, MSX e Amstrad CPC. Como ele surgiu a relativamente pouco tempo, eu mesmo nunca tive a oportunidade de testar porque desde que comecei a colecionar já tinha interface de drive e IDE e ler jogos do áudio realmente não estava nos meus planos. No entanto alguns relatos de amigos diziam que não conseguiram no TK90X/95 apesar de funcionar razoavelmente bem nos Spectrums originais.

Entra em cena então o Fabio Belavenuto, conhecido por seus grandes trabalhos na comunidade de Apple e autor do esquema original da Tomato Board para o TK2000. Ele tinha acabado de comprar um TK90X e por não ter outro meio de carregar os jogos, foi tentar o O.T.L.A. Como já relatado por outros usuários, ele também não obteve muito sucesso, porém com muita pacência e observação ele notou que geralmente a leitura falhava quando começava a carregar a "área de atributos", a parte da memória onde ficam as informações de cor da tela, como por exemplo na foto abaixo, do meu primeiro teste com a leitura acelerada em um TK90X 100% original de fábrica, inclusive a porcaria do RF. Notem que já na primeira linha a cor muda de azul para magenta e dá um erro de leitura.


Continuando nos seus testes, o Fábio descobriu ainda que dependendo da cor da tela o carregamento funcionava absolutamente normal. Estudando um pouco o esquema do TK ele percebeu que no momento que a ULA faz a leitura do EAR, um CI de buffer 74LS365 preenche a linhas de dados de D0 a D4 com a leitura do teclado e D6 com a informação da porta EAR. A linha D7 é forçada em nivel baixo por um diodo que apesar de estar presente somente no TK90X e não no TK95, não foi desenhado pelo Braga no esquema abaixo, ficando a linha D5 de fora.


Isso faz toda a diferença, porque o código do O.T.L.A. é altamente otimizado e faz a leitura da porta apenas por paridade, não se preocupando apenas em ler e comparar o bit 6 que seria bem menos eficiente. Inclusive tem uma curiosidade aqui, se ficarmos apertando teclas durante o carregamento acelerado, também dá erro de leitura.

A solução do problema é então não deixar a linha D5 sem conexão, fazendo um alteração para que ela fique num estado conhecido e não influencie o teste de paridade da porta 254. Abaixo eu coloquei duas possibilidades de modificação para o TK, que inclusive foram sugeridas pelo próprio Fabio, e expliquei as vantagens e desvantagens de cada uma.

1a. Opção

Essa solução é bem simples e provavelmente até quem tem pouca experiência com o ferro de solda conseguirá faze-la sem grandes dificuldades. Apenas adicione um diodo 1N4148 na linha D5 da CPU, junto ao já existente para a linha D7. Não esqueça que o diodo tem polaridade, então o catodo, o lado do "anel", fica ligado junto com o catodo do diodo D1 já originalmente soldado à placa do TK e anodo vai do lado direito do resistor R6, que é a linha D5.


Nas fotos acima o diodo soldado, mostrando a ligação que aqui foi apenas temporária para testar o funcionamento desta opção. Por favor, caprichem mais do que eu na hora de soldar o diodo de vocês. ;)
No TK95 o diodo D1 não costuma vir na placa, mais ainda assim a ligação do nosso diodo extra é exatamente a mesma.

Quanto à essa opção, apesar de muito simples, na prática você estará tornando o TK menos compatível com o ZX Spectrum. No original, os bits 5, 6 e 7 da porta 254, a responsável pela leitura do teclado e cassete, retornam sempre como 1 quando a porta é lida. O diodo D1 da placa fixa o bit 7 em 0, enquanto que o novo diodo fixaria em 0 o bit 5, portanto esses dois bits seriam sempre diferente do ZX. Na prática isso quer dizer que alguns jogos e programas podem não funcionar por suporem que esses bits estariam sempre em "1", mas por sorte isso não é a regra e a grande maioria dos softwares são executados normalmente sem qualquer problema.

2a. Opção

Nessa opção faremos a correção do hardware e teremos o comportamento da porta 254 mais próxima a do ZX Spectrum original. Se combinarmos esta opção com o mod TK-Ear Reloaded, a porta 254 vai se comportar exatamente como a do ZX Spectrum e não teremos mais incompatibilidades nos jogos, demos e programas por causa dela.

Começamos retirando o diodo D1.


Agora precisamos de um CI que seja um buffer não inversor e que tenha 3-states. Se encaixam nessa categoria o 74LS365, 74LS367 e o 74LS245. Para fins didáticos vou eliminar da lista o 74LS245 por ter mais pinos e ser um pouco chato de montá-lo na placa do jeito que eu fiz. Já o 74LS365 e o 367 são praticamente idênticos no funcionamento e uma boa idéia é montá-los em piggyback sobre o LS365 original do TK, facilitando muito as ligações.

No meu caso eu usei o 74LS367 que é ligeiramente mais fácil de encontrar e, principalmente, já estava à mão.


Levante os pinos, deixando somente o 1, 8 e 16 na posição original. Caso você esteja usando um 74LS365 não levante também o pino 15. Veja que eu cortei também a parte mais fina dos terminais que foram levantados.


Agora é soldar o CI sobre o buffer original que é bem fácil de ser localizado: é o único chip entre o Z80 e a ULA. Alinhe o novo buffer com o do TK, não esquecendo de obedecer também a orientação do chip (o semi-circulo da borda do CI) e solde os pinos que ficaram abaixados. Os demais pinos não devem tocar no chip de baixo.


Solde um pequeno pedaço de fio entre os pinos 16, 2 e 4 e no caso de usar o LS367, solde também o pino 15 no 16. Se o novo buffer for um LS365 o pino 15 já foi soldado no piggyback, no passo anterior.


As últimas soldas: o pino 3 do novo buffer vai no lado direito do resistor R6 (a linha 5 da CPU) e o pino 5 no resistor R8 (linha 7).


Confira e reconfira as ligações, conecte o teclado e faça os testes. Se tudo correu bem, será possivel carregar normalmente os arquivos acelerados pelo O.T.L.A. e jogar em apenas uns poucos segundos.





Agradeço ao Fabio Belavenuto por compartilhar conosco as informações e fico por aqui na torcida para que um dia o código do O.T.L.A. seja alterado visando os TKs nacionais sem que seja necessários nenhuma mudança no hardware.




Voltar - Home


Comente



COMENTÁRIOS DESABILITADOS NO MOMENTO! RETORNAM EM BREVE
É expressamente proibido a reprodução total ou parcial deste texto sem a minha devida autorização por escrito.