Novedades acerca del ZX-Uno

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

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 22 Abr 2014, 06:44

El bootloader carga la BIOS en la página 8, pone BOOTM a 0 y salta a 0, ejecutándose la BIOS. La BIOS funciona la mayor parte del tiempo en modo BOOTM=0. Solo se mete en BOOTM=1 en estos casos:
  • Justo antes de cargar una ROM. Lo hace así porque la ROM puede empezar en la página 8 y para que no se solape con la BIOS esto se hace desde memoria alta.
  • Al cargar una Máquina. Son 12 páginas de memoria y en modo BOOTM=0 sólo tenemos acceso a 8, se podría cargar en 2 tandas pero con un riesgo muy alto de que si se produce un error de carga dejamos la configuración a medio grabar. Lo que se hace es ir copiando y conmutando de BOOTM=0 a BOOTM=1 continuamente hasta almacenar las 12 páginas, una vez estén todas en memoria (y estén bien todos los CRCs) se graban a SPI Flash de golpe

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: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 22 Abr 2014, 06:46

Creo que ya sé lo que pasa: es la ROM inicial. Ocupa 55 bytes y yo he definido una ROM de 64 bytes (la potencia de 2 más próxima), pero resulta que si al inicializarla con $readmemh() no la llenas entera y quedan posiciones sin inicializar, el sintetizador se carga entera la ROM.

Así que en el bloque "initial" del módulo que implementa la ROM tengo que hacer algo como esto:

Código: Seleccionar todo

initial begin
  for (i=0;i<64;i=i+1) begin
    mem[i] = 8'h00;   // primero me aseguro de que toda la memoria está inicializada
  end
  $readmemh ("bootloader_hex.txt", mem, 0);  // luego cambio alguno de sus valores desde el fichero
end
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: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 22 Abr 2014, 06:47

Si quieres te puedo pasar los archivos modificados del test12 con los que funciona, y poco a poco le vas metiendo tus cambios del test13 hasta dar con el error.

-- Actualizado 22 Abr 2014, 05:51 --

Así es más fácil y funciona:

Código: Seleccionar todo

   reg [7:0] mem[0:55];
   initial begin
      $readmemh ("bootloader_hex.txt", mem, 0);
   end


Ojo, son 56 bytes, no 55
Adjuntos
test12.zip
(3.59 KiB) Descargado 403 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: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 22 Abr 2014, 06:52

Ya funciona el TEST 13 :) Era lo de la ROM...

-- Actualizado 22 Abr 2014, 05:53 --

antoniovillena escribió:Así es más fácil y funciona:

Y propenso a errores, ya que tienes que acordarte de calcular y cambiar el tamaño de la ROM cada vez que hagas un cambio en el bootloader.
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: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 22 Abr 2014, 06:58

Genial. A lo tonto llevamos 9 páginas de hilo en 3 días.

Yo creo que ya tenemos algo que podamos enseñar en RM.

-- Actualizado 22 Abr 2014, 05:59 --

¿Por cierto cómo va la demo de Radastan en el modo gráfico especial? Lo digo para meterlo en una ROM y ahorrarnos el tener que cargarlo vía cinta.

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: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 22 Abr 2014, 07:02

Por cierto, el nuevo puerto para leer scancodes también funciona. El scancode de la tecla BkSpace es 102 (decimal). La secuencia para leer la última pulsación de tecla es algo como esto:

Código: Seleccionar todo

ld bc,$fc3b
ld a,4
out (c),a   ;registro $04 del ZX-Uno. Teclado PC
inc b
in a,(c)    ;en lectura, devuelve el scancode de la última tecla pulsada o soltada


Dado que para que el master reset funcione, la secuencia de tres teclas debe terminar con la pulsación de BkSpace (si se pulsa BkSpace antes que Ctrl o Alt no se genera el master reset), lo primerísimo que la BIOS leerá de este puerto es el referido valor 102, a menos que el usuario sea tan rápido como para que en los primeros microsegundos de ejecución de la BIOS ya haya soltado las tres teclas :)

-- Actualizado 22 Abr 2014, 06:03 --

antoniovillena escribió:¿Por cierto cómo va la demo de Radastan en el modo gráfico especial? Lo digo para meterlo en una ROM y ahorrarnos el tener que cargarlo vía cinta.

Ni idea. Se supone que es un juego, no una demo, pero eso es él quien tiene que pronunciarse al respecto...
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
TallerSeverino
Amstrad PC 1640
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

Mensajepor TallerSeverino » 22 Abr 2014, 07:21

Lleváis 3 páginas en una noche, sois unos máquinas!!

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: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 22 Abr 2014, 07:30

¡Ah! Una cosa más y con esto termino por esta noche. Sobre la ROM de CargandoLeches con pokeador incorporado:
- El tema del NMI sigue sin funcionar bien. Miraré en cuanto pueda si estoy o no generando un pulso limpio desde el hardware.
- CargandoLeches + DIVMMC : puedo cargar juegos desde DIVMMC usando el browser NMI, pero cuando hago un reset normal al sistema, se vuelve a cargar el juego. Para que no ocurra esto, tengo que resetear y justo después pulsar SPACE para que ESXDOS resetee sus variables internas y no intente de nuevo cargar el juego. El autor de ESXDOS ya nos comentó que la carga de juegos desde el browser hace una especie de falso reset antes de cargar el juego propiamente dicho.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
aowen
Commodore 128
Commodore 128
Mensajes: 90
Registrado: 14 Mar 2014, 14:31
Sistema Favorito: Spectrum +2
primer_sistema: Spectrum +2
consola_favorita: Nintendo GameBoy
Primera consola: Nintendo GameBoy

Re: Novedades acerca del ZX-Uno

Mensajepor aowen » 22 Abr 2014, 11:15

mcleod_ideafix escribió:Ah! Otra cosa. He probado [strike]Open[/strike] SE Basic 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.


The esxDOS NMI browser does work with SE Basic IV. It's only the snapshot loading that doesn't work owing to the browser calling reset code in the original ROM that isn't present in SE Basic IV. I'm going to suggest to the author that the browser be changed to just call the NEW command instead which should fix it. Until then you can load snapshots via the command line.

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: Novedades acerca del ZX-Uno

Mensajepor Hark0 » 22 Abr 2014, 12:02

TallerSeverino escribió:Lleváis 3 páginas en una noche, sois unos máquinas!!



O mejor dicho 9 páginas en los 4 días de Semana Santa... :shock: ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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