SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

BBC, Dragon, Sam Coupé, Oric ...
Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
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: 46 veces
Contactar:

SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor mcleod_ideafix » 02 Ago 2015, 20:43

Bueno, pues para no ensuciar más el hilo del ZX-Uno, abro éste con los progresos que vaya obteniendo sobre la clonación/implementación/llámalo como quieras, del SAM Coupé en la FPGA del ZX-Uno.

Hasta ahora mismo, esto es lo que he conseguido, no sin pelearme con el puñetero core T80:
Imagen

Si no he llegado a esta pantalla antes ha sido, como decía, por el core T80. No solo estaba mal el tema de los timings del ciclo de bus de E/S, sino que la señal WAIT no se comporta como debe, parando a la CPU cuando le da la gana, dicho mal y pronto. He intentado arreglarlo, pero no he llegado más allá de poder hacer escrituras y lecturas de memoria correctas, pero fallando a veces en el ciclo de búsqueda de instrucción, cuando ésta debe cogerse de la RAM.

Así que buscando por ahí alguna versión más decente del T80, me he encontrado con que este fallo de WAIT es bastante común y el personal no se pone de acuerdo sobre qué versión del T80 es la mejor, así que he buscado desde el principio, y me he descargado el TV80: un core basado en el T80, pero hecho todo en Verilog (¡bien!) y que además está más actualizado (último commit en el 2012, frente al T80 que tiene el último commit en el 2008). En las notas del autor veo que se ha concentrado especialmente en arreglar el problema de WAIT.

Lo he probado y ha funcionado a la primera :)

Lo siguiente es ver qué pasa con el MODO 2, que no se muestra bien (los modos 1 y 3 sí van), arreglar unos glitches en el MODO 4 que hace que salgan unas rayas verticales cada 8 píxeles (justo cuando se supone que debe cargarse el registro de desplazamiento con nuevos datos

Ah! Y escribir un nuevo core de teclado. El que hay ahora mismo es heredado del Spectrum y no cubre todas las teclas del SAM, por lo que no puedo escribir la mayoría de signos de puntuación, necesarios para poder escribir comandos y probar más cosas.

Hay sonido tipo BEEP, pero no existe aún el SAA1099. Este tendré que escribirlo desde 0. No sé si hacer eso primero, o implementar el soporte para tarjeta SD emulando a una CF para poder usar Atom Lite. Si empiezo por esto último tendré a mi disposición almacenamiento masivo para hacer más pruebas, incluyendo pruebas de sonido con el core SAA que escriba, pero por otra parte, un controlador SD emulando a una CF tiene tela marinera. Ahora mismo, con esto que veis en pantalla, ocupo el 36% de la FPGA. Estoy acariciando la idea de usar como controlador SD a un pequeño coprocesador que incluya dentro del core, en lugar de hacerlo a pelo, con máquinas de estado. Del máster que hice el año pasado tengo implementados hasta tres procesadores completos en Verilog. De cada uno de ellos hice un emulador software y un ensamblador para escribir programas. Quizás alguno de ello sea lo suficientemente pequeño y flexible como par convertirlo en microcontrolador empotrado que maneje la SD

EDITO: las letras ya están en su sitio. Culpa mía por haber malinterpretado el offset donde comienza la pantalla relativo al contenido del registro VMPR, y es que el manual técnico da a entender que el offset no es 0000h sino 4000h, cuando en realidad sí que es 0000h. Hay un fallo de timing con la interrupción ráster (la que se dispara en la línea que quieras). Creo que la disparo demasiado tarde. Cosa de repasar los cronogramas que saqué del SAM "de verdad" :)
Imagen
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor Quest » 02 Ago 2015, 20:50

Madre mía!! Acabo de ver hace unos minutos escasos el post en speccy y ahora aquí esto :D

Que subidón! Eres un maestro, sin paliativos. =D> =D> =D> =D>

Qué ganas de trastear me están entrando :)

Primera pregunta, quizá muy temprana, pero no puedo aguantar :mrgreen: , el primer test incorporará ya carga por EAR real?

Lo dicho, un maestro.
:ola

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
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: 46 veces
Contactar:

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor mcleod_ideafix » 02 Ago 2015, 21:35

Quest escribió:Primera pregunta, quizá muy temprana, pero no puedo aguantar :mrgreen: , el primer test incorporará ya carga por EAR real?

Sí, pero sin un teclado en condiciones no podrás teclear las comillas para hacer LOAD "" :P

¿Dónde puedo encontrar programas para SAM que carguen desde audio? ¿Admite un TAP de Spectrum de toda la vida?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor Quest » 02 Ago 2015, 21:48

Un TAP de Spectrum de toda la vida no creo, al menos yo no he visto ninguno, el SAM usaba rutinas de carga más avanzadas (en ROM) y usualmente archivos más grandes de 48kb.

No obstante, tengo que mirar porque me parece que tengo un par de juegos del SAM originales en cinta. Tengo que mirar en los armarios a ver si encuentro el computone para pasarlos a .WAV :D , después de cenar lo miro y las paso.

Por cierto, sólo con conseguir simular la tecla F7, ya tienes un LOAD"" completo :D
Última edición por Quest el 02 Ago 2015, 21:56, editado 1 vez en total.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
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: 46 veces
Contactar:

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor mcleod_ideafix » 02 Ago 2015, 21:55

Quest escribió:Un TAP de Spectrum de toda la vida no creo, al menos yo no he visto ninguno, el SAM usaba rutinas de carga más avanzadas (en ROM) y usualmente archivos más grandes de 48kb.

No obstante, tengo que mirar porque me parece que tengo un par de juegos del SAM originales en cinta. Tengo que mirar en los armarios a ver si encuentro el computone para pasarlos a .WAV :D


Es que creo haber leido por algún lado que el SAM acepta cargas estándar de Spectrum, aunque los SAVEs que se hagan desde el SAM no podrán cargarse en un Spectrum.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor Quest » 02 Ago 2015, 22:05

Ah, cierto, una carga estándar de spectrum yo también recuerdo haber leído que la acepta sin problemas, pero nunca he probado. Lo que nunca he visto es un juego o programa de Sam volcado a TAP.

No obstante volcaré las cintas cuando pueda, para cuando se pueda probar el core.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
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: 46 veces
Contactar:

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor mcleod_ideafix » 02 Ago 2015, 23:12

El TEST 1 ya está actualizado en el repositorio. Quien quiera echarle un vistazo, aunque sólo sea por ver la pantalla inicial con las bandas de colores (ya correctas) y el mensaje de copyright, puede probarlo.
Hay teclado, pero es el de un Spectrum. Eso significa que no están disponibles las teclas de borrar y las de muchos signos de puntuación. Si te equivocas en una orden no puedes borrarla. No hay más remedio que resetear (con Ctrl-Alt-Supr). Puedes probar los 4 modos de pantalla usando la orden MODE x donde x es 1, 2, 3 o 4.

No hay sonido, excepto el equivalente al BEEP. Hay algunas órdenes en el BASIC del Coupé para hacer efectos de sonido con esta fuente de audio: ZAP, ZOOM, POW y BOOM. El comando SOUND, aparte de que no podrás usarlo porque no se puede teclear aún la coma, no hará nada porque aún no hay SAA1099.

El core de teclado que estoy usando es el que teníamos al principio en el ZX-Uno, es decir, el "no programable" que daba problemas con algún que otro teclado. En general, con este core de teclado la primera pulsación de teclado se pierde, así que tienes que pulsar dos veces el Intro para salir de la pantalla de las bandas de colores y obtener el cursor (esto sólo pasa recién arrancado el core, después de un Ctrl-Alt-Aupr no pasa)

Voy a ver si consigo hacer un core de teclado que al menos acepte todas las teclas.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor Quest » 03 Ago 2015, 02:59

TEST1 probado :D

He modificado un poco el codigo en el ISE para añadir un par de teclas y probar la carga (las comillas " (se sacan con la tecla del ? / apostrofe) el punto . la coma , y la tecla F7 que hace un LOAD"" + ENTER directamente) y he sintetizado. Ha funcionado.

Funciona bastante bien, he podido cargar por EAR un programa que he pasado de cinta a WAV (y luego a TZX). Da error de carga al final del todo pero es normal porque la cinta estaba un poco cascadilla y en el SAM físico también me carga con error, pero sirve para ver que la carga funciona (de hecho haces RUN y carga parte del programa bien).

Alguna vez se queda en pantalla negra tras arrancar o tras ctrl+alt+supr (mas o menos 1 de cada 4), pero reintentando se consigue que arranque bien.

Una gozada por el momento =D> Esto es super emocionante...

Imagino que lo del teclado ya estará en marcha, pero por si alguien quiere probar mientras tanto, hasta que esté, a hacer la carga por EAR o hacer unos beeps :mrgreen: aqui va un zip con el bitstream que activa las teclas de comillas que comentaba antes, y el tzx del programa (es la cinta que viene con el periférico COMMS, una interfaz serie y paralelo):

sam_bitstream_y_comms.zip
(85.74 KiB) Descargado 138 veces


Gracias por la currada Mcleod, esto es una pasada :)

---

Imagen

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
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: 46 veces
Contactar:

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor mcleod_ideafix » 03 Ago 2015, 07:44

El TEST 2 está disponible, y con él:

- Soporte de teclado completo. Delicadito, pero completo. Con "delicadito" quiero decir que pasa como en el Spectrum: que si pulsas dos teclas en el teclado PS/2, pongamos, mayúsculas y la tecla del punto, para sacar los dos puntos, hay que asegurarse de que la tecla de las mayúsculas sea la primera que se pulsa y la última que se suelta. Si no, se queda "atascada" y en el caso del Coupé, en lugar de repetirte esa tecla ad infinitum, se queda el sistema medio lelo. Si os pasa eso, pulsad NMI (Ctrl-Alt-F5) y entonces la tecla que se quedó atascada se autorrepetirá pudiendo volver a pulsarla para callarla. Algún día arreglaremos esto. De momento, teclear con cuidadito :)

- El cassette, como ya comprobó Quest, funciona. ¡Y cómo funciona! Los 6MHz del Z80 ejecutando rutinas en ROM se notan, de forma que es posible cargar bloques de datos a 4 veces la velocidad del Spectrum sin que el SAM se despeine. Vale que no son las ultracargas de Antonio, pero no está nada mal, la verdad. Ya vereis.

- Arregladas (eso espero) algunas inconsistencias de timing con las interrupciones ráster. Una chorridemo que escribí hace años queriendo parecerse a la Shock Megademo, y que en el SAM se puede hacer con una sola mano y sin darse importancia, ya saca las rayas de color en su sitio. El efecto se puede ver aquí:
https://twitter.com/zxprojects/status/6 ... 1536779264

Y de momento no hay más: no hay disco, por supuesto, ni hay sonido SAA1099, ni DAC en el puerto paralelo. Si os apañais con el BEEP y amigos, pues estupendo. El sonido de carga aún no se escucha por el altavoz porque no se ha implementado ningún mixer. Probablemente lo deje para cuando implemente el SAA. Como hay rayitas en el borde, de momento nos apañamos (¡¡que sólo estamos en el segundo test!!)

Lo que sí podemos probar es la calidad gráfica del SAM Coupé. Pero esto se verá mejor en el video adjunto. Las utilidades y programas que se mencionan ahí ya han sido subidas al repositorio. En el apartado software/tools teneis el BMP2SCR y en software/playtap está el PLAYTAP, en código fuente y compilado para OSX y Win32. Recordad que PLAYTAP es una utilidad de línea de comandos. Si haceis doble clic en su icono no pasará nada.

NOTA: si vais a probar vuestras propias imágenes, escaladas antes a 256x192 con vuestro editor gráfico favorito. El BMP2SCR puede escalar una imagen también, pero el resultado no es tan bueno como el que produce un programa tal como Photoshop, Paint Sop Pro, GIMP o el mismo Irfanview, que dan más opciones de reescalado. Fijaos que en el video, la versión de la imagen que escojo ya está a 256x192 :)


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: 7 veces

Re: SAM Coupé en ZX-Uno (¿alguien dijo SAM-Uno?)

Mensajepor antoniovillena » 03 Ago 2015, 10:14

Estoy flipando en colores. No sé cómo has podido sintetizarlo en tan poco tiempo. Con ganas de probarlo.


Volver a “Otros microordenadores”

¿Quién está conectado?

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