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.

Esquema do PSG do TK85

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.