Continuación de clon de Jupiter Ace

Taller de hardware y cacharreo general de aparatos eléctricos y electrónicos que no tengan un sitio propio.
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 28 Sep 2014, 17:58

Voy a retomar un antiguo proyecto de un clon del Jupiter Ace. Concretamente es éste, que flopping hizo un buen reportaje fotográfico.

http://www.retrowiki.es/rw10/e107_plugi ... .php?25327

Como se me da muy mal el manejo del orcad lo que he hecho ha sido pasar los esquemas a Eagle, voy a intentar hacer el ruteado manual, a ver si soy capaz. Por razones de presupuesto quiero meter todo en una placa de 10x10cm (la mitad que antes), con lo que seguro voy a meter componentes por las dos caras. Esto en throw hole es complicado, y en vez de zócalos hay que usar tiras de pines torneados para no entorpecer el soldado (ya que hay que soldar por ambas caras).

Aquí dejo los archivos que llevo.
Adjuntos
jupace.zip
(212.12 KiB) Descargado 351 veces

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Continuación de clon de Jupiter Ace

Mensajepor mcleod_ideafix » 28 Sep 2014, 19:35

antoniovillena escribió:...con lo que seguro voy a meter componentes por las dos caras. Esto en throw hole es complicado, y en vez de zócalos hay que usar tiras de pines torneados para no entorpecer el soldado (ya que hay que soldar por ambas caras).

Si planeas fabricar la placa mediante SeedStudio o similar, ¿por qué necesitas pines torneados, si los agujeros en la placa ya van metalizados?

Yo la verdad, de meterme en otro clon del ACE, lo que haría sería meter la mayor cantidad posible de lógica en una CPLD y así ahorrar espacio, chips y errores de rutado. Si las que son SMD las ves complejas de soldar, una XC9572XL la hay en encapsulado PLC-44, que con su correspondiente zócalo thru-hole, es más... "thru-hole friendly". Si cuando Altasser fundó Jupiter Cantab hubiera tenido acceso a los mismos recursos que tenía cuando estaba en Sinclair, de seguro hubiera usado una ULA en el Jupiter ACE.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 28 Sep 2014, 21:21

mcleod_ideafix escribió:Si planeas fabricar la placa mediante SeedStudio o similar, ¿por qué necesitas pines torneados, si los agujeros en la placa ya van metalizados?


Porque quiero hacer virguerías como tener chip a ambos lados de la placa. No se pueden soldar los chips directamente, porque al soldar un chip tapas los puntos de soldadura del chip que va debajo. Tampoco valen los zócalos convencionales porque ocupan mucha área, los zócalos torneados ocupan menos pero aún así creo que lo mejor es usar tiras de pines a modo de zócalos.

mcleod_ideafix escribió:Yo la verdad, de meterme en otro clon del ACE, lo que haría sería meter la mayor cantidad posible de lógica en una CPLD y así ahorrar espacio, chips y errores de rutado. Si las que son SMD las ves complejas de soldar, una XC9572XL la hay en encapsulado PLC-44, que con su correspondiente zócalo thru-hole, es más... "thru-hole friendly". Si cuando Altasser fundó Jupiter Cantab hubiera tenido acceso a los mismos recursos que tenía cuando estaba en Sinclair, de seguro hubiera usado una ULA en el Jupiter ACE.


No se trata de otro clon, sería una versión mejorada del prototipo anterior, vamos que quiero retomar un proyecto que dejé a medias. Sí, tienes razón, muy práctico no es pero quiero ponerme en serio a aprender a rutear y no se me ocurre otro proyecto mejor. Es un proyecto mediano (en cuanto a ruteado), ni tan grande como el clon Superfo ni tan pequeño como algo basado en CPLD. Y los componentes los tengo ya del prototipo anterior, no tengo que pedirlos. Si me sobra espacio seguro que le meto tu chip adaptador PS/2, pero creo que voy a andar muy justito.

-- Actualizado 28 Sep 2014, 20:26 --

Por cierto, tú tenías algo hecho en Verilog para la placa OLS. ¿Se podría adaptar para que funcionase en el ZX-Uno? Yo tenía un emulador de spectrum para Jupiter Ace, me gustaría trastear un poco con él en hardware real (cargar algo con por el puerto EAR y cosas así).

http://www.worldofspectrum.org/forums/s ... hp?t=40812

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Continuación de clon de Jupiter Ace

Mensajepor mcleod_ideafix » 28 Sep 2014, 21:41

antoniovillena escribió:Por cierto, tú tenías algo hecho en Verilog para la placa OLS. ¿Se podría adaptar para que funcionase en el ZX-Uno?

Por supuesto. Sería bastante sencillo, y podría meterle el mod de color que se publicó en su momento para el ACE :)
Sólo necesito tiempo para hacerlo :( y en estas primeras semanas de curso, me temo que no dispongo de tiempo para cacharrear como quisiera. Aparte, el Jupiter ACE fue mi primera descripción en Verilog y... bueno, digamos que deja mucho que desear en cuanto a modularidad :D Es hora de refactorizarlo, pero sí, ya tenía pensado que fuera un core más para el ZX-Uno.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 28 Sep 2014, 21:55

mcleod_ideafix escribió:Por supuesto. Sería bastante sencillo, y podría meterle el mod de color que se publicó en su momento para el ACE :)
Sólo necesito tiempo para hacerlo :( y en estas primeras semanas de curso, me temo que no dispongo de tiempo para cacharrear como quisiera. Aparte, el Jupiter ACE fue mi primera descripción en Verilog y... bueno, digamos que deja mucho que desear en cuanto a modularidad :D Es hora de refactorizarlo, pero sí, ya tenía pensado que fuera un core más para el ZX-Uno.


Yo le metería el MOD de color de Bascolace, más que nada porque hay más juegos potenciales (todos los de ZX Spectrum que sean 100% BASIC y empleen UDG en lugar de DRAWs y PLOTs). Del mod de color que se publicó no tengo ni idea pero me da a mí que no vamos a encontrar muchos juegos que lo soporten. No sé si te acuerdas de la demo que puse en el emulador de Jupiter Ace (pulsa F7 para cambiar entre blanco/negro y color).

http://jupiler.retrolandia.net/ace?bustout.tap

Vendría muy bien para probar el sistema que tiene la Spartan 6 para probar distintos cores en la misma ROM, a ver cuando Superfo termina el ruteado del segundo prototipo.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Continuación de clon de Jupiter Ace

Mensajepor mcleod_ideafix » 28 Sep 2014, 22:28

antoniovillena escribió:
mcleod_ideafix escribió:Por supuesto. Sería bastante sencillo, y podría meterle el mod de color que se publicó en su momento para el ACE :)
Sólo necesito tiempo para hacerlo :( y en estas primeras semanas de curso, me temo que no dispongo de tiempo para cacharrear como quisiera. Aparte, el Jupiter ACE fue mi primera descripción en Verilog y... bueno, digamos que deja mucho que desear en cuanto a modularidad :D Es hora de refactorizarlo, pero sí, ya tenía pensado que fuera un core más para el ZX-Uno.


Yo le metería el MOD de color de Bascolace, más que nada porque hay más juegos potenciales (todos los de ZX Spectrum que sean 100% BASIC y empleen UDG en lugar de DRAWs y PLOTs). Del mod de color que se publicó no tengo ni idea

Es éste. Salió en una revista de la época. ¿Es el que tú dices?
http://www.jupiter-ace.co.uk/hardware_colour_board.html
Está soportado, entre otros, en el emulador Eighty One.

EDITO: a ver.... este mod BASCOLACE, lo que hace básicamente es acercar el hardware del ACE al del Spectrum, suprimiendo la ROM con el Forth del ACE para meterle la Gosh Wonderful ROM, ¿no?
Entonces... esto ya no es un Jupiter ACE. La gracia del ACE, entre otras cosas, está en el lenguaje Forth. Todos, o la gran mayoría de los juegos del ACE, están hechos en Forth, no en C/M. Si le quitas la ROM original y pones una con BASIC, adios a esos juegos... y hola a juegos que de todas formas vas a tener en el ZX-Uno con el core de Spectrum "de verdad".

No sé, pero para un clon en FPGA no le veo mucho sentido. Para hacer un clon del ACE con cosas que lo acercan a un Spectrum... para eso pones un core de Spectrum. En hardware discreto, como es el clon de ZDP, o la máquina original sí que tendría su gracia, sobre todo si se hubiera sacado en aquella época.

No veo en los posts de retrolandia una descripción de cómo funciona ese añadido hardware. Sólo veo el mapa de memoria, y una explicación sobre cómo tener la ROM en dos bancos, uno que sólo está mapeado durante 100ms y tal.

El mod que he implementado, además de existir en la época (y por tanto hay posibilidad de que haya juegos hechos para ese mod), es usable desde Forth de manera transparente. Cuando lo estudié para implementarlo, la verdad, me pareció muy ingenioso.

Pero... ¿cómo funciona el BASCOLACE entonces?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 28 Sep 2014, 22:43

mcleod_ideafix escribió:Es éste. Salió en una revista de la época. ¿Es el que tú dices?
http://www.jupiter-ace.co.uk/hardware_colour_board.html
Está soportado, entre otros, en el emulador Eighty One.


No, el que yo digo es más sencillo, lo diseñé yo para el proyecto Bascolace. No lo he llegado a probar pero emplea sólo dos chips (otra RAM de 1K y un 74298). Aquí tienes los esquemáticos.

jupiter19.zip
(55.86 KiB) Descargado 349 veces


Con soporte me refiero a juegos y programas, no a emuladores.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Continuación de clon de Jupiter Ace

Mensajepor mcleod_ideafix » 28 Sep 2014, 22:50

antoniovillena escribió:No, el que yo digo es más sencillo, lo diseñé yo para el proyecto Bascolace. No lo he llegado a probar pero emplea sólo dos chips (otra RAM de 1K y un 74298). Aquí tienes los esquemáticos.

Aquí veo el ACE completo, con el mod "incluido". Mi pregunta es: ¿cómo funciona? No puedo entretenerme ahora en seguir todo el esquemático buscando qué cosas son nuevas y cuáles no, o como funcionan. Veo un multiplexor al final, imagino que para el tema paper/border, pero poco más. Esto... ¿superpone cuadros de atributos como lo hace el Spectrum? Entiendo por tanto que el esquema de colores es exactamente el mismo que el del Spectrum: flash brillo paper ink.

La gracia del mod de ETI, que implementé, es que se puede usar de forma transparente en Forth. Es decir, defines unas palabras más, para establecer paper, ink, etc, y a partir de ahí, lo que escribas, se hace con esos colores, sin necesidad de cambiar la ROM para incluir la actualización de la zona de atributos. El propio circuito detecta que estás escribiendo a memoria de pantalla, y actualiza él solito la celda de atributos correspondiente con el color actual, que se establece haciendo OUT a un determinado puerto. Yo aparte lo amplié un poco más para que el color del borde también se pueda controlar.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 28 Sep 2014, 22:59

mcleod_ideafix escribió:EDITO: a ver.... este mod BASCOLACE, lo que hace básicamente es acercar el hardware del ACE al del Spectrum, suprimiendo la ROM con el Forth del ACE para meterle la Gosh Wonderful ROM, ¿no?
Entonces... esto ya no es un Jupiter ACE. La gracia del ACE, entre otras cosas, está en el lenguaje Forth. Todos, o la gran mayoría de los juegos del ACE, están hechos en Forth, no en C/M. Si le quitas la ROM original y pones una con BASIC, adios a esos juegos... y hola a juegos que de todas formas vas a tener en el ZX-Uno con el core de Spectrum "de verdad".

No sé, pero para un clon en FPGA no le veo mucho sentido. Para hacer un clon del ACE con cosas que lo acercan a un Spectrum... para eso pones un core de Spectrum. En hardware discreto, como es el clon de ZDP, o la máquina original sí que tendría su gracia, sobre todo si se hubiera sacado en aquella época.

No veo en los posts de retrolandia una descripción de cómo funciona ese añadido hardware. Sólo veo el mapa de memoria, y una explicación sobre cómo tener la ROM en dos bancos, uno que sólo está mapeado durante 100ms y tal.

El mod que he implementado, además de existir en la época (y por tanto hay posibilidad de que haya juegos hechos para ese mod), es usable desde Forth de manera transparente. Cuando lo estudié para implementarlo, la verdad, me pareció muy ingenioso.

Pero... ¿cómo funciona el BASCOLACE entonces?


Te explico. Bascolace es una adaptación de la ROM original (no de la Gosh Wonderful) al hardware del Jupiter Ace. El problema es que ocupa 16K y la ROM del Jupiter Ace es de 8K. Funciona en hardware real monocromo, de hecho puedes probarlo en un emulador de Jupiter Ace cambiando la ROM y cargando un Snapshot.

La gracia es que puede sacar los mismos colores de un spectrum con el sencillo añadido de 2 chips que comenté (en una FPGA da igual, quizás te cueste menos trabajo de implementar pero no hay diferencia si son 2 ó 20 chips el añadido). De hecho el clon que diseñé sacaba 2 salidas separadas, una B/N en RCA y otra color en RGB.

Pero es lo que dices, no deja de ser un Spectrum en el hardware de un Jupiter Ace, el BASIC va un poco más rápido a la hora de imprimir, pero no tiene más aparte de esto. Lo interesante del clon es jugar a juegos del Jupiter Ace en Forth, por tanto usando la ROM original, eso es cierto. Lo que te comentaba era que si en realidad ese interface que añade color no tiene juegos para él, tendría más sentido hacer el que diseñé yo, ya que podríamos ejecutar un Spectrum a color (no en B/N) y funcionarían los mismos programas nativos para Jupiter Ace, o sea cero. Evidentemente se podría cambiar la ROM del Jupiter original para dar soporte en Forth o hacer juegos a color en C/M que no dependan de la ROM, pero esto es algo que lo más probable es que no pase.

Por eso te preguntaba si conocías juegos o programas que funcionasen con dicha extensión de color.

-- Actualizado 28 Sep 2014, 22:10 --

mcleod_ideafix escribió:
antoniovillena escribió:No, el que yo digo es más sencillo, lo diseñé yo para el proyecto Bascolace. No lo he llegado a probar pero emplea sólo dos chips (otra RAM de 1K y un 74298). Aquí tienes los esquemáticos.

Aquí veo el ACE completo, con el mod "incluido". Mi pregunta es: ¿cómo funciona? No puedo entretenerme ahora en seguir todo el esquemático buscando qué cosas son nuevas y cuáles no, o como funcionan. Veo un multiplexor al final, imagino que para el tema paper/border, pero poco más. Esto... ¿superpone cuadros de atributos como lo hace el Spectrum? Entiendo por tanto que el esquema de colores es exactamente el mismo que el del Spectrum: flash brillo paper ink.


No lo recuerdo al 100% porque lo escribí hace tiempo, pero creo que había 2 modos de escribir dependiendo de la dirección que se usaba (la memoria de video tiene varios espejos). En un rango de direcciones las escrituras van a ambos 6116 (el original con los caracteres y el nuevo con los atributos), mientras que en el otro sólo se escribe en uno de ellos (creo que en caracteres). Tendría que releerme el código de la ROM pero creo que iba así, de esta forma el hardware y el software es totalmente compatible en B/N.

Sí, el esquema de colores es el mismo que el del Spectrum, excepto por el flash, que no está incluído en el hardware pero que en la ROM se hace por software.

-- Actualizado 28 Sep 2014, 22:22 --

mcleod_ideafix escribió:La gracia del mod de ETI, que implementé, es que se puede usar de forma transparente en Forth. Es decir, defines unas palabras más, para establecer paper, ink, etc, y a partir de ahí, lo que escribas, se hace con esos colores, sin necesidad de cambiar la ROM para incluir la actualización de la zona de atributos. El propio circuito detecta que estás escribiendo a memoria de pantalla, y actualiza él solito la celda de atributos correspondiente con el color actual, que se establece haciendo OUT a un determinado puerto. Yo aparte lo amplié un poco más para que el color del borde también se pueda controlar.


Tendría que estudiarme el circuito para poder comparar. Independientemente del circuito que elijas es un modo de video muy original, no sé si había algo similar en aquella época. Me recuerda mucho al modo de texto 03h del PC, donde tenías 2000 bytes de caracteres y otros 2000 de atributos (en este serían 768 y 768). Es interesante porque se pueden hacer juegos (tirando de UDGs, claro) bastante más rápidos porque la RAM de video a manejar es muy pequeña.

-- Actualizado 28 Sep 2014, 23:06 --

Para los que quieran probar Bascolace en emulador, pongo aquí las instrucciones y el archivo:

  • En EightyOne cambiar de máquina con Options/Hardware (ó F6) y elegir en la pestaña Others el Jupiter Ace.
  • En RAM Pack ponéis 48K y en la pestaña de abajo de Advanced Settings subid el bascol2.rom que adjunto.
  • Se vería una pantalla con patrones aleatorios estáticos en blanco y negro, no pasa nada.
  • Luego cargáis el snapshot BascolaceTokens.ace arrastrando a la ventana, en lugar del típico mensaje de copyright aparece "Press PLAY or SPACE to break". Pulsamos espacio y ya estamos en el Basic del Spectrum, podemos teclear lo que queramos que va a funcionar como si de un Spectrum se tratase.
  • Se puede cargar software de Spectrum siempre que esté íntegramente escrito en Basic y emplee UDGs. Los DRAWs, PLOTs y demás no cuelgan el sistema pero no pintan nada en la pantalla, tampoco funcionan los POKEs directos a memoria de video. Como estamos en un emulador de Jupiter Ace los archivos TAPs no valen, habría que pasarlos a TZX o WAV.
Adjuntos
bascolace.zip
(12.44 KiB) Descargado 350 veces

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Continuación de clon de Jupiter Ace

Mensajepor antoniovillena » 02 Oct 2014, 02:43

He avanzado un poco más, añadiéndole el interface teclado PS/2 de McLeod y comprobando que el área PCB es muy justa, pero que es posible hacerlo en 10x10cm. No tengo ni idea de cómo distribuir los chips para optimizar el ruteado, voy a preguntarle a wilco a ver si me puede echar una mano.
Adjuntos
jupace18.zip
(88.57 KiB) Descargado 323 veces


Volver a “Taller general”

¿Quién está conectado?

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