El bit IFF2 es un flag que se emplea en las NMI. Es el encargado de recordar el estado de IFF antes de la NMI. No te va a servir de nada porque no hay ninguna instrucción con la que puedas setear este flag, la única forma es mediante NMI. Así que ignora este bit.spark2k06 escribió: ld a,(interrupt) ; Interrupt (bit 2 contains IFF2, 1=EI/0=DI) -> SNA Format (worldofspectrum.org)
bit 0,a ; -> He observado un snapshot con EI que esta este byte a $01 y otro con DI que esta a $00 (a que se refiere entonces con que el bit 2 contiene IFF2???)
[Resuelto] Como se crean juegos en ROM?
- antoniovillena
- Mensajes: 2621
- Registrado: 27 Sep 2015, 20:41
Re: Como se crean juegos en ROM?
Re: Como se crean juegos en ROM?
De acuerdo, ignoro el bit 2. El bit 0 entonces es EI/DI verdad? Y el resto de bits? tienen algún significado?
Enviado desde mi thor mediante Tapatalk
Enviado desde mi thor mediante Tapatalk
Re: Como se crean juegos en ROM?
Me voy a autoresponder, esa observación que hice era incorrecta... en el código me refiero al valor Interrupt del SNA, pero la observación de $00 y $01 la estaba haciendo sobre otro byte que ya lo tengo bien gestionado, concretamente el IntMode:spark2k06 escribió:
ld a,(interrupt) ; Interrupt (bit 2 contains IFF2, 1=EI/0=DI) -> SNA Format (worldofspectrum.org)
bit 0,a ; -> He observado un snapshot con EI que esta este byte a $01 y otro con DI que esta a $00 (a que se refiere entonces con que el bit 2 contiene IFF2???)
call nz,setei
ld a,(intmode)
cp $00
call z, im0
cp $01
call z, im1
cp $02
call z, im2
De todas formas, todo el lío lo he tenido por la forma de detallar el formato en worldofspectrum... me parece mucho mas clara la que viene en:
http://faqwiki.zxnet.co.uk/wiki/SNA_format
y aquí sí, queda mucho mas claro que el valor del offset $13 del formato SNA, corresponde únicamente al IFF2, y a través del bit 2, el resto no se usan:
The file begins with a 27-byte header containing the Z80 registers:
$00 I
$01 HL'
$03 DE'
$05 BC'
$07 AF'
$09 HL
$0B DE
$0D BC
$0F IY
$11 IX
$13 IFF2 [Only bit 2 is defined: 1 for EI, 0 for DI]
$14 R
$15 AF
$17 SP
$19 Interrupt mode: 0, 1 or 2
$1A Border colour
Y este bit sí hay que tenerlo en cuenta, pero únicamente para lanzar un EI o dejarlo en DI.
Dicho lo cual, a ver si preparo un resumen de todo el proceso y comparto el código...
Gracias a antonio por las pistas y la ayuda ofrecida, y Cesar por su emulador ZEsarUX, imprescindible para depuración.
Re: Como se crean juegos en ROM?
Aquí tenéis el código:
https://github.com/spark2k06/zxuno/tree ... /loader128
Y próximamente un vídeo
Como última opción he puesto la ROM SE Basic rooteada para poder reemplazar este pack de ROMS por otro, pero sería interesante hacer más amigable esta actualización mediante un menú con las ZX1 de ROMS desde la SD.
Las ROMS que se creen de 128K deben marcarse como ROOT en el menú, de lo contrario se quedará colgado tras el volcado de la VRAM. Sería interesante también la adaptación del ZX1Rompack para permitir ROMs de 128k y que se marquen como ROOT.
Saludos!
Última edición por spark2k06 el 24 Oct 2016, 16:49, editado 4 veces en total.
Re: Como se crean juegos en ROM?
Y ahora sí, el vídeo de demostración:
Cualquier optimización del código del loader es bienvenido para tener menos líneas fantasma en la imagen de presentación de la carga de la "ROM" de 128k, ya que ahora mismo ocupa 351 bytes y se notan al ser volcados a la VRAM.
phpBB [media]
Cualquier optimización del código del loader es bienvenido para tener menos líneas fantasma en la imagen de presentación de la carga de la "ROM" de 128k, ya que ahora mismo ocupa 351 bytes y se notan al ser volcados a la VRAM.
Última edición por spark2k06 el 15 Nov 2016, 06:23, editado 1 vez en total.
Re: Como se crean juegos en ROM?
Una cosa que se me ocurre para bordarlo, evitando estas líneas fantasmas durante la carga...
Sería almacenar el loader en espacio libre de la pila del snapshot en lugar de la VRAM... y no se notaría la diferencia respecto a la carga de ROMs procedentes de snapshots de 48K en ZXUno .
Todo se andará....
Sería almacenar el loader en espacio libre de la pila del snapshot en lugar de la VRAM... y no se notaría la diferencia respecto a la carga de ROMs procedentes de snapshots de 48K en ZXUno .
Todo se andará....
Re: Como se crean juegos en ROM?
Por cierto, si alguien está interesado en este pack para cargarlo fácilmente con .romsupgr, lo dejo compartido en mi servidor casero:
PackDinamic2A.ZX1
Añadid excepción de seguridad en vuestro navegador cuando os pida, es SSL pero no está registrado en una entidad certificadora. La contraseña os la facilito por privado.
Saludos.