Conversión código para 6809

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 31 May 2015 12:56

Último mensaje de la página anterior:

¿ Existe algún problema de formato con la última imágen de test ?

Si desde una tool extraigo el binario este parece que funciona, de eso ya hablaré pero no consigo hacerla funcionar bien. Esta tarde insistiré un poco a ver que le pasa.

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 31 May 2015 13:22

Hola Rodrigo,

he probado de nuevo el VDK con XRoar y basta con lanzar T.BAS para que arranque normalmente ...
Por si acaso, lo vuelvo a subir comprimido en zip
De todas formas haciendo LOAD del fichero DEMO7SF.BIN y luego haciendo EXEC también arranca.
El fichero DEMO7P.BIN es la versión anterior que no tiene añadido el código del diagrama 05C
y tampoco tiene las funciones mejoradas de LOAD y SAVE y busca a piñón fijo SAVGAM.DAT
así que si quieres probarla haz antes de nada un SAVE para que el LOAD no eche del programa
con el error NE.

NOTAS:
para salir de la última versión entra QUIT y cuando el cursor esté a la izquierda pulsa BREAK
para salir de la anterior ... RESET, jejeje

saludos
pere
Adjuntos
25 - Hobbit 6809 v07p.zip
(39 KiB) Descargado 120 veces

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 01 Jun 2015 17:11

OK ahora va perfecta.

NO se que tiene la otra imagen que algo le pasa, esta ha arrancado a la primera.

Gracias PSER1.

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 01 Jun 2015 17:19

hobbv07p03.png
hobbv07p03.png (37.53 KiB) Visto 3507 veces


Pser1... ¿ y lo del EAT ? me pareció antes haberlo leído, pero en cada comando que introduces te lo casca....

La mecánica de la introducción de comandos y en general el programa parece que funciona, mantiene el bucle del WAIT si lo dejas ir solo, graba, carga, etc.... pero de momento las sentencias son un poco de aquella manera.

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 01 Jun 2015 21:35

Hola Rodrigo,
efectivamente, éste es el resultado que se obtiene al ir añadiendo código en base a diagramas globales.
Cuando me pasó a mi, intenté ver porqué y me di cuenta de que en lo que se lleva convertido (un 50%) ya tenemos
ni más ni menos que 97 (si, noventa y siete) rutinas NO implementadas pero que son llamadas por partes de código ya convertido.
Obviamente el truco de hacer que todas retornen sin error es técnicamente posible, pero en la práctica lo que sucede es que
las operaciones y/o cambios de valores de variables no se llevan a cabo, así que cuando llegamos a PrintMsg puede que falten
cosas (o que haya mas de un bug esperando ser descubierto).
Por ello decidí que iba a ir añadiendo código conforme el programa lo precise. Y ésto a partir del inicio, claro!
Lo primero que falta es "Action_Look" y esta simple función llama o necesita todo el código que subí junto con el diagrama,
son algo mas de 450 líneas. Estoy convirtiéndolas ... espero que con ésto ya veamos la primera pantalla y algún texto
explicativo ... ya veremos

Si puedes, por favor, trata de usar las órdenes SAVE y LOAD. Mejor primero SAVE para que haya algo en el disco ...
Yo llegué a llenar por completo un disco, a fin de ver que pasaba si ya no cabía la partida a grabar

Saludos
pere

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 18 Jun 2015 17:28

Hola de nuevo,

esta vez os subo una versión actualizada de la conversión del Hobbit.
Una vez incluido el código que requiere la función Action_Look, puedo decir que han aflorado muchos errores de
conversión y ha sido un verdadero palo ir debugando y trazando línea a línea para ir viendo en que subrutina se
perdían datos.
He adjuntado un pdf (para reducir espacio ocupado) que contiene cinco páginas de depurado manual, solo por si alguien quiere
ver lo divertido que es el trabajo de investigar errores ...

En el VDK hay que arrancar el programa T.BAS
basta con hacer RUN"T"

Veréis que aparece una pantalla de créditos que he añadido y que espero que me digáis a quien he olvidado mencionar ...

Hay varias cosas que no muestra en pantalla, pero no sé si es por datos o por alguna rutina que falta ...

saludos
pere
Adjuntos
debug-trazado.zip
Cinco páginas de trazado ...
(1.02 MiB) Descargado 122 veces
25 - Hobbit 6809 v07l.zip
Ultima versión 7sL
(44.77 KiB) Descargado 116 veces

