Final dos anos 70 manda lembranças |
Algumas Informações Arqueológicas
Quando comecei a ler sobre microcomputadores (no final da década de 70), uma das referências era Don Lancaster (site), com seus livros TV Typewriter Cookbook (disponível para download aqui) e The Cheap Video Cookbook (do qual eu tenho um exemplar).Nesta época o objetivo era gerar vídeo composto e o Santo Graal era o vídeo gráfico mapeado em memória (você muda um bit na memória e um ponto acende ou apaga na tela!).
Obviamente estamos falando de tubos de raios catódicos (CRT). O básico do básico é que tem um feixe de elétrons controlado por bobinas para fazer um zigue-zague do canto superior esquerdo para o canto inferior direito da tela (e depois voltar rapidamente para o ponto inicial). Na verdade, são dois movimentos distintos: um horizontal e outro vertical. No horizontal o feixe vai da esquerda para a direita e depois volta rápido da direita para a esquerda (retraço horizontal). No vertical o feixe vai de cima para baixo e depois volta para cima (retraço vertical). A volta na vertical demora o tempo de algumas idas-e-vindas na horizontal. Durante os retraços (e um pouco antes e depois) o sinal de vídeo é suprimido para que ele não seja visível. O processo precisa ser repetido periodicamente ("refrescada", tipicamente 60 vezes por segundo), pois a imagem é mantida por pouco tempo pelo fósforo na tela.
Tudo isto (movimentação horizontal, vertical e refrescamento) tem tempos precisos que devem ser respeitados, sob pena da imagem aparecer errada (e em alguns casos até de danificar o monitor). Estes tempos são as restrições básicas de todo projeto de vídeo. No caso do vídeo mapeado em memória, temos o processador e o circuito de vídeo competindo pelo acesso à mesma memória, o que traz alguns problemas e soluções interessantes.
O vídeo composto coloca em um único sinal as informações de movimentação horizontal, vertical e a intensidade do ponto. Ele pode conter também informações de cor (codificada de forma diferente pelos padrões NTSC, PAL, etc).
A brincadeira de Don Lancaster era a geração do vídeo composto usando componentes TTL simples. Um dos pontos altos do Apple ][ é o circuito que Woz fez para permitir múltiplos formatos de vídeo (inclusive gráfico colorido) e o compartilhamento da memória entre o vídeo e o 6502. No ZX-81, a Sinclair gerou os sinais de vídeo diretamente pelo processador, reduzindo drasticamente o custo. A IBM não foi tão criativa quanto estes exemplos anteriores e usou um componente específico para geração dos sinais de vídeo (6845) e fez um implementação bem restritiva na CGA (por exemplo, no modo texto, se o processador acessar a memória de vídeo fora do retraço ocorre interferência na imagem).
O uso de vídeo composto facilitava a conexão de TVs, mas impunha várias restrições. Desde o começo, o PC IBM dispunha de conexões para vídeo com as várias informações separadas. A mais popular, e em uso até hoje, é o conector VGA. Nele temos pinos separados para os sinais de sincronismo horizontal e vertical e para as cores R, G e B. Os sinais das cores são analógicos, de forma a permitir uma quantidade alta de cores diferentes.
Gerando Vídeo com o AVR
A ideia básica dos projetos que pretendo examinar é gerar os sinais diretamente pelo microcontrolador, reduzindo o número de componentes externos.
A teoria e prática da geração de vídeo composto pode ser vista nos links abaixo:
Com isto algumas pessoas empreendedoras construíram microcomputadores:
A geração de vídeo VGA também é possível, como descrito aqui. Esta mesma pessoa fez um Apple ][ com um Arduino (não é exatamente um Apple ][, mas impressiona mesmo assim).
Por último, a mãe de todos os hacks de vídeo com AVR: Craft. Com um hardware simples e um código caprichado em assembler, Linus Akesson fez um demo de babar combinando gráficos coloridos e som polifônico:
Nenhum comentário:
Postar um comentário