Conversión código para 6809

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

Re: Conversión código para 6809

Mensajepor ron » 18 Mar 2015 20:29

Último mensaje de la página anterior:

Bravo PSER1 !!! ya tengo diversión asegurada.

Lo malo es que hay tanto por probar y por hacer... pero bueno, quien diga que esta afición es aburrida, se lleva un capón.

Ya sabes que desde el principio mantuve que nos íbamos a ver avocados a hacer la versión para Dragon64. No se muy bien quien decidió y se empeñó en empotrarla para que funcionase en un Dragon32, yo lo tenía claro desde el principio y eso que dije que en BBC Micro ( 6502 ) funciona con 32Kb de RAM pero sin gráficos, eso si, para la versión de gráficos ha de usarse desde Floppy.

Tan pronto como pueda probar las novedades te cuento la experiencia, muchas gracias Pere, Genio y Figura.

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 Mar 2015 20:43

Hola Rodrigo,

tranqui ... no he subido nada para probar porqué, honestamente, la parte convertida es la 05A, que chafardeando los diagramas se puede ver que en si es un centro de llamadas
a otras rutinas, básicamente de los diagramas 05B, 05C y 05D
No es que se deba esperar a tener los cuatro convertidos, pero por lo menos el 05B (que ya he empezado) si debería estar terminado. Así que habrá que esperar a que se pueda
probar el conjunto 05A-B antes de subirlo aquí.

Por cierto, el que supuso que se podría encajar en un Dragón32, fuí yo y me joroba no poder conseguirlo ya que, para mi, esto dejaría fuera cantidad de usuarios ...
Lo que pasa es que la mayoría tira de emuladores y les importa poco la dimensión del programa. Ya veremos, no descarto Drivewire si solo faltaran 1536 bytes.

En fin, ya iremos viendo como evolucionan los próximos bloques de código ...

saludos
pere

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

Re: Conversión código para 6809

Mensajepor ron » 18 Mar 2015 20:53

Cuando me refiero a probar las novedades, me refiero a mirar y leer todas las cosas que has subido. No se si tendré capacidad de interpretar todo lo que haces, pero lo intento. Al menos es una forma lúdica y divertida de ir aprendiendo.

Hombre, tanto trabajo y tanto racionamiento de memoria no debería ser óbice para que funcione en 32 KB, se podría hacer a la postre lo que hicieron con el BBC Micro, una versión en 32 KB sin gráficos y todo lo que los lleve desde disco. Pero esto solo el tiempo lo dirá.

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 Mar 2015 21:52

el problema que tenemos, y lo muestra el mapa de ocupación de memoria del programa (aunque es muy liado por la tira de cifras que hay), es que Dragon deja realmente
libre a partir de $2400 hasta digamos $7E00 para tener margen, ésto son $5A00 => 23.040 bytes
Lo malo es que ahí dentro han de convivir las estructuras de datos del programa que son enormes, realmente ocupan desde $50AC hasta $7ED7
o lo que es lo mismo $2E2C => 11.820 bytes (mas de la mitad de dicho espacio!
Para el programa (y sus variables, que en el original están de por medio), nos queda desde $2400 hasta $50AB o sea $2CAC => 11.436 bytes que dá para lo que dá!
El programa en si ocupará: 11.436 + 11.820 = 23.256 bytes que no está nada mal.

No ganamos nada guardando pantallas en disco, ya que el DOS se come 1536 bytes y el área de gráficos se utiliza igualmente (son 6.144 bytes!), lo que permite este almacenamiento
es tener mas pantallas (gracias al compresor) o bien empleando un disco de doble densidad ... o de 720k si hiciera falta!

Hasta ahora nos está saliendo cada línea de Z-80 a 1,76 bytes de 6809 como promedio, no sé como valorarlo, si es poco o es demasiado ...

Tiempo al tiempo, lo importante es que funcione correctamente.

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 » 25 Mar 2015 18:05

Hola compañeros ....
He finalizado la conversión del bloque 05B y al juntarlo con los demás ya hechos, por casualidad, al paginar el fichero global para 6809 me ha parecido ver algún párrafo fuera de secuencia.
Lo he revisado bien y efectivamente, había varias funciones ubicadas en orden incorrecto, si aceptamos que, por precaución, deben seguir el orden que tenían en Spectrum (dirección $xxxx)
Por esto no me canso de pedir que quien pueda dedicar un buen rato al proyecto, que se descargue el fuente con los datos y el ejecutable y que revise los textos y pregunte lo que no vea claro.

Como cabía suponer con los últimos añadidos el programa se cuelga (no será grave), hay que debugarlo y en el peor de los casos comparar con el original ...
Si alguien quiere revisar código / datos respecto al original Z-80 puede hacerlo libremente.

Por si alguno quiere debugar la versión 6809, os dejo el fuente con sus datos y el binario generado con el asm6809 (ciaran)
Cualquier cosa que encontréis / detectéis será bien recibida ... ánimo -drinks

saludos
pere

Pd. Adjunto además un VDK que hay que cargar en XRoar, después con CTRL+L cargáis el ejecutable que deseéis. La versión O funciona, la P se cuelga. Luego haced RUN y aparecerá la
pantalla de presentación, pulsáis una tecla y según el ejecutable elegido podréis hacer algo o asistir al cuelgue
Debido a la alta ocupación de memoria, hay que debugar con programas externos, yo utilizo el GDB
Adjuntos
25 - Hobbit 6809 v07l.zip
el indispensable VDK para probar ...
(36.79 KiB) Descargado 115 veces
Ejecutables.ZIP
la version 7O (ok) y la 7P (se cuelga)
(26.47 KiB) Descargado 119 veces
H6809-DATOS-8d.zip
Estructuras de datos x 6809
(43.66 KiB) Descargado 117 veces
H68097p añadido 05B.zip
Código fuente x 6809 versión 7P
(90.35 KiB) Descargado 122 veces

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

Re: Conversión código para 6809

Mensajepor ron » 25 Mar 2015 18:12

mr. pser1, chute semanal de Hobbit pa Dragon.

Así que has añadido y compilado con el bloque 05B. Lo de las direcciones, si alguien más se anima a repasar , igual tiene fácil arreglo.
Habrá que probar los nuevos ficheros para situarse y comprobar los comentarios.

Vamos PERE !!! Aupa !!!

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 » 25 Mar 2015 18:16

para no hacer el mensaje demasiado largo, lo he divido en dos ...
El/los problemas que irán apareciendo a lo largo de esta conversión, aparte de los típicos, serán motivados por la diferencia LitlleEndian, BigEndian de los dos sistemas.
Lo que para Z-80 es Low-High, para el 6809 debe ser High-Low y ahora he llegado al punto en el que se comparan las palabras que entró el usuario (codificadas) con las posibles
órdenes / comandos aceptables y en su caso se copian a otras estructuras de datos desde donde se procesarán mas adelante.
Está claro que algo no cuadra, o lo he invertido y no hacía falta o bien he olvidado invertir el orden de los bytes ...
En este punto del juego el usuario NO ha entrado nada, la cosa debe ser simple ya que la única orden que el programa entra por nosotros es: LOOK
Así que solo habrá que ver como se procesa esta única palabra hasta llegar al punto en que el programa llame a "DescribeActionOnScreen" (qué ganas tengo de verlo!!)
Posiblemente antes incluso tropecemos con la llamada a dibujar (cargar) la pantalla de inicio (otro deseo!)

Lo comento por si alguien decide mirar el fuente y quiere revisar las funciones que cuelgan de "ExecuteUsrCommandsBilboEvents" en especial de "AnalyzeUsrCommand"
que va a ser donde estará el error ... cuantos mas ojos lo vean mas posible será encontrar el patinazo.

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 » 25 Mar 2015 22:09

Hola, de nuevo,
tras un buen rato de trazar el programa, he encontrado el bucle ... y una función donde había que invertir bytes Alto-Bajo.
Como decía, los errores típicos de esta conversión, en este caso se actualizaba un registro de los que no existen en 6809, en concreto el IX pero no se actualizaba el registro dedicado a el en la página 0 de RAM (reg_IX), ¿qué le vamos a hacer? duele olvidarse de estas cosas, pero mas vale encontrarlas cuanto antes. Ya no hay bucle!
Además, como cabía suponer, los flags de las palabras en la función SaveActionFlags se leían de los offsets 1,3,5,7 que he tenido que cambiar por 0,2,4,6
Esta parte pertenece al bloque 05A incorporado hace poco pero no probado por falta del 05B

Ahora solo queda un tercer error, pinta una linea en pantalla, por lo que claramente hay un registro que apunta a cualquier sitio menos donde debería.
Afortunadamente siempre es el mismo sitio así que tampoco hace locuras. Es un problemilla a seguir.

Otra cosa, ahora si tardas demasiado o escribes WAIT, se ejecuta la orden y en la parte alta de pantalla se produce un scroll y se añaden dos lineas con este texto:
You waits. - - - - - - - - - - (si está mal, habrá que ver porqué añade la s final ... Cuarto error, de momento)
Time passes ...

Quizá lo mejor será que en lugar de pedir que os pateéis todo el fuente, me limite a pediros que tratéis de revisar la última parte añadida, o sea la 05B
Así que adjunto al última revisión de dicha parte tras las dos correcciones arriba indicadas (una en cada fichero adjuntado).

saludos
pere
Adjuntos
05A - ExecuteUsrCommandsBilboEvents y DescribeActionOnScreen (303 lineas).zip
el anterior (05A) por si acaso
(8.46 KiB) Descargado 120 veces
05B - AnalyzeUsrCommand (701 lineas) - en curso.zip
el último 05B
(15.3 KiB) Descargado 122 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 » 27 Mar 2015 10:38

Hola pere. No creo que pueda ayudarte mucho en esta parte, porque no conozco el asm del 6809 y me cuesta leerlo (mucho menos ver si hay algo mal).

Supongo que toca ir implementando partes y depurándolas para ver que todo va bien... es lo típico. Paciencia que llevas un ritmo estupendo y ya verás como pronto empieza a ir todo como la seda...

Estuve mirando el código que adjuntaste y no tengo claro cómo lo tienes organizado. En concreto miré la parte donde debería de estar el error de "You waits" pero me encuentro que el código dice:

Código: Seleccionar todo

                           ;###NoName01:                  ; (#146# --) Va a PrintMsg y pone L_B6FA a 0 si L_B71B no es 0
L_72D3   lda   L_B71B         ; recupera L_B71B         ; L_72D3: LD A, (L_B71B)    ; 72D3 3A 1B B7   ; A = (L_B71B)
                              ;    AND A          ; 72D6 A7      ; Adecua flags
   beq   PrintMsg      ; si 0, salta a PrintMsg      ;    JR Z, PrintMsg       ; 72D7 28 04      ; si es cero, salta a PrintMsg
   clra            ; pone 0            ;    XOR A          ; 72D9 AF      ; pone valor 0
   sta   L_B6FA         ; en L_B6FA            ;    LD (L_B6FA), A       ; 72DA 32 FA B6   ; en L_B6FA y va a PrintMsg
                              ;              ; pasa directamente a PritMsg
                              ;
                              ; ------------------------------------------------------------------------------------------------------------------------------------
                              ;
InitAreaD12Part1                        ; InitAreaD12Part1:               ; borra PrintAreaFlag y AreaD12Part1 ; antes ; (#97# OK) y ; (-02-)
   


O sea que justo debajo del final de #NoName01 debería de estar PrintMessage y tu código pasa directamente a InitAreaD12Part1... Si lo ensamblas así no te va a funcionar y, lo que es peor, esto te puede pasar en más sitios.

Pero igual es que no entendí el texto...

EDITO: Me quedó todo el código con el formato hecho un desastre, pero supongo que pillas lo que quiero decir.

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 » 27 Mar 2015 12:19

Hola Chema,
muchas gracias.
Verás, si quieres seguir el flujo del programa en conjunto, has de utilizar el fichero global con nombre: "H68097p añadido 05B.txt"
Lo que estabas mirando es solamente la última parte añadida, que pertenece al sub-bloque 05B y claro, no hay continuidad de una función a la siguiente.
Cuando busques el #NoName01 en el bloque global verás que le sigue inmediatamente PrintMsg, afortunadamente -thumbup
Digamos que los errores de secuencia hay que buscarlos / detectarlos en el global ya que los parciales contienen trozos de aquí y de allí ...

El error que provocaba la aparición de la línea no esperada en pantalla ya lo encontré, era una sentencia donde los datos se ponían mediante #$00100000 que son tomados como $00
por el compilador, lo correcto era #%00100000, hay que ver las cosas que llega a provocar un simple signo ($ en lugar de %)

Para ver como se imprime "You waits.", ya tengo localizado el punto donde empezar ... que es la función [0x01] que se limita a extraer un parámetro del stack
Seguro que ahí ya llegará mal la información, pero quiero ver como lo hace el código convertido ya que es muy muy diferente al de Z80 (dirección de programa compilado: $2cbd)
Si es el caso retrocederé al punto en el que se apunta al mensaje, en concreto es (dirección de programa compilado: $3529) y me tendré que patear todo el procedimiento de impresión de un mensaje, que es largo y tedioso -banghead

Solo necesito un buen rato disponible para seguirlo con el GDB. Realmente ya me he acostumbrado a el, pero es patéticamente antediluviano (DOS en lugar de Windows)
La verdad es que funciona bien y es imprescindible poder hacer este trabajo desde fuera de la máquina ya que no queda espacio en Dragon para un trazador-desensamblador

saludos
pere

Pd. Estoy trabajando con los parámetros de edición que se utilizaron desde el primer momento con Luis, es decir Tabulación = 8
Yo utilizo el TextPad para editar-leer los documentos. En el tipo de documento TXT le puse tabulación = 8, mientras que en los ASM le tenogo puesto tabulación = 3 que me gusta mas
para programar, ya que 8 aleja demasiado las partes con condiciones y/o bucles

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 » 27 Mar 2015 20:09

buenas noticias -drinks
Tras debugar una sola vez la rutina PritnMsg, he encontrado el motivo ...
Otra de las diferencias Z80 - 6809, en el primero se hace una comparación y le siguen unas cuantas operaciones (que no afectan a los flags) y finalmente se pregunta por el estado del flag Z
En el 6809 la mayoria de instrucciones alteran los flags, así que hay que guardarlos y recuperarlos antes de preguntar por el flag Z.
Me estaba guardando el registro A en lugar de los flags (CC). Así que siempre acababa la palabra añadiendo una s
Una vez corregido ésto, funciona bien hasta donde he probado

Os adjunto el VDK actualizado. Basta con hacer RUN"DEMO7P.BIN" y podéis hacer los intentos que se os ocurran para romper el juego ... no se trata de jugar correctamente sinó de intentar
sacar de quicio al programa ... suerte -thumbup
Cualquier cosa que encontréis que no os parezca correcta, indicadlo en este mismo hilo, porfa.

Esta es la pantalla con algunas órdenes entradas ...
Hasta-05B.jpg
pantallazo

saludos
pere

Pd. Empezaré con el 05C, a ver si de una vez conseguimos mas tela en pantalla a partir del LOOK inicial -grin
Adjuntos
25 - Hobbit 6809 v07p.zip
último fichereo VDK
(20.66 KiB) Descargado 136 veces

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

Re: Conversión código para 6809

Mensajepor ron » 27 Mar 2015 20:40

Vamos a ver, lo que supuestamente tenga que entender lo hace. Que no pinte nada en pantalla es otra historia. La cuestión es: ¿ Si le introduces las sentencias bien funciona ? , la respuesta es que si y que el prompt parece que hace bien lo que tiene que hacer.

rutinawait.png
rutinawait.png (28.15 KiB) Visto 3214 veces


La rutina del WAIT comienza a reproducir un mensaje en pantalla trascurrido un determinado tiempo de inactividad y se continua repitiendo hasta que vuelvas a teclear.

hobbsintax.png
hobbsintax.png (31.5 KiB) Visto 3214 veces


La sintaxis es tenida en cuenta, lo cual discierne de los comandos buenos y los que están mal

hobb003.png
hobb003.png (11.88 KiB) Visto 3214 veces


hobb004.png
hobb004.png (16.11 KiB) Visto 3214 veces


hobb005.png
hobb005.png (22.08 KiB) Visto 3214 veces


hobb006.png
hobb006.png (20.25 KiB) Visto 3214 veces


hobb007.png
hobb007.png (18.3 KiB) Visto 3214 veces


hobb008.png
hobb008.png (19.3 KiB) Visto 3214 veces


Os pego una lista de una partida completa para que sigáis probando comandos, ya sean en orden o aleatoriamente.

[tabs][tabs: ]( Comenzamos desde nuestra acogedora casita )
READ MAP,
E,
E,
N,
WAIT ( esperamos hasta que amanece. Los trolls se han convertido en piedra. jejejeeje xD ),
S,
GET KEY,
N,
UNLOCK
DOOR,
OPEN IT,
N,
GET ROPE AND SWORD,
S,
S,
SE,
GIVE MAP TO ELROND,
SAY TO ELROND "HELLO",
SAY TO ELROND "READ MAP" ( esto le da un toque ),
WAIT( hasta que Elrond te de algo de comer ),
EAT LUNCH,
SAY TO ELROND "GIVE ME MAP",
E,
S,
E,
N,
NW,
N,
SE,
D,
D,
D,
D,
E,
GET GOLDEN KEY,
U,
N,
W,
S,
E,
N,
WAIT ( hasta que la grieta se abre y te capturan. Te tiran a un calabozo ),
DIG,
SMASH TRAP DOOR ( hasta que se rompe, debajo hay una curiosa llave que Thorin coje ),
SAY TO THORIN "OPEN WINDOW", [ aquí el personaje puede ser otro como Gandalf, cambiar por el personaje que os toque ]
SAY TO THORIN "PICK ME UP",
SAY TO THORIN "WEST",
SW,
WAIT ( esperamos hasta que entre el Goblin ),
N,
SE,
E,
GET RING,
N,
S,
NW,
E,
OPEN DOOR,
U,
CLOSE DOOR,
E,
E,
OPEN CURTAIN,
OPEN CUPBOARD,
GET FOOD,
EAT IT,
NE,
E,
E,
LOOK ACROSS RIVER ( vemos un barco ),
THROW ROPE
ACROSS RIVER ( sigue intentándolo hasta que cruces ),
PULL ROPE ( tiras del barco através del rio ),
SAY TO THORIN "CLIMB INTO BOAT",
CLIMB INTO BOAT ( que está flotando en la otra orilla ),
CLIMB OUT,
E,
SMASH WEB ( hasta que la rompemos ),
NE,
SMASH WEB,
N,
WEAR RING,
EXAMINE DOOR,
WAIT ( hasta que se abren las puertas ),
NE,
S,
KILL BUTLER WITH SWORD,
GET RED KEY,
UNLOCK RED DOOR WITH RED KEY,
OPEN DOOR ( si Thorin ha sido capturado, debería reaparecer y salir ahora ),
OPEN BARREL,
OPEN TRAP
DOOR,
GET BARREL,
THROW IT THROUGH TRAP DOOR,
SAY TO THORIN "JUMP ONTO BARREL",
GET BARREL,
THROW IT THROUGH TRAP DOOR,
JUMP ONTO BARREL ( navegamos hacia el gran Lago - Long Lake ),
E,
PICK UP BARD,
W,
N,
U,
N,
NW,
N,
W,
E,
NW,
N,
WAIT ( hasta que el sol brilla sobre la roca y se abre la puerta secreta ),
SAY TO THORIN "UNLOCK DOOR WITH CURIOUS KEY",
DROP BARD ( es una buena idea salvar la partida en este punto ya que hace cosas raras. Thorin tiene la mala costumbre de ir contra el dragon y quemarse vivo ),
E,
SAY TO THORIN "WEST",
WEAR RING,
E,
GET TREASURE,
E,
W,
PICK UP BARD,
U,
DROP BARD,
SAY TO BARD "GET STRONG ARROW FROM QUIVER" ( aquí cuidado, si tarda demasiado tiempo hay que restaurar ),
WAIT ( hasta que el dragon aparezca ),
SAY TO BARD "SHOOT DRAGON",
S,
S,
S,
D,
S,
S,
S,
WEAR RING,
W,
WAIT,
WAIT ( ten cuidado con las arañas !!! ),
W,
WAIT,
WAIT,
W,
N,
SW,
W,
W,
W,
W,
SW,
W,
OPEN CHEST,
PUT TREASURE IN CHEST ( Felicidades. Has matado a Smaug y has encontrado el tesoro - un autentico saqueador y un ladrón! )[/tabs]

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 » 29 Mar 2015 19:11

Ah, pere. Ya me parecía a mí... :)

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 » 29 Mar 2015 22:12

Hola Chema,

en algún mensaje anterior indiqué que me había encontrado en el fichero grande (global) algunas rutinas en orden distinto del original Z80.
No es grave si todas acaban con un RTS, porqué como todo se referencia a etiquetas, estén donde están el código generado funciona correctamente,
pero en los casos como el que tu viste en que una parte de código acaba con un comentario ... ; le sigue inmediatamente tal párrafo, si esto no se cumple
el desaguisado al compilar puede ser importante -banghead

En fin, ya hice la conversión del bloque 05C, está ahora en fase de comentarios. Luego haré el pase comparativo de código Z80 versus código 6809
finalmente lo uniré al fichero grande y a compilar y detectar las variables nuevas que hay que añadir al bloque de datos ... y a jugar!

En esta fase el 05C y el 05D me temo que se necesiatn mutuamente y puede que tenga que hacer el 05D antes de hacer pruebas ...
No obstante estoy pensando en modificar la rutina "No implementado0" para que muestre la dirección de retorno del stack, así sabré desde donde ha llegado aquí
ya que todas las funciones no implementadas llaman a este comodín
Hasta me tienta añadirle un control de tecla pulsada que permita continuar con C y volver al DOS con S finalizando el juego.

Ya veremos ideas muchas, tiempo algo menos -507

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 » 03 May 2015 11:31

Hola amigos,

he estado liado en exceso y he podido dedicar poquísimo tiempo a nuestro Hobbit.
Estuve desde Semana Santa tratando de hacer que las operaciones con disco fueran razonablemente amigables
Tuve muchos problemas para controlar discos ya llenos, falta de disco en la unidad y ficheros no encontrados.
Ha sido necesario debugar el DOS para encontrar las rutinas necesarias, para Dragon Data y Eurohard (distintas)

He añadido dos dígitos para diferenciar posiciones salvadas y a veces pides el que No existe ... o cosas parecidas
Lo cierto es que entre preparar discos de prueba y probar todo a fondo, me apareció un grave problema propio
del DDOS12A, que es el que estoy utilizando como base para la aplicación, con el comando KILL cuando quería
eliminar ficheros grabados para hacer mas espacio libre.
El maldito no sabe recuperar todo el espacio que ocupaba el fichero eliminado, con lo cual poco a poco vamos
quedándonos con un disco cada vez con menos capacidad!

Para quien quiera seguir el tema os adjunto el hilo de la web "worldofdragon.org" (de donde procede el DDOS12A),
donde comenté el problema de dicho comando y las peripecias hasta corregir el error con un par de parches.
http://archive.worldofdragon.org/phpBB3 ... f=8&t=5289
El nombre del hilo es: "Problems with DDOS12A and command KILL" (¿què sinó?)

Cuando pueda haré un VDK con la última versión ejecutable del Hobbit, posiblemente pasado el 15 de Mayo ...

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 » 03 May 2015 11:44

aprovecho ahora que estoy conectado ...

Desde que añadí al programa la última parte convertida (creo que es la 05C), ya reacciona ante mas comandos, pero montando frases que no me gustan nada, nada.
Me da la impresión de que ahora mismo estoy montando el edificio casi desde el tejado hacia abajo ...
Tiene pinta de que hay cantidad de variables no inicializadas, aparte de que algunas zonas de PrintMessage (tratamiento de parámetros en el stack) no están suficientemente probadas.
Además hay cantidad de rutinas que son llamadas y como no están codificadas todavía, están sustituidas por un simple RTS (return), con lo que NO hacen lo que deberían hacer.

Para resumir, he decidido parar el sistema de añadir código a partir de los diagramas y en su lugar voy a ir añadiendo las rutinas conforme sean llamadas por el programa.
Para ello todas las no implementadas se desvían actualmente a una rutina única que muestra en pantalla la dirección desde donde se ha llamado (la de retorno en realidad)
por lo que será fácil ir detectando las partes necesarias.

Lo que quiero ahora mismo (cuando me vuelva a dedicar a ello) es que muestre la imagen de la localización de inicio y que el programa escriba la descripción de la misma.
Luego ya vendrá el tema de ver como procesa las órdenes entradas por el usuario ...

Se admiten ideas, sugerencias ...

saludos
pere

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 » 03 May 2015 11:56

Hola pere. Me alegro de ver que sigues en la brecha con esto ;)

Me parece perfecto lo que planteas, buscar un objetivo e ir añadiendo las funciones que vayas necesitando hasta que se complete. Esa misma sensación que tienes ahora la tuve yo al portar Skool Daze. Hay en momento en que la mayoría de las cosas no funcionan como deben y no sabes si es debido a un bug o a que faltan cosas por implementar.

Ya verás como va completándose luego a buen ritmo. Empezar por mostrar la localización de inicio y luego permitir, por ejemplo, al usuario moverse de localización en localización puede ser un buen comienzo.

La parte de montar las frases vas a tener que tirar de depurador si o si hasta que comprendas bien como va y que falta por hacer para que la frase tenga sentido. Siento no poder ayudarte con esto, pero el código del 6809 a mi me resulta dificilísimo de leer :(


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 3 invitados