Página 1 de 1

Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Lun Oct 23, 2017 10:35 pm
por Hynreck
Buenas a todos!!
He descargado el nuevo paquete de roms del +3e de Garry Lancaster y he visto que habían diferentes ficheros dependiendo principalmente del dispositivo que se utilice, como IDE Simple 8 bits... Divide... ZXCF... ZXMMC... etc

El caso es que me estaba preguntando cómo se le dice al Spectrum en la Rom que dispositivo tenemos... Es decir, cuál es el código, dónde se encuentra y que valores debe tener para que el Spectrum sepa que tenemos por ejemplo un ZXMMC y no un DIVIDE...

¿Alguien lo sabe? ¿O alguien ha comparado los ficheros de uno y otro?

Re: Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Mar Oct 24, 2017 11:27 am
por Kyp
El Spectrum no sabe que dispositivo vas a usar. Eres tú el que sabe cual has conectado y en función de eso grabas la ROM con uno u otro archivo :roll:

Realmente lo que cambia son los puertos que se usan para comunicarse con el dispositivo y las rutinas para leer/escribir en él. Supongo que la ROM estará hecha de forma que la mayor parte del código es común y solo cambia la parte que accede al hardware a más 'bajo nivel', como los drivers en los sistemas operativos modernos.

Re: Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Mar Oct 24, 2017 1:23 pm
por Hynreck
Kyp escribió:El Spectrum no sabe que dispositivo vas a usar. Eres tú el que sabe cual has conectado y en función de eso grabas la ROM con uno u otro archivo :roll:

Realmente lo que cambia son los puertos que se usan para comunicarse con el dispositivo y las rutinas para leer/escribir en él. Supongo que la ROM estará hecha de forma que la mayor parte del código es común y solo cambia la parte que accede al hardware a más 'bajo nivel', como los drivers en los sistemas operativos modernos.
Eso es lo que me gustaría saber... Qué parte del código abre y cierra esos puertos y que valores diferencian unos de otros...

Y también si es posible llamar a esas rutinas desde el BASIC y cómo...

Enviado desde mi VIE-L09 mediante Tapatalk

Re: Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Mar Oct 24, 2017 7:24 pm
por Kyp
Aquí tienes información sobre el DivIDE:
http://velesoft.speccy.cz/zx/divide/divide-memory.htm

Del DivMMC/ZXMMC, estos son los puertos del interfaz SPI (el registro de control es el mismo que con el divide):
$1F o $E7: escritura, bits 0 y 1, chip select de cada tarjeta SD.
$3F o $EB: lectura/escritura de datos. No tengo muy claro como se determina el tiempo que hay que esperar para que se envíen/reciban los datos.
Tampoco estoy seguro de si el primer nº es para el divmmc y el segundo del zxmmc o al revés.

Del IDE simple no tengo información. Con un esquema sería fácil de averiguar, supongo.

No se mucho de como funciona el esxdos, no hay documentación pública, por lo que he leído en otros foros, desde ensamblador, estando mapeada la ROM, se hace un RST, 8 creo, dejando un comando y parámetros detrás, como funciona la rutina de impresión de texto. Desde el Basic directamente no se si se podrá, con alguna rutina intermediaria en código máquina quizás, porque todo está en la ROM alternativa y si la activas desaparece la del BASIC.

Re: Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Mar Oct 24, 2017 9:03 pm
por Hynreck
Gracias Kyp, le echaré un ojo a ver si así saco algo en claro. Creo que quiero meterme en algo que se escapa a mis conocimientos, pero de todo se aprende... Voy a ver si me aclaro :P

Re: Diferencias entre las ROMs del +3e v. 1.43

NotaPublicado: Mie Oct 25, 2017 6:41 pm
por Kyp
Es un tema que me interesa aunque no tengo mucho tiempo para investigar. Empecé a escribir una ROM para el DivIDE y llegué a leer sectores y empezar a interpretar el sistema FAT pero lo tengo parado. Hay varios hilos en el foro del ZX-Uno con más información sobre el esxdos y una alternativa compatible mejor documentada que se llama UnoDos: https://zx.itch.io/unodos3