Tutorial (I): Programando el SubSistema gráfico del FM-7

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 29 May 2017 19:48

Último mensaje de la página anterior:

jltursan escribió:Pues va a ser que sí -shock ; pero...¿has encontrado donde lo hace en el ensamblador?. Aunque los comentarios son míos de hace tiempo, en el nuevo repaso que le pegué el otro día, no encontré donde podía inicializar $FC80 y supuestamente se basa en el uso de la compartida y el cmd de mantenimiento $3F.

Con el follón que me llevo descomprimiendo zips descargados y organizándolo en carpetas ... no he llegado a jugar con el ensamblador ya que
parece que NO tenemos un programa ensamblador para usarlo en el emulador, o yo no he tropezado con el :-(
A ver si esta noche puedo echarle una ojeada a fondo al programa en ensamblador, ya te contaré.
Trataré de ver como usar dicho fuente. Si tampoco podemos grabar un binario a un disco, vamos mal de entrada.
De todas formas primero necesitamos saber que tipo de cabecera le encasquetan, como el CoCo, como Dragón, o van a su bola ...

Mecagonlamarsalá, como que tienes el Secoinsa (que no Fujitsu) con logo FM-7 de tirantlonegre (este mismamente: http://va-de-retro.com/vadewiki/Fujitsu_Micro_7). Supuestamente lo tenía Calpirro, ¿este lo adquiriste desde Madrid?
Si lo quieres cambiar por un FM-7 (eso sí, el amarillo japonés) y algo más ya hablamos algún día de estos. Sigo detrás de uno y tengo una disquetera a juego esperando hacer pareja -grin

Ciertamente, lo es. Lo compré via ebay España, no recuerdo el nombre del usuario ahora mismo ... podría ser electrouro o parecido a ésto.
Entre nosotros, a mi me da igual el tipo de máquina que sea, mientras furrule ... podemos hablar al respecto cuando te parezca.
Si estás coleccionando FM-7 y éste no lo tienes, yo no voy a coleccionarlos. En el peor de los casos, si se terciara un FM77AV40 japonés
haría un esfuerzo, cuando comentaste que era el mejor del mundo mundial, me miré especificaciones y si parece un gran bicho!
Si hubiera manera de conseguir alguna disquetera multiplicaría por mil las ganas de utilizarlo. De hecho ya tiene su espacio reservado al lado del Dragón. Recibí el mini-MPI de Ed Snider y ya aparqué el multipack (MPI) que se comía media mesa!

saludos
pere

jltursan
Mensajes: 2100
Registrado: 20 Sep 2011 13:59
Agradecido : 87 veces
Agradecimiento recibido: 187 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor jltursan » 29 May 2017 20:31

Trataré de ver como usar dicho fuente. Si tampoco podemos grabar un binario a un disco, vamos mal de entrada.
De todas formas primero necesitamos saber que tipo de cabecera le encasquetan, como el CoCo, como Dragón, o van a su bola ...


Um, a ver pues como puedo centrarme en conseguir eso. De momento y a las malas, no se podría generar el binario (fácil), convertir a un listado de DATAs e introducirlo un listado BASIC inyectado en un D77 (suponiendo que el D77Manager entienda de la estructura de un fichero BAS). En fin, le doy una vuelta...

Ciertamente, lo es. Lo compré via ebay España, no recuerdo el nombre del usuario ahora mismo ... podría ser electrouro o parecido a ésto.
Entre nosotros, a mi me da igual el tipo de máquina que sea, mientras furrule ... podemos hablar al respecto cuando te parezca.
Si estás coleccionando FM-7 y éste no lo tienes, yo no voy a coleccionarlos


Lo dicho, el mundo es un pañuelo. Hace tiempo que no se nada de Calpirro y su colección, espero que esto no suponga que el hombre tuvo que deshacerse de ella :-(. En fin...
Ya hablamos, algo se me ocurrirá. Lamentablemente no tengo disponibles para cambio FM77xx, digamos que pueden salir por un potosí y medio en Japón, sus teclados solitos ya valen casi unos 200€ :-)

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 29 May 2017 20:40

jltursan escribió:Ya hablamos, algo se me ocurrirá. Lamentablemente no tengo disponibles para cambio FM77xx, digamos que pueden salir por un potosí y medio en Japón, sus teclados solitos ya valen casi unos 200€ :-)

Ya he visto alguno en subastas japonesas y además de caro, algunos no dejaban muy claro si funcionaban correctamente ... así que experimentos tan pocos como pueda!
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 29 May 2017 20:57

@jltursan
Al inicio del ensamblador estan estas tres joyas:

Código: Seleccionar todo

         leax   CMD_COPY-*-3,pc         ; DONDE DIABLOS SE QUIERE APUNTAR?
         leau   BASE_ADDR+1-*-3,pc      ; LO MISMO, ES DE LOCOS
         leay   SUBCPU_CODE-*-3,pc      ; CON LO FACIL QUE ES APUNTAR A DONDE SE QUIERE EXACTAMENTE

Estoy acostumbrado en 6809 a hacer esto:
LEAX ETIQUETA,pcr
Siendo etiqueta el nombre de un bloque de datos.
El ensamblador se espabila y apunta a la etiqueta exactamente!
Tomar el nombre de ETIQUETA y restarle el Puntero de compilación (*) y además 3
Equivale a restar directamente el inicio del LEAX de la dirección que queremos cargar.
En el fondo, si no estamos haciendo código PIC (para OS-9), lo mejor es simplemente
LDX #ETIQUETA ; y a cascar

Si puedes aclararme algo sobre esto, te lo agradeceré ya que va ligado al compilador, que no a la máquina
o a la CPU que ya sabemos como anda. Lo veo enrevesado por no usar otro vocabulario -507

saludos
pere

jltursan
Mensajes: 2100
Registrado: 20 Sep 2011 13:59
Agradecido : 87 veces
Agradecimiento recibido: 187 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor jltursan » 29 May 2017 21:41

Cosas del decompilador :-)

Veamos lo que interpreto (tu me corriges si eso ;-)):

Código: Seleccionar todo

leax CMD_COPY-*-3,pc

Tal cual es CMD_COPY. De x va leyendo los bytes del comando $3F.

Código: Seleccionar todo

leau BASE_ADDR+1-*-3,pc

Pretende apuntar a la dirección en la que se almacena "word_C37B"-2 en

Código: Seleccionar todo

sta word_C37B
. Al comienzo trata de rellenarla al hacer el

Código: Seleccionar todo

std 2,u


Código: Seleccionar todo

leay SUBCPU_CODE-*-3,pc

Igual que el primer caso. De y va leyendo los bytes del código completo de la subCPU a transferir desde la RAM principal.

Esa sintaxis es totalmente despreciable, la usa en algún sitio más pero la obvié por completo. De hecho, ni me molesté en interpretarla :-D

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 29 May 2017 21:52

@jltursan,
me expliqué mal, José Luis, lo siento
Se entiendo lo que el programa quiere hacer, pero el cálculo que se pega
el compilador en esta lineas es abusivo.
Adjunto una compilación con las tres variantes posibles,o sea tres formas
de apuntar al mismo sitio. He repetido los datos para que se produzca el mismo código objeto en dos de ellas

Código: Seleccionar todo

0000  308C07          start           leax    CMD_COPY-*-3,pc
0003  308C07                                  leax    CMD_COP2,pcr
0006  8E0010                                  ldx     #CMD_COP3
0009  39                                      rts
000A  0A              CMD_COPY        fcb     $A
000B  93                                      fcb     $93     
000C  D3                                      fcb     $D3     
000D  0A              CMD_COP2        fcb     $A
000E  93                                      fcb     $93     
000F  D3                                      fcb     $D3     
0010  0A              CMD_COP3        fcb     $A
0011  93                                      fcb     $93     
0012  D3                                      fcb     $D3     
                                              end     start

La primera (del fichero original) es utilizando el PC y calculando el offset a manija!
La segunda le pasa el trabajo al compilador. Lo correcto, usando pcr en lugar de pc
La tercera la más pragmática. No genera código PIC pero funciona!
Espero que el resto de código sea mas comprensible -507

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 30 May 2017 17:12

@jltursan
En este hilo trataré de ir poniendo solamente mensajes relacionados con lo que vayas subiendo ...
He estado peleándome con el programa ensamblador, he reordenado a mi aire el código por orden
de llamadas y he conseguido comentar todas las líneas, con paciencia e imaginación!
Echo en falta DATOS, en concreto la definición de los "Patterns".
El programa calcula el inicio de uno de ellos en el registro Y pero el valor que éste adquiere está muy, muy
lejos de la etiqueta PATTERN_TABLE ... tal vez ¿Hay otro trozo de código que habría que añadir?

El programa parece una DEMO de como usar el comando EXECUTE (JSR) y me parece (puedo estar muy equivocado)
que pasar la rutina que se quiere ejecutar de byte en byte es cuando menos poco eficiente.
Tal vez usando el comando que se muestra en el programa Basic ($91) se podrían enviar 64 bytes cada vez

Otro tema inevitable ... me da la impresión de que todos los valores superiores a $80 deben ser considerados como
un comando por parte del subsistema, por lo que nos iría bien tener una lista de ellos con los parámetros necesarios, claro!

En fin, te adjunto el fuente comentado por si puedes darle una ojeada y corregirme los patinazos que sin lugar a
dudas habré dado.
Muchas gracias
pere
FM701.zip
(2.97 KiB) Descargado 16 veces

jltursan
Mensajes: 2100
Registrado: 20 Sep 2011 13:59
Agradecido : 87 veces
Agradecimiento recibido: 187 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor jltursan » 30 May 2017 19:12

Efectivamente, como ya dije este fragmento de código ensamblador forma parte de un juego escrito en BASIC cuyo tamaño supera un poco el espíritu de este hilo; así que voy a tratar de generar un mini programa que al menos me sirva para ilustrar su funcionamiento (y de paso comprobar que la revista no engañaba a nadie -507 ). Me reviso el código del juego y saco el BASIC y los DATAs necesarios para que funcione.

Aunque tengo disquetera en el FM-7 y molaría currármelo en la propia máquina voy a hacer trampas y jugar con emuladores :oops:

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 30 May 2017 19:56

jltursan escribió: Me reviso el código del juego y saco el BASIC y los DATAs necesarios para que funcione.

No te esgañites mucho, José Luis. El programa en ensamblador, funcionará perfectamente, lo que sucede es que nos faltan
los DATA que definen los patrones a mostrar ... pero ya nos ha servido para lo que queríamos, aprender un poquito de la
forma en que la CPU se comunica con la otra (de gráficos)

Me sorprende, ¿hacían juegos en Basic? Es que ni con las dos CPUs me imagino que sea algo rápido ...
como se hablan casi con Morse -507

saludos
pere

jltursan
Mensajes: 2100
Registrado: 20 Sep 2011 13:59
Agradecido : 87 veces
Agradecimiento recibido: 187 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor jltursan » 30 May 2017 20:21

Los japoneses hacían programas en BASIC para todo equipo que se moviese por ahí, las "BASIC magazine" son una joyita. Del FM-7 tengo un buen puñado y lo curioso es que en sólo un par tengo código máquina, el resto 100% BASIC -shock

Efectivamente el FM-7 era pesadote; pero ten en cuenta que tenía ayuda con ese segundo 6809 (además rapiditos ambos, que pena que no se puedan sustituir por 6309). Otros equipos que en su mayoría (inmensa) dependían de los tres planos RGB se lo tenían que currar a mano con un único Z80. El único equipo que podía competir era el Sharp X1 que contaba con un PCG hardware que permitía hacer muchas cositas y rápido.
En esa liga su máximo exponente era el MZ-1500, un equipo extremadamente guapo (grandes gráficos, gran sonido, quickdisk integrado, color negro :-D, etc.).

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 30 May 2017 20:34

muchas gracias por la información -thumbup
Entonces ésto significa que tenemos alguna posibilidad de hacer cosillas con estos equipos ...

Ya verás en el otro hilo nuevo que he abierto, que ya está disponible la ROM desensamblada del subsistema
Supongo que los pocos bloques de datos que contiene darán código churro, pero esto ya lo superamos
con el Hobbit, ¿verdad?
Trataré de ver algún desensamblador del CoCo3 tipo Sleuth o parecido que tiene fama de ser muy bueno
detectando áreas de datos ... podría sernos de gran ayuda si funciona.

saludos
pere

Avatar de Usuario
ron
Mensajes: 17707
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 775 veces
Agradecimiento recibido: 830 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor ron » 30 May 2017 20:38

Este hilo me encanta, es como en los viejos tiempos, cuando sacábamos petroleo de debajo de un guijarro !!!

Que gustazo leer todo esto.

Avatar de Usuario
Chema
Mensajes: 1808
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 805 veces
Agradecimiento recibido: 289 veces
Contactar:

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor Chema » 30 May 2017 22:47

+1 al comentario de ron. Un gustazo leer estos hilos.

Avatar de Usuario
Silicebit
Mensajes: 1380
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 44 veces
Agradecimiento recibido: 114 veces
Contactar:

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor Silicebit » 01 Jun 2017 21:46

jltursan escribió:... Efectivamente el FM-7 era pesadote; pero ten en cuenta que tenía ayuda con ese segundo 6809 (además rapiditos ambos, que pena que no se puedan sustituir por 6309). ...


¿Y eso? Con el 6309 la máquina volaría. ¿Qué problema hay?
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

Avatar de Usuario
pser1
Mensajes: 2101
Registrado: 08 Dic 2012 18:34
Agradecido : 220 veces
Agradecimiento recibido: 227 veces

Re: Tutorial (I): Programando el SubSistema gráfico del FM-7

Mensajepor pser1 » 01 Jun 2017 22:00

Silicebit escribió:
jltursan escribió:... Efectivamente el FM-7 era pesadote; pero ten en cuenta que tenía ayuda con ese segundo 6809 (además rapiditos ambos, que pena que no se puedan sustituir por 6309). ...

¿Y eso? Con el 6309 la máquina volaría. ¿Qué problema hay?

Me da la impresión de que ambas CPU están directamente soldadas en la placa base, así que sin zócalo
la sustitución sería dolorosa o chapucera si se optara por montarlo encima (piggybacking) cortándole alguna patilla para que no le llegue
alimentación o al menos deshabilitarlo
Me parece que ha habido quien ha hecho esto en un Dragón.
Y una vez cambiado, lo único que ganaría es trabajar a menor temperatura ya que los HD63C09 pueden currar hasta los 4MHz pero ganancia en velocidad no sería demasiado notable. Otra cosa sería tratar de pasar al modo nativo con sus registros extras y los opcodes añadidos, que son
muchos. Pero esto requeriría re-escribir el código de las ROMs y no creo que estemos en condiciones de plantearnos nada parecido.
De momento, aprendiendo a andar, despacito y ya veremos hasta donde llegamos!
saludos
pere

Pd Tanto mi Dragon64 como mi CoCo3 llevan un HD63C09 desde hace mucho tiempo, se nota poco la diferencia, pero está ahí ...


Volver a “Fujitsu FM7”

¿Quién está conectado?

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