Instalando o PSG AY-3-8912 no TK85
Por
Kelly Abrantes Murta - Zeddy-Br
Revisão em 01 de Agosto de 2010
Um dos recursos ausentes nos micros da linha
ZX81 mais sentidos pelos usuários é a
geração de som.
Embora seja possível gerar sons através da porta cassete
do micro, não é possível sincronizá-los com a
geração de imagem. Para suprir essa lacuna, foram
lançados no exterior alguns geradores de som baseados no chip
PSG AY-3-8912, entre eles o ZonX-81
da empresa inglesa Bi-Pak, na qual
a Microdigital se baseou para lançar o seu próprio
gerador de som, mantendo inclusive a compatibilidade. Mas uma coisa que
não foi divulgada sobre o TK85 era que esse
micro já vinha de fábrica com predisposição
para receber o chip AY-3-8912, bastando então que se adquirisse
os componentes necessários e os instalasse no micro para
torná-lo apto a gerar sons complexos simultaneamente com a
geração de imagem, como era o sonho de muitos
usuários. Neste artigo, veremos então como instalar o
AY-3-8912 internamente no
TK85 e torná-lo apto a produzir os mesmos efeitos sonoros que um
MSX, por exemplo.
Material necessário:
1 CI AY-3-8912, com o soquete de 28 pinos
1 CI 74LS00, com o soquete de 14 pinos
4 Diodos 1N4148
1 Resistor de 1K
1 Resistor de 5K6
1 Capacitor eletrolítico de 2.2uF
1 Plug P1 fêmea mono (ou stereo, se for implementar a saída stereo)
Fios finos para interligar
Solda, ferro de solda e sugador de solda.
Como
fazer:
O esquema do PSG
interno do TK85 é mostrado na figura abaixo, onde pode-se identificar
os componentes faltantes na placa do TK85. Observe que a saída do
AY-3-8912 passa por uma etapa amplificadora implementada com o
integrado LM386. Nessa montagem eu estou eliminando essa etapa, a saida
será ligada sem amplificação à entrada A/V do televisor ou à caixas de
som amplificadas, tipo aquelas usadas em PC's.
Iniciando a montagem, abra cuidadosamente o TK e localize os espaços
onde serão
inseridos os novos componentes. Eles estão próximo ao modulador de
vídeo e ao conector esquerdo do teclado (veja foto abaixo). O 74LS00 é
o IC27 e
o AY é o IC29. Os diodos serão colocados ao lado do
cristal de clock (será necessário levantá-lo, com
cuidado).
Com a ajuda do ferro de solda e do sugador, desobstrua os
furos para inserção dos IC27, IC29 e dos diodos D6, D7,
D8 e D9. Abra também os furos para os componentes delimitados em
azul, laranja, vermelho e verde na foto acima. Com os furos abertos,
solde os
diodos(observe a polaridade) e os dois soquetes na
placa. Em seguida, insira os CI´s 74LS00 e o AY-3-8912 em seus
respectivos soquetes. Agora pegue o capacitor de 2.2uF e solde-o no
lugar
do C24 (dentro do retângulo azul na foto acima), com o polo
positivo voltado para cima, em direção ao modulador de vídeo. O
resistor de 1K, por sua
vez, deve ser soldado no lugar do R66 no espaço delimitado de vermelho
acima.
Então, pegue um pequeno pedaço de fio e solde no lugar do R65
dentro do retângulo laranja, unindo-os eletricamente;
este fio irá fazer o jumper das saídas do AY-3-8912 com o
resistor e com o capacitor recém instalados. O resistor de 5K6 (R71)
deve ser colocado no espaço delimitado em verde. O resistor R64
já está soldado na placa, você pode retirá-lo ou deixar como está, não
vai fazer diferença. O resultado
ficará como mostrado na foto a seguir:
O polo negativo do nosso capacitor está conectado diretamente no
ponto que seria o pino 3 do IC38 (LM386), localizado no lado direito da
placa
do TK85, abaixo do regulador de tensão e próximo ao
conector direito do teclado. Esse CI não será utilizado nessa
montagem pois a
conexão será feita diretamente no plug de saída.
Para tanto, usando dois pedaços de fio de tamanho apropriado,
faça os dois jumpers indicados abaixo em amarelo, na foto da
esquerda. A foto da direita mostra os jumpers já prontos.
Feito isso, será necessário ainda instalar o plug P1, o que deverá
ser feito ao lado do plug de alimentação do TK. Observe como foi
montado o plug da alimentação e faça do mesmo modo com o plug do som.
Na próxima foto, pode-se ver como fica a montagem final.
Uma última alteração a ser feita será abrir
a janela para a saída de som no gabinete do TK, sendo que o resultado
final vai depender da perícia manual e das ferramentas usadas.
No meu caso, usei uma furadeira elétrica e um estilete e (como
era de se esperar) o resultado não ficou perfeito, mas cumpre
com o seu objetivo:
Finalizada
a montagem, é hora de fechar o micro e começar
a fazer uns barulhinhos. Como o BASIC do TK não dispõe das
instruções IN/OUT ou do comando SOUND, é
necessário
fazer uso da linguagem de máquina para poder programar o PSG.
Portanto, vamos implementar uma rotina que simula o comando SOUND:
sound:
rst
20h
;coleta o próximo caracter
call
$0d92
;interpreta uma expressão classe-6 (registrador AY)
rst
20h
;coleta o próximo caracter
call
$0d92 ;interpreta uma expressão classe-6
(registrador AY)
call
$0bf5
;rotina stack-to-bc(registrador AY em C, dado em B)
ld a,c
out
($df),a ;seleciona o
registrador do PSG
ld a,b
out
($0f),a ;envia dado
para o registrador do PSG
rst
18h
;coleta o caracter corrente
cp
$1a
;checa por mais parâmetros
jr
z,sound
jp $005b
;rotina Nxt_Line, volta a o BASIC.
A sintax do comando é a seguinte: PRINT USR SOUND,R1,D1,R2,D2,R3,D3,...
onde Rn é o registrador do PSG, Dn é o dado a ser
enviado a esse registrador, e SOUND é o endereço onde a
rotina estará armazenada. Como a rotina usa endereçamento
absoluto apenas para chamar as rotinas da ROM, ela pode ser armazenada
em qualquer lugar da RAM.
O programa já pronto para usar está aqui,
e o código fonte aqui.
Pegue também o manual do PSG
externo comercializado pela Microdigital, com vários exemplos de
utilização. Usando a rotina SOUND acima, os programas do manual podem
ser reescritos de maneira mais prática. Por exemplo, o programa TIRO
LASER da página 9 pode ser reescrito como a seguir:
500 LET SOUND=16514
510 FAST
600 LET C=0
610 FOR D=8 TO 10
620 PRINT USR SOUND;C,D
630 NEXT D
640 PRINT USR
SOUND;7,55,8,16,12,15,13,0
760 LET D=6
770 FOR C=1 TO 31
780 PRINT USR SOUND;D,C
790 NEXT C
810 SLOW
810 STOP
Veja agora o PSG do TK85 em ação:
Obs.: Aqueles que quiserem uma saída stereo ACB, podem montar o
circuito proposto abaixo. Nesse caso, os pinos A, B e C do AY-3-8912
deverão ser desconectados do soquete e ligados diretamente aos
pontos ABC do circuito, e os pontos R, L e GND deverão ser
ligados nos locais indicados na foto abaixo e o plug P1 mono
substituído por outro stereo. Neste caso, tornam-se
desnecessários o capacitor de 2.2uF e o resistor de 1K da montagem
acima, bem
como os jumpers descritos.