Ampliación de Memoria para DRAGON - REABIERTO!

jltursan
Mensajes: 1830
Registrado: 20 Sep 2011 13:59
Agradecido : 42 veces
Agradecimiento recibido: 132 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor jltursan » 12 Sep 2017 17:24

Último mensaje de la página anterior:

Caray, yo es que de electrónica digital, poco, muy poco. A ver si con tus explicaciones complementando el artículo acabo entendiendo el funcionamiento. Aprendido uno, poco debe diferenciarse de otros aplicables a otras máquinas.

¡Gracias Pere por la dedicación y el esfuerzo de explicarlo tan detalladamente!

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 12 Sep 2017 17:58

jltursan escribió:Caray, yo es que de electrónica digital, poco, muy poco. A ver si con tus explicaciones complementando el artículo acabo entendiendo el funcionamiento. Aprendido uno, poco debe diferenciarse de otros aplicables a otras máquinas.
¡Gracias Pere por la dedicación y el esfuerzo de explicarlo tan detalladamente!

Estoy seguro de que el principio es el mismo, lo que sucede es que para Dragón nos conviene hacer un gestor de memoria lo mas
parecido posible al que usa CoCo3 internamente en su chip GIME
Por cierto, este hilo se abrió para comentarios sobre ampliaciones x Dragón, por lo que cualquier duda que te surja, no dudes un instante
y plantéala aquí, estoy seguro que hay bastantes colegas que podrán solucionarlas todas!

Nunca había leído esta versión Mark I y la verdad es que me ha aclarado un montón de dudas que me surgieron al leer directamente
la versión Mark II. En su momento no tenía acceso a las "Dragon Update" anteriores a diciembre de 1988.
A ver si entre todos somos capaces de llegar a entender el esquema que he subido ahora, tan bien como el anterior.
Todavía nos queda bastante por recorrer tras este segundo paso ...
A mi me gustaría 'emular' toda la circuitería, SRAMs incluidas en un CPLD y que la ampliación solo tuviera ésto:
el CPLD y un chip grandote con 2MB de SRAM, pero dejemos a parte los deseos y pisemos el suelo con ambos pies ;-)
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 13 Sep 2017 00:11

Hola,
me ha parecido interesante poneros un link a una página, como no, de Ed Snider, que fabrica y vende un monstruo de
módulo para el CoCo pequeñin, el MC-10 o Matra Alice como le llaman algunos ... Si, esta máquina que viene con 4K de RAM solamente!
No digo mas sobre ella, pero os aconsejo que le echéis una ojeada.
ESTO es lo que tenemos que hacer nosotros!
https://sites.google.com/site/thezippst ... -supercart

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 14 Sep 2017 16:37

pser1 escribió:Hola,
me ha parecido interesante poneros un link a una página, como no, de Ed Snider, que fabrica y vende un monstruo de
módulo para el CoCo pequeñin, el MC-10 o Matra Alice como le llaman algunos ... Si, esta máquina que viene con 4K de RAM solamente!
No digo mas sobre ella, pero os aconsejo que le echéis una ojeada.
ESTO es lo que tenemos que hacer nosotros!
https://sites.google.com/site/thezippst ... -supercart
saludos
pere

Parece que nadie ha visitado esta página, de otra forma creo que alguno habría comentado lo que vió.
Espero que ésto no "asuste" a los compañeros que siguen el tema de la ampliación de memoria, por lo menos no era mi intención.
Lo que está claro es que cuando hay ganas, se hacen placas impresionantes. ¿Quien le iba a decir al Matra Alice que iba a tener
un mapeador de memoria (de 16k) que le permite usar 512k de SRAM y 512k de EPROM?
Y encima le ha metido un chip de sonido de tres canales, dos conectores para joysticks/gamepads ... demasiado!
saludos
pere

Avatar de Usuario
wilco2009
Mensajes: 1583
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 36 veces
Agradecimiento recibido: 76 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor wilco2009 » 14 Sep 2017 16:49

Trasladar el diseño de ese interface a un Dragon no debería ser excesivamente dificil. Quizás la parte más delicada es la de la ampliación de memoria, pero el resto es un copia y pega, cambiando la parte de decodificación de puertos.

