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.