segunda-feira, 12 de outubro de 2026

Garbage Collector (2)

 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(). 


 

 



domingo, 27 de setembro de 2026

Garbage Collector (1)

Emulador de Eprom em cartucho (32k) para MSX 


 

Essa ferramenta foi criada pra facilitar o desenvolvimento cruzado de software. O projeto original, apesar de usar um ESP32C3, não utilizava comunicação wireless. Perdi muito tempo com esse projeto até identificar um bug no mecanismo USB-CDC do ESP32C3 que fazia com que os bytes fossem descartados. Esse problema não foi resolvido até hoje pelo fabricante. 

O software original funcionava muito bem, tendo sido testado com uma USB_UART externa, e oferecia várias funcionalidades como o armazenamento da última ROM enviada, que poderia também ser usada na auto-inicialização. 



Antes de abandonar o projeto de vez, deixei funcional usando micropython e um monte de vibecoding. Otimizei o máximo que deu, mas a performance ainda é baixa, e foi necessário colocar um display pra saber o IP que deve ser acessado. 


Partiu pro próximo!

domingo, 5 de julho de 2026

Estudo para o ESP-32_CP400 em caixa Patola PB-087

 Fiquei interessado no projeto do ESP32_CP400 e fiz um estudo pra ver se uma versão com componentes "through-hole" caberia numa caixa Patola PB-087 , cujas dimensões são 96 mm de profundidade, 72 mm de largura e 30mm de altura na parte mais gordinha.

Eis a caixa:



 

Para o estudo, segui o projeto original, que apesar de não ter o diagrama inteiro, tem imagens da placa contendo mais alguns conectores 3.5mm, sendo dois para o gravador cassete, um para o áudio e um para uma interface RS232. Consegui colocar tres conectores, mas deve ser possível colocar um quarto, seja mudando o tipo de conector, seja eliminando a chave liga-desliga pra dar lugar ao conector do áudio, saindo ao lado do conector VGA. 

 Placa do projeto original: 


Estudo:







 

 

 

segunda-feira, 18 de maio de 2026

Diagrama do controlador do YPVS original Yamaha

Este diagrama foi levantado a partir do módulo original mais ou menos em 2004 a partir de alguns módulos que meu irmão me pedia para consertar. Eu cheguei a postá-lo em alguns fórums, que infelizmente foram mortos pelos grupos de Whats App.