radastan escribió:Por cierto, Mc Leod, por pura ansia de saber: ¿cómo se podría implementar un modo de vídeo de 256x128 pixels y 16 colores por pixel?
Usarías el mismo tipo de contador horizontal que se usa en el Spectrum, con los mismos valores para borde izquierdo, derecho, etc. Lo mismo para el contador vertical (tiene que seguir contando 312 líneas). Lo único que el borde superior e inferior ahora serán más gordos porque hay 128 líneas y no 192. Como la pantalla está estirada, el borde izquierdo y derecho también serán más gordos, y en definitiva, estarán en proporción.
Si lo que quieres es que los bordes no sean tan gordos y que el área active ocupe más, entonces hay que hacer el mismo tipo de cuentas que hemos hecho otras veces, y usar una frecuencia que no sea 7MHz.
Para 4bpp, lo que se hace es que se lee la memoria en cada dos ciclos de reloj de pixel. El byte leído te vale para esos dos ciclos. Con un multiplexor usando como entrada de selección la señal del reloj de pixel dividido entre 2 vas escogiendo los 4 bits más significativos o los 4 menos significativos según el valor de la entrada de selección. La salida en 4 bits del multiplexor se pasaría por un circuito análogo al que tiene el Spectrum +2A para generar los valores RGB analógicos a partir de IRGB TTL.
Si quieres no tener contienda, entonces lo que se hace es hacer oversampling en el circuito de lectura de memoria/generación de píxeles y hacerlo que funcione a 4 veces la velocidad de reloj de pixel (esto es, 28MHz). De esa forma, necesitas leer un byte cada 8 ciclos de reloj de este nuevo reloj y podrás aprovechar los huecos que deja el Z80 en los que no usa el bus, para leer este dato. En el modo de 2bpp, para no tener contienda, esta parte del circuito de video va a 14MHz.
En el euroconector, hay una entrada (no recuerdo cuál es) a la que hay que darle una tensión determinada para indicarle que la señal que se está emitiendo es anamórfica (16:9). En caso contrario, la tele usa la opción que tenga por defecto, o bien conmuta a 4:3 .