Avatar de Usuario
Chema
Mensajes: 2664
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 3190 veces
Agradecimiento recibido: 926 veces
Contactar:

Re: Conversión código para 6809

Mensajepor Chema » 18 Jun 2015 18:43

Hey! ya echaba yo de menos una actualización... Las cosas empiezan a tomar forma...

hobbit1.png
Ya están aquiiiiiii


No solo describe bien la habitación, sino que además el parser empieza a hacer cosas. Por ejemplo puedes abrir el cofre. Funciona bien la interpretación de comandos en muchos casos ("GET OUT" contesta con "I SEE NOTHING TO TAKE" o algo así :) ) Otras no tanto, aún no te puedes mover (si lo intentas te quedas en la habitación, pero empiezan a pasar cosas raras como que desaparecen los personajes que había, o aparece Gollum) y se lía con algunas cosas ("SAY TO GANDALF "CARRY ME" me lo interpretó como ir al norte, que además no se puede, "KILL THORIN" contestó algo como que no veía por aquí el "ATTACK", etc).

Pero el avance es más que evidente...

Enhorabuena!!!

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 18 Jun 2015 20:00

Caramba Chema!
Has hecho mas pruebas tu de las que he hecho yo ...
Bueno en realidad yo solamente he estado siguiendo el flujo del programa hasta que han aparecido:
- la descripción de la Localización
- Los objetos que hay en ella (a mi me salen: El cofre, Gandalf y Thorin)

A partir de aquí no quiero seguir, porqué comparando con Spectrum, al decir que está Gandalf nos debería decir que tiene el mapa extraño y ésto no lo hace ...
no sé qué le falta, pero no se queja de rutinas no encontradas. Habrá que investigar mas a fondo el tema.
Tengo la impresión de que los comandos no se ejecutan actualmente, a saber porqué será.

Por cierto, si antes de ejecutarlo haces POKE&HE7,&HE7, te indicará las rutinas que están trucadas o sea no implementadas
Solo recordar además que haciendo POKE&HF7,1 te saldrá en verde-negro, mientras que POKE&HF7,0 sale en blanco y negro
Realmente cualquier valor distinto de cero sale en verde-negro
Para salir basta con hacer QUIT y en cuanto el cursor se vaya a la izquierda pulsar la tecla BREAK

Viste la primera pantalla con los créditos? Hay que arrancar el programa Basic T.BAS porqué el ejecutable directo no los muestra ...

saludos
pere

Hobbitv7sL.jpg

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 18 Jun 2015 20:13

Está claro que el parser va a ser complicado. Todos los parámetros se pasan por el stack y me temo que en la conversión, para ahorrar alguna instrucción he aprovechado para meter
dos o tres registros de golpe en el stack y seguro que me han quedado en otro orden del esperado.
Si a esto le sumamos la sobrecarga del registro Y que tan pronto hace de IX como de IY y en algunos sitios debe hacer ambas funciones ... pues errores haberlos haylos!
Otro tanto pasa con el registro U que se pone la gorra de BC o de DE según convenga ...

Continuaré como os dije, siguiendo el flujo del programa hasta que éste pida nuevas funciones.

saludos
pere

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 18 Jun 2015 22:27

Pero que buenas noticias pser1 y mira al Chema dando caña, Bieeeen !!!

Lastima que ande con fuegos estos dias y este tan pillao, en cuanto me sea posible le echo las ejecuciones de rigor y desde este momento todas las pruebas que haga seran sobre Dragon real.

Ahora hay que ayudar a tope, animo y muchas gracias pser, eres un fenomeno !!!!

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 19 Jun 2015 09:15

Buenos días,

ya veo que nadie ha visto la pantalla de créditos o debe ser fabulosa porqué nadie ha dejado comentario alguno sobre ella ...

saludos
pere

Pd para los demasiado atareados (???) os pongo una imagen de dicha pantalla de texto
credits.jpg

Avatar de Usuario
Chema
Mensajes: 2664
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 3190 veces
Agradecimiento recibido: 926 veces
Contactar:

Re: Conversión código para 6809

Mensajepor Chema » 19 Jun 2015 10:22

La había visto, la había visto!!. Lo siento pere, pero no he podido contestar el post hasta ahora. Me parece una idea genial, pero ponte el primero en la lista de Analysis porque al final te has comido tú todo el marrón :)

Tampoco probé tanto el juego, sólo metí algunas ordenes a ver qué pasaba. No me dí cuenta de que no te dice que Gandalf lleva el mapa, pero ya te digo que algo más raro ocurre porque hace alguna cosa rara que otra.

Cuando pasa parámetros por la pila, hay que tener mucho cuidado, porque puedes equivocarte en el orden o meter de más y dejar la pila corrupta, lo que afecta a los retornos de subrutinas haciendo cualquier cosa.

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 19 Jun 2015 14:33

Hola Chema,

he decidido poner los nombres por orden alfabético, así se evitan problemas.
Las pruebas es mejor hacerlas como te decía con POKE&HE7,&HE7 así verás cuando el programa tropieza con alguna
función todavía no implementada. Lo que se obtenga a partir de este momento, para mí, es puro azar!

No me atrevo a hacer una revisión general del programa en lo referente a registros (variables) pasadas por el stack ya que
esto empieza a ser muy grande.
De hecho me quedan menos de 1024 bytes libres, por lo que en la próxima incorporación de código, me veré obligado a pasar a
MAP1 (todo RAM) para así poder recuperar casi 8K en la parte alta.
Tendré que reubicar datos para ponerlos allí y dejar el código en un solo bloque en la parte baja.
Lástima que las palabras tienen que empezar en $6000 si o sí ... ésto parte la RAM baja en dos zonas, pero hay que aprender a
vivir con ello ;-)

saludos
pere

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 20 Jun 2015 11:21

Hola de nuevo,
si alguien ha hecho POKE&HE7,&HE7 o lo que es lo mismo POKE 231,231 antes de arrancar el programa T.BAS,
habrá visto que después de escribir la descripción de la localización y mostrar la primera pantalla
suena un pitido y escribe en la parte baja:
RETURN ADDRESS: $338C (X no significa nada aquí)
Este es el punto de programa al que se regresa al finalizar la subrutina "ProcessBilboEvents" que no está implementada
todavía, sin embargo no ha mostrado el texto diciendo que Gandalf tiene el mapa.
O sea que hay algo hasta llegar a este punto que se comporta de manera distinta a la versión de Spectrum y no me
creo que sea culpa del generador de cifras aleatorias que, por supuesto, será diferente ya que en Spectrum utiliza
el contenido de la ROM para hacer cálculos ... aquí se usa la de Dragón y es altamente improbable que devuelvan
el mismo número en la misma situación de partida ...

Si tras la presentación de la primera pantalla se hace:
OPEN ROUND DOOR (o bien OPEN ROUND GREEN DOOR), se obtiene:
RETURN ADDRESS: $41A6 (X=$4836) - stack: 41a6 4836 0812 4b43 4cc0 7250 3f41 0812 7165 4b3a 351a 345f 340b 3370 2763 84da 00ff
RETURN ADDRESS: $41A6 (X=$4836) - stack: 41a6 4836 0812 4b43 4cc0 7250 3f41 0812 7156 4b3d 351a 337a 2763 84da 00ff
RETURN ADDRESS: $41A6 (X=$4836) - stack: 41a6 4836 0812 4b43 4cc0 7250 3f41 0812 7156 4b3d 3389 2763 84da 00ff
RETURN ADDRESS: $338C (X no significa nada aquí)- stack: 338c 2763 84da 00ff

Si tras ello hacemos
GO EAST, lo que se obtiene es:
RETURN ADDRESS: $41A6 (X=$4877) - stack: 41a6 4877 0012 4b43 4cc0 4cde 3f41 0012 7156 0000 351a 337a 2763 84da 00ff
RETURN ADDRESS: $41A6 (X=$4877) - stack: 41a6 4877 0012 4b43 4cc0 4cde 3f41 0012 7156 0000 3389 2763 84da 00ff
RETURN ADDRESS: $338C (X no significa nada aquí)- stack: 338c 2763 84da 00ff

La dirección de retorno $41A6 es una trampa ya que es la linea siguiente a una llamada a subrutina que simplemente contiene ésto:
JMP ,X
Por lo tanto, para saber cual es la rutina real que se ha ejecutado, hay que ver el contenido del registro X
Esto es muy fácil con el depurador, así se puede descubrir que rutinas está solicitando el programa y no las encuentra implementadas
En los casos aqui descritos, hay la siguiente correlación:
X=$4836 se produce al ser llamada la rutina L_910E
X=$4877 se produce al ser llamada la rutina Action_Dir
De todas formas, he detallado el stack en cada una de estas llamadas porque seguro que lo necesitaré para saber desde que partes
del código se han hecho dichas llamadas ...

