ZX-Uno, clon barato basado en FPGA

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 18 Ago 2013, 15:14

ZX-Uno.jpg
ZX-Uno.jpg (12.98 KiB) Visto 18743 veces


Voy a continuar este hilo por aquí para que no se haga muy pesado de leer. Falta un día para la encuesta del nombre pero casi con toda seguridad acabará siendo ZXOne o alguna variante. He actualizado los esquemáticos, que ya casi doy por definitivos. Los cambios han sido poner los condensadores de desacoplo (lo sé, he puesto de más, ya se encargará el enrutador de quitar los que sobren) y añadir un circuito selector entre PAL/NTSC que he visto en el datasheet del AD724. Para el spectrum no sirve de mucho (será PAL), pero puede ser útil para implementar otras máquinas como el Atari 2600.

También me he currado un FAQ para no tener que responder siempre a las mismas preguntas, ahí va:

¿Cuándo estará a la venta el chisme?

No me gusta dar fechas, pero en principio habrá 2 tiradas: una para desarrolladores (prototipo) de 10 unidades y otra para el público general de 50 ó 100 unidades. Los prototipos los pediré a seeedstudio, sólo tendrán premontados los componentes SMD y no tendrá el firmware pregrabado. Habrá que disponer del cable USB de Xilinx para poder trastear con ella. Haré el pedido en cuanto Superfo tenga listo el ruteado, y al mismo tiempo abriré las listas para apuntarse (sólo a prototipos).

La lista de prototipos vendidos es ésta, aún me quedan 3 disponibles:

Código: Seleccionar todo

antoniovillena  PCB+componentes+flux
superfo         PCB+componentes
javu61          PCB+componentes+flux
McLeod          PCB+componentes
jepalza         PCB+componentes+flux


Lista reserva:

Código: Seleccionar todo

garillete       PCB+componentes+flux
JULIO           PCB+componentes+flux (foro speccy.org)


Actualización: Ya está abierta la lista de prototipos, la pongo aquí abajo. Al final sólo encargaré las PCBs porque el montaje que nos ofrece seeedstudio cubre muy pocos componentes. El precio es de 22 euros (kit con PCB y todos los componentes sin montar) ó 22.50 (lo anterior además de una jeringa de flux), gastos de envío incluídos. La lista está en este hilo.


En cuanto a la placa definitiva, no sé si seré yo el que se encargue así que todo lo que comente está sujeto a cambios. Serán unas 50 ó 100 unidades y se encargarán a sitopway. Irá casi todo montado salvo los conectores, que opcionalmente el que las distribuya puede soldarlos a mano a petición del usuario por un precio adicional. El firmware vendrá pregrabado y también habrá opción de adquirir complementos por separado: caja, pegatina con logo, manual, cables, fuente de alimentación.

¿Qué máquinas caben en la FPGA y qué conectores llevará?

En principio está pensado para toda la gama ZX Spectrum aunque también se le podrán meter máquinas inferiores. Sólo caben máquinas de 8 bits con un tamaño máximo de 512K entre ROM y RAM, y que la circuitería a sintetizar sea relativamente sencilla (nada de sprites hardware y cosas así). El "corazón" del chisme es una FPGA XC3S250E, que es una FPGA relativamente modesta. Poner una FPGA más "tocha" supondría poder sintetizar más máquinas aparte del Spectrum, pero también encarecería el precio considerablemente.

Los conectores seguirán la disposición de una Raspberry Pi, de hecho la PCB está pensada para usar cajas de Raspberries, y son los siguientes:
  • Video: Video compuesto por conector RCA, como en la Pi.
  • Audio: Audio estéreo por conector jack 3.5mm, como en la Pi.
  • Almacenamiento: Tarjeta SD, como en la Pi.
  • Alimentación: 5 voltios regulados que entran por un conector microSD, como en la Pi.
  • Carga en cinta: Conector jack 3.5mm al lado del audio, no da a ningún agujero en la carcasa (habría que taladrarlo).
  • Expansión: 3 tiras de pines de 15 cada una en la misma ubicación que la Raspberry Pi, tampoco va a ningún agujero de la carcasa.
  • Teclado: Conector PS/2 en el lugar que ocupa el cable Ethernet de la carcasa.
  • Joystick: Conector DB9 norma atari, en el lugar que ocupan los puertos USB de la carcasa.
  • Cable JTAG y RGB: header de 2x6 pines en el lugar que ocupa el puerto HDMI de la carcasa.

¿Por qué no tiene conector de expansión como el de un Spectrum?

Básicamente por incompatibilidad eléctrica, la FPGA trabaja a 3.3V y las señales del conector de expansión van a 5V. También porque el tamaño es reducido y queremos que el precio sea bajo (poner conversores de voltaje lo encarecería). De todas formas hay un conector de expansión genérico del que salen 40 pines de la FPGA, por lo que mediante una placa externa que contenga el conector EDGE y los conversores de voltaje podría hacerse.

¿Cuánto costará?

Tampoco me gusta dar precios pero espero que la placa montada con los conectores sin soldar salga por menos de 30 euros. El prototipo será un poco más caro ya que la tirada es menor. Por mi parte no voy a incrementar el coste de lo que me cobre seeedstudio para los prototipos. Para la versión final, si la distribución se le encarga a otra persona, no puedo descartar que haya algún beneficio, sobre todo porque conllevará un trabajo adicional: soldar conectores, grabar firmware, testear la placa, empaquetado, etc...

¿Necesito algún cable especial?

Para el prototipo sí, el Xilinx platform cable. En la versión definitiva no hace falta porque daremos la posibilidad de actualizar el firmware vía SD. El resto de cables son genéricos: la alimentación es microUSB, el video es RCA y el audio/EAR son jacks de 3.5mm. El único cable custom (como pasa con todas las máquinas) es el RGB/Scart, aunque no hace falta porque la calidad que da el AD724 para el video compuesto es excelente.

¿Quiénes trabajan en el proyecto?

Somos 4 personas.
  • Hark0. Diseñador gráfico.
  • McLeod. Revisa y propone, es un colaborador de facto.
  • Superfo. Ruteador, el que se encarga de diseñar la PCB.
  • AntonioVillena (yo). Idea inicial, crear los esquemas y distribución de prototipos.

¿Sería muy complejo añadir soporte USB (teclados/joystick)? Por una parte, ya no es tan fácil comprar teclados PS/2 nuevos; por otra parte dos joysticks son mejor que uno.

Sí, sería muy complejo y creo que además funciona a otros voltajes. Si alguien consigue implementarlo por el puerto de expansión no habría problema en sustituir el conector PS/2 por uno USB, pero sería para una revisión futura de la placa. Por ahora nos tenemos que conformar con PS/2.

¿Cómo se usará la tarjeta SD? ¿Permitirá tzx o solo tap básicos?

TZX es un formato de audio comprimido. Sólo puede usarse con el puerto EAR. Los sistemas que has visto que soportan TZX (ResiDOS, por ejemplo) realmente lo que hacen es soportar un subconjunto del TZX que es esencialmente un TAP. TAP sí que es un formato que permite cargas desde memoria masiva.

¿Se podrá escribir en las cintas? ¿trd o dsk?