Yo la verdad es que ando bastante liado y se me hace cuesta arriba leerme la descripción de la ampliación, pero si tenéis claro como funciona el cartucho de ampliación la adaptación con una CPLD es muy sencilla, solo habría que ponerlo en forma de ecuaciones lógicas y adaptar en base a ello las conexiones de la CPLD y hacer la descripción hardware correspondiente.

La parte de los joysticks es casi trivial, aunque habría que saber cuales son los puertos estándar de joystick para el Dragon.
En cuanto al YM2149, nunca lo he tocado, pero supongo que no debe ser muy diferente de un AY. Si os vale un AY se puede copiar el esquema de cualquier interface AY de un Spectrum y adaptar las ecuaciones de la CPLD para decodificar el puerto que se use habitualmente en un Dragon. Si el estándar en Dragon es el YM, ya habría que estudiarse el chip, o buscar un esquema ya hecho aunque fuera para otro ordenador.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

jltursan
Mensajes: 1830
Registrado: 20 Sep 2011 13:59
Agradecido : 42 veces
Agradecimiento recibido: 132 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor jltursan » 14 Sep 2017 17:01

El YM2149 es clavado al AY-3-8910, hasta en el patillaje.

Ya conocía el interfaz; pero desde el principio me pareció surrealista que se montara eso en un MC-10 y no se tomara como objetivo un CoCo/Dragon (teniendo en cuenta que hablamos del señor Snider), ya pasó antes con la expansión de 128KB. El MC-10 tiene severas limitaciones gráficas, en este hilo hablamos profusamente del tema .

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 14 Sep 2017 17:51

jltursan escribió:El YM2149 es clavado al AY-3-8910, hasta en el patillaje.
Ya conocía el interfaz; pero desde el principio me pareció surrealista que se montara eso en un MC-10 y no se tomara como objetivo un CoCo/Dragon (teniendo en cuenta que hablamos del señor Snider), ya pasó antes con la expansión de 128KB. El MC-10 tiene severas limitaciones gráficas, en este hilo hablamos profusamente del tema .

Bueno, de lo que estamos hablando es de los Estados Unidos de NorteAmérica
Y en este continente Dragón apareció accidentalmente como Tano-Dragón y no se vendió una papa.
Creo que se están vendiendo mas ahora como pieza de colección que como ordenador para jugar ...
Está claro que el MC-10 es considerado como el benjamín de Tandy y los genios de hardware como Darren Atkinson
han producido verdaderas maravillas para él.
Dragón es un subproducto y a pesar de ofrecerle a Ed Snider drivers / programas ... lo que haga falta, sus ventas en este
sector son mínimas comparado con las que hace con los usuarios de CoCo1-CoCo2 y CoCo3, vale y MC-10
Y por lo menos fabrica los módulos compatibles CoCo-Dragón que ya es de agradecer!
En Europa NO hay nadie dispuesto a currar en el campo hardware, fijaros que las controladoras de lafumat se vendieron
bien en su tiempo por toda Europa.
Con la llegada del CoCo-SDC (diseñado por Darren Atkinson) se acabó la necesidad de disqueteras :-(
Nuestra maravilla, diseñada por José Leandro y fabricada por wilco2009 NO tuvo ninguna acogida en el grupo europeo
de WorldOfDragon. La gente tira del SDC y pasa de los floppies (con razón, para que sufrir!)
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 14 Sep 2017 18:01

wilco2009 escribió:Trasladar el diseño de ese interface a un Dragon no debería ser excesivamente dificil. Quizás la parte más delicada es la de la ampliación de memoria, pero el resto es un copia y pega, cambiando la parte de decodificación de puertos.
Yo la verdad es que ando bastante liado y se me hace cuesta arriba leerme la descripción de la ampliación, pero si tenéis claro como funciona el cartucho de ampliación la adaptación con una CPLD es muy sencilla, solo habría que ponerlo en forma de ecuaciones lógicas y adaptar en base a ello las conexiones de la CPLD y hacer la descripción hardware correspondiente.
La parte de los joysticks es casi trivial, aunque habría que saber cuales son los puertos estándar de joystick para el Dragon.
En cuanto al YM2149, nunca lo he tocado, pero supongo que no debe ser muy diferente de un AY. Si os vale un AY se puede copiar el esquema de cualquier interface AY de un Spectrum y adaptar las ecuaciones de la CPLD para decodificar el puerto que se use habitualmente en un Dragon. Si el estándar en Dragon es el YM, ya habría que estudiarse el chip, o buscar un esquema ya hecho aunque fuera para otro ordenador.

Hola,
nosotros NO necesitamos el tema de joysticks ya que Dragón tiene dos conectores de serie. El MC-10 viene sin ninguno.
En cuanto a sonido, me consta de que hay algunas personas como John W LInville que estan fabricando un cartucho que lleva DOS
chips generadores de tres canales cada uno ... y alguna otra cosa parecida.
Ciertamente el chip usado para el MC-10 es absolutamente compatible con el AY-3-8910, pero se dice que es mejor.
Lo que debemos tener claro es que añadirlo implica crear drivers o algún programa que facilite su uso desde ensamblador/basic
Ya comenté el tema CPLD anteriormente, mi expansión ideal SOLO contendría el CPLD y un conector al que cada uno le pudiera
meter como una tarjeta (carta hija) la expansión que le guste mas (128k-256k ... 2Mb), pero para ello hemos de tener muy claras las
funciones / operaciones que debe hacer cada parte del circuito.
Si seguimos adelante (y no nos rajamos), estoy seguro que haremos algo verdaderamente útil!
Aquí hay gente muy buena en el campo de la electrónica, del diseño y de la programación. Juntos puede ser un equipo imparable -thumbup
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 14 Sep 2017 18:15

Ya puestos voy a intentar resumir la impresión que me ha dado el primer circuito que hemos visto.
Este al que su autor (Bob W Hall) llama Mark I
- Puntos a favor:
1) Parece simple incluso para montaje con chips de la época
2) Es versátil en cuanto a configuración se refiere
3) Admitiría gestionar hasta 1Mb de memoria SRAM
4) Se puede usar desde Basic con POKE, como le gusta a Luis y desde ensamblador sin problemas
- Puntos en contra:
1) Los bloques son de 4k y esto no permite su uso al estilo CoCo
2) Me parece 'molesto' tener que deshabilitar el Gestor para cambiar los bancos mapeados
3) Solo tiene una task, es decir la CPU y VDG (gráficos) acceden a los mismos bloques de memoria, cuando en el CoCo3
y sobre todo para usar el OS-9 Level II hay que separar acceso de CPU de acceso de VDG a memoria, que dicho sea
de paso se produce el primero en el semiperíodo positivo del reloj y el VDG en el semiperíodo negativo (cero).

De hecho si alguien quiere utilizarlo fuera de OS-9 el punto negativo 3 casi no tiene importancia.
Esto evidentemente es mi opinión personal, me gustaría escuchar otras para ver hasta donde hay acuerdo o no!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 15 Sep 2017 00:46

Hola compañeros ...
me temo que llegamos demasiado tarde a la función. Ved esta página, por favor!
http://archive.worldofdragon.org/phpBB3 ... f=5&t=5629
Si, está en inglés pero no tiene desperdicio ...
saludos
pere

jltursan
Mensajes: 1830
Registrado: 20 Sep 2011 13:59
Agradecido : 42 veces
Agradecimiento recibido: 132 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor jltursan » 15 Sep 2017 09:28

Ojala siempre se llegara tarde de esta manera :-)

Parece que el NitrOS no soporta (todavía) el interfaz SPI, digo yo que acabarán cayendo drivers tarde o temprano...

Avatar de Usuario
wilco2009
Mensajes: 1583
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 36 veces
Agradecimiento recibido: 76 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor wilco2009 » 15 Sep 2017 11:26

Pues entonces perfecto. ¿para qué reinventar la rueda?
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 15 Sep 2017 11:45

jltursan escribió:Ojala siempre se llegara tarde de esta manera :-)
Parece que el NitrOS no soporta (todavía) el interfaz SPI, digo yo que acabarán cayendo drivers tarde o temprano...

Estoy en contacto con Tormod (en la web WorldOfDragon) y, para este proyectazo, si hace falta gente para programar drivers para SPI
ya me gustaría meterme, así refrescaré los ejercicios hechos hace años con el microcontrolador Dragon12+ (derivado del 6809)
con interfaces SPI, I2C y CAN ... una maravilla que todavía se utiliza en laboratorios de universidades americanas y en la automoción.
En fin, lo MAS importante es que sirve para los Dragon32, o sea que NO hace falta pasar primero a 64k.
Esto tenía que haberlo supuesto ya que, como comenté, Darren Atkinson creó la ampliación a 128k para el Matra Alice (MC-10)
que viene de serie con 4K y que 'cuesta' pasar a 8k. Requiere cirugía mayor y mucho soldar chips uno sobre otro (piggybacking)
En fin, ya tenemos lo que queríamos y encima el zócalo EPROM que se ve vacío soporta una M27C512 o sea 64k ... lo mismo que
nuestra recién estrenada controladora y encima será seleccionable la ROM por software!
Ya iremos comentando que mas 'sorpresas' nos depara este módulo.
saludos
pee

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 15 Sep 2017 11:49

wilco2009 escribió:Pues entonces perfecto. ¿para qué reinventar la rueda?

Tienes razón, una vez inventada la rueda, ahora lo que queda es desarrollar los mejores neumáticos que se puedan hacer
para que se convierta en un verdadero todo-terreno:
- 512k para Basic/ensamblador
- 512k para OS-9/NitrOS-9 Level II, algo que solo iba para CoCo3
- 512k para Fuzix, un verdadero sistema operativo Unix con multitarea y multiusuario (incluso remoto)
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 17 Sep 2017 00:11

Visto el módulo que está desarrollando Tormod Volden, publicado en WorldOfDragon, se queda este hilo en SUSPENSIÓN
pendiente de ver como evoluciona el MOOH.

HILO REABIERTO

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON

Mensajepor pser1 » 23 Sep 2017 00:12

Hola compañeros,
tras unos cuantos mensajes cruzados con Tormod Volden, creo que DEBEMOS retomar el tema de hacernos
una ampliación INTERNA de memoria, ya que la externa presenta una seria dificultad que parece insalvable ...
En el CoCo3 el chip GIME hace las veces de Gestor de memoria y de gestor de Gráficos, es decir asume la función de
nuestra SAM pero NO tiene que lidiar con el 6847 (generador de vídeo que nos ha tocado)
Así que PUEDE mapear cualquier área de memoria a la zona de gráficos, sin problema alguno, para él toda la
memoria es 'alcanzable', desde $0000 hasta $1FFFF (para 128k) o hasta $7FFFF (en el caso de 512k)
PERO nuestro Dragón tiene la SAM que debe ir enviando direcciones de memoria a la DRAM y ésto lo hace multiplexando
la dirección global de 16 bits (64k) en dos mitades, los 8 bits bajos se envían con la señal RAS (Row Address Strobe), los 8 bits altos
van con la CAS (Column Address Strobe) que además se aprovecha para ir refrescando la DRAM, y ésto lo lleva a cabo usando un bus de 8 bits
que podéis ver en la hoja de datos de la SAM. Son los pines llamados Z0 hasta Z7 (pines 28 a 35)
Estos pines direccionan la memoria que el VDG puede leer para mostrar gráficos, así que si queremos disponer de varias
áreas para guardar pantallas y luego simplemente seleccionarlas ... NO podemos hacerlo desde el cartucho de expansión
ya que allí solamente está el bus de direcciones de la CPU (A0-A15) -banghead

Este es el problema: La SAM no genera valores para el bus de Direcciones. Simplemente 'escucha' el bus de direcciones (A0, para sincronizarse).
Los 16 bit que envía, los pone en ciclos de RAS/CAS de 8 bits cada uno, directamente a las DRAM que internamente demultiplexan los dos bytes.
Esto implica que si queremos reemplazar las DRAM internas por SRAM (que tienen un bus de 16 bits) necesitamos insertar un "latch" para guardar
el byte bajo que viene primero (lsb) mientras el byte alto (MSB) sale de la SAM. Así se indica en la hoja técnica de dicho chip.
Puede verse en la página 302 del libro "Inside the Dragon" al final del párrafo "Memory Size", nota con asterisco (*)

Por lo tanto, queda REABIERTO el hilo y tendremos que estudiar la versión Mark II de Bob W Hall, para aprender como reducir la circuitería
adicional a las SRAMs ...

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2000
Registrado: 08 Dic 2012 18:34
Agradecido : 190 veces
Agradecimiento recibido: 161 veces

Re: Ampliación de Memoria para DRAGON - REABIERTO!

Mensajepor pser1 » 23 Sep 2017 09:11

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 -thumbup
saludos
pere


Volver a “Hardware Dragon”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados