Sigo avançando rumo ao meu terminal baseado no Pi Pico! Após algum tempo procrastinando, um pouco de força bruta e perseverança deram resultado.
RPTerm ligado ao meu computador 6502 |
A primeiro coisa é que no post anterior eu mencionei que o timing vertical estava esquisito. Conferi e parecia certo. Aí resolvi fazer o ajuste automático do monitor. Ficou perfeito, o monitor é que tinha adotado valores não padrão. O mesmo monitor me enganou depois, ao ficar "preso" na entrada digital, ignorando o sinal VGA (analógico).
O passo seguinte foi a questão do ambiente de desenvolvimento. Aí foi um trabalho de força bruta: listar todos os fontes no CMakeLists.txt, dar um tapa nos includes e acertar as opções de compilação. O resultado não ficou bonito, mas consegui dar o build com o SDK padrão dentro do Visual Studio Code. Vai para a lista estudar melhor o CMake e fazer algo mais limpo.
Aí foi começar a colocar o código que eu tinha preparado no picoterm. O tratamento da interface serial foi tranquilo, assim como uma versão trambicada (e incompleta) do tratamento dos comandos de vídeo (estou refazendo essa parte).
O passo seguinte foi o teclado USB e aqui perdi dois dias. Resumo: eu atualizei o stack USB (tinyusb) e a nova versão tem mudanças e um bug. Só consegui ver a mensagem de erro quando gerei uma versão de teste só da parte do teclado com printf na serial. Aqui teve um aprendizado sobre a implementação de stdio no SDK da Pi Pico (talvez role um post sobre isso). Contornado o bug, funcionou só em parte, por causa da mudança. Quem não ama quando uma atualização "quebra" software que funcionava?
Enquanto isso, foi lançada uma nova versão do picoterm, com aperfeiçoamentos no tratamento de teclado USB e tratamento das teclas de cursor. Infelizmente até o momento o github foi atualizado somente com os executáveis. A parte da teclas não me preocupa mas gostaria muito de olhar o que foi feito no lado da USB.
Já tem no github uma versão usável do meu terminal: https://github.com/dquadros/RPTerm. O hardware está montado numa placa padrão (maior do que o necessário) e acomodado em uma caixa plástica.
A montagem |
Agora é ir completando e polindo o código.
Nenhum comentário:
Postar um comentário