Conversión código para 6809

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

Último mensaje de la página anterior:

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 :(

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 12:22

Hola Chema

me temo que al principio, al ver tantísimo código Z-80, lo único que se nos ocurrió fue organizarlo por bloques, lo que sucede es que están muy entrelazados.

La parte de ver la pantalla y aceptar los comandos de movimiento, creo que funcionará sin dar demasiados problemas, además debe indicar salidas posibles
y tal vez alguna cosa mas ...
La parte del parser pues habrá que aceptar que hay que trazar y posiblemente comparar contenido de variables respecto al original ejecutado en el SpecEmu.
La suerte es que disponemos de un debugger para XRoar que es totalmente externo a la emulación, por lo que no consume recursos del Dragón virtual.
Depurar es cuestión de tiempo y paciencia ( y a veces inspiración también -507 )

saludos
pere

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

Re: Conversión código para 6809

Mensajepor luiscoco » 03 May 2015 17:13

Buen trabajo Pser, no te he podido ayudar, Una pregunta, ¿no hicimos una herramienta que te lista las llamadas?, quieres que hagamos alguna ayuda?

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

Hola pser1, que alegría leerte !

Creo tener una pequeña idea que nos ayude, pero he de madurarlo un poco antes de lanzarme, a ver si nos es útil. En cuanto lo tenga claro lo comento.

Mientras tanto...

WORD DATABASE: http://members.aon.at/~ehesch1/wl/dict_v12.txt

ejemplo:

Código: Seleccionar todo

6BE2  -  WOULD
  17  W  000
  0F  O  000
  15  U  000
  0C  L  000
  84  D  100


6BE7  -  YER
  19  Y  000
  05  E  000
  92  R  100


6BEA  -  YOUR
  19  Y  000
  0F  O  000
  15  U  000
  92  R  100


6040  ARTICLE_MISC    A
6043  PREPOSITION     ACROSS
6049  PREPOSITION     AFTER
604E  SYSTEM_PRONOUN  ALL
6051  ARTICLE_MISC    ALREADY
6058  ARTICLE_MISC    AN
605B  AND             AND
605E  ARTICLE_MISC    ANOTHER
6065  ARTICLE_MISC    ARE
6068  NOUN            ARM
606B  NOUN            ARROW
6070  PREPOSITION     AT
6073  VERB            ATTACK


ROOM DATABASE: http://members.aon.at/~ehesch1/wl/rooms_v12.txt

ejemplo

Código: Seleccionar todo

Room 03
LBEE4:  DB      84                  ;light, IN
        DB      FF                  ;ROOM_PROP_VOLUME
        DW      02A0                ;forest
        DW      0000                ;---
        DW      0000                ;---
        DW      0000                ;---
        DB      04,00,02            ;W  --00--> 02
        DB      03,00,2D            ;E  --00--> 2D
        DB      FF

Room 04
LBAA5:  DB      84                  ;light, IN
        DB      FF                  ;ROOM_PROP_VOLUME
        DW      0400                ;lonelands
        DW      0000                ;---
        DW      0000                ;---
        DW      B57E                ;gloomy empty land dreary hills ahead
        DB      04,05,01            ;W  --05--> 01
        DB      03,00,05            ;E  --00--> 05
        DB      01,00,05            ;N  --00--> 05
        DB      05,00,06            ;NE --00--> 06



THE INGLISH VOCABULARY:

Movimientos:

NORTH (N) NORTHEAST (NE)
SOUTH (S) NORTHWEST (NW)
EAST (E) SOUTHEAST (SE)
WEST (W) SOUTHWEST (SW)
UP (U) DOWN (D)

Verbos Acción:

BREAK FILL SAY
CLIMB FOLLOW SHOOT
CLOSE GIVE SWIM
CROSS GO TAKE
DIG KILL THROW
DRINK LOCK TIE
DROP PICK TURN
EAT PUT UNLOCK
EMPTY OPEN UNTIE
ENTER RUN WEAR

Comandos Especiales:

EXAMINE LOOK (L) QUIT
HELP NOPRINT SAVE
INVENTORY (I) PAUSE SCORE
LOAD PRINT WAIT

Preposiciones:

ACROSS INTO THROUGH
AT OFF TO
FROM ON UP
IN OUT WITH

Adverbios:

CAREFULLY QUICKLY
SOFTLY VICIOUSLY


Sigo pensando que la clave de todo esto la tenemos en : http://members.aon.at/~ehesch1/wl/wl.htm

Voy a ver si le doy unas vueltas a lo que tengo en la cabeza

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 18:54

luiscoco escribió:Buen trabajo Pser, no te he podido ayudar, Una pregunta, ¿no hicimos una herramienta que te lista las llamadas?, quieres que hagamos alguna ayuda?


Hola Luis,
encantado de contactar de nuevo contigo!

Si estuviera siguiendo el plan inicial de ir añadiendo código siguiendo los diagramas hechos, cada uno con el fichero que contiene las rutinas de su diagrama hermano,
habría podido plantearse la verificación de que NO hay ningún párrafo (etiqueta) de código que, existiendo en el original Z-80, no esté en alguno de los ficheros
parciales de 6809. Lo había pensado, pero me pareció mucho trabajo para poco beneficio si hubiera que esperar alguno ...

Pero como ya he decidido ir codificando por orden de necesidad, de momento no veo imprescindible este control.
Mas adelante SI será necesario validar que todas las etiquetas del Z-80 están también en el global 6809 mas Datos.

Verás por los mensajes de hoy, que prácticamente me estoy peleando con los DOS de Dragon Data y de Eurohard ... ésto deja de lado el RS-DOS de CoCo.
Para evitarlo, habría que armarse de paciencia y pasar todos los ficheros del VDK de Dragón (180k) a ficheros binarios con cabecera CoCo para poder
cargarlos en una emulación de CoCo2 y grabarlos en un disco RS-DOS de 160k y así poder hacer pruebas.
Tal vez aquella utilidad tuya que permitía leer, extraer y añadir ficheros a discos se podría usara para este fin ...

Además, habría que buscar las entradas (inicio) de las rutinas del DOS empleadas pero dentro del RSDOS, supongo que es cuestión de trabajo, pero no imposible
ya que existe el unravelled RSDOS donde puede verse que hace cada línea de código del DOS de CoCo ... pero es trabajo, aunque si queremos compatibilidad con
Dragón y con CoCo habrá que hacerlo tarde o temprano ...

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 19:01

Hola Rodrigo,

me alegra contactar de nuevo!

Referente a documentación, el fichero de datos de Dragón, para compilar el programa ya contiene la base de datos de Palabras y frases.

Tengo instalado el programa de WilderLand y me descargué hace tiempo su documentación que fue de gran ayuda para entender el significado
de algunos atributos de los objetos / personajes.

Me temo que lo divertido será ir corrigiendo los bugs que aparezcan sobre la marcha al entrar comandos y el programa responda de forma diferente
a como lo hace el original o forme frases de respuesta con palabras inadecuadas, ya veremos!

saludos y hasta pronto
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 » 24 May 2015 22:59

Hola compañeros,

estoy intentando retomar la situación en la que dejé la conversión ...
Estaba la cosa en la versión "25 - Hobbit 6809 v07p.zip"
Durante este periodo he estado añadiendo / corrigiendo funcionalidades, cambiando cada vez de versión, como de costumbre.
Estos son los cambios que aparecen con la versión que subo ahora:
q - Se añade IncludeBin para incorporar la presentación en PMODE4 al compilar
r0 - Corrección de bug en rutina impresión (L_8B22)
r1 - Al hacer QUIT, muestra pantalla de inicio
s - Corrección bug que mostraba una raya en pantalla con SAY
s1 - Añadidos mas comentarios
s2 - Si fichero no se encuentra en el disco suenan 3 Beeps
s3 - Muestra el nombre del fichero a cargar
s4 - LOAD permite completar nombre con dos cifras (SAVGAMnn)
s5 - SAVE también acepta cifras al final del nombre
s6 - Envía mensajes de Error. Se acelera arranque
s7 - Se estandarizan separadores entre funciones en el fuente
s8 - Al llamar a rutinas no implementadas, muestra la dirección de retorno
facilitando saber quien la ha llamado y que función hay que implementar YA
s9 - Cierra ficheros abiertos (para evitar el error TF del DOS)
sA - Controla si el disco está lleno para función SAVE (error DF)
sB - Aborta si falta un fichero importante o no hay disco (errores NE, IV)
sC - Permite seguir sin disco y fallando SAVE (error IV)
sD - Es compatible con DDOS11C, DDOS12A y DDOS41
sE - Se añade el código correspondiente al diagrama 05C ya convertido
sF - Se añade control para mostrar o no las direcciones de retorno ($E7)

Al probar con el código del diagrama 05C incorporado, el programa puede montar frases incorrectas, es posible que haya errores de codificación y/o datos no
inicializados por no haberse ejecutado varias rutinas que no están todavía implementadas pero que son llamadas a lo largo de la ejecución con lo que ya
está convertido.

Así que voy a mantener el código 05C bajo presunción de inocencia hasta que se demuestre lo contrario ...
A partir de hoy, lo que se hará es ir codificando las funciones que se llaman y no están implementadas, para ello añadí la función que presenta su dirección
de retorno.
El objetivo es llegar a ver la primera localización, su descripción y las posibles salidas. Si nos permite navegar por las localizaciones correctamente,
se podrá ir comprobando la parte de PrintMsg mas a fondo. Y así, ir añadiendo funciones o partes de código conforme sean necesarias ...

Saludos
pere

Pd En el zip que adjunto encontraréis:
- fichero VDK ("25 - Hobbit 6809 v07p.vdk")
- fuente 6809 ("H6809sF.txt")
- ejecutable independiente ("H6809sF.bin")
- fichero de Datos de programa ("H6809-DATOS-8m.txt")
- mapa uso memoria ("91 - Mapa de memoria The Hobbit x 6809 - 2015-05-24.txt")
- informa avance proyecto ("91 - Avance Proyecto The Hobbit 2015-05-24.txt")

Como recordatorio:
El programa usa dos puntos de memoria como configuración:
- &HF7 determina color blanco o verde (0 = blanco, otros valores = verde)
- &HE7 determina si se muestran direcciones de retorno de funciones todavía
no implementadas (valor &HE7 = si, otros valores = NO)
Solo comentaros que los nombres de ficheros grabados serán siempre SAVGAM y dos cifras.
Espero que hagáis pruebas y descubráis como se montan las dos cifras conforme tecleamos cifras
y como se pueden corregir si nos hemos equivocado ...
Adjuntos
Pack The Hobbit versión 07sF.zip
(209.25 KiB) Descargado 104 veces

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

Re: Conversión código para 6809

Mensajepor luiscoco » 25 May 2015 05:46

Hola pere, que poco (nada) te ayudamos, yo ni hacer lo que me propuse pude
Ahora avanzaba el plugin de oric a ver si termino algo.
y seguirte es como querer alcanzar un astronauta en pleno vuelo.
Sigue adelante lo mas que puedas.

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 » 25 May 2015 10:24

Hola pere. Tampoco yo estoy ayudando nada... Sin embargo el proyecto sigue avanzando y eso me encanta. Estoy seguro de que en cuanto implementes las rutinas que faltan, el código 05C va a funcionar perfectamente (o casi).

¡¡¡Así que te mando todos mis ánimos!!!

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 May 2015 10:39

Hola amigos,
muchas gracias por vuestros ánimos!
A veces un receso, aunque sea de un mes, viene bien para revisar ideas ...
Creo que ya habíamos comentado que parecía razonable empezar con la función Action_Look puesto que es lo primero que escribe el programa
directamente en pantalla.
Estuve echando una ojeada a las partes de código llamadas desde esta función y me sorprendió la cantidad de rutinas que aparecen, quiero
decir que NO teníamos todavía implementadas ...
En cuanto tenga hecho el documento agrupando todo el código a convertir, ya lo subiré para que lo podáis ver en versión Z-80.

Una sorpresa desagradable que me llevé en la rutina capturadora de zonas no implementadas fue que, por desgracia, este programa tiende
a hacer llamadas ocultas, es decir del tipo JMP ,X y esto no deja rastro en el stack y al mirar el registro X siempre llega el mismo valor
siendo imposible determinar qué rutina se pretendía llamar ...
He acabado modificando las declaraciones de las rutinas no implementadas (arriba de todo del fuente), de forma que a cada una se le asigna
una dirección distinta de la anterior en un byte. Luego en la rutina de control he creado una entrada para cada una con un NOP (no operation)
Lo molesto es que tengo 98 rutinas sin implementar (increíble, pero cierto), pero ahora si puedo saber donde quería ir el salto a X.

Pues nada, a seguir con ello a ratitos. Seguimos en contacto

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 May 2015 11:28

Hola Luis,

luiscoco escribió:Hola pere, que poco (nada) te ayudamos, yo ni hacer lo que me propuse pude
Ahora avanzaba el plugin de oric a ver si termino algo.
y seguirte es como querer alcanzar un astronauta en pleno vuelo.
Sigue adelante lo mas que puedas.


Tiene mucho sentido del humor, Luis
No te preocupes, espero poder dedicarme ahora con regularidad de nuevo al Hobbit.
Que te vaya muy bien en tu desarrollo para Oric!

Lo que vamos a tener que hacer mas adelante va a ser el tema de preparar un disco con el contenido actual de mis VDK
para Dragón, de forma que lo podamos ejecutar en un CoCo2 64k
Está claro que antes voy a tener que mirarme el RS-DOS unravelled para ver que habría que hacer para hacer el programa
compatible con RS-DOS también. De hecho yo ya he cambiado al DosPlus4.9b en lugar de los de Dragon Data
Es mas robusto y tiene muchas mas funciones. Por lo tanto también debería hacer el Hobbit compatible con DP49b y DP50
Muchas cosas por hacer ...

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 » 25 May 2015 14:23

Hola Pere, que gusto leerte.

En principio no hay novedad, más que esperar que nos digas que podemos hacer, ya que eres el sheriff y el que sabe del proyecto, es totalmente parido por ti y a no ser que nos digas poco podemos hacer.

Pero es una alegría ver que sigue en liza y que estás de vuelta con ganas !!!

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 May 2015 15:09

Hola Rodrigo,

ron escribió:Hola Pere, que gusto leerte.

En principio no hay novedad, más que esperar que nos digas que podemos hacer, ya que eres el sheriff y el que sabe del proyecto, es totalmente parido por ti y a no ser que nos digas poco podemos hacer.

Pero es una alegría ver que sigue en liza y que estás de vuelta con ganas !!!


Si alguien tiene tiempo, ganas y se atreve a probar la versión actual con los comandos LOAD y SAVE podrá experimentar el sistema que he incluido
para añadir las cifras y así poder diferenciar entre 100 posiciones diferentes salvadas ...
Todo lo que hace falta es meter el fichero VDK en un emulador y ejecutar el programa T.BAS (está en el disco)
El ejecutable solitario requiere que el VDK esté en una unidad de discos o dará errores cargando ficheros / posiciones
En teoría estos errores están controlados y no debería cascar el programa ni siquiera en ausencia de disco, como mucho debe dar un mensaje y volver al BASIC

saludos
pere

Pd Cuando os hartéis de repetir pruebas, para salir limpiamente, basta con escribir QUIT
y cuando el cursor pasa a la izquierda esperando que pulsemos una tecla, pulsad BREAK y regresaréis al BASIC

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 May 2015 17:13

de nuevo en contacto con todos vosotros ...

Ya he finalizado la recopilación de funciones que son llamadas desde "Action_Look"
Han aparecido 23, mas ella misma serán 24 funciones a convertir.
El documento con el código Z-80 tiene cerca de 450 líneas de código, hay bastantes separadores entre niveles ...
He trazado a lápiz un intento de diagrama para asegurarme de que no me quedaba ninguna llamada en el tintero, así que tomadlo
como una verificación mas que como un diagrama de flujo. He tratado de optimizar el papel mas que el dibujo en si.

La función DrawGfx no se va a convertir ya que por decisión inicial las pantallas se cargarán desde ficheros de disco, o sea función nueva.

Diagrama de Action_Look.jpg
Diagrama de Action Look


saludos
pere
Adjuntos
Diagrama de Action_Look.zip
(288.51 KiB) Descargado 100 veces
Urgencia num 1 - Action_Look.zip
(7.25 KiB) Descargado 102 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 May 2015 19:54

Vale, a ver que podemos mirar de esto primero que cuentas.

Y respecto al post anterior, creo que tengo la audacia necesaria para probarlo. ¿ estamos hablando que Pack The Hobbit versión 07sF.zip es tu última versión desarrollo publicada ?

Ya te 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 » 25 May 2015 20:12

si Rodrigo,
ésta es la última versión ...
Como dije basta con poner el disco y lanzar "T.BAS"
A partir de ahí lo que puedas hacer

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 » 31 May 2015 12:56

¿ 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.


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