Cartão de 80 colunas na porta de joystick para MSX
Este projeto é baseado no terminal de vídeo com AVR que foi projetado pelo Daryl Rictor e se tornou popular pelas melhorias implementadas pelo Grant Searle. Posteriormente David Curran (Tynemouth Softare) que implementou a comunicação I2C, na qual o presente projeto se baseia.
A saída de vídeo foi simplificada e compatibilizada com a norma RS170, e o circuito foi acomodado numa placa de 1x1 polegada.
O protocolo I2C é implementado em software (bitbang) no MSX, e foram necessárias algumas sessões de debug para identificar um problema relacionado a 'clock stretching' - um aspecto que normalmente não é implementado, principalmente quando se quer obter o maximo de performance. Infelizmete neste caso foi necessário, o que fez a taxa de comunicação cair pra aproximadamente 2170 bytes / segundo.
O maior limitante na velocidade, contudo, é que o acesso é feito via PSG, que utiliza registros diferentes para os pinos de saída e os de entrada das portas de joystick o que demanda uma escrita a no registrador de endereço toda vez que se alterna entre leitura e escrita dos bits.
O código que envia os dados ocupa menos de 300 bytes depois de compilado, sendo pequeno o suficiente para ser colocado em qualquer lugar da memória e ser usado como display auxiliar pra debug.
O programa de teste é baseado numa rotina em assembly que, uma vez carregada, permite escrever na tela auxiliar uma string passada como parâmetro para uma função USR().





