sábado, 30 de abril de 2016

LED de CAPS LOCK para o ZX Spectrum

Os micros ZX Spectrum possuem um conjunto de caracteres bem completo com letras maiúsculas e minúsculas e a BIOS conta inclusive com uma função "Caps Lock", porém nenhum dos ZX spectrum jamais saiu com esse indicador. O seguinte projeto tem como objetivo adicionar um LED para indicar se essa função está ativa ou não.

O estado da função CAPS fica armazenada no bit 3 do endereço 23658 (0x5C6A), por isso a maneira mais fácil de indicar o estado do CAPS é capturar a escrita na memória no endereço 23658 e usar este sinal para acionar um flip-flop, e usar o estado deste bit acionar um LED.

O diagrama de blocos de nosso circuito se resume a um decodificador de endereços, um flip flop e o LED.


O decodificador é formado por dois comparadores 74HC688 e deve decodificar as linhas A[15..0], !MREQ e !WR. A saída do decodificador vai ao sinal de clock do flip flop e a linha de dados 3 (D3) vai à linha de dados do flip flop.

Em binário o endereço 0x5C6A corresponde a 0101 1100 0110 1010. Coincidentemente temos a mesma quantidade de zeros e de uns sendo as linhas

A15,A13,A9,A8,A7,A4,A2,A0 devem ser decodificadas em nível baixo
A14,A12,A11,A10,A6,A5,A3,A1 devem ser decodificadas em nível alto.

O circuito fica então: (link para imagem de melhor resolução)