Me puse hace unos días a hacer un emulador de Spectrum para un cacharrillo electrónico STM32 (ARM) y todo bien en un principio, hacer un emulador para mi, que tengo "el culo pelado" de hacer emuladores con los años, es un juego de niños.
Peeero, mi cerebro no funciona como hace años (tengo 45 años y muchas cosas en la cabeza), y el emulador no funcionaba de ninguna manera. Horas y horas de depuración, dias incluso, por que me habré tirado dos días buscando el fallo. No había manera, no quería funcionar. Hoy me levanto con la mente mas clara, gracias a la sidra y el champan de ayer, y encuentro el fallo:
Es de RISA... Estaba "filtrando" la dirección de la RAM a la que accedo mediante un simple AND, pero en lugar de emplear una máscara "positiva", estaba empleando una "negativa", y de ese modo, nunca se accedía a su dirección, sino que directamente se perdía en un agujero negro.
La cosa mas tonta del mundo, en lugar de usar (ram and 0x3fff) estaba usando (ram and 0xc000), justo lo contrario, y lo tenía delante de las narices, y mi cerebro decía que no podía estar ahí el fallo, y por ello, he pasado horas pensando que ya no valgo para esto de la programación.

Nada mas, solo quería soltarlo, y liberarme, por que manda "buebo", lo que hacen los años en el "coco".
