Bien, como el calor me provoca una pereza terrible para enfrentarme al z80 y estoy de semivacaciones, he aquí mi buena acción del mes para con la comunidad.
Esto va destinado más bien a los novatos como yo en el mundo del ensamblador. Son cosillas que fui encontrando/descubriendo en mis pesquisas para ver cómo hacer de manera simple las cosas. Supongo que a alguien le puede resultar útil, ahí va:
-Temporizador o contador de interrupciones:
La variable de sistema JIFFY, en la dirección $FC9E (2 bytes), es igual que el TIME del basic. Se incrementa en cada interrupción y puedes darle valores.
-Lectura de los disparadores:
TRGFLG en $F3E8 (1 byte), contiene esta información
7 6 5 4 3 2 1 0
| | | | +-- Space bar, trig(0) (0 = pressed)
| | | +---------- Stick 1, Trigger 1 (0 = pressed)
| | +------------ Stick 1, Trigger 2 (0 = pressed)
| +-------------- Stick 2, Trigger 1 (0 = pressed)
+---------------- Stick 2, Trigger 2 (0 = pressed)
se actualiza a cada interrupción, al igual que la siguiente.
-Lectura de los cursores (o del teclado)
En el espacio entre $FBE5-$FBEF (11 bytes) está la variable NEWKEY que recoge el mapa del teclado. La fila 8 (en $FBED) es la de los cursores, con este formato:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
→ ↓ ↑ ← DEL INS HOME SPACE
-Lectura joystick:
Al hacer una llamada a GTSTCK cuando miramos uno de los joysticks (no con los cursores) además de devolver en A el valor correspondiente, tenemos en E esta información: 0000RLDU. Así si solo queremos comprobar una dirección (horizontal o vertical o lo que sea) sólo hay que comprobar el/los bits correspondientes, sin más líos. Incluso puedes mirar si se pulsan simultáneamente arriba y abajo o derecha e izquierda, que de la manera normal no se puede.
Esto no está documentado oficialmente, pero creo que debe funcionar en todas las máquinas. Lo probé con todas las BIOS distintas que encontré en emuladores y rula. También en mi VG8020 (y en el Sony HB-75P y en el TR FS-A1ST, gracias jl
). Si lo podeis probar en vuestras máquinas y me contais si da algún problema os lo agradecería infinitamente...
(mirar aquí:
http://www.msxgamesbox.com/karoshi/index.php?topic=268.15 )
No va con CBIOS, pero no creo que sea mucho problema, no?
Bien, perdón por el tocho, pero lo dicho, que creo que le puede ser útil a alguien como yo, un pardillo que empieza...