Último mensaje de la página anterior:
Buenos días,Este mensaje COMPLEMENTA al anterior ...
Con el fin de describir el 'problema' que se presenta al querer diseñar una expansión de memoria externa (en cartucho),
centré toda la atención en el 50% del trabajo de la SAM, es decir, en la parte que dedica a generar las direcciones de
memoria a fin de que el VDG encuentre en el bus de datos los bytes 'necesarios' para generar cada 'cuadro' de pantalla.
Creo que ya se ha explicado que tanto la CPU como el VDG necesitan acceder a la RAM del sistema, la primera para ejecutar
código y la segunda para generar imágenes. Para evitar colisiones se diseñó un sistema en el que la CPU accede a la RAM en
el semiperíodo positivo del reloj mientras que la VDG lo hace en el otro semiperíodo.
Tras la parrafada de ayer, me doy cuenta de que me falta 'entender' que la SAM, en el semiciclo positivo del reloj lee el
bus de direcciones, que ha sido llenado por la CPU, y multiplexa los 16 bits de direcciones hacia la DRAM de la misma forma
que se indicó para la VDG. De esta forma nos garantiza que la DRAM y por tanto los pines Z0-Z7 con sus /RAS/CAS tendrán
la información necesaria para ambos clientes.
Esto nos permite afirmar que si sustituimos la entrada de 16 bits del circuito de Bob Hall por el resultado de desmultiplexar
Z0-Z7 mediante /RAS/CAS podremos utilizar su circuito sin problemas.
Como comentario, en el otro semiciclo, lo que hace es utilizar el bit mas bajo del bus de direcciones (A0) como reloj para
generar el resto de direcciones que, en el diagrama de bloques se indican como B0-B15 y que son multiplexadas en sus salidas
hacia la RAM (pines Z0-Z7)
No sé hasta donde llegaremos con este intento, pero de momento, para mí, ya me compensa haber aprendido el funcionamiento
interno de una parte 'oscura' de nuestro Dragón
saludos
pere