Neste post vou registrar as minhas experiências (até agora) com o Pico VGA (que eu apresentei aqui). Lembrando, o meu objetivo é fazer um emulador de terminal capaz de apresentar vídeo alfanumérico colorido com entrada através de um teclado USB.
Como falei no post anterior, o projeto PicoVGA não usa o ambiente normal do SDK da Raspberry Foundation. É preciso (como no SDK) ter instalado o "GNU Arm Embedded Toolchain". Uma versão adaptada (simplificada) do SDK está dentro do próprio projeto do PicoVGA.
O ajuste para indicar onde está instalado o compilador consiste apenas em editar dois arquivos bat, como descrito na documentação. Feito isso consegui compilar os exemplos sem problema.
A encrenca foi quando resolvi aproveitar o código de teclado que eu usei com o picoterm. Primeiro tinha umas esquisitices de defines no picoterm que me confundiram bastante. Depois eu vi que o SDK no PicoVGA é antigo, particularmente o tratamento da USB. Eu até tentei atualizar só esta parte, mas deu conflito com outras partes do SDK que usam USB. Atualizar o SDK vai dar bastante trabalho, talvez seja mais fácil compilar o PicoVGA com o SDK padrão.
Estudando um pouco o PicoVGA, verifiquei que existem seis modos de texto! Dois deles são exóticos (usam gradientes de cores), os candidatos para mim são quatro:
- "mono text": todos os caracteres da tela são apresentados com a mesma cor de frente e fundo. A vantagem é que usa menos memória (só um byte por posição) e é rápido.
- "foreground color text": aqui são usados dois bytes por posição, onde o primeiro é o código do caracter e o segundo é a cor de frente. A cor de fundo é a mesma para toda a tela. É este modo que o demo "matrix rain" usa.
- "attribute text": aqui também são dois bytes por posição, o primeiro é o código do caracter e o segundo tem as cores de frente e fundo (4 bits para cada), como nos modos texto da CGA e VGA. Eu queria muito usar este modo, mas o display não ficou bom pois é muito processamento.
- "color text": aqui são três bytes por posição: caracter, cor de fundo e cor de frente. É um pouco mais rápido que o "attribute text", o suficiente para o display de 80 colunas ficar bom.
Nenhum comentário:
Postar um comentário