Estoy ultimando algo para Retromadrid, un juego sencillo en 16K para usarlo desde un cartucho IF2.
Ya he preparado el entorno para generar cartuchos (habrá apartado en el curso de Z88DK, tranquilos) pero si leo los puertos del teclado la cosa no va... o eso parece. En un programa de ejemplo me muestra un mapeado en pantalla sin problemas, pero cuando pulso teclas el muñeco dice que quietecito está muy agusto.
¿Me equivoco en algo? ¿es cosa de las interrupciones?
Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)
Moderador: na_th_an
-
- Mensajes: 494
- Registrado: Jue, 24 Oct 2013, 15:52
Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)
No deberías tener problemas en leer las teclas desde el puerto (con IN X, (C) ó IN A, ($FE)). Ahora bien, si quieres algo en alto nivel, que tenga en cuenta el código ascii de la tecla y que te detecte pulsaciones por separado, necesitas un manejador de teclado como el que tiene la ROM del Spectrum. Yo tengo mi propia versión de manejador que hice recientemente para el firmware del ZX-Uno que ocupa menos que la del Spectrum y básicamente hace lo mismo, está en dicho repositorio.
-
- Mensajes: 494
- Registrado: Jue, 24 Oct 2013, 15:52
Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)
Si lees por puerto no necesitas interrupciones. Sin embargo para el manejador sí que las necesitas.
Re: Creando juegos de ZX Spectrum para Interface 2 (cartuchicos)
Leo por puerto, pero no consigo detectar la pulsación de las teclas. Estoy usando la conocida rutina que ya comentamos:
$this->bbcode_second_pass_quote('', 'i')nt __FASTCALL__ port_in (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}
$this->bbcode_second_pass_quote('', 'i')nt __FASTCALL__ port_in (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}
Si genero un TAP normal lee perfectamente las teclas, si hago un cartucho ROM no (y no está colgado, hago animación de lo que sea también y funciona).
Muy raro.