En el SpeccyBob, que creo que es anterior al badalog (al menos lo descubri antes) estan los esquemas, para hacerlo con logica de la serie 74...
Hace poco, encontre la version de 128KB del SpeccyBob, el caso es que me puse mas o menos a escribir el codigo para describir el funcionamiento, con ecuaciones, y la verdad, no me salieron demasiados flip flops, al menos no demasiados, como para escribir la parte "grafica", y los divisores de frecuencia, que activan las diversas señales, aunque no llege a escribir los flip flop tipo JK, el mayor problema, era que ya me estaba quedando sin patillas, de las 38 disponibles.
Lo hize solo, como posibilidad, de comprarme un chip para poder programarlo y ver si era factible hacer el Speccybob con mucha menos circuiteria, y escribir lo mas complicado y que mas chips tenia e integrarlo en el mismo chip.
Pero no tengo, el suficiente material, como para poder hacerlo completamente, tengo que buscar una tienda en donde poder comprar las piezas, y hacer la "lista de la compra". Lo que me faltaria es tiempo para poder hacerlo
Asi de hardware me gustaria hacer algo, pero por falta de tiempo, siempre lo voy dejando, en la uni aprendi VHDL, y los ficheros de programacion de las GALs de DivIDE son faciles de leer (el que contienen unicamente 0 y 1)
---
Como ULA+ o similar, yo lo haria mas en placa de expansion, con memoria RAM, en la que se volcase el contenido de la memoria fisica del Spectrum en un chip de 16KB de RAM, para guardar la memoria de video basica y la Shadow.
Tendria que tener el generador de reloj.
Generador de interupciones cada 69888 o 70908 T-States Spectrum 48K/128K (sin/con shadow ram, por esto son las 16 KB).
Lectura de teclado (40 flip flops) con ayuda de un PIC para leer desde un puerto PS/2 (por aprobechar software)
Mapeado de puertos, de escritura y lectura solo el #FE, para leer desde cinta y teclado unicamente.
La memoria en la placa, seria una copia de la memoria en el Spectrum.
*** esto para usarlo en equipos con ULA dañada.
La idea de poner el generador de interupciones seleccionable, es para poder utilizar programas para un 128K en un 48K, con ciertas limitaciones, maximo 48K de memoria. (Otra idea peregrina, como la del scroll
)
-------
El por lo que no vea bien la gente el usar el scroll por hardware, puede ser porque en un Spectrum fisico, no se puede implementar facilmente.
La ULA+, comparada con la ULA, solo mejora en un emulador, en un Spectrum fisico, no hay variaciones entre utilizar un programa para una ULA o para una ULA+, simplemente ignora lo que se le manda a la ULA+, pero sigue siendo jugable.
No he mirado la documentacion de la ULA+, pero por lo que se, es como decirle al emulador, que cambie los colores que tiene que mostrar, por los que el programador, ha dicho.
Viene a ser lo que en PC a un RAMDAC, que tenian las primeras VGA, o el cambio de EGA/CGA a VGA, el MCGA no se de cabeza en que lugar quedaba.
Los 24 bytes que dices, se podrian omitir, haciendo que la ultima columna, no se lea, he visto el "efecto mario" pero no me he percatado del todo, del efecto.
La mejor manera que veo de implementarlo, es poner un retardo en lo que tardan dos bytes en ser interpretados
Como lo hace el SpeccyBob
paso 1 = Leer atributos
paso 2 = Leer bitmap y pasar el bitmap y los atributos, para interpretar
paso 3 a 8 = no hacer nada
Como lo deberia hacer el Scroll por hardware
paso 1 = Leer atributos
paso 2 = Leer bitmap
paso 3 = pasar el bitmap y los atributos, para interpretar
paso 4 a 8 = no hacer nada
Los tiempos de hardware, serian identicos, con este cambio (en la parte del Spectrum), en la pantalla estarian desplazados a la derecha (de 0 a 7 pixels)
Lo mas importante, la diferencia entre utilizar el hardware, y no utilizarlo, es que el Scroll, se mueve mas bruscamente.
Para que la gente vea la diferencia, programa el "efecto mario", en modo rotativo, es decir que haga un scroll completo con y sin el efecto (para ver la diferencia entre ambos), asi la gente no podra decir que es algo complicado de entender, y los "puristas" podran verlo como algo adicional como la ULA+
Si esta el SH, tendremos un Scroll suave. Si no esta el SH, tendremos un Scroll brusco.
Algo parecido al ULA+
Si esta renemos X colores mas al gusto en el Spectrum, si no lo esta tenemos los de siempre.
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.