Como esto no es emulación, lo que se puede hacer o no con ficheros del tipo que sea depende del S.O. que pongas en el Spectrum. ESXDOS permite grabar a un .TAP si mal no recuerdo. Lo mismo con el TRD o el DSK: si alguno de los S.O. lo soporta, entonces sí, pero si no, no. En los emuladores se soporta DSK o TRD porque se emula el hardware de la disquetera. Aquí se podría implementar algo por el estilo pero probablemente no cabría en la FPGA. Para que te hagas una idea, dar soporte de TRD o DSK de forma transparente (sin usar un S.O. especial que sea quien se encargue de ello) implica:
- Hay que implementar un chip que tenga la misma interfaz que el uPD765. Esto es, que soporte los registros del uPD, y su interfaz física (bus de datos, CS, etc)
- Pero por el otro lado, lo que se le conecta no es una disquetera, sino que tendrá que ir a un sistema que permita elegir una imagen DSK o TRD y ese sistema debe enviar la información (sector) solicitado bajo demanda. Es decir, hay que integrar un microcontrolador que sea quien se encargue de leer la tarjeta SD, presentar algún tipo de menú OSD para elegir la imagen a usar, y enviar la información a la controladora de disquetes "medio falsa" que hemos hecho. El Z80 se come bastante de la FPGA, así que no queda mucho espacio para implementar otro procesador que se encargue de esta tarea (además del processaor hay que incorporar su pequeña memoria RAM y ROM, que debe contener nada menos que rutinas que sean capaces de leer sistemas de ficheros FAT en la SD)
- En otras palabras: dar ese tipo de soporte implica meter dentro de la FPGA la circuitería equivalente a la de un HxC completito (la versión autónoma) sustituyendo la pantalla LCD por un menú OSD en pantalla y teclas especiales en el teclado PS/2 para moverse.

Lo más que podría hacerse, que se me ocurra, sería añadir el core del uPD765 al sistema, para que el Spectrum tuviera una controladora de disco. Exponer los pines que van a la disquetera en el conector de 40 pines de la FPGA, añadirle un level shifter para pasar de forma de segura entre 3.3 y 5V, y a ese conector, pincharle un HxC (o una disquetera de verdad)

¿Cabrán los clones rusos? ¿Y el SAM coupé?

Muy probablemente sí. Respecto al SAM, no recuerdo cómo es el formato de la paleta, pero si usa como mucho 3 bits por color primario, entonces sí que se podrá implementar sin pegas (estoy suponiendo que el diseño permitirá sintetizar la ULAplus). Además cabrá el ZX80, ZX81, Jupiter ACE, y algunos arcades que usan un solo Z80, como el Pacman.

¿Cuantos cambios de configuración se permiten en ese chip? Es decir, ¿se podría cambiar de configuración alegremente o mejor dejarla fija para siempre?

Tantos como escrituras permita la SPI Flash, creo que miles o cientos de miles. Eso sí, si no tienes el cable Xilinx (como la mayoría de la gente) procura que las configuraciones que le metas sean autoactualizables, sino tendrás que enviar la placa a reflashear

Me he comprado el prototipo pero no sé como se sueldan los componentes SMD, ¿alguna ayuda?

McLeod nos da una buena explicación aquí
Adjuntos
ZX-Uno.0.12.zip
(120.36 KiB) Descargado 984 veces
Última edición por antoniovillena el 31 Oct 2013, 13:26, editado 13 veces en total.

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: ZXOne, clon barato basado en FPGA

Mensajepor Hark0 » 19 Ago 2013, 11:27

Imagen

Logotipo castellanizado:

Imagen
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

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

Re: ZXOne, clon barato basado en FPGA

Mensajepor antoniovillena » 19 Ago 2013, 12:08

Como has cerrado el hilo de la encuesta, he creado otra en este hilo para concretar el nombre. La encuesta dura 5 días y sólo se puede elegir una opción.

Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Re: ZXOne, clon barato basado en FPGA

Mensajepor mentalthink » 19 Ago 2013, 12:38

ZX-Uno quedá de lujo aparte el logo de Hark0 lo ha dejaó borda, quizás tenga que ser al revés que no se si comentastéis que la placa era negra Hi-Tech o verde, hombre verde y blanco como que se verá más...
PS: Por tocar un poco la pera, pero son cosas mias a mi me gustaría más el logo que las puntas acabaran con ángulo recto, o quizás que no tuvieran tanto grosor porque al hacer los bordes los veo demasiado "brutos", pero estó como digo son gilipolleces de otro que hace gráficos... ni más ni menos...

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2967
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 68 veces
Gracias recibidas: 322 veces
Contactar:

Re: ZXOne, clon barato basado en FPGA

Mensajepor zup » 19 Ago 2013, 12:52

Llego tarde, pero ahí va una batería de preguntas..

- ¿Sería muy complejo añadir soporte USB (teclados/joystick)? Por una parte, ya no es tan fácil comprar teclados PS/2 nuevos; por otra parte dos joysticks son mejor que uno.
- ¿Cómo se usará la tarjeta SD? ¿Permitirá tzx o solo tap básicos? ¿Se podrá escribir en las cintas? ¿trd o dsk?
- ¿Cabrán los clones rusos? ¿Y el SAM coupé?
- ¿Cuantos cambios de configuración se permiten en ese chip? Es decir, ¿se podría cambiar de configuración alegremente o mejor dejarla fija para siempre?
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

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

Re: ZXOne, clon barato basado en FPGA

Mensajepor antoniovillena » 19 Ago 2013, 13:10

mentalthink escribió:no se si comentastéis que la placa era negra Hi-Tech o verde, hombre verde y blanco como que se verá más...


Las PCBs de los prototipos serán en verde porque es la opción más barata. Para la versión final, y en caso de que no suponga un coste adicional elegirla en otro color, podríamos hacer una encuesta.


zup escribió:Llego tarde, pero ahí va una batería de preguntas..

- ¿Sería muy complejo añadir soporte USB (teclados/joystick)? Por una parte, ya no es tan fácil comprar teclados PS/2 nuevos; por otra parte dos joysticks son mejor que uno.


Sí, sería muy complejo y creo que además funciona a otros voltajes. Si alguien consigue implementarlo por el puerto de expansión no habría problema en sustituir el conector PS/2 por uno USB, pero sería para una revisión futura de la placa. Por ahora nos tenemos que conformar con PS/2.

zup escribió:- ¿Cómo se usará la tarjeta SD? ¿Permitirá tzx o solo tap básicos? ¿Se podrá escribir en las cintas? ¿trd o dsk?


Que yo sepa hay 3 interfaces distintos: ZXMMC, ZXMMC+ y DivMMC. El primero sólo admite una ROM modificada del +3e, para el segundo existe una versión de ResiDOS (admite archivos TAP). En el caso de DivMMC sí que admite lo mismo que el divide (Fatware, ESXDOS, etc...). No he sintetizado todavía ninguno de los 3 (estoy peleándome con el primero), pero otras personas sí lo han hecho.

La respuesta es: hará lo que permita el SO. Si el SO permite escribir en cintas, escribirá en cintas.


zup escribió:- ¿Cabrán los clones rusos? ¿Y el SAM coupé?


Clones rusos por supuesto, siempre y cuando la suma de la RAM y la ROM no exceda de los 512K. En cuanto al SAM Coupé no sabría decirte, desconozco la complejidad de esa máquina.

zup escribió:- ¿Cuantos cambios de configuración se permiten en ese chip? Es decir, ¿se podría cambiar de configuración alegremente o mejor dejarla fija para siempre?


Tantos como escrituras permita la SPI Flash, creo que miles o cientos de miles. Eso sí, si no tienes el cable Xilinx (como la mayoría de la gente) procura que las configuraciones que le metas sean autoactualizables, sino tendrás que enviar la placa a reflashear

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: ZXOne, clon barato basado en FPGA

Mensajepor mcleod_ideafix » 19 Ago 2013, 13:38

zup escribió:¿Permitirá tzx o solo tap básicos?

TZX es un formato de audio comprimido. Sólo puede usarse con el puerto EAR. Los sistemas que has visto que soportan TZX (ResiDOS, por ejemplo) realmente lo que hacen es soportar un subconjunto del TZX que es esencialmente un TAP. TAP sí que es un formato que permite cargas desde memoria masiva.

zup escribió:¿Se podrá escribir en las cintas? ¿trd o dsk?

Como esto no es emulación, lo que se puede hacer o no con ficheros del tipo que sea depende del S.O. que pongas en el Spectrum. ESXDOS permite grabar a un .TAP si mal no recuerdo. Lo mismo con el TRD o el DSK: si alguno de los S.O. lo soporta, entonces sí, pero si no, no. En los emuladores se soporta DSK o TRD porque se emula el hardware de la disquetera. Aquí se podría implementar algo por el estilo pero probablemente no cabría en la FPGA. Para que te hagas una idea, dar soporte de TRD o DSK de forma transparente (sin usar un S.O. especial que sea quien se encargue de ello) implica:
- Hay que implementar un chip que tenga la misma interfaz que el uPD765. Esto es, que soporte los registros del uPD, y su interfaz física (bus de datos, CS, etc)
- Pero por el otro lado, lo que se le conecta no es una disquetera, sino que tendrá que ir a un sistema que permita elegir una imagen DSK o TRD y ese sistema debe enviar la información (sector) solicitado bajo demanda. Es decir, hay que integrar un microcontrolador que sea quien se encargue de leer la tarjeta SD, presentar algún tipo de menú OSD para elegir la imagen a usar, y enviar la información a la controladora de disquetes "medio falsa" que hemos hecho. El Z80 se come bastante de la FPGA, así que no queda mucho espacio para implementar otro procesador que se encargue de esta tarea (además del processaor hay que incorporar su pequeña memoria RAM y ROM, que debe contener nada menos que rutinas que sean capaces de leer sistemas de ficheros FAT en la SD)
- En otras palabras: dar ese tipo de soporte implica meter dentro de la FPGA la circuitería equivalente a la de un HxC completito (la versión autónoma) sustituyendo la pantalla LCD por un menú OSD en pantalla y teclas especiales en el teclado PS/2 para moverse.

Lo más que podría hacerse, que se me ocurra, sería añadir el core del uPD765 al sistema, para que el Spectrum tuviera una controladora de disco. Exponer los pines que van a la disquetera en el conector de 40 pines de la FPGA, añadirle un level shifter para pasar de forma de segura entre 3.3 y 5V, y a ese conector, pincharle un HxC (o una disquetera de verdad)

zup escribió:- ¿Cabrán los clones rusos? ¿Y el SAM coupé?

Muy probablemente sí. Respecto al SAM, no recuerdo cómo es el formato de la paleta, pero si usa como mucho 3 bits por color primario, entonces sí que se podrá implementar sin pegas (estoy suponiendo que el diseño permitirá sintetizar la ULAplus). Además cabrá el ZX80, ZX81, Jupiter ACE, y algunos arcades que usan un solo Z80, como el Pacman.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2967
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 68 veces
Gracias recibidas: 322 veces
Contactar:

Re: ZXOne, clon barato basado en FPGA

Mensajepor zup » 19 Ago 2013, 15:43

mcleod_ideafix escribió:Como esto no es emulación, lo que se puede hacer o no con ficheros del tipo que sea depende del S.O. que pongas en el Spectrum.


Me quedo con esta frase. Lo que quería saber era si el Spectrum iba a poder cargar desde la SD sin más (con LOAD""), y de lo anterior deduzco que LOAD tirará de cinta y la SD se manejará desde una emulación de divIDE.

mcleod_ideafix escribió:Para que te hagas una idea, dar soporte de TRD o DSK de forma transparente (sin usar un S.O. especial que sea quien se encargue de ello) implica...


De esto deduzco que el +3 tampoco estará completamente emulado. Suponiendo que se meta dentro una emulación de divIDE... ¿sería factible un +2e (las rutinas de disco leyendo desde una partición +3e en la SD)? No se ha mencionado, pero ¿cabrá un chip AY? Lo comento por las limitaciones de espacio.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: ZXOne, clon barato basado en FPGA

Mensajepor scooter » 19 Ago 2013, 20:09

Es totalmente factible un +3x ya que se emula, perdón SE CLONA el hard, dentro de ese hard puedes cambiar las roms como lo harías en un +3 de verdad . Si mañana alguen saca una revisión de +3e que haga lo que sea basta con reprogramar la ROM de este clon.

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: ZXOne, clon barato basado en FPGA

Mensajepor mcleod_ideafix » 19 Ago 2013, 21:42

zup escribió:Me quedo con esta frase. Lo que quería saber era si el Spectrum iba a poder cargar desde la SD sin más (con LOAD""), y de lo anterior deduzco que LOAD tirará de cinta y la SD se manejará desde una emulación de divIDE.

El DivIDE puede hacer LOAD "" desde una tarjeta de memoria. Si no existe DivIDE, LOAD "" leerá del puerto EAR, como en un Spectrum original.

zup escribió:De esto deduzco que el +3 tampoco estará completamente emulado.

Si no implementas una controladora de disquetera, será un +2A.

zup escribió:Suponiendo que se meta dentro una emulación de divIDE... ¿sería factible un +2e

Sí, es perfectamente factible, y no hace falta implementar un DivIDE completo: basta con implementar algo mucho más sencillo, como el ZXMMC.

zup escribió:No se ha mencionado, pero ¿cabrá un chip AY? Lo comento por las limitaciones de espacio.

El AY afortunadamente no ocupa mucho espacio, así que sí, cabría. Es más, podría tener dos AY's para implementar Turbo Sound.

-- Actualizado 19 Ago 2013, 22:12 --

Para fijar ideas, tened en cuenta:

Si tú preguntas si el clon puede soportar la característica X que tú has visto implementada en un emulador, imagínate que tienes un Spectrum de Sinclair pelao y mondao delante tuya. Ahora pregúntate que tendrías que añadirle a ese Spectrum para soportar la característica X.
- ¿Quieres soporte para cargar y grabar a tarjeta de memoria desde el BASIC? Añade una interfaz comptible con el proyecto +3E
- ¿Quieres poder cargar snapshots y TAP's de forma sencilla? Añade un DivIDE
- ¿Quieres poder reproducir ficheros RZX? No existe, que yo sepa, una interfaz que haga eso. Tendrías que implementar un dispositivo, usando un microcontrolador por ejemplo, que leyera el fichero RZX desde una tarjeta de memoria, y enviara pulsaciones de teclado sincronizadas al ciclo con lo que ejecuta el clon en ese momento. No es imposible, pero si complicado.
- ¿Quieres soporte de ethernet? Habría que añadirle una Spectranet
Fíjate que en los emuladores, implementar las tres primeras cosas no requiere que el Spectrum emulado tenga esos interfaces añadidos. Emuladores como el Z80 de Gerton Lunter, o el de Pedro Jimeno, ya cargaban desde TAP de forma instantánea antes de que existiera el DivIDE.

Si la característica X es algo que debe ser soportado de forma transparente por el Spectrum, tal como la carga con LOAD "" desde una tarjeta de memoria usando ficheros TAP o DSK, entonces eso implica que hay que "engañar" al Spectrum haciéndole creer que todo se hace "como siempre". Es lo que hace el DivIDE, o lo que hace el HxC. Las interfaces que hacen este tipo de cosas trabajan de una de estas dos formas: o bien se modifica el SO en ROM, cambiando las rutinas de bajo nivel por otras que acceden al nuevo hardware (lo que hace DivIDE, o +3E, o Spectranet) o bien se cambia el hardware por uno que se comporta de manera idéntica al original de cara al Spectrum pero usando la nueva característica (lo que hace HxC)

El formato TZX es un formato de audio. Si no puedes usarlo en un Spectrum original para cargar a velocidad de DivIDE, tampoco puedes usarlo en un clon. Al ser de audio, sólo hay un sitio por el que se pueda usar: la entrada EAR. Un emulador puede cargar un TZX casi instantáneamente porque usa técnicas que incluyen la aceleración de la emulación en momentos determinados (no lo recuerdo muy bien, pero es algo así como que se emula a toda velocidad la rutina de carga hasta el momento en que se detecta un flanco de subida o bajada en la señal de EAR, entonces se procesa y se vuelve a subir la velocidad para detectar el siguiente flanco.... algo así)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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