Hola acá les dejo el ASM, falta ajustar bien los tiempos, digamos que tengo que ponerme con la calculadora a sumar o quitar NOP en varias partes.
creo que está mas o menos explicado pero se puede hacer un resumen.
lo que pasa es que hay que estudiar las señales de sincronismo para entenderlo, pero digamos que empieza con el ciclo de preecualización del sincronismo vertical, que son 6 pulsos, luego las señales de sincronismo vertical propiamente, también 6 y luego las señales de postecualización también 6.
el registro contador_ver se encarga de contar los 6 pulsos de cada una de estas señales.
contador_lineas cuenta cada línea horizontal que son 262, pero el contador solo cuenta 252 ya que se utilizaron entre 9 y 10 en el sincronismo vertical.
contador_delay se utiliza en el bucle de retardo.
impar es un flag bit que está en el registro flags.
luego del sincronismo vertical se consulta si el campo es par o impar, ya que si es par se le debe sumar media línea de horizontal, en tiempo al principio del campo, si es impar salta directamente a la rutina de sincronismo horizontal y luego al tiempo de muestra de la imagen que son aproximadamente 52 uSeg,
ah me olvidaba de los pines gpio0 y gpio1 son los pines con los pulsos de referencia que van hacia el microcontrolador principal o de video.
luego de este tiempo se repite el bucle otras 251 veces más , ya de allí se consulta si es el final del campo impar, si es así se le suma la otra media línea que falta y se completa el ciclo.
y como dice Ariel: provisoria, ampliable y cuestionable
recibo sugerencias...
Edito: lo vuelvo a subir, ya que le corregí un par de errores de sintaxis