Utilidades para ayudar al análisis de "The HOBBIT"

Avatar de Usuario
luiscoco
Mensajes: 2414
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 38 veces
Agradecimiento recibido: 59 veces

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor luiscoco » 16 Dic 2014 15:48

Último mensaje de la página anterior:

Que Des-ensamblador se uso inicialmente? digo cuando race8086 hizo el suyo, creo que se comento pero no lo encuentro, creo que es una herramienta especifica de Spectrum

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 17:52

esto es lo que he encontrado en un mensaje de race8086 antiguo:

Nota de race8086
Confección de un fichero fuente

El objetivo es generar un fichero fuente en ensamblador, que una vez compilado tenga el mismo efecto que cargar el bloque “h”, es decir que a nivel binario será exacto.

Usando el emulador SPIN, desensamblamos desde la posición $6000 hasta la $FC40 y la guardamos en un fichero, los parámetros que hay que meter son :
Inicio : 23576 y Longitud : 40000.

Solo con ver las primeras líneas de código vemos que se sobreescribe la zona situada en $F400, inspeccionando el bloque “h”, vemos que desde esa posición hasta la $FC40 se carga con el valor $00.
El fichero obtenido se ensambla con PASMO por ejemplo y genera un binario idéntico, así que ya tenemos un fuente sobre el que comenzar.
Ahora podemos utilizar el fuente de internet y demás documentación para ir comprobando y completando este que hemos obtenido.


espero que te sirva

saludos
pere

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 18:32

A ver, yo en su día lo que hice fue cargar el binario 1.2 en SpecEmu y usando su propio desensamblador puse el código en el post aquel de marras.

Las tools que vi me gustaron mucho, aquí: http://www.z80.info/z80sdt.htm
Otra que también es muy interesante e importante ya que gestiona scripts y otras cosas: http://www.inkland.org.uk/dz80/

Y hay editores y desensambladores online a montón, hay que mirar de dar con uno que haga " todo lo que necesitas", evidentemente en Linux estoy haciendo unas pruebas, a ver que sale de todo esto.

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 19:13

Por cierto, he compilado el último asm disponible en pasmo ( bajo linux ) y he generado un tap que al cargar y lanzar con RANDOMIZE USR se da la bofetada y resetea el Spectrum. He usado la 23576 pero nada. Igual hay que lanzarlo desde otra.

De hecho el PASMO al generar el tap hace:

10 CLEAR 24575
20 POKE 23610.255
30 LOAD "" CODE

He probado a lanzarlo desde la 23575 y desde la 23576, el Spectrum se piña, ya sea que esa no es la dirección de lanzado. Ya me diréis, en realidad me devuelve un OK y eso debería servir, pero no estoy tan seguro.

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 19:22

Hola ron,

adjunto el fuente versión 9_09d (el último que subí) y el resultado compilado con Pasmo.
El binario que genera es idéntico al inicial ... a ver si el inicial también está mal -banghead

saludos
pere
Adjuntos
Hobbit v9_09d comp con Pasmo v0.5.3.zip
(214.11 KiB) Descargado 126 veces

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 19:32

hob99d.tap
(40.08 KiB) Descargado 123 veces


Ahí tienes el TAP de Spectrum. 41045 bytes de vellón.
El binario: 40942 dic 16 19:32 hob99d.bin

Al ejecutar:

hob99drun.png
hob99drun.png (14 KiB) Visto 2551 veces

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 19:38

@ron,

ni idea de que es un TAP ni como se generan ...
Te adjunto el Bin que puso Ramón en su momento (race8086) cuando subió la primera versión de fichero desensamblado
Es el que estoy utilizando para comparar.
Nuestro binario es idéntico pera añade unos cuantos ceros por detrás. Si estorban se podrían quitar
Ya me dirás alguna cosa

saludos
pere
Adjuntos
HOB4.ZIP
(27.13 KiB) Descargado 120 veces

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 19:45

El TAP ni más ni menos es con lo que se carga un spectrum, es un fichero TAPE listo para cargar en máquina real o emulador.

Para generar un tap desde el propio pasmo, en vez de generar un bin generas el tap, de esta manera

pasmo --tapbas codigo.asm cinta.tap

Y le añadirá el cargador máquina, que posteriormente habrá que lanzar mediante un RANDOMIZE USE ADDRESS siendo ADDRESS la dirección en decimal.

A lo que me refiero pser1, es a que desconocemos el grado de funcionalidad del binario. Error no da. ¿ Para empezar, en que dirección debería lanzar la rutina principal por la que ejecutar ?

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 19:50

Hola ron,

he visto algo que no me ha gustado nada ....

Código: Seleccionar todo

   ORG  $6000               ; inicio actual del programa. Luego empezará antes ... por áreas de datos (a estudiar)
DATAB1_BAK: EQU   $5F00      ; 5F00-5F1C      ; 29 bytes área de datos donde se copia DATABLK1
DATAB3_BAK: EQU   $5F1D      ; 5F1D-5FDB      ; 191 bytes área de datos donde se copia DATABLK3


Si Spectrum hace un clear a 24575 ($5FFF) entiendo que el stack empezará de ahí hacia abajo, ¿verdad?
Bien, pues al arrancar el juego copia dos areas de datos por debajo de esta zona protegida, de forma que al stack le quedan solo 36 bytes, me parece razonable
que casque miserablemente ...
Ahora nos conviene (o no!) saber como arrancaría realmente el original en un Spectrum48k

saludos
pere

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 19:53

Otra alternativa sería hacer un clear por debajo de $5FFF, por ejemplo
CLEAR 24319 (equivale a $5EFF) que salvaría la zona de $5F00 hacia arriba
ya me contarás

saludos
pere

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 20:01

me parece que ya viendo el conflicto ...

El binario original empezaba dede $6000 hacia arriba mientras que el que yo compilaba empezaba en $5F00 debido a las áreas de copia de datos.
Como no gustaban estas diferencias acabé por comentar dichas áreas y las cambié por simples EQU para que compilara correctamente.

Lo que nos está pasando es que Pasmo parece reservar el espacio necesario en función del binario ... y nosotros necesitamos mas espacio para cuando lo ejecutemos
Voy a cambiar el fuente para que vuelva a crear las áreas de datos (será mas largo) y generaré un TAP con él.

Supongo que luego SpecEmu lo podrá cargar normalmente...
te cuento luego
muchas gracias por la explicación Rodrigo -thumbup

Saludos
pere

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 20:02

En principio si tu pasas $6000 a decimal te queda en un hermoso 24576, pero solo me queda extraer el CODE ( bin ) del tape original, probar a cargarlo y a lanzarlo. Desde luego en el programa van metidos los gráficos, la fuente y todo como tu ya sabes, simplemente me da un OK, eso es todo.

Considero que deberíamos tener una release "made aquí" en asm que sea funcional, sino puede derivar en muchas cosas.

Lo malo que tengo que irme a windows para hacerlo y tengo que reiniciar el PC....

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 20:08

Observando un poco esto tiene mucho sentido lo que dices.

memoria.gif
memoria.gif (29.71 KiB) Visto 2907 veces


Si nos fijamos en que el programa lo lanza desde la 24576 y el binario pesa 40942, 65518 ( hasta 65535 son 17 bytes ) por los pelos, si nos fijamos en el mapa de memoria, ... ya sabes por donde voy...

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 20:17

Hola Rodrigo,

ya tengo el TAP, lo pongo en SpecEmu como tape pero ¿Cómo se pone en marcha el invento?
Te lo adjunto ara que lo puedas probar tu también ...

saludos
pere
Adjuntos
hob99tap.zip
(27.25 KiB) Descargado 137 veces

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 20:23

todo lo que me sale en pantalla es:
Tengo autoload en cintas

0 OK, 30:1


saludos
pere

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor ron » 16 Dic 2014 20:35

si, correcto pero fíjate en la pantalla que puse antes que es despues de hacer en RANDOMIZE, con eso has cargado el loader + el programa en memoria, ahora toca ejecutar. En el Spectrum los comandos se meten con TOKENS. Si pulsas P aparecerá PRINT y así sucesivamente con todas las teclas de las que tienes varias combinaciones.

a continuacion, tecla T ( RANDOMIZE ) teclas mayus+control decho y tecla L ( USR ) y ahora la dirección de ejecución que le quieras dar.
de modo que quedaría RANDOMIZE USR XXXX y enter

Eso es lo que tienes que hacer para lanzar la rutina en CM desde un Speccy.

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

Re: Utilidades para ayudar al análisis de "The HOBBIT"

Mensajepor pser1 » 16 Dic 2014 20:38

Hola Rodrigo,

creo que nos estamos liando ....
El TAP inicial era de por lo menos 47000 bytes y creo que contiene dos partes, una debe ser la presentación con la pantalla inicial que NO está en nuestro binario ni en el desensamblado y luego la carga y ejecución del binario final.
No tengo ni idea de que es lo que hay que hacer para probar solamente la segunda parte de la cinta original ...

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 1 invitado