Preparando o TK90X/TK95 para a TKMEM-128
INTRODUÇÃO:
Um grande sonho de muitos usuários do TK90X/TK95, na época, era que a Microdigital lançasse um modelo compatível com o Spectrum 128, o qual, além da maior memória, tinha um chip de som AY 3-8912, o que resultava em jogos com música e efeitos sonoros mais sofisticados! Ou mesmo alguma modificação para tal, mas nunca surgiu nada do gênero. Houve uma tentativa, um protótipo, de transformação do TK90X em um Spectrum +3, feito pelo amigo Jorge Braga, na época, e eu fui um dos que vi "ao vivo" o protótipo, em 1993, uma baita "placona" anexa ao TK90X com todo o circuito, incluindo a interface de drive do +3. Eu vi rodando o CP/M do +3, entre outros programas. Porém, infelizmente, este protótipo se perdeu no tempo. O próprio Braga refez o projeto, lá pelos idos de 2005, mas o projeto ficou parado, pelo jeito, e o Braga também anda "sumido". Hoje em dia há outros projetos de transformação do TK em "TK128", como o implementado pelo amigo Victor Trucco, baseado no projeto do Pavel "Zilogator" Cimbal, um conhecido fã e autor de projetos do ZX Spectrum da República Tcheca. Porém, ambas pecam por serem relativamente complexas, e envolverem modificações substanciais no TK90X, meio que "descaracterizando-o", o que muita gente não gosta. Mas, não há muito como ser diferente, devido a estrutura e diferenças entre o Spectrum 48K e o Spectrum 128K.
Ou há?
Basicamente, o que há de diferente entre o Spectrum 48 (e os TKs) e o Spectrum 128 são 3 coisas:
a) 128K de RAM, chaveados em 8 bancos de 16K
b) chip de som AY 3-8912
c) espelhamento da memória de vídeo (16K), o chamado "shadow video".
É possível fazer um circuito externo com a RAM de 128K obedecendo o mesmo sistema de chaveamento; o chip de som AY já há várias interfaces para o TK; ficaria faltando apenas o espelhamento da memória de vídeo, e essa é a complicação principal, pois envolve mexer nos circuitos de RAM baixa da ULA, e isso só mexendo internamente no TK. E a idéia era fazer uma interface externa para isso com nenhuma, ou um mínimo, de alterações no TK. Essa idéia já pairava no ar há um bom tempo, e o amigo Flávio Matsumoto pensava da mesma forma, e sugeriu-me um circuito externo, de autoria do "Velesoft", para experimentarmos. Nós apostávamos que a grande maioria dos jogos para o 128K não usava o recurso do "shadow video", e apenas faziam uso da memória adicional e, claro, do chip de som AY. Com isso, seria possível utilizar uma interface externa para isso, sem precisar mexer internamente no TK. O resultado foi que funcionou muito bem! Muito poucos jogos não funcionaram, mas a grande maioria sim, e, com o principal, passam a contar com a trilha sonora do chip AY, que era uma das coisas que eu mais queria!
Dessas experiências todas surgiu, então, a TKMEM-128! Nome sugerido pelo amigo Flávio Matsumoto. Utilizei o circuito básico da expansão do Velesoft, porém, acrescentei 3 coisas: a ROM do Spectrum 128, a fim de aumentar a compatibilidade com os jogos, e poder utilizar o BASIC 128; uma configuração com "jumpers", a qual permite comutar a operação entre a ROM do TK e a ROM do 128; e um sistema "automático" para desativação da RAM interna de 32K do TK. E essa é a única coisa que precisa ser feita internamente no TK para que a TKMEM-128 funcione. Chegamos, portanto, ao objetivo deste artigo, que é mostrar como preparar o TK para que a TKMEM-128 possa ser utilizada.
--> Atualização: Devido a alguns problemas "esquisitos", como a mesma interface funcionar em um TK90X e não em outro, no consonante a ROM do Spectrum 128, eu não estou mais montando a TKMEM-128 com a ROM do Spectrum 128. Isso principalmente porque, depois de exaustivos testes, percebemos que ela não é necessária para rodar os jogos 128K. Assim, se você encomendar uma comigo ela não vai vir com a ROM, só com a expansão. Se você realmente precisar da ROM do Spectrum 128 por algum motivo, me contate e saiba que pode não funcionar no seu TK.
A RAM INTERNA DE 32K
Como o Spectrum 128 tem 8 páginas de 16K, e elas ocupam, basicamente, o mesmo espaço que ocupa o banco de RAM de 32K "superior" do TK, a única coisa que precisa ser feita é a desativação deste banco, para que TKMEM-128 possa operar. E é uma alteração muito simples, basta a ligação de apenas um fio! Notem que no TK90X de 16K, nada precisa ser feito, pois esse modelo não possui mesmo o banco de 32K.
Existem 3 alternativas para isso, e vamos explicá-las abaixo, uma a uma:
1- Remoção dos chips
O jeito mais fácil de desabilitar os 32K de RAM do TK é, simplesmente, remover os 4 chips de memória 4416. Claro que isso é prático nos TKs que estejam com oc CIs soquetados. Neste caso, basta arrancar os 4 chips e pronto! Veja na figura abaixo a localização dos CIs:
2- Desabilitar logicamente a RAM interna
Caso os chips de RAM do seu TK não estejam soquetados (são soldados direto na placa), e você não queira dessoldá-los, existem uma maneira fácil de desativar a RAM interna, com apenas a ligação de um único fio!
Observe a placa na foto abaixo, com a localização dos CIs de RAM e o chip IC27, um 74LS32, que será onde ligaremos o fio para desativar a RAM:
No IC27, que fica bem no "cantinho" da placa, solde um fio ligando o pino 10 ao pino 14. E pronto! 32Kb desabilitados!
Veja na foto o desenho da ligação:
3- Implementar a desativação "automática" da RAM interna
O método mais interessante, e que faz com que o TK fique exatamente igual (com 48K) quando se desconecta a TKMEM-128, é implementar o sistema de desativação "automática" da memória interna de 32K, quando a interface TKMEM-128 está conectada. Para isso, será necessário ligar um fio, num ponto do barramento até o pino 10 do IC27 (um 74LS32). Está previsto na TKMEM-128 um "jumper" que deve ser ligado, neste caso, e injeta nível 1 no pino, desabilitando a RAM interna. E, ao se retirar a interface, não há mais nível lógico no pino do barramente, e o TK volta a operar como era antes. Tudo "transparente" e elegante!
Utilizei um dos pinos "não-conectados" do TK para isso. Na figura abaixo está tudo bem identificado, para não ter erro:
Agora, solde um fio no ponto indicado do barramento (17) até o pino 10 do IC27 (74LS32). Pode ser por baixo da placa mesmo. Atenção para não confundir os pinos. A figura abaixo resume o que é preciso fazer:
Após terminar, confirme a ligação medindo com um multímetro, chaveado para teste de continuidade.
Agora, para que a TKMEM-128 funcione nesse sistema, é preciso ligar o "jumper" de autodesativação da RAM, localizado na parte inferior da placa, veja na figura abaixo:
Para o TK90X/TK95 o jumper deve ficar nesta posição (está marcado como "TK" na serigrafia da placa):
ATENÇÃO IMPORTANTE:
Em hipótese alguma coloque o "jumper" na
outra posição, ao usar a placa no TK90X/TK95,
sob pena de DANIFICAR O COMPUTADOR.
MUITA ATENÇÃO nisso.
Estando tudo OK, seja qual for o método utilizado para desabilitar a RAM, conecte a TKMEM-128 ao TK, e efetue os testes, seja configurando os jumpers para o modo 128, seja carregando algum jogo de 128K, tudo deve funcionar normalmente.
No mais, agora é só desfrutar da TKMEM-128 e os jogos 128K com música AY!
Não tem uma TKMEM-128? Interessado em uma? Entre em contato, através da nossa página "Fale conosco", e solicite maiores informações. Não se esqueça de fornecer o email para o retorno do contato.
Dúvidas ? Sugestões ? Escreva-me !
Gostou? Comente!