segunda-feira, março 07, 2011

ZX81/TK82C: Características

O microcomputador ZX81 foi projetado especificamente para ser barato. Daí ter especificações baixas mesmo para a época:
  • Processador Z80 trotando a 3.25MHz
  • 1K bytes de Ram (2K no TK82C)
  • Teclado de membrana de 40 teclas
  • Modulador RF interno, para conexão a uma TV b&p pelos terminais de antena
  • Vídeo organizado em 24 linhas de 32 caracteres
  • Interface para gravador K7, com capacidade de ler e escrever a 300 bps
O ZX81 é a evolução de um modelo anterior, o ZX80. Os aperfeiçoamentos estão principalmente no firmware, com a inclusão do suporte a números de ponto flutuante e o modo "slow" (mais detalhes adiante). No lado do hardware, o ZX81 tem uma ROM maior (8K x 4K) para caber o novo firmware e utiliza um integrado custom no lugar de vários CIs padrões, reduzindo o número de CIs para 4 (o Z80, o chip custom, a Ram e a ROM). As primeiras unidades do TK82C utilizavam os CIs padrões, posteriormente a Microdigital conseguiu fabricar (ou obter) um chip custom equivalente.

A memória de 1K era insuficiente até mesmo para apresentar uma tela inteira, daí a expansão de 16K ser um acessório praticamente essencial (o que não impediu que um jogo de xadrez fosse feito para rodar nos 1K).

O teclado segue a disposição QWERTY, mas provavelmente isto é a única coisa boa a falar sobre ele. A sua construção não fornece nenhum feedback táctil - a sensação de apertar uma tecla é igual a apertar uma superfície dura. Cada tecla pode ter até cinco funções, dependendo do contexto e do uso do Shift e Function. Além de reduzir o número de teclas, isto elimina a necessidade do BASIC fazer análise léxica - ao invés de você escrever STOP digitando a letras S, T, O e P, você deve usar a tecla onde está a letra A, quando o BASIC está esperando um comando (o que é indicado por um cursor na forma de um K em reverso).


As teclas 5, 6, 7 e 8 correspondem às setas durante a edição do programa. Por este motivo, são usadas para movimentação na maioria dos jogos. O TK82C tinha um conector DIN na lateral que permitia ligar um joystick adaptado do Atari 2600 em paralelo com as teclas.


O vídeo é gerado diretamente pelo processador; o Z80 precisa comandar cada ponto a ser apresentado. Obviamente isto demanda processamento e os tempos são pouco flexíveis (o feixe de elétrons do tubo da TV não vai ficar parado esperando!). No ZX80 a imagem era gerada somente quando o computador estava esperando uma tecla, durante o processamento o vídeo apresentava ruído. No ZX81 foi acrescentado o modo SLOW, onde a interrupção NMI é usada para garantir que o vídeo será gerado durante o processamento. Entretanto, são tantas interrupções que sobra pouco tempo para processar (basicamente os retraços horizontais e verticais).

A rotina de vídeo decodifica cada um dos 256 valores possíveis em cada posição do vídeo em uma matriz de pontos fixa. Além dos caracteres comuns, são suportadas as 16 combinações produzidas dividindo cada caracter em quatro células; isto permite simular um modo gráfico de 48x64 posições. A decodificação dos caracteres usa uma tabela na ROM, Embora o firmware permita apontar para uma tabela em outro local, não existe memória neste endereço. Um hack de hardware interessante é colocar uma Ram adicional nesta faixa de endereço. Isto permite alterar por software os caracteres disponíveis.


Sobre a interface K7 podemos dizer que funcionava - a maior parte do tempo. Ocasionalmente eram necessárias algumas "mandingas"; circuitos que prometiam melhorar a gravação e leitura apareciam com frequência nas revistas especializadas. Existiam até gravadores especializados para o uso com o ZX81 e outros computadores. O mais chato é que os programas úteis costumavam demorar mais de 5 minutos para carregar - e você só descobria se teve sucesso no final.

Nenhum comentário: