@Chema
encontré un comando $0F en Gandalf_E05 ($C8E0), solamente éste, ninguno más!
Para mí el código que empieza en $9899 trata los comandos 0-1-2-3-4
En $9931 tratamos el comando 2, pero ahí se podría colar el comando 0 si existiera ... y tuviera tres parámetros además, claro.
Como tu dices, no tiene sentido que se procese en el bloque de >=5 porqué no llegará nunca allí!
En $996E se deshabilita un comando pasándolo a cero, pero si luego se puede procesar por el agujero que hemos visto ... ¿qué pinta el 0?
En $98BF se controla que si el comando es >4 no se haga nada y pase al siguiente personaje, pero es que está en la parte
donde se procesan los comando 0-1-2-3-4 o sea que los mayores de 4 están excluidos ... (?)
Tiene pinta de maravilloso bug, ya lo trazaré con breakpoints condicionales cuando lo tengamos para 6809, no creo que llegue nuca a esta parte de código, pero ...
Efectivamente, parece que no hay comandos 1 en los directorios, pero tampoco he visto tratamiento específico para el 7 ...
Parece que si no es uno de: $E, $F, $C, $0 y es mayor de 4 (sic) se limita a resetear a la entrada inicial del directorio, ¿no?
La parte Script_SetNextInstuction $9918 la veo muy rara.
Recibe en DE los bytes a saltar (4 si viene de $9928 ó 2 si viene de $9974) y encima en función de que el bit 4 del comando esté o no a 1 le puede incrementar en 2 mas!!
Ambas cifras se me antojan raras como poco. La estructuras de datos que contienen punteros a rutinas son de tres bytes.
No veo claro el objetivo de estas sumas: HL +=2 ni de HL +=4 ni tampoco el de HL +=6 (las tres posibilidades)
Si te soy sincero no veo que valor contiene HL al llegar a esta rutina ... ¿a qué apunta?
Que conste que ésto no es ningún examen, aunque lo parezca
Hasta aquí he llegado y ya no sé como salir del garaje
saludos
pere