Primeros pasos con el FM-7

Avatar de Usuario
minter
Mensajes: 2897
Registrado: 22 Jul 2014 18:51
Agradecido : 3132 veces
Agradecimiento recibido: 1313 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 08 Jun 2017 13:06

Último mensaje de la página anterior:

Buenas!
Overclk está en lo cierto. El proceso es tan rapido y dura tan solo un momento, que no es posible leer ese byte en ese momento.
Hay un momento en que las memorias son iguales y es cuando el micro pasa a HALT. Entonces es cuando compraten la memoria. Pero no sé si escribiendo o leyendo.
He capturado una secuencia en el que se ve el proceso:
SS Stp1.JPG
SS Stp1.JPG (115.08 KiB) Visto 1481 veces

SS Stp2.JPG
SS Stp2.JPG (116.56 KiB) Visto 1481 veces

SS Stp3.JPG
SS Stp3.JPG (116.52 KiB) Visto 1481 veces

SS Stp4.JPG
SS Stp4.JPG (115.02 KiB) Visto 1481 veces

SS Stp5.JPG
SS Stp5.JPG (115.23 KiB) Visto 1481 veces

SS Stp6.JPG
SS Stp6.JPG (116 KiB) Visto 1481 veces

SS Stp7.JPG
SS Stp7.JPG (116.47 KiB) Visto 1478 veces


Los ciclos que tarda de cambiar una pantalla a otra están en el contador. Respeté las pulsaciones. Lo que no he respetado es ver que instrucciones está ejecutando (por lo que no vale para nada. -banghead )
Pero bueno, alguna pista nos da.
Nota: El programa que esta ejecutandose es el primero que colgué. El de DiskFM Vol1 (en la demo 2)

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 13:25

@minter
Tiene mucho sentido lo que has descubierto.
La CPU *NO* puede escribir en el área compartida mientras el SS está trabajando, para poder hacerlo, debe poner al SS en estado HALT (parado)
y entonces le envía el comando. Una vez pone en marcha al SS, se acabó la conexión entre estas dos areas de memoria.
Esto podría suponer que una vez detectamos que el SS ha finalizado la tarea, habría que volver a ponerlo en HALT para poder leer
el byte de $FC80, voy a probarlo desde el Basic (programa TSTSCMD01).
Seguimos hablando.

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 15:13

El intento que he hecho ahora ha sido:
- esperar a que el SS esté libre
- ponerlo en HALT
- verificar que está parado
- escribir los bytes del comando $01
- arrancar el SS
- La consola es reiniciada
- Esperar a que el SS este libre
- ponerlo en HALT
- leer $FC80
NO lo muestra y el sistema se cuelga requiriendo Alt+F12 para recuperar el programa Basic
Tras esto tenia puesto:
- arrancar el SS
- mostrar el valor leido de $fc80
Pero el Basic se queda cortado en la linea de lectura de $fc80
No tengo ni la menor idea de porqué pasa esto ... -nb -nb
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 17:15

Ya casi tengo totalmente comentado el comando $01 -thumbup
De entrada me ha servido para aclarar una tabla de valores (8 bytes) que estaba al principio (llamada por la rutina SR001)
Resulta que cuando el comando INIT ($01) detecta que un parámetro está fuera del rango admisible, llama a la SR001
tras poner en el campo $d380 el valor $3c (¿Pa lo cualo? parece que INIT no lo utiliza para nada!)
Luego dicha rutina se dedica a machacar el resto del área común con los bytes de la tabla de 8 bytes, resultando un comando INIT
con valores por defecto. Una vez hecho, llama al código INIT entrando directamente via LE14E
O sea que siempre acabará correctamente, a menos que se estropee el hardware, por lo que no tiene mucho sentido
el campo de respuesta $FC80 para este caso.
Aunque si fuera posible (no sé como lograrlo), durante un lapso el susodicho campo debería mostrar el valor $3C)

Bien, algo es algo, ya empiezan a vislumbrarse nombres para unas cuantas variables de la página directa
aunque lo que queda por comentar es la mitad del Hobbit ó mas -507 -507

saludos
pere

Avatar de Usuario
minter
Mensajes: 2897
Registrado: 22 Jul 2014 18:51
Agradecido : 3132 veces
Agradecimiento recibido: 1313 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 08 Jun 2017 17:48

pser1 escribió:El intento que he hecho ahora ha sido:
- esperar a que el SS esté libre
- ponerlo en HALT
- verificar que está parado
- escribir los bytes del comando $01
- arrancar el SS
- La consola es reiniciada
- Esperar a que el SS este libre
- ponerlo en HALT
- leer $FC80
NO lo muestra y el sistema se cuelga requiriendo Alt+F12 para recuperar el programa Basic
Tras esto tenia puesto:
- arrancar el SS
- mostrar el valor leido de $fc80
Pero el Basic se queda cortado en la linea de lectura de $fc80
No tengo ni la menor idea de porqué pasa esto ... -nb -nb
saludos
pere


No se me cuelga, pero he podido ver que pasa.
Para no tener que estar con el STEP continuamente. He puesto en el emulador la velocidad del micro a 100 y el subsistema a 200 para ver lo que se nos pasa. (He porbado tambien el 50 y 100)
Velocidad FM7.JPG
Velocidad FM7.JPG (72.11 KiB) Visto 665 veces

Por lo que da tiempo a ver que pasa en el mometo del HALT.

Step1.JPG
Step1.JPG (83.13 KiB) Visto 665 veces

Step2 despacito.JPG
Step2 despacito.JPG (79.44 KiB) Visto 665 veces


Estoy con el programa basic que has puesto mas arriba.

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 18:00

Hola,
adjunto última revisión del desensamblado, manteniendo version 17.
He añadido los equates que subió jltursan y he puesto referencias a las variables utilizadas en INIT (comando $01)
saludos
pere
SSFM717.ZIP
(35.83 KiB) Descargado 30 veces

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 18:07

minter escribió:No se me cuelga, pero he podido ver que pasa.
Para no tener que estar con el STEP continuamente. He puesto en el emulador la velocidad del micro a 100 y el subsistema a 200 para ver lo que se nos pasa. (He porbado tambien el 50 y 100)
Por lo que da tiempo a ver que pasa en el mometo del HALT.
Estoy con el programa basic que has puesto mas arriba.

De entrada debo decirte que yo tengo chequeada la opción "Speed Setting" ... Low (FM-7 compatible) ya que tratamos de emular
esta versión de maquinita.
Probaré el tema de ralentizar las velocidades.
De hecho, si en la ristra de valores pones uno que este claramente fuera de rango, el SS debería mostrar el valor $3C en $d380
que es hermano de $fc80
Por ejemplo, cambia en la línea 1040 DATA el valor 50 por 60, que implica 96 columnas y no le va a gustar!
A ver si tengo suerte o ya te pediré como has lanzado el paso a paso desde Basic (creía que solo era posible en assembler puro y duro)

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 18:36

De momento abriendo las dos ventanas para ver las áreas de memoria compartidas,
cuando se produce el error (por parámetro fuera de rango), el subsistema llena su área con los valores por defecto
y en $d380 se visualiza el código de error $3C, pero en ningún momento se ha reflejado en el área de la CPU principal.
No se si merece la pena pelearse con ésto ...
Debe haber explicado en alguna parte el procedimiento a seguir para leer el estado final de la ejecución de un comando.
O es que *nunca* se pueda hacer ... ¿quien sabe?
saludos
pere
Mensaje3CenSS.jpg
Mensaje3CenSS.jpg (155.79 KiB) Visto 653 veces

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 18:44

Adjunto pantallazo donde se ve el programa que se ejecuta.
Al lanzarlo, se muestra la pantalla con el fondo amarillo y borrada, correcto, pero ya no devuelve control al Basic
Pulsando Alt+F12 se aborta el proceso y escribe lo que ve ve arriba a la izquierda:
Abort in 180
Esta linea debería poner en marcha al subsistema, mostrar el valor leído en R y parar
pero no lo hace.

saludos
pere
AbortIn180.jpg
AbortIn180.jpg (133.04 KiB) Visto 653 veces

Avatar de Usuario
minter
Mensajes: 2897
Registrado: 22 Jul 2014 18:51
Agradecido : 3132 veces
Agradecimiento recibido: 1313 veces

Re: Primeros pasos con el FM-7

Mensajepor minter » 08 Jun 2017 18:49

pser1 escribió:A ver si tengo suerte o ya te pediré como has lanzado el paso a paso desde Basic (creía que solo era posible en assembler puro y duro)

Lo que hago es parar el programa en DEBUG - STOP y luego emplear el Shift + F12
Lo que ocurre es que no me daba tiempo a parar el programa y se terminaba de ejecutar antes de desplegar el menú.
Así que metí un bucle FOR para que me diera tiempo (de 300).
Pero cuando paraba el programa, me pasaba mucho tiempo pulsando el Shift+F12

Así que al final... quité el bucle FOR y bajé la velocidad del micro.
Entonces me da tiempo a ir al menú de STOP y ya puedo dar al TRACE
Pero es una manera muy torpe de hacer las cosas. -grin
Pero no es un Paso a Paso de Basic.

pser1 escribió:Debe haber explicado en alguna parte el procedimiento a seguir para leer el estado final de la ejecución de un comando.

Pienso como tu, tiene que existir un indicador en algún lado que no sea tan caduco.

EDIT: Jolin!!! No me da tiempo ni a postear!!! -grin

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 19:01

minter escribió:Lo que hago es parar el programa en DEBUG - STOP y luego emplear el Shift + F12
Lo que ocurre es que no me daba tiempo a parar el programa y se terminaba de ejecutar antes de desplegar el menú.
Así que metí un bucle FOR para que me diera tiempo (de 300).
Pero cuando paraba el programa, me pasaba mucho tiempo pulsando el Shift+F12
Así que al final... quité el bucle FOR y bajé la velocidad del micro.
Entonces me da tiempo a ir al menú de STOP y ya puedo dar al TRACE
Pero es una manera muy torpe de hacer las cosas. -grin
Pero no es un Paso a Paso de Basic.
pser1 escribió:Debe haber explicado en alguna parte el procedimiento a seguir para leer el estado final de la ejecución de un comando.

Pienso como tu, tiene que existir un indicador en algún lado que no sea tan caduco.
EDIT: Jolin!!! No me da tiempo ni a postear!!! -grin

Je, je, es lo que tiene andar sobradito de tiempo -507
Yo estaba haciendo lo mismo, parando y usando shift+F12
Veamos, siguiendo con el programa Basic que se cuelga:
Al hacer RUN, aparece la pantalla en amarillo y ya no responde, pulsas ALT+F12 y se aborta el programa
Pero si ahora haces: PRINT R, resulta que muestra CERO, o sea sin error de ejecución!
Cambiando el byte 50 por 60 en la linea de DATA, se produce error y al abortar, haciendo
PRINT R muesta 60 que es exactamente $3c convertido a decimal.
O sea que SI estamos leyendo el área común.
Lo que no veo es como hacer que el subsistema obedezca la orden de rearrancar ya que si no lo hace, es imposible
que la orden PRINT R sea mostrada en pantalla (lo hace el maldito SS)
Por lo tanto, ya podemos hurgar un paso mas adelante ...
¿Cómo hacer que el Subsistema vuelva a arrancar, una vez lo hemos parado y NO hemos enviado ningún comando?

saludos
pere

Avatar de Usuario
Chema
Mensajes: 2412
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 2296 veces
Agradecimiento recibido: 714 veces
Contactar:

Re: Primeros pasos con el FM-7

Mensajepor Chema » 08 Jun 2017 19:16

Igual digo una tontería, pero si la dirección donde te devuelve el código de error es la primera donde pones los datos del comando, como te devuelva algo raro, si no lo vuelves a poner a cero (los datos de un comando son 00 00 01...?) igual no le gusta. Prueba a pokear 0 antes de volver a arrancar el subsistema a ver...

EDITO: Parece que los bytes 0 y 1 se ignoran, así que igual no es lo que digo... Mientras no se corrompan los datos del comando. Pista falsa.

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 19:24

Veamos de nuevo,
está claro que una vez detenido al Subsistema para leer $FC80 estando conectado a $d380, para conseguir que el re-arranque
surta efecto, es necesario llenar el área común con un algún comando válido.
En el caso que se ve en el pantallazo, he copiado el mismo que se pedía originalmente.
Se ve arriba que el programa muestra RESULTADO: 0 (sin errores)
y claro, luego ejecuta de nuevo el comando ...
Tenemos que encontrar alguna forma de enviar un comando nulo (todo ceros fracasa!) pero que permita re-activar al Subsistema
se admiten ideas!
saludos
pere
AlgoMejora.jpg
AlgoMejora.jpg (151.63 KiB) Visto 643 veces

jltursan
Mensajes: 2943
Registrado: 20 Sep 2011 13:59
Agradecido : 240 veces
Agradecimiento recibido: 712 veces

Re: Primeros pasos con el FM-7

Mensajepor jltursan » 08 Jun 2017 20:18

Um, ¿el comando $3F con el subcomando $90?

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 20:19

Como está ordenado, a cada paso que avanzamos tropezamos con algún nuevo problema ...
He buscado el comando mas simple que es TAB SET ($0B)
que es tan fácil como enviar $0B y los 10 tabuladores deseados.
Incluyo la posición de los tabuladores por defecto, parecen estar a 8 caracteres de distancia
y luego el resultado de poner el valor 8 en los 10 tabuladores. Se admiten comentarios!
¿Porqué el primer tabulador no hace caso y solamente salta cuatro caracteres?
saludos
pere
TabsPorDefecto.jpg
TabsPorDefecto.jpg (59.63 KiB) Visto 635 veces

Tabuladores.jpg
Tabuladores.jpg (158.6 KiB) Visto 635 veces

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 20:21

jltursan escribió:Um, ¿el comando $3F con el subcomando $90?

Es una buena idea -thumbup
Lo probaré, a ver qué es lo que pasa ...
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2994
Registrado: 08 Dic 2012 18:34
Agradecido : 700 veces
Agradecimiento recibido: 771 veces

Re: Primeros pasos con el FM-7

Mensajepor pser1 » 08 Jun 2017 20:26

pser1 escribió:
jltursan escribió:Um, ¿el comando $3F con el subcomando $90?

Es una buena idea -thumbup
Lo probaré, a ver qué es lo que pasa ...
saludos
pere

Este es el resultado, correcto por supuesto! -thumbup
Solo dos Pokes y solventado, perfecto -drinks
saludos
pere
Solucion3F90.jpg
Solucion3F90.jpg (149.95 KiB) Visto 1476 veces


Volver a “Fujitsu FM7”

¿Quién está conectado?

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