Acceso ficheros desde ASM
Acceso ficheros desde ASM
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...
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: Acceso ficheros desde ASM
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
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
Re: Acceso ficheros desde ASM
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
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
Re: Acceso ficheros desde ASM
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.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
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.
Re: Acceso ficheros desde ASM
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.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
Re: Acceso ficheros desde ASM
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.utopian escribió: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.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
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: Acceso ficheros desde ASM
Es verdad! Estaba yo pensando en los datos encapsulados dentro de un .tap...Uto escribió: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.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
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.
Re: Acceso ficheros desde ASM
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.
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.
Re: Acceso ficheros desde ASM
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".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.
Re: Acceso ficheros desde ASM
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:
Supuestamente debería cargar una pantalla llamada "gatito.scr"...
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