Novedades acerca del ZX-Uno
- mcleod_ideafix
- 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: Novedades acerca del ZX-Uno
Ok. Lo pruebo entonces. Otra cosa: el comportamiento de issue 2 e issue 3 está cambiado. Cuando en la BIOS dice que está activado el issue 3, se comporta como issue 2 y viceversa. Para issue 3, el valor del bit correspondiente es 0, y para issue 2, es 1.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Novedades acerca del ZX-Uno
mcleod_ideafix escribió:Ah! Otra cosa. He probado Open SE IV con el soporte de DIVMMC y éste sí arranca (es por eso que te pregunto lo anterior). Lo curioso es que aunque desactivo el soporte de NMI para DIVMMC, al pulsar NMI, me salta siempre el browser NMI de ESXDOS.
Esto último no tengo muy claro si desde la BIOS están bien o invertidas las funciones de activado/desactivado. Si están invertidas tiene facil solución (con un XOR justo antes de enviar el byte al puerto)
- mcleod_ideafix
- 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: Novedades acerca del ZX-Uno
antoniovillena escribió:Esto último no tengo muy claro si desde la BIOS están bien o invertidas las funciones de activado/desactivado. Si están invertidas tiene facil solución (con un XOR justo antes de enviar el byte al puerto)
Exacto. Pasa como con el teclado issue2/issue 3, que están cambiadas las funciones.
-- Actualizado 22 Abr 2014, 02:16 --
antoniovillena escribió:Para copiar los 4 bancos con la misma rom de 48K hay que hacer esto:Código: Seleccionar todo
GenRom 8 4 0 0 "'ZX Spectrum 48K'" 48.rom 48.tap
Por defecto arranca en el banco 0 de la ROM. Si quieres que arranque en el banco 3 habría que poner esto:Código: Seleccionar todo
GenRom 8 4 4 16 "'ZX Spectrum 48K'" 48.rom 48.tap
Recuerda, el tercer valor es lo que se escribe en el puerto 1ffd (un 4) y el cuarto valor lo que va al 7ffd (un 16).
Errr... pero esto es para generar un TAP para cargarlo desde cassette. Yo no quiero hacer eso (no tengo de hecho fuente de audio para cargar nada aquí). Quiero generar un MCS con las ROM's correctas. ¿Con "generamcs.bat" se genera bien el MCS con la ROM de 48K cargándose en el sitio correcto?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- TallerSeverino
- Amstrad PC 1640
- Mensajes: 519
- Registrado: 12 Abr 2013, 09:55
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo NES/Clónica
- Primera consola: Nintendo NES/Clónica
- Ubicación: Cádiz
- Gracias dadas: 17 veces
- Gracias recibidas: 17 veces
Re: Novedades acerca del ZX-Uno
antoniovillena escribió:Pásame el TAP que has subido en upgrade machine, a lo mejor es eso lo que está mal.
Es el tap que hay en el repositorio firmware\roms, cargado con tapir a velocidad normal.
Voy a hacer todos los pasos que hice en un principio, hacer todos los test y asegurarme cada vez que al quitar la alimentación cada test se queda realmente en el zxuno, a ver dónde llego.
Un saludo.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Novedades acerca del ZX-Uno
Ya está, ya he invertido las 2 opciones que estaban mal y lo he subido al repositorio.
Para lo que dices sí, se crea con generamcs.bat, tendrías que cambiar el 2b500.asm por esto, líneas de 49 a 53:
En realidad son los valores de la primera línea los que cambian. Si pones otra ROM distinta tienes que usar GenRom y leer el CRC con un editor hexadecimal. En esta rom el CRC es $1b, $fe, o bien $fe1b si se toma como word.
-- Actualizado 22 Abr 2014, 02:25 --
Excepto el 7 y el 1, los demás son los mismos 4 valores que se le pasan al GenRom. El 7 es el slot donde se almacenará de los 20 que hay, y el 1 es el número de slots que ocupa.
Para lo que dices sí, se crea con generamcs.bat, tendrías que cambiar el 2b500.asm por esto, líneas de 49 a 53:
Código: Seleccionar todo
defb $07, 1, $08, 4, $04, $10, $ff, $ff
defb $1b, $fe, $ff, $ff, $ff, $ff, $ff, $ff
defb $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff
defb $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff
defm 'ZX Spectrum 48K '
En realidad son los valores de la primera línea los que cambian. Si pones otra ROM distinta tienes que usar GenRom y leer el CRC con un editor hexadecimal. En esta rom el CRC es $1b, $fe, o bien $fe1b si se toma como word.
-- Actualizado 22 Abr 2014, 02:25 --
Excepto el 7 y el 1, los demás son los mismos 4 valores que se le pasan al GenRom. El 7 es el slot donde se almacenará de los 20 que hay, y el 1 es el número de slots que ocupa.
- mcleod_ideafix
- 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: Novedades acerca del ZX-Uno
mcleod_ideafix escribió:Errr... pero esto es para generar un TAP para cargarlo desde cassette. Yo no quiero hacer eso (no tengo de hecho fuente de audio para cargar nada aquí). Quiero generar un MCS con las ROM's correctas. ¿Con "generamcs.bat" se genera bien el MCS con la ROM de 48K cargándose en el sitio correcto?
EDITO: lo he podido cargar desde audio a velocidad normal. Va ahora perfectamente. Lo que he hecho es:
GenROM 11 1 4 16 .... resto de parámetros...
Ahora sí funciona el DIVMMC con la ROM de 48K. Voy a modificar el test13 para añadirle el soporte de lectura de teclado PC. Luego cuento detalles...
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Novedades acerca del ZX-Uno
Genial. Si tienes tiempo prueba a ver si la versión de CargandoLeches que he puesto más arriba funciona con ESXDOS, exactamente en este link:
viewtopic.php?f=26&t=5117&start=50#p42141
viewtopic.php?f=26&t=5117&start=50#p42141
- mcleod_ideafix
- 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: Novedades acerca del ZX-Uno
antoniovillena escribió:Tengo recién salida del horno una ROM de CargandoLeches con las siguiente opciones, seleccionables independientemente:
- Reset&Play, para no tener que teclear LOAD""
Funciona.
antoniovillena escribió:Escritura sin tokens
No lo he probado mucho, pero parece que funciona.
antoniovillena escribió:Pokeador por NMI
No funciona. Pulso NMI, sale el cuadrado, pongo una dirección (he probado con 18432, en la pantalla, y con 40000), pongo un valor (255), pulso dos veces ENTER y se queda bloqueado.
Lo he incorporado a la BIOS cargándolo desde audio, generando el TAP con los parámetros 11 4 16.
Más cosas: si desde la BIOS desactivo el soporte de DIVMMC, el sistema no es capaz de arrancar la ROM de usuario. Se queda como en un bucle sin fin. La cosa no se arregla si apago y enciendo el clon, por lo que no es un tema de bancos de RAM que deban borrarse o algo.
-- Actualizado 22 Abr 2014, 03:01 --
Por cierto.... sigue siendo una super-pasada lo del "cargando leches", una vez, eso sí, que consigo calibrar volumen y tono del amplificador que uso. Después de eso, puedo cargar ficheros grabados con el nivel 1 del programa CgLeches

-- Actualizado 22 Abr 2014, 03:48 --
antoniovillena escribió:mcleod_ideafix escribió:Ah! Otra cosa. He probado Open SE IV con el soporte de DIVMMC y éste sí arranca (es por eso que te pregunto lo anterior). Lo curioso es que aunque desactivo el soporte de NMI para DIVMMC, al pulsar NMI, me salta siempre el browser NMI de ESXDOS.
Esto último no tengo muy claro si desde la BIOS están bien o invertidas las funciones de activado/desactivado. Si están invertidas tiene facil solución (con un XOR justo antes de enviar el byte al puerto)
Mírate la wiki:
http://www.zxuno.com/index.php/ZX_Spect ... _de_ZX-Uno
porque por lo que veo en los comentarios de 2b500.asm...
Código: Seleccionar todo
; 24: NMI-DivMMC 0: Disable, 1: Enable
; 25: Issue 0: Issue 2, 1: Issue 3
tienes algo confundidos lo que significa cada bit en el registro MasterConf, y de ahí que algunas opciones del menú aparezcan con el comportamiento cambiado. He aprovechado para añadir en la wiki lo concerniente al nuevo registro $04 para leer el scancode de teclado.
-- Actualizado 22 Abr 2014, 03:59 --
Más cosas que no entiendo: en generamcs.bat aparecen dos offsets: 29500 y 2B500. ¿Cuál es el que se usa en realidad? Porque curiosamente, 29500 me da error en el iMPACT, pero en srec_cat parece que es el que se usa

Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Novedades acerca del ZX-Uno
En 29500 están los 8K del ESXDOS, en 2B500 están las tablas de las ROMs y en 2C000 el firmware de la BIOS. A partir de 30000 están los 20 slots disponibles para el usuario. Parece lioso pero está bien, roms_29500.bin es el archivo que contiene todo lo que va después de la configuración, se concatena con el tld_zxuno.bit para generar el prom.mcs completo (512Kb)
Gracias a probar el pokeador he encontrado un fallo. La NMI se dispara 2 veces. He escrito parcheado el Pokemon original para que se muestre elfondoborde rojo si salta una NMI encima de otra NMI. Bajo emulador no pasa, pero en el ZX-Uno pasa siempre. Vamos que se produce más de una NMI cuando sólo pulso una vez Ctrl+Alt+F5.
-- Actualizado 22 Abr 2014, 04:21 --
Está bien. Para simplificar la programación todos los parámetros tienen la misma codificación, 0 para disable y 1 para enable. Lo que hago es invertir luego, después de condensar todos estos parámetros en el byte Master_Conf. Esto son variables que ocupan un byte cada una (posición 24, posición 25), otra cosa son los bits de Master_Conf. En estos también lo hice mal pero ya lo corregí XOReando.
Gracias a probar el pokeador he encontrado un fallo. La NMI se dispara 2 veces. He escrito parcheado el Pokemon original para que se muestre el
-- Actualizado 22 Abr 2014, 04:21 --
mcleod_ideafix escribió:Mírate la wiki:
http://www.zxuno.com/index.php/ZX_Spect ... _de_ZX-Uno
porque por lo que veo en los comentarios de 2b500.asm...Código: Seleccionar todo
; 24: NMI-DivMMC 0: Disable, 1: Enable
; 25: Issue 0: Issue 2, 1: Issue 3
tienes algo confundidos lo que significa cada bit en el registro MasterConf, y de ahí que algunas opciones del menú aparezcan con el comportamiento cambiado. He aprovechado para añadir en la wiki lo concerniente al nuevo registro $04 para leer el scancode de teclado.
Está bien. Para simplificar la programación todos los parámetros tienen la misma codificación, 0 para disable y 1 para enable. Lo que hago es invertir luego, después de condensar todos estos parámetros en el byte Master_Conf. Esto son variables que ocupan un byte cada una (posición 24, posición 25), otra cosa son los bits de Master_Conf. En estos también lo hice mal pero ya lo corregí XOReando.
- Adjuntos
-
- pokemon48.zip
- (12.66 KiB) Descargado 317 veces
- mcleod_ideafix
- 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: Novedades acerca del ZX-Uno
Intento generar el archivo MCS gordo haciendo generamcs.bat, para probar a ver qué tal el nuevo puerto para scancode pero se sigue quejando de que faltan archivos:
Vale. Este es fácil: estás usando / en lugar de \ para separar directorios.
El archivo strings.bin.zx7b no lo tengo. De hecho no tengo nada que se llame "strings".
Este tampoco lo tengo.
Ídem.
Ídem.
-- Actualizado 22 Abr 2014, 04:41 --
Curioso... el pulso de NMI se genera limpiamente dentro del core. Aunque los contactos del teclado tengan microrrebotes, el microcontrolador del mismo los amortigua y lo que leo es un único scancode. La verdad es que nunca he visto el pulso de NMI que se genera. Igual estoy generando un tren de pulsos NMI en lugar de uno solo, y no me he dado cuenta.
Código: Seleccionar todo
C:\Users\rodriguj\Documents\zxspectrum\zxuno\repositorio\firmware\roms>../sjasm
lus 2b500.asm
".." no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
Vale. Este es fácil: estás usando / en lugar de \ para separar directorios.
Código: Seleccionar todo
C:\Users\rodriguj\Documents\zxspectrum\zxuno\repositorio\firmware>sjasmplus fir
ware.asm
SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
firmware.asm(2124): error: Error opening file: strings.bin.zx7b
El archivo strings.bin.zx7b no lo tengo. De hecho no tengo nada que se llame "strings".
Código: Seleccionar todo
C:\Users\rodriguj\Documents\zxspectrum\zxuno\repositorio\firmware>fcut fir
ware_strings.rom 8000 -8000 strings.bin
Input file not found: firmware_strings.rom
Este tampoco lo tengo.
Código: Seleccionar todo
C:\Users\rodriguj\Documents\zxspectrum\zxuno\repositorio\firmware>zx7b str
ngs.bin strings.bin.zx7b
Error: Cannot access input file strings.bin
Ídem.
Código: Seleccionar todo
C:\Users\rodriguj\Documents\zxspectrum\zxuno\repositorio\firmware>sjasmplus fir
ware.asm
SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
firmware.asm(2124): error: Error opening file: strings.bin.zx7b
Ídem.
-- Actualizado 22 Abr 2014, 04:41 --
antoniovillena escribió:Gracias a probar el pokeador he encontrado un fallo. La NMI se dispara 2 veces. He escrito parcheado el Pokemon original para que se muestre elfondoborde rojo si salta una NMI encima de otra NMI. Bajo emulador no pasa, pero en el ZX-Uno pasa siempre. Vamos que se produce más de una NMI cuando sólo pulso una vez Ctrl+Alt+F5.
Curioso... el pulso de NMI se genera limpiamente dentro del core. Aunque los contactos del teclado tengan microrrebotes, el microcontrolador del mismo los amortigua y lo que leo es un único scancode. La verdad es que nunca he visto el pulso de NMI que se genera. Igual estoy generando un tren de pulsos NMI en lugar de uno solo, y no me he dado cuenta.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados