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
Haplo
Mensajes: 366
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 30 May 2016, 11:40

Vale, no era tema de permisos, era que porque tenía montada la imagen del divmmcesx086.mmc con ImDisk. Ahora funciona ok. Hubiera sido la leche que se pudiera hacer sin tener que andar montando/desmontando pero bueno, no se puede tener todo.

Lo del $06, ni idea, ¿abrir como sólo lectura? Sería cuestión de ir probando, ahora que es más fácil de hacer pruebas en el emulador.

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 30 May 2016, 12:34

Haplo escribió:Vale, no era tema de permisos, era que porque tenía montada la imagen del divmmcesx086.mmc con ImDisk. Ahora funciona ok. Hubiera sido la leche que se pudiera hacer sin tener que andar montando/desmontando pero bueno, no se puede tener todo.

Lo del $06, ni idea, ¿abrir como sólo lectura? Sería cuestión de ir probando, ahora que es más fácil de hacer pruebas en el emulador.
No no, porque es el comando CP, abre un fichero para leer con FA_READ, y luego otro para escribir con $06.

Siendo $06 será $04 + $02 (o sea, FA_WRITE y algo mas). Pero sí, es cuestión de probar.

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 30 May 2016, 12:47

Haplo escribió:Vale, no era tema de permisos, era que porque tenía montada la imagen del divmmcesx086.mmc con ImDisk. Ahora funciona ok. Hubiera sido la leche que se pudiera hacer sin tener que andar montando/desmontando pero bueno, no se puede tener todo.
Imdisk tiene un interfaz de linea de comandos (teclea imdisk en una ventana "DOS").

Aqui se explica un poco:

http://forums.guru3d.com/showthread.php?t=356046

Obviamente lo digo porque puedes hacerte un .BAT que monte el disco, llame a PASMO y meta el tap o lo que sea en dicho disco, y lo desmonte (y ya puestos, lance ZesarUX)

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

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 30 May 2016, 12:53

Si, es lo q estaba pensando :)

Avatar de Usuario
antoniovillena
Mensajes: 2611
Registrado: 27 Sep 2015, 20:41

Re: Acceso ficheros desde ASM

Mensaje por antoniovillena » 30 May 2016, 12:54

Con la utilidad fpoke no necesitas estar montando y desmontando. Si la SD no ha sido continuamente llenada y borrada, lo más normal es que los archivos estén de una pieza, sin fragmentar. En ese caso solo tienes que detectar dónde empieza con un editor hexadecimal, y hacer la inserción con fpoke

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Acceso ficheros desde ASM

Mensaje por chernandezba » 30 May 2016, 15:00

Uto escribió:
Haplo escribió:Vale, no era tema de permisos, era que porque tenía montada la imagen del divmmcesx086.mmc con ImDisk. Ahora funciona ok. Hubiera sido la leche que se pudiera hacer sin tener que andar montando/desmontando pero bueno, no se puede tener todo.

Lo del $06, ni idea, ¿abrir como sólo lectura? Sería cuestión de ir probando, ahora que es más fácil de hacer pruebas en el emulador.
No no, porque es el comando CP, abre un fichero para leer con FA_READ, y luego otro para escribir con $06.

Siendo $06 será $04 + $02 (o sea, FA_WRITE y algo mas). Pero sí, es cuestión de probar.
Volviendo a mi desconocimiento de la api de esxdos, típicamente en muchas librerías de gestión de archivos, suele haber varias maneras de abrir un archivo:
Abrir solo lectura
Abrir lectura y escritura
Abrir para escritura y error si existe
Abrir para escritura y truncar contenido si existe
Abrir para escritura y agregar datos al final si existe
Etc

Puede que por ahí vayan los tiros...
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Acceso ficheros desde ASM

Mensaje por chernandezba » 30 May 2016, 15:05

antoniovillena escribió:Con la utilidad fpoke no necesitas estar montando y desmontando. Si la SD no ha sido continuamente llenada y borrada, lo más normal es que los archivos estén de una pieza, sin fragmentar. En ese caso solo tienes que detectar dónde empieza con un editor hexadecimal, y hacer la inserción con fpoke
Pero... Este fpoke modifica los datos de la imagen de disco a lo bruto, no? Entiendo que solo es útil para modificar archivos contenidos en la imagen de disco pero sin que se modifique el tamaño del archivo que estas alterando. Porque en ese caso deberías modificar también la entrada correspondiente en la FAT...
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
antoniovillena
Mensajes: 2611
Registrado: 27 Sep 2015, 20:41

Re: Acceso ficheros desde ASM

Mensaje por antoniovillena » 30 May 2016, 15:15

chernandezba escribió: Pero... Este fpoke modifica los datos de la imagen de disco a lo bruto, no? Entiendo que solo es útil para modificar archivos contenidos en la imagen de disco pero sin que se modifique el tamaño del archivo que estas alterando. Porque en ese caso deberías modificar también la entrada correspondiente en la FAT...
Exacto, no modifica el tamaño del archivo que estás alterando. Y el tamaño del archivo tampoco se puede cambiar por este método.

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 30 May 2016, 17:58

chernandezba escribió: Abrir solo lectura
Abrir lectura y escritura
Abrir para escritura y error si existe
Abrir para escritura y truncar contenido si existe
Abrir para escritura y agregar datos al final si existe
Etc

Puede que por ahí vayan los tiros...
Sí, casi seguro que $06 es write+truncate o algo así (que es lo que tiene sentido en .cp )

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

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 30 May 2016, 19:00

Uto, ¿tú conoces bien el ImDisk?. No sé si es posible montar la imagen desde el command line, lo digo porque llevo toda la tarde probando y mirando foros, y lo más que consigo es que me cree una unidad en blanco (de hecho me pide formatearla). Juraría que el comando debería ser así:

Código: Seleccionar todo

imdisk -a -t file -f D:\ZEsarUX_win-4.1\divmmcesx086.mmc -m Z:
Y lo que me hace es crear la unidad z:, me pide formatearla y luego obviamente me deja el divmmcesx086.mmc vacío. :?

Responder