Todo este rollo es para que tengáis claro que lo que se obtiene mientras vamos haciendo pruebas, es pura ficción
ya que constantemente el programa se tropieza con partes no implementadas que se limitan a devolver un OK sin haber cumplido con
su misión que puede ser vital para seguir el juego correctamente.
Por ello si tenéis hecho el POKE 231,231 veréis la cantidad de cosas que requiere el programa y por tanto cosas que deja de hacer

saludos
pere

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 20 Jun 2015 21:05

Que buena pinta tiene esto, voy a pasar la VDK a HFE y mañana a darle un poco...

hobdgn7l01.png
hobdgn7l01.png (25.76 KiB) Visto 3665 veces


hobdgn7l02.png
hobdgn7l02.png (24.68 KiB) Visto 3665 veces


hobdgn07l03.png
hobdgn07l03.png (18.73 KiB) Visto 3665 veces


hobdgn07l04.png
hobdgn07l04.png (22.76 KiB) Visto 3665 veces

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4754 veces

Re: Conversión código para 6809

Mensajepor ron » 21 Jun 2015 11:54

Buenas, por lo poco que he ido pudiendo mirar, digamos que la orquesta funciona pero desafina.

Se mezclan partes del juego y suceden cosas donde no debieran, sobre todo a las acciones y a los objetos. Es como si el programa permitiera coger cualquier objeto en cualquier escenario y usarlo. Para seguir es necesario o a mi opinión para centrarse tener las pantallas que te sitúan en los escenarios, de esa forma sería mucho más sencillo ir atando cabos, porque al fin y al cabo el juego se comporta igual en todas las plataformas, ZX, Oric, C64, etc...

Además a las acciones se les da respuesta, esto ya pinta mucho mejor, creo que lo que toca ahora es ordenar el puzzle. -507


hobdgn07lsun01.png
hobdgn07lsun01.png (32.34 KiB) Visto 3648 veces


hobgdn07lsun02.png
hobgdn07lsun02.png (25.96 KiB) Visto 3648 veces


Pantallazo.png
Pantallazo.png (26.05 KiB) Visto 3648 veces


hobdgn07lsun04.png
hobdgn07lsun04.png (27.44 KiB) Visto 3648 veces


hobdgn07lsun05.png
hobdgn07lsun05.png (24.32 KiB) Visto 3648 veces


hobdgn07lsun06.png
hobdgn07lsun06.png (30.45 KiB) Visto 3648 veces


hobdgn07lsun07.png
hobdgn07lsun07.png (18.84 KiB) Visto 3648 veces


hobdgn07lsun09.png
hobdgn07lsun09.png (22.32 KiB) Visto 3648 veces


hobdgn07lsun10.png
hobdgn07lsun10.png (28.09 KiB) Visto 3648 veces

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Conversión código para 6809

Mensajepor pser1 » 21 Jun 2015 12:33

Hola compañeros,
bienvenidas las pruebas que estáis haciendo todos, pero os recuerdo, tal como ya indiqué en mi post anterior lo siguiente:

---------------------------------------------------------------------------------------------------------------------
... Que tengáis claro que lo que se obtiene mientras vamos haciendo pruebas, es pura ficción
ya que constantemente el programa tropieza con partes no implementadas que se limitan a devolver un OK sin haber cumplido con
su misión que puede ser vital para seguir el juego correctamente.
Por ello si tenéis hecho el POKE 231,231 veréis la cantidad de cosas que requiere el programa y por tanto cosas que deja de hacer
---------------------------------------------------------------------------------------------------------------------

Ahora mismo la primera discordancia con la versión original es que no avisa de que Gandalf tiene el mapa.
Por lo tanto voy a seguir el programa a partir del momento en que muestra que vemos a Gandalf.
En realidad nunca he llegado hasta allí, pues antes de mostrar los objetos de la localización daba errores del stack (aparecía EAT muchas veces)
Viendo las direcciones de retorno que siempre aparecen como respuesta a una orden nuestra, está claro que falta código por añadir ...
Pero, repito, no añadiré nada, hasta que obtengamos la misma situación que en el original ... SpecEmu por ejemplo

saludos
pere


Volver a “Proyecto The Hobbit 6809 por pser1”

¿Quién está conectado?

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