Acceso ficheros desde ASM

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Acceso ficheros desde ASM

Mensaje por Uto » 02 Jun 2016, 12:45

Comprobado, la misma rutina de cargar gatito.scr, si la generas como .tap hay que usar IX, pero si la generas con dot command, hay que usar HL. La causa, ni idea, pero es un hecho, como dot command con IX no va :D

Avatar de Usuario
Haplo
Mensajes: 368
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 02 Jun 2016, 13:16

Yo también me he hice un .bat igual, con manejo de errores en cada paso. Lo que no hago es cargar el emulador, intenté meterlo pero me tiraba un montón de "debugs" y al final varios errores. Lo miraré esta tarde.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Acceso ficheros desde ASM

Mensaje por Uto » 02 Jun 2016, 13:20

Haplo escribió:Yo también me he hice un .bat igual, con manejo de errores en cada paso. Lo que no hago es cargar el emulador, intenté meterlo pero me tiraba un montón de "debugs" y al final varios errores. Lo miraré esta tarde.
Tienes que cambiar a la carpeta donde esté el emulador para ejecutarlo, sino no encuentra las ROMs y demás cosas, yo tengo un "cd" a su carpeta, luego lanzo el emulador, y luego otro "cd "de vuelta. Lo mismo hay un parámetro para decirselo, no he mirado.

Esta es mi llamada a ZesarUX:

Código: Seleccionar todo

zesarux --mmc-file C:\...............\mmc\pruebas.mmc --enable-mmc --enable-divmmc --enableulaplus --noautoload 
Para arrancar con ZXUno creo que era --machine zxuno.

Avatar de Usuario
Haplo
Mensajes: 368
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 02 Jun 2016, 13:34

Gracias, lo tendré en cuenta. Yo la configuración del emulador la tengo metida en el .zesaruxrc, para que arranque siempre con las opciones que uso ya activadas.

utopian
Mensajes: 12
Registrado: 24 Mar 2016, 12:28

Re: Acceso ficheros desde ASM

Mensaje por utopian » 02 Jun 2016, 18:52

Uto escribió:Comprobado, la misma rutina de cargar gatito.scr, si la generas como .tap hay que usar IX, pero si la generas con dot command, hay que usar HL. La causa, ni idea, pero es un hecho, como dot command con IX no va :D
En general es siempre así. Como dot command los programas se cargan siempre en una dirección específica (si no recuerdo mal era $2000 tal vez?) y requieren HL. En cualquier otro caso, hay que usar IX. No estoy muy al tanto de cómo funcionan los dot commands, pero a lo mejor se cargan en la RAM del DivIDE o DivMMC, y al paginarse en $2000 tienen sus requisitos.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Acceso ficheros desde ASM

Mensaje por Uto » 02 Jun 2016, 23:47

utopian escribió:
Uto escribió:Comprobado, la misma rutina de cargar gatito.scr, si la generas como .tap hay que usar IX, pero si la generas con dot command, hay que usar HL. La causa, ni idea, pero es un hecho, como dot command con IX no va :D
En general es siempre así. Como dot command los programas se cargan siempre en una dirección específica (si no recuerdo mal era $2000 tal vez?) y requieren HL. En cualquier otro caso, hay que usar IX. No estoy muy al tanto de cómo funcionan los dot commands, pero a lo mejor se cargan en la RAM del DivIDE o DivMMC, y al paginarse en $2000 tienen sus requisitos.
Lo curioso es que al final las llamadas a ESXDOS son cargar cosas en registros, y luego llamar a RST $8, y RST 8 no es mas que que un salto a la direccion $0008 de la ROM, donde obviamente ESXDOS ha paginado su código, pero ese código en teoría es el mismo siempre así que siempre debería aceptar HL o IX, y no uno cada vez salvo que:

- Al ejecutar algo en la dirección $2000 produzca ... esto... como se llamaba... ¿un trap de esos? (por aquí empiezo a perderme) y en $0008 haya una rutina diferente.
- Que la rutina que hay en $0008 mire la pila a ver si la llamada se hizo desde $2000 y cercanas, o desde otro sitio.

En cualquier caso bastante raruno, aunque sus razones habrá.

Edito: Hmm... acabo de caer en que cuando ejecutas los dot commands, HL llega apuntando al los parámetros (argv) que dio el usuario. Esto hace aún más raro que los dot commands usen precisamente HL para las llamadas a ESXDOS.

Supongo que si quiero entender esto me tocará hacer debug, a ver si me así me quito la duda (ya por cabezonería).

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Acceso ficheros desde ASM

Mensaje por Uto » 30 Sep 2016, 23:47

¿Alguien sabe si ESXDOS tiene alguna función RST 8 para leer un directorio? ¿O en su defecto una funcion RST x para leer sectores y así leer la FAT?

¿Y para cambiar el directorio actual?

Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Re: Acceso ficheros desde ASM

Mensaje por yombo » 02 Oct 2016, 03:26

Tiene que haber una función para listar un directorio (no sabemos cual)
Pero no creo que haya el concepto de directorio actual, todo se hace con rutas absolutas cuando abres un fichero.

Eso creo al menos ;-)

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Acceso ficheros desde ASM

Mensaje por Uto » 02 Oct 2016, 09:32

yombo escribió:Tiene que haber una función para listar un directorio (no sabemos cual)
Pero no creo que haya el concepto de directorio actual, todo se hace con rutas absolutas cuando abres un fichero.

Eso creo al menos ;-)
Puede ser, le echaré un ojo al ".ls" a ver como está hecho.

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Acceso ficheros desde ASM

Mensaje por Zup » 05 Oct 2016, 08:02

Acabo de recibir el SDK. Las buenas noticias es que hay dos funciones para leer un directorio (F_OPENDIR y F_READDIR). Las malas noticias es que al parecer estas funciones leen todo el directorio, no hay función FINDFIRST/FINDNEXT (que vendrían de perlas).

También hay funciones para cambiar de directorio.

Ahora voy a intentar hacer un programa que copie ficheros entre particiones IDEDOS y FAT, a ver qué tal se me da.

Responder