ZX-Uno prototipo 2: seguimos dándole caña

Sinclair QL, ZX81, +2, +3, 128K ...
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: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 29 Jun 2015, 19:44

Una pregunta sobre el test17 antes de probarlo, sobre lo último que has comentado. ¿Funcionaría con un firmware anterior? por ejemplo un v0.227. O necesita el cambio que comentabas?

Lo decía simplemente porque estaba haciendo pruebas (para aprender un poco) hasta ahora con el test16 y los nuevos registros y dado que el último firmware disponible tiene "rota" por el momento la escritura en la SPI, y dado que tengo el puerto JTAG roto y ando con el programador de flash externo, voy actualizando todo por EAR y CL cada vez que pruebo algún cambio de los que hago en la BIOS que uso de conejillo de indias. Me resulta bastante cómodo y rápido.

Si no, supongo que la otra opción es crearme el bitfile nuevo y el firmware nuevo e inyectarlo en un volcado de mi SPI y regrabarlo con el programador externo... lo malo es que cada vez que haga un cambio de mis pruebas, tendría que repetir el proceso de inyectado del firmware que haya compilado y regrabar... q es algo más latoso.

Hasta ahora he probado con éxito tanto el registro $04 (scancode) en escritura y el $FF (CoreID) para sacar el string, en mis pruebas con el firmware.asm, y quería probar el scratch, para que el que hago del $04 se haga sólo en el arranque en frío, por eso me interesa probar el test17 y de ahí mi pregunta antes de actualizar.

Perdonad cualquier imprecisión, aún estoy en una fase muy inicial de aprendizaje :)

Gracias!

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

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 29 Jun 2015, 20:14

Quest escribió:Una pregunta sobre el test17 antes de probarlo, sobre lo último que has comentado. ¿Funcionaría con un firmware anterior? por ejemplo un v0.227. O necesita el cambio que comentabas?

Funciona con un firmware anterior. Simplemente, si usas el mapa de teclado que tiene por defecto, no pulses F12 porque probablemente se colgará :D

Quest escribió:Hasta ahora he probado con éxito tanto el registro $04 (scancode) en escritura y el $FF (CoreID) para sacar el string, en mis pruebas con el firmware.asm, y quería probar el scratch, para que el que hago del $04 se haga sólo en el arranque en frío, por eso me interesa probar el test17 y de ahí mi pregunta antes de actualizar.

Perdonad cualquier imprecisión, aún estoy en una fase muy inicial de aprendizaje :)

Gracias!


De todas formas, este test17 no aporta nada nuevo, salvo el tema de la NMI. Cuando Antonio incorpore los cambios al firmware y haga algo con esa NMI, entonces tendrá sentido que el personal se cambie al test17, para probar esos cambios y se vea el potencial que tiene esta NMI.
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: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 29 Jun 2015, 20:22

Gracias!

Entonces el test16 ya tenia operativo el registro scratch? En tal caso me evitaria actualizar de momento para las pruebas q queria hacer con él. Si lo esta a partir del 17 entonces si actualizaré para poder probarlo :)

-- Actualizado 29 Jun 2015, 20:40 --

EDITO: Da igual, he actualizado a test17 para estar seguro al 100% de que el registro estaba implementado.

Ya lo he probado, para diferenciar el arranque en frío y funciona perfectamente, la inicialización del teclado ahora ya he podido hacerla sólo en el primer arranque :D

Por cierto, sólo una cosilla más, una tontería en realidad, el CoreID podríamos ponerlo en formato "TXX-aaaammdd", es por que el número sea realmente incremental, y para facilitar las comparaciones mayor/menor.

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

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 29 Jun 2015, 22:03

Ok. Lo siguiente que haré será una rutina demo experimental. Ahora que lo pienso, la SRAM 6 forma parte del Spectrum 128K. No es plan de corromper estos datos. En realidad con la mitad de SRAM 12 (los 8K que no usa la ROM del ESXDOS) tendría suficiente para código, pero voy a necesitar un buffer muy grande para restaurar la pantalla, así que mejor usaré SRAM 13. Como por ahora tengo espacio de sobra en el firmware, lo usaré para alojar dichas rutinas NMI especiales (al comienzo se hará una copia de SRAM 8 a SRAM 13). Si luego me quedo corto, siempre puedo echar mano de casi 4K que tengo en AB050 (SPI flash).

He modificado el bootloader.asm para permitir interrupciones INT. Posiblemente me hagan falta para introducir texto por teclado. El código fuente está en el repositorio (aquí sólo subo el binario).
Adjuntos
bootloader.zip
(273 Bytes) Descargado 298 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: 54 veces
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 29 Jun 2015, 23:28

antoniovillena escribió:Ok. Lo siguiente que haré será una rutina demo experimental. Ahora que lo pienso, la SRAM 6 forma parte del Spectrum 128K. No es plan de corromper estos datos.

Por supuesto: por eso es p-r-o-v-i-s-i-o-n-a-l , pensado para que puedas testear rutinas de NMI sin más que cargarlas con un TAP a la página 6 de RAM, sin tener que tocar la BIOS o grabar cosas en la SPI para cada prueba.

antoniovillena escribió:En realidad con la mitad de SRAM 12 (los 8K que no usa la ROM del ESXDOS) tendría suficiente para código, pero voy a necesitar un buffer muy grande para restaurar la pantalla, así que mejor usaré SRAM 13. Como por ahora tengo espacio de sobra en el firmware, lo usaré para alojar dichas rutinas NMI especiales (al comienzo se hará una copia de SRAM 8 a SRAM 13). Si luego me quedo corto, siempre puedo echar mano de casi 4K que tengo en AB050 (SPI flash).

No nos compliquemos la vida: deja la página 12 para ESXDOS y usa la 13. Tienes de hecho desde la 13 a la 15 sin usar.

Lo que no me convence de este esquema es que tienes como máximo 16K disponibles para una rutina configurable desde BIOS, sin tener que cambiar el core. Quiero decir: tienes como máximo 16K para todo: código, datos y pila. No puedes tocar la memoria entre 4000h y BFFFh sin guardarla antes en algún otro sitio. Y aunque tienes 3 páginas de SRAM donde podrías volcar esa información, no puedes cambiar de página sin perder el control de la ejecución, salvo que implementes en la ROM del bootloader rutinas para copiar datos entre dos páginas cualesquiera de la SRAM. Así sí podrías tener algo de más espacio.

Aunque por otra parte.... no sé... son 16K y es una rutina NMI, no un S.O. completo. "16K deberían ser suficientes para todos" (luego el tiempo hará que me arrepienta de haber dicho esto, verás... :P )
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
chernandezba
MSX Turbo R
MSX Turbo R
Mensajes: 264
Registrado: 11 Mar 2015, 10:42
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: NeoGeo
Primera consola: Atari 2600
Gracias dadas: 13 veces
Gracias recibidas: 167 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor chernandezba » 30 Jun 2015, 13:13

A mi me recuerda esa frase a la que supuestamente dijo Bill Gates... aunque parece que no fue así :P

http://www.computerworld.com/article/25 ... y-it-.html
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

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

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 04 Jul 2015, 18:18

Mientras Antonio prepara el soporte para la NMI especial del TEST 17, os presento el inenarrable e inconmensurable...

TEST 18

En este core por fin tenemos soporte para raton Kempston, que era una de las cosas que faltaba por poner en el core "oficial" desde el principio.
Para conectar el ratón y el teclado al único conector PS/2 que hay en el ZX-Uno se necesita un cable "splitter" como éste:

cable_splitter_ps2.jpg
cable_splitter_ps2.jpg (18.79 KiB) Visto 6268 veces

No he tenido problemas para encontrar este cable en una tienda de estas de chinos, pero si teneis dificultades en encontrarlo, añado unos links a sitios donde podeis pillar uno:

http://www.ebay.es/itm/25cm-PS-2-Splitt ... 3f20b6cd5a
http://es.aliexpress.com/store/product/ ... 74359.html
http://www.amazon.es/LogiLink-AU0004A-A ... V2WSNDN1SZ

Seguramente hay cien sitios más donde comprar uno. Me ha pasado, con uno de estos cables, que para funcionar he tenido que poner el teclado en el conector que pone ratón, y el ratón donde el teclado. El modelo de este cable era particularmente antiguo, así que igual se fabricó antes de que el pineado para compartir teclado y ratón fuera estándar.

A diferencia del teclado, el ratón no comienza a funcionar una vez enchufado: hay que inicializarlo. Mientras se da soporte a esta función en BIOS, he añadido la secuencia de inicialización en ZXUNOCFG. No hay que hacer nada especial. Tan solo se emite el comando y ya está. Aparecerá que el ratón está inicializado. Descargad, por tanto, la última versión de dicha utilidad para usarla desde ESXDOS.

Desde BASIC la inicialización se hace con: OUT 64571,9: OUT 64827,244 Mientras no se quite la alimentación al ratón, no hará falta inicializarlo más veces.

En el repositorio, en "software", vereis una nueva carpeta "kmouse". Ya sabeis qué encontrareis en ella ;) Yo estoy ahora re-enviciándome al Lemmings, que la verdad es que tiene muy buena pinta en el Spectrum. Como veis, hay juegos clásicos, como el Arkanoid o el Flying Shark: VELESOFT ha parcheado estos juegos para que funcionen con el KMOUSE en lugar de con el teclado o el joystick. El Arkanoid se juega muy bien, aunque al principio hace un extraño cuando vas a hacer el "saque inicial". También hay juegos escritos expresamente para el KMOUSE, y de hecho en la página de Velesoft hay muchos más. Y no sólo juegos: utilidades como The Artist, o Art Studio también están disponibles para ser usadas con el ratón :)

Este test 18 tiene el soporte de NMI especial que está preparando Antonio, pero mientras no esté implementado debidamente, no es de utilidad, así que si pulsais F12 el ordenador se colgará, se reseteará, o vaya usté a saber qué hará :D Nada que no se solucione con un Ctrl-Alt-BkSpace, por supuesto.
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: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 04 Jul 2015, 19:43

Perdón por el retraso en el firmware. Me he puesto con otro proyecto hardware que tenía parado (el ComCon). Tiene muy buena pinta el TEST 18.

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

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 04 Jul 2015, 20:56

antoniovillena escribió:Perdón por el retraso en el firmware. Me he puesto con otro proyecto hardware que tenía parado (el ComCon). Tiene muy buena pinta el TEST 18.

Solo faltaría que tuvieras que pedir perdón, hombre. El soporte de NMI estará cuando tenga que estar, como todo lo demás :) Me consta que además del Comcom estais Hark0 y tú muy liados haciendo las gestiones para que por fin podamos sacar el ZX-Uno, así que nada, no problem!

-- Actualizado 04 Jul 2015, 22:37 --

Por cierto, Antonio: pregunta/proposición. ¿Te parece buena idea que una de las fuentes de la NMI especial sea el disparo de un timer, con idea de poder implementar un salvapantallas para cuando no se esté operando con el ZX-Uno? La implementación sería un timer que contaría frames (50 por segundo). Cuando el timer llegara a un cierto valor configurable (0 para deshailitar el disparo), dispararia una NMI especial. Si se detecta pulsación de teclas, movimiento del joystick, o cambios en EAR, el timer volvería a resetearse. En la rutina NMI se podría poner cualquier cosilla (por ejemplo el efecto Matrix que le gustó a Chris Smith ;) ) para evitar que el ZX-Uno esté con una pantalla fija.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
celestinox
Commodore 128
Commodore 128
Mensajes: 97
Registrado: 07 Dic 2012, 17:04
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
Primera consola: Sony PlayStation 2
Gracias recibidas: 9 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor celestinox » 05 Jul 2015, 15:41

mcleod_ideafix escribió:A diferencia del teclado, el ratón no comienza a funcionar una vez enchufado: hay que inicializarlo. Mientras se da soporte a esta función en BIOS, he añadido la secuencia de inicialización en ZXUNOCFG. No hay que hacer nada especial. Tan solo se emite el comando y ya está. Aparecerá que el ratón está inicializado. Descargad, por tanto, la última versión de dicha utilidad para usarla desde ESXDOS.

Desde BASIC la inicialización se hace con: OUT 64571,9: OUT 64827,244 Mientras no se quite la alimentación al ratón, no hará falta inicializarlo más veces.

En el repositorio, en "software", vereis una nueva carpeta "kmouse". Ya sabeis qué encontrareis en ella ;) Yo estoy ahora re-enviciándome al Lemmings, que la verdad es que tiene muy buena pinta en el Spectrum. Como veis, hay juegos clásicos, como el Arkanoid o el Flying Shark: VELESOFT ha parcheado estos juegos para que funcionen con el KMOUSE en lugar de con el teclado o el joystick. El Arkanoid se juega muy bien, aunque al principio hace un extraño cuando vas a hacer el "saque inicial". También hay juegos escritos expresamente para el KMOUSE, y de hecho en la página de Velesoft hay muchos más. Y no sólo juegos: utilidades como The Artist, o Art Studio también están disponibles para ser usadas con el ratón :)


Ahora me estás picando con lo de colocar un segundo USB para ratón en mi próximo engendro.
Una pregunta; aunque nos has enseñado un splitter PS2; has probado algún ratón USB con adaptador?? Tendremos problemas parecidos a los de los teclados?

Un saludo.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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