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

Acceso ficheros desde ASM

Mensaje por Haplo » 22 May 2016, 23:38

Estoy tratando de encontrar información sobre cómo cargar un fichero desde la SD usando ESXDOS desde ASM. En la poca documentación que he encontrado se hace referencia a un "esxdos.inc" que no está de acceso libre, por lo que no me queda claro si lo que propongo es posible o no. Pensaba que sería tan fácil como usar las rutinas de carga de la rom del spectrum...

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

Re: Acceso ficheros desde ASM

Mensaje por chernandezba » 22 May 2016, 23:47

Supongo que esxdos te da un acceso a su api de carga... Pero si utilizas las rutinas de carga estandard de la
ROM (dirección 1366) también te funcionará, es en lo que se basa divmmc/divide. El interfaz mira cuando accedes a las rutinas de carga estandard de la ROM y es en ese momento cuando se activa la memoria RAM de la interfaz y gestiona el acceso a la SD
----

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

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 23 May 2016, 11:49

Este comando "dot" hecho por Antonio Villena es bastante ilustrativo sobre como abrir y leer un fichero, fundamentalmente porque trae las fuentes:

viewtopic.php?f=39&t=302&p=2742&hilit=.upgrade#p2742

Es la mejor información que he encontrado al respecto, dado que ese ESXDOS.inc parece ser que lo dan con cuentagotas :-)

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 23 May 2016, 11:54

chernandezba escribió:Supongo que esxdos te da un acceso a su api de carga... Pero si utilizas las rutinas de carga estandard de la
ROM (dirección 1366) también te funcionará, es en lo que se basa divmmc/divide. El interfaz mira cuando accedes a las rutinas de carga estandard de la ROM y es en ese momento cuando se activa la memoria RAM de la interfaz y gestiona el acceso a la SD
El problema es que eso requiere que el .tap adecuado esté conectado, y además dependes de la secuencialidad de la cinta. Creo que lo que busca Hapl0 es más acceder directamente al fichero que quiera cuando quiera, y no depender de otras cosas.

Es algo que he pensado yo muchas veces, pero además de poder cargar el fichero, debería ser capaz de determinar el .tap o .z80 que se ha cargado, para buscar los ficheros en la misma carpeta.

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

Re: Acceso ficheros desde ASM

Mensaje por utopian » 23 May 2016, 12:07

Uto escribió:Este comando "dot" hecho por Antonio Villena es bastante ilustrativo sobre como abrir y leer un fichero, fundamentalmente porque trae las fuentes:

viewtopic.php?f=39&t=302&p=2742&hilit=.upgrade#p2742

Es la mejor información que he encontrado al respecto, dado que ese ESXDOS.inc parece ser que lo dan con cuentagotas :-)
Probad a mandarle un correo a los autores. En mi caso me lo mandaron sin problema, y sigo sin entender muy bien por qué no lo hacen totalmente público, pero si les contactas son majos y te lo mandan.

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 23 May 2016, 12:31

utopian escribió:
Uto escribió:Este comando "dot" hecho por Antonio Villena es bastante ilustrativo sobre como abrir y leer un fichero, fundamentalmente porque trae las fuentes:

viewtopic.php?f=39&t=302&p=2742&hilit=.upgrade#p2742

Es la mejor información que he encontrado al respecto, dado que ese ESXDOS.inc parece ser que lo dan con cuentagotas :-)
Probad a mandarle un correo a los autores. En mi caso me lo mandaron sin problema, y sigo sin entender muy bien por qué no lo hacen totalmente público, pero si les contactas son majos y te lo mandan.
Yo jamás obtuve respuesta, aunque no pedí el fichero en si mismo, sino información sobre ESXDOS y como hacer comandos en general. Pero solo hubo silencio.

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

Re: Acceso ficheros desde ASM

Mensaje por chernandezba » 23 May 2016, 12:44

Uto escribió:
chernandezba escribió:Supongo que esxdos te da un acceso a su api de carga... Pero si utilizas las rutinas de carga estandard de la
ROM (dirección 1366) también te funcionará, es en lo que se basa divmmc/divide. El interfaz mira cuando accedes a las rutinas de carga estandard de la ROM y es en ese momento cuando se activa la memoria RAM de la interfaz y gestiona el acceso a la SD
El problema es que eso requiere que el .tap adecuado esté conectado, y además dependes de la secuencialidad de la cinta. Creo que lo que busca Hapl0 es más acceder directamente al fichero que quiera cuando quiera, y no depender de otras cosas.

Es algo que he pensado yo muchas veces, pero además de poder cargar el fichero, debería ser capaz de determinar el .tap o .z80 que se ha cargado, para buscar los ficheros en la misma carpeta.
Es verdad! Estaba yo pensando en los datos encapsulados dentro de un .tap...
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/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 » 23 May 2016, 21:50

Vale, estoy estudiando el código de Antonio, hiperoptimizado como siempre ejejje. Se agradecería unas rutinas separadas y algo más didácticas, pero bueno, parece fácil. A bote pronto me pregunto cómo se puede cambiar el directorio actual, aunque tampoco es vital.

La razón de todo esto es simplemente cargar los distintos ficheros del juego sin tener que pelearme con la generación del .tap. Tengo que mirar cómo va el tema del esxdos desde el emulador de César, que creo haber visto un video donde lo explicaba.

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

Re: Acceso ficheros desde ASM

Mensaje por Uto » 23 May 2016, 22:04

Haplo escribió:Vale, estoy estudiando el código de Antonio, hiperoptimizado como siempre ejejje. Se agradecería unas rutinas separadas y algo más didácticas, pero bueno, parece fácil. A bote pronto me pregunto cómo se puede cambiar el directorio actual, aunque tampoco es vital.
Seguro que si desensamblas el .cd de ESXDOS lo encuentras, pero la realidad es que probablemente no haga ninguna falta, porque puede que puedas poner el path completo en la cadena ASCIIZ del "fopen".

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

Re: Acceso ficheros desde ASM

Mensaje por Haplo » 24 May 2016, 19:46

Se me tiene que estar pasando algún detalle porque no soy capaz de cargar un archivo, me sale el error de que no lo encuentra. Lo pongo aquí para ver si me decís el error:

Código: Seleccionar todo

asm
	FA_READ		equ       $01
	M_GETSETDRV	equ	$89
	F_OPEN		equ	$9a
	F_CLOSE		equ	$9b
	F_READ		equ	$9d

Main:		xor a
		rst $08
		defb M_GETSETDRV   ; A = unidad actual
SDCard:		ld b, FA_READ      ; B = modo de apertura
		ld hl, FileName    ; HL = Puntero al nombre del fichero (ASCIIZ)
		rst $08
		defb F_OPEN
		ld (FHandle),a
		jr nc, FileFound
		call Print
		defb "File FLASH not found"
		defb 0
		ret
FileFound:	ld hl, 16384
		ld bc, 6912
		ld a,(FHandle)
		rst $08
		defb F_READ
		jr nc, ReadOK
		call Print
                	defb "Read Error"
		defb 0
		ret
ReadOK:		ld (FHandle),a
		rst $08
		defb F_CLOSE
		ret
Print:		pop hl
		defb $3e
Print1:		rst $10
		ld a, (hl)
		inc hl
		or a
		jr nz, Print1
		jp (hl)
FHandle:		defb 0
FileName:		defb "gatito.scr"
		defb 0

end asm
Supuestamente debería cargar una pantalla llamada "gatito.scr"...

Responder