La idea de una sección tipo snippets me parece genial. Cualquier cosa que sean pequeños tutoriales, fragmentos de código o similares creo que irían muy bien a más de uno.
Bueno, el caso es que ya existe :
SnippetsEntiendo que cualquier lenguaje de programación vale, aunque el ensamblador es el más propicio para estos divertimentos
Como veo que es tiempo de arremangarse, voy a subir los snippets que conservo desde tiempos inmemoriales y que recopilé de los antiguos foros. Se agradecería; eso sí, que todo el que tenga una rutinilla infalible que quiera compartir, la publique para uso y disfrute de los demás.
Y lo del VBlank tambien
¡Agh!, con la matada que me metí a escribir en el curro...
si hay alguna forma de averiguar el estado de la VDP o hay que realizar el retrazado para curarse en salud.
Um, digamos que el retrazado no eliges tú cuando sucede. El retrazado tiene lugar cada 1/50 de seg. en las máquinas PAL y eso es algo no controlable, lo único que puedes hacer es conseguir situarte inmediatamente después del mismo para saber en que momento se está ejecutando tu código, esto lo puedes conseguir de dos formas :
1) Como tú dices, si usas HALT, el programa se detendrá hasta que reciba el aviso de retrazado (y eso no es del todo cierto
) y así la siguiente instrucción al HALT ya sabrás que se ejecuta al comienzo del mismo; este caso es una espera pasiva. Otra variante es la de colocar tu bloque de código en la interrupción del VDP, también se ejecutará al comienzo y cada 1/50 seg.
2) Puedes quedarte consultando como loco en un bucle el bit 7 del registro de estado ($99) y cuando este valga 1 es que acaba de producirse un retrazado, sales del bucle y continuas ejecutando instrucciones. Esta es una espera activa y la verdad, es poco recomendable