radastan escribió:Mi proposición es una pantalla de resolución 128x128 pixels, donde cada pixel realmente es de 2x1 respecto al ZX Spectrum (vamos, que son píxeles alargados). Es algo muy similar al modo 0 de los amstrad CPC. Si se añade posibilidad de poder elegir los 16 colores por una paleta, mucho mejor.
Pero... ¿no habíamos quedado en 256x128?
radastan escribió:Creo que lo conveniente es hacer lineal la pantalla, y dejarse de entrelazados, al igual que hacer que cada pixel ocupe 4 bits correlativos y haya dos por byte.
A nivel de hardware da exactamente igual una cosa que otra, pero a nivel de software no. Pero vamos: las rutinas de sprites se resentirán.
-- Actualizado 31 Ene 2014, 20:40 --
wilco2009 escribió:No lo acabo de entender. ¿Dónde se mapearia la memoria de video de esa tarjeta?. En el bus no disponemos de señales para deshabilitar la RAM interna.
¿quizás en la zona de la ROM?
No, mapear no se mapea en realidad en ningún sitio. El Spectrum no sabe de este nuevo modo de video, y la ULA hace lo de siempre.
Lo que se hace es utilizar una técnica llamada "mirroring": consiste en que el dispositivo externo "espía" el bus buscando cuándo la CPU escribe a memoria RAM, en un determinado intervalo, y cuando eso ocurre, copia la dirección y el dato que se escriben y lo vuelca a su vez en una memoria propia. Es esa memoria la que después es leída por el dispositivo externo interpretándola a voluntad.
El dispositivo SPECTRA, de Paul Farrow, se basa de hecho en el mismo principio. Si dicho dispositivo estuviera "abierto", podría implementar este modo "Radastaniano" en ella.
-- Actualizado 31 Ene 2014, 20:44 --
na_th_an escribió:El único problema que veo es de sincronismo ¿hay señal de interrupción en el bus de expansión? ¿Puede "ganarle" esta señal a al ULA? ¿En caso contrario, puede usarse la int de la ULA para gobernar esta "tarjeta externa"?
Sí, sí, y sí. De hecho, de hacerla, se hará como "ULA esclava", sincronizada con la interrupción de retrazo vertical. Espero que salga bien con esa sincronización. SPECTRA usa como señal de sincronismo la horizontal, y es por eso que sólo funciona en los modelos 16K/48K/Plus. En el resto de modelos no está disponible esa señal.