AGD - Editor de ficheros AGD

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

AGD - Editor de ficheros AGD

Mensajepor pser1 » 07 Ene 2019 18:59

Hola,
ya que no podía meter un fichero AGD en un VDK al ser mayor de 64K, he utiizado NIXY.AGD como ejemplo (115095 bytes)
he decidido atacarlo con una estrategia mas 'liberal'. Me he hecho un programilla en Java que a partir un fichero AGD, lo disfraza
del VDK añadiéndole una cabecera y llenándolo con ceros hasta completar la longitud de un disco estandar.
No es la mejor manera, pero funciona!
El disco es absolutamente ilegible desde DOS ya que no contiene directorio, pero se puede leer perfectamente incluso desde
BASIC utilizando el procedimiento de lectura a través de las variables de sistema y ejecutando una rutina std de disco
Por supuesto, se requiere poner el VDK disfrazado en la unidad 1 y el disco con programas en la 2, pero es un mal menor ...
Ahora el "trabajillo" será hacer un programa en ensamblador que sea capaz de leer los datos en memoria y que los muestre y
además permita su modificación ... veremos que sale de todo esto.
Para quien quiera perder un rato de su tiempo libre, os adjunto los discos NIXY.VDK y AGDREAD.VDK por si queréis echarles una ojeada
Una vez montados en las unidades 1 y 2, yo hago un DRIVE 2 por si acaso y luego RUN"TEST01"
Se muestran 256 caracteres en pantalla y pulsando cualquer tecla sigue leyendo ... hasta que os canséis
saludos
pere
Adjuntos
LectorAGD.ZIP
(16.51 KiB) Descargado 24 veces

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 07 Ene 2019 19:11

Podríamos utilizar este hilo para comentar funcionalidades que podría/debería ofrecer la aplicación.
Por definición los gráficos se mostrarán en PMODE3 paleta Verde aunque se podría tener una tecla de función que
alternase el PMode y otra que alternase Paleta.
De entrada se me ocurre hacer que el programa se lea todos los Bloques y los guarde en una tabla
- Entonces buscará la primera pantalla y la mostrará, pudiendo el usuario pasar a la siguiente o quedarse en la actual para
editar bloques. No podrá volver hacia atrás a la pantalla anterior.
- Una vez aceptada una pantalla, un bloque (coordenadas 0,0) se mostrará en vídeo invertido y con las teclas del cursor nos
podremos posicionar en el bloque que nos interese.
- Pulsando una tecla concreta, entrará en modo edición mostrando el bloque a doble anchura-doble altura para proceder a editarlo
- Al salir de la edición, la pantalla será mostrada de nuevo aplicando los cambios hechos en el bloque a todas las ocurrencias
en que aparezca en pantalla.
- Otra tecla permitirá guardar la tabla de bloques al disco 2
- Otra función ha de ser permitir cargar esta tabla a memoria sobre-escribiendo la del fichero AGD
- De momento solo se me ocurre una forma para crear el texto una vez modificados los bloques ... imprimir un texto con
dichos datos y sus cabeceras ... que luego habrá que poner en el AGD original sustituyendo los que había (B/N)

En fin, esto son solo ideas iniciales, cualquier sugerencia será bien recibida!
saludos
pere

jltursan
Mensajes: 2433
Registrado: 20 Sep 2011 13:59
Agradecido : 152 veces
Agradecimiento recibido: 421 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 07 Ene 2019 19:20

Se hace eterno eso de pasar pantallas :-)

Esto exactamente que sería, ¿un prototipo extremadamente alfa de un editor de texto corriendo en el Dragon?

EDITO: Aha, viendo tu posterior comentario parece apuntar a un AGD íntegro en Dragon -shock
¿No es un trabajazo existiendo ya la versión multi que se ejecuta en Windows?

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 07 Ene 2019 21:49

jltursan escribió:Se hace eterno eso de pasar pantallas :-)
Esto exactamente que sería, ¿un prototipo extremadamente alfa de un editor de texto corriendo en el Dragon?
EDITO: Aha, viendo tu posterior comentario parece apuntar a un AGD íntegro en Dragon -shock
¿No es un trabajazo existiendo ya la versión multi que se ejecuta en Windows?

Efectivamente, la idea es tener un editor gráfico de PMode3 que además sea capaz de leer los ficheros AGD y mostrar las
pantallas de los juegos, pudiendo editar los bloques en la pantalla que creamos mas apropiada ...
Si además tienes en cuenta que el disco AGD ha de leerse sector a sector pues la faena se complica bastante ya que las etiquetas
o los datos pueden quedar partidos en dos sectores contiguos ...
Ya tengo un primer intento en ensamblador para detectar etiquetas pero aun debo probarlo. De momento buscará DEFINEBLOCK
Luego tendré que hacer un conversor de números decimales de 1-3 cifras a un solo byte.
Así ya podré crear una tabla de Bloques que estará en una zona de memoria y por tanto la podré grabar al disco de la unidad 2
El gran proyecto Windows es tan genérico que no tengo muchas esperanzas de que acepte edición en PMode3 en un tiempo
prudencial, así que, a ratos, voy a ir 'añadiendo' funciones al recién creado programa.
Iremos comentando sobre la marcha!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 12:16

Veo que nadie ha probado el programa Basic TEST01.BAS a fondo :-(
Desafortunadamente, por el hecho de no existir el directorio, el sistema DOS hace caso omiso del número de pista solicitado
y se dedica a repetir los sectores del 0 al 17 de la pista 0 sin parar!
Lo he descubierto al trazar el programa ensamblador que hace lo mismo que el Basic, pero que debía empezar en el sector
en que viene la primera etiqueta DEFINEBLOCK. En lugar de éste, muestra el sector correspondiente de la pista 0!
Así que al fallar el 'test' de hardware que hace el DOS cuando ejecuta comandos vía [$c004], pone a cero el número de pista ...

Si a alguien se le ocurre alguna trampa para conseguir leer un sector de una pista diferente de la cero, me iría muy bien!
En caso contrario, tendré que olvidar el truco de 'disfrazar' el fichero AGD como un VDK y habrá que esperar a que Rolf pueda
modificar su programa que añade ficheros a imágenes de disco ... lástima!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 16:21

Empeorando :-(
Le he añadido el directorio en la pista 20, indicando que todos los sectores están ocupados, pero ya existe un directorio REAL
El programa sigue embuclándose y solamente muestra la pista 1 -banghead
-nb -nb -nb
pere

Avatar de Usuario
minter
Mensajes: 2332
Registrado: 22 Jul 2014 18:51
Agradecido : 2056 veces
Agradecimiento recibido: 883 veces

Re: AGD: Editor de ficheros AGD

Mensajepor minter » 08 Ene 2019 16:30

a mi esto me supera.
Meterme en como se comporta la unidad del dragón ya es muy complicado.
Yo te sigo, pero no puedo ayudar ni soltando cosas a voleo. :(

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 17:12

Una vez emitido el pack número 7 de AGD, he ejecutado el programa Basic contra un disco correcto en la unidad 1.
He utilizado uno de los del pack de Snarkhunter y ... sucede lo mismo!
NO cambia de pista, lo cual significa que estoy haciendo algo mal en el programa basic.
Tal vez el orden en que se llenan las variables ... ni idea, pero habrá que aguzar el ingenio -banghead
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 17:43

Sorpresas nos da la vida!
He cambiado de táctica y empleo directamente instrucciones Basic en lugar de POKEs
y ahora funciona correctamente:

Código: Seleccionar todo

100 REM AGD READER
110 PCLEAR1:CLEAR800,32767
120 FORT=0TO39:FORS=1TO18
130 IFT=20THENT=21:'SKIP DIRECTORY TRACK
140 SREAD 1,T,S,A$,B$
150 PRINT:PRINT"*** ";T" - ";S;"***"
160 PRINTA$;B$
170 IFINKEY$=""THEN170
180 NEXT:NEXT:CLOSE

Ahora a buscar la forma de llamar a la función SREAD desde ensamblador y como pasarle los parámetros. Pero algo es algo, de
momento ya se que no es culpa del AGD 'disfrazado' de disco VDK
saludos
pere

jltursan
Mensajes: 2433
Registrado: 20 Sep 2011 13:59
Agradecido : 152 veces
Agradecimiento recibido: 421 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 08 Ene 2019 19:12

Pues vaya, eso explica porque me tiré más de cinco minutos erre que erre pasando pantallas...no me di cuenta que estba constantemente viendo lo mismo -banghead
Pensé que simplemente, había muchos defines creados y que la cosa se iba a hacer más larga que un día sin pan -grin

No se Pere, ¿realmente merece la pena que te pegues el currazo?. Es que mientras llega la compatibilidad Dragon/CoCo parece más viable habilitar un conjunto de herramientas externas tal como se ha comentado ya en alguna ocasión, un notepad++, un editor de gráficos cualquiera, un conversor para ellos (sería una pieza ad-hoc) y un editor de mapas como el Tiled cuyo formato nativo es muy fácilmente convertible a lo que espera un DEFINESCREEN (al MAP si que habría que darle tambien un tratamiento especial).

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 19:25

jltursan escribió:No se Pere, ¿realmente merece la pena que te pegues el currazo?. Es que mientras llega la compatibilidad Dragon/CoCo parece más viable habilitar un conjunto de herramientas externas tal como se ha comentado ya en alguna ocasión, un notepad++, un editor de gráficos cualquiera, un conversor para ellos (sería una pieza ad-hoc) y un editor de mapas como el Tiled cuyo formato nativo es muy fácilmente convertible a lo que espera un DEFINESCREEN (al MAP si que habría que darle tambien un tratamiento especial).

No pienso dedicarle demasiado tiempo, pero habría estado bien que funcionara la lectura de discos en ensamblador sector a sector.
Supongo que, por lo menos, ésto es lo que hay que superar, lo otro pues ya veremos lo que tardan ... miedo me dan ya que el MC6847 lo usan
pocas máquinas ... la mayoría van con sistemas como el ZX-Spectrum o los MSX-2
hasta pronto
pere

jltursan
Mensajes: 2433
Registrado: 20 Sep 2011 13:59
Agradecido : 152 veces
Agradecimiento recibido: 421 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 08 Ene 2019 20:51

El pobre 6847 quedó algo marginado por aquí; pero aparte de que me guste particularmente, hay muchos equipos japoneses basados en él. De hecho el NEC PC-6001 es un clásico y tiene una biblioteca de programas muy grande, a más de un juego que me encanta le tengo echado el ojo por si se pueden reciclar sus graficos para una conversión propiciada ahora por el AGD :-)

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 22:54

Parece que he encontrado la causa del problema y una solución que funciona con el DosPlus5.0
ya que implica llamar a una rutina interna del DOS.
Cuando se cambia de pista, hay que re-posicionar el cabezal de lectura y si omitimos este paso, lo que
hace el hardware es seguir en la pista anterior y leer de nuevo todos los sectores!
Adjunto el programa basic modificado para que funcione. Para probarlo acelerándolo un poco, es aconsejable hacer POKE&HFFD7,0
Lo he tenido que comprimir ya que el texto es confundido con html/xml por el editor de esta web

Saludos
pere
VERAGD.ZIP
(403 Bytes) Descargado 17 veces

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 08 Ene 2019 22:57

Y el programa ensamblador ya me detecta la primera etiqueta DEFINEBLOCK o sea que el próximo paso va a ser
guardar en memoria 9 bytes (8 del block + 1 de atributos) e ir a por el siguiente ...
Obviamente hay que hacer la rutina que busque las cifras y las vaya convirtiendo a formato byte.
Si luego puedo hacer lo mismo con las pantallas ya tendré dos tablas independientes del pseudo disco AGD y podré
trabajar con ellas mas fácilmente. Pasito a pasito ...
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2492
Registrado: 08 Dic 2012 18:34
Agradecido : 457 veces
Agradecimiento recibido: 539 veces

Re: AGD: Editor de ficheros AGD

Mensajepor pser1 » 09 Ene 2019 18:20

He estado comentando con Kees van Oss el tema del editor de gráficos y me he dado cuenta de que yo me había 'prohibido'
utilizar Java ya que usando Dragon podríamos ver como quedan los gráficos incluso con los colores artificiales.
Peeero, pensándolo bien, ¿Porqué no beneficiarse de la celeridad de un PC para hacer el parseo y generación de dos ficheros?
Como los ficheros generados serán pequeños, por ejemplo 150 bloques = 1500 bytes y las pantallas, que pueden ser bastante grandes
por ejemplo 40 pantallas (768 bytes) = 30720 todavía inferior a 64k por lo que se puede poner *hoy* dentro de un disco VDK
Por supuesto la edición la haría dentro del entorno Dragón.
Así que ha sido muy interesante la discusión y los problemas encontrados leyendo discos sector a sector, pero incluso ahora que el problema
está superado, me decido a practicar con Java. A ver si puedo aprovechar algunos desarrollos antiguos ... si los encuentro!
saludos
pere

jltursan
Mensajes: 2433
Registrado: 20 Sep 2011 13:59
Agradecido : 152 veces
Agradecimiento recibido: 421 veces

Re: AGD: Editor de ficheros AGD

Mensajepor jltursan » 09 Ene 2019 18:28

Me parece buena idea ese replanteo que comentas.....pero sigues mencionando el "meter en un VDK"; al final no me queda claro, ¿se trataria de un desarrollo mixto en el que la parte de los gráficos se haría sobre PC?

Mi editor gráfico no considero que sea publicable; pero al menos la parte de Dragon (PM3 y PM4) la considero bastante completa. SI quieres intentar aprovecharla o reciclarla de alguna manera, dímelo y te la hago llegar. Creo que ya había comentado que se trata de un proyecto Java...


Volver a “Software Dragon”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado