CPC6128 con FAT32
CPC6128 con FAT32
CPC6128 con soporte DSK desde FAT32.
Está basado en el original de 2011 de:
Renaud Helias <renaudhelias-arroba-gmail.com> --> http://www.cpcwiki.eu/index.php/FPGAmstrad
La razón de usar un core tan viejo y poco depurado, es por razones de compatibilidad con la FPGA del ZXUNO.
Nuestra FPGA es una Spartan 6 LX9, y la usada en el de Renaud, es una Spartan 3E, y lo hizo sobre la base XILINX.
Gracias a ello, convertirlo a LX9 ha sido "relativamente" sencillo. Como está basado en esquemas, y a la vez en un emulador Java, ha sido muy lioso buscar el porqué de cada cosa, para lograr que ande en el zxuno, pero mucho mas sencillo que empezar de cero.
Al menos, la base estaba ahí, solo era adaptar.
El core no es perfecto ni de lejos, hace su función, y es divertido de usar, pero no esperéis maravillas, ni una compatibilidad enorme con el CPC, que no la hay.
Si leéis el historial de la página de Renaud Helias (arriba) veréis la cantidad de horas (¿meses?) que lleva invertidos. Y esta versión se quedó en 2011, muchos años ya sin tocar.
Pero funciona, lo dicho, permite cargar cosas y experimentar. El mando de juegos no lo he probado, por que no tengo uno a mano, si falla, trataré de repararlo. El sonido es mono, solo funciona un canal, el otro está "al aire", y puede generar ruidos en amplificadores estéreo.
El sistema FAT32 es muy básico, falla mas que una escopeta de feria, y las tarjetas que admite se cuentan con los dedos de una mano, es cuestión de suerte.
Como no tenemos hardware suficiente en el ZXUNO, la selección del DSK a cargar es fija, siempre el "uno", o sea, el primer DSK que encuentre.
Una solución que he encontrado, a pesar de ser un "peñazo", es copiar el contenido entero del ZIP mencionado arriba, que de ese modo, siempre carga por defecto el "bouldash.DSK", y cuando queramos cambiar de juego, renombrar el DSK deseado como "bouldash.DSK" y copiar a la SD pisando el otro. Yo lo he estado haciendo así mientras depuraba. Me hice un simple proceso de comandos en el cual, arrastraba el DSK a probar sobre él, y me lo renombra y copiar directo a la SD. (aquí, aquellos que tengáis las SD con WIFI, si os funciona, saldréis ganando)
El teclado no va fino, y ademas, no está "españolizado", pero menos es nada, hace su función.
Si me veo con tiempo y ganas, iré probando cosas nuevas para mejorar, pero sabiendo que nuestro amigo Mcleod_Ideafix ya tiene un GATEARRAY funcional, seguir avanzando en este es una pérdida de tiempo.
Importante, que se me olvida: SOLO para los ZXUNO con SRAM de 2mb "externos", que es la versión que yo tengo. En realidad, funcionaría con 512k, pero entonces, no cargaría DSK. El core, coge el DSK completo y lo mete en la SRAM, y la forma en que lo hace, deja de lado los 512k.
Si hacemos números, con 512k sobraría, por que un DSK=191k y el CPC=64k RAM+64k EXTRAS+64 ROMS, pero Renaud, no se complicó la cabeza, y digamos que fraccionó los 2megas en cuatro zonas, una para el DSK y otra para las ROM, otra para RAM, y la cuarta sobra, no se usa, así que, el direccionamiento que hace, es complicado de reducir a solo 512k
Convertir a los 2mb internos es muy fácil, solo cambiar el UCF y recompilar, el finde lo hago, que entre semana toca trabajar.
Está basado en el original de 2011 de:
Renaud Helias <renaudhelias-arroba-gmail.com> --> http://www.cpcwiki.eu/index.php/FPGAmstrad
La razón de usar un core tan viejo y poco depurado, es por razones de compatibilidad con la FPGA del ZXUNO.
Nuestra FPGA es una Spartan 6 LX9, y la usada en el de Renaud, es una Spartan 3E, y lo hizo sobre la base XILINX.
Gracias a ello, convertirlo a LX9 ha sido "relativamente" sencillo. Como está basado en esquemas, y a la vez en un emulador Java, ha sido muy lioso buscar el porqué de cada cosa, para lograr que ande en el zxuno, pero mucho mas sencillo que empezar de cero.
Al menos, la base estaba ahí, solo era adaptar.
El core no es perfecto ni de lejos, hace su función, y es divertido de usar, pero no esperéis maravillas, ni una compatibilidad enorme con el CPC, que no la hay.
Si leéis el historial de la página de Renaud Helias (arriba) veréis la cantidad de horas (¿meses?) que lleva invertidos. Y esta versión se quedó en 2011, muchos años ya sin tocar.
Pero funciona, lo dicho, permite cargar cosas y experimentar. El mando de juegos no lo he probado, por que no tengo uno a mano, si falla, trataré de repararlo. El sonido es mono, solo funciona un canal, el otro está "al aire", y puede generar ruidos en amplificadores estéreo.
El sistema FAT32 es muy básico, falla mas que una escopeta de feria, y las tarjetas que admite se cuentan con los dedos de una mano, es cuestión de suerte.
Como no tenemos hardware suficiente en el ZXUNO, la selección del DSK a cargar es fija, siempre el "uno", o sea, el primer DSK que encuentre.
Una solución que he encontrado, a pesar de ser un "peñazo", es copiar el contenido entero del ZIP mencionado arriba, que de ese modo, siempre carga por defecto el "bouldash.DSK", y cuando queramos cambiar de juego, renombrar el DSK deseado como "bouldash.DSK" y copiar a la SD pisando el otro. Yo lo he estado haciendo así mientras depuraba. Me hice un simple proceso de comandos en el cual, arrastraba el DSK a probar sobre él, y me lo renombra y copiar directo a la SD. (aquí, aquellos que tengáis las SD con WIFI, si os funciona, saldréis ganando)
El teclado no va fino, y ademas, no está "españolizado", pero menos es nada, hace su función.
Si me veo con tiempo y ganas, iré probando cosas nuevas para mejorar, pero sabiendo que nuestro amigo Mcleod_Ideafix ya tiene un GATEARRAY funcional, seguir avanzando en este es una pérdida de tiempo.
Importante, que se me olvida: SOLO para los ZXUNO con SRAM de 2mb "externos", que es la versión que yo tengo. En realidad, funcionaría con 512k, pero entonces, no cargaría DSK. El core, coge el DSK completo y lo mete en la SRAM, y la forma en que lo hace, deja de lado los 512k.
Si hacemos números, con 512k sobraría, por que un DSK=191k y el CPC=64k RAM+64k EXTRAS+64 ROMS, pero Renaud, no se complicó la cabeza, y digamos que fraccionó los 2megas en cuatro zonas, una para el DSK y otra para las ROM, otra para RAM, y la cuarta sobra, no se usa, así que, el direccionamiento que hace, es complicado de reducir a solo 512k
Convertir a los 2mb internos es muy fácil, solo cambiar el UCF y recompilar, el finde lo hago, que entre semana toca trabajar.
- Adjuntos
-
- COREX_cpc.rar
- (113.79 KiB) Descargado 393 veces
Re: CPC6128 con FAT32
Un par de cosas que se me han pasado:
Si queréis probar el Ensamblador en ROM que carga por defecto (el MAXAM), usad "|MAXAM" para modo 1 o "|MAXAM,2" para modo 2.
La tecla "|" depende de cada teclado, pero en el mio es la "{" (o "´") junto con "SHIFT"
Por otro lado , comentar que el LED rojo indica que se ha introducido una SD y que ha sido reconocida. Si no se enciende, ya sabéis por que puede ser.
Había mas funciones para el LED, como parpadear cuando carga, pero he preferido el de SD introducida.
En la versión original, como tiene 8 leds, los usa para hacer una animación cuando carga y se quedan fijos en el DSK elegido, a modo de número binario.
Si queréis probar el Ensamblador en ROM que carga por defecto (el MAXAM), usad "|MAXAM" para modo 1 o "|MAXAM,2" para modo 2.
La tecla "|" depende de cada teclado, pero en el mio es la "{" (o "´") junto con "SHIFT"
Por otro lado , comentar que el LED rojo indica que se ha introducido una SD y que ha sido reconocida. Si no se enciende, ya sabéis por que puede ser.
Había mas funciones para el LED, como parpadear cuando carga, pero he preferido el de SD introducida.
En la versión original, como tiene 8 leds, los usa para hacer una animación cuando carga y se quedan fijos en el DSK elegido, a modo de número binario.
Re: CPC6128 con FAT32
Muchas gracias por el esfuerzo. Entiendo que es el modelo de 128K, ¿no? Habrá que echarle un vistazo.
Re: CPC6128 con FAT32
Yes, el 128, con identificación "ORION". Supongo que sabréis que según el país, se llamaba de un modo u otro. La ROM era la misam o parecida, pero según como se puentearan unas conexiones en la placa, al iniciarse aparecía ORION, SCHNEIDER, AMSTRAD y no sé si había alguna mas.
Este esta "puenteado" para que salga ORION. Lo podía haber cambiado, pero de "serie" viene así, y no me parece mal.
Este esta "puenteado" para que salga ORION. Lo podía haber cambiado, pero de "serie" viene así, y no me parece mal.
Re: CPC6128 con FAT32
Pues una muy buena noticia, habrá que poner a prueba esa compatibilidad. ¡gracias por el curro!
Re: CPC6128 con FAT32
No es muy buena, pero tampoco muy mala ¿50%?. De momento ya he probado como unos 20 juegos y 15 han funcionado. Por ejemplo, el "Three weeks in paradise" funciona, pero el CPM nada, naranjitas de la china. Qué pena, falla una parte importante, el CPM, pero seguro que hace un uso muy exhaustivo de los 128k y algo no le gusta.Uto escribió:Pues una muy buena noticia, habrá que poner a prueba esa compatibilidad. ¡gracias por el curro!
Como detalle curioso, funciona mi propio juego, el Abracadabra
![Razz :P](./images/smilies/icon_razz.gif)
Re: CPC6128 con FAT32
Thanks. No se merecen. UNO hace lo que debe hacer (jeje, que juego de palabras)yombo escribió:Grande! Jepalza
Bromas aparte, ha contactado Renaud Helias conmigo hace un momento, y me ha dicho, que si pongo la ROM en ESPAÑOL del CPC6128, funciona en Español, o sea, recuperamos la "Ñ" ¡Y ES CIERTO!
La cosa mas simple, no había caído en la cuenta.
Si cogéis las ROM españolas de aqui ->
http://www.cpcwiki.eu/index.php/ROM_List (la página me la ha pasado Renaud)
en la línea donde pone "CPC 6128 OS Spanish" y renombramos la ROM "basic6128(spanish)" por "BASIC1-1" y la de "os6128(spanish" por "OS6128" a secas (con extensiones .ROM, claro) obtenemos la "Ñ" y el teclado se ajusta a nuestra lengua.
Ademas, me ha dicho, que estamos obligados a desfragmentar la SD cada vez que borramos, para evitar el problema de cargar ficheros borrados.
Re: CPC6128 con FAT32
Gracias Jepalza, una pena que no funcione con un 512K normal para probarlo.
Última edición por rcmolina el 25 Nov 2017, 09:35, editado 1 vez en total.
Re: CPC6128 con FAT32
Me lo podría poner como meta, tratar de reducir el espacio de direcciones a 512k. No sería difícil si estuviera hecho en VHDL o Verilog, pero estándo en Esquemas es un barullo tremendo. Si añades un simple pin al esquema principal, luego, debes ir retro-buceando en todos los demas módulos/esquemas, para ir añadiendo las rutas hasta llegar al fondo. Esto que parece fácil explicado, hacerlo lleva horas, por que no "escribes", sino que "diseñas", tienes que ir dibujando pines de entrada o salida, "alambres" de unión entre pines o incluso meter electrónica (puertas lógicas) donde necesitas dividir o mezclar la señal, y acabas con la cabeza dando vueltas.
Como ya he dicho por ahí arriba, este core no aprovecha toda la ram, por que no lo necesita. Divide la SRAM de 2mb en cuatro zonas de 512k de la forma mas simple del mundo: A20 para el disco DSK, A19 para las ROMS y A18 para la RAM, así de simple. Para encajonar todo en 512k, necesitaría algo como : A18 para disco, A17 para ROMS y A16 para RAM. DIcho as suena fácil, hasta que te pones con ello.
Ya lo intenté en el pasado, cuando aún no teníamos la ampliación a 2mb, y tiré la toalla, acabé loco.
Como ya he dicho por ahí arriba, este core no aprovecha toda la ram, por que no lo necesita. Divide la SRAM de 2mb en cuatro zonas de 512k de la forma mas simple del mundo: A20 para el disco DSK, A19 para las ROMS y A18 para la RAM, así de simple. Para encajonar todo en 512k, necesitaría algo como : A18 para disco, A17 para ROMS y A16 para RAM. DIcho as suena fácil, hasta que te pones con ello.
Ya lo intenté en el pasado, cuando aún no teníamos la ampliación a 2mb, y tiré la toalla, acabé loco.