Página 16 de 17

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 10:42
por BCH
Kyp escribió: 17 Mar 2020, 00:39 El interfaz SPI del DivMMC es casi igual al del ZXMMC, solo cambian los puertos que se usan, E7/EB en el DivMMC y 1F/3F en el ZXMMC. Sabiendo el pineado de la CPLD te podría sintetizar un JED para el ZXMMC que atienda a los dos pares de puertos ;)
Si, sabia. De hecho antes de que hubiese una ROM +3e oficial para el DivMMC se parchaba el binario de las ROMs ZXMMC con los puertos del DivMMC. Molaria un ZXMMC que funcione con cualquiera de los dos puertos :) . El esquemático esta aquí: http://www.probosci.de/zxbada/zxmmc/schematic.html

De todos modos no me queda claro si el "Loader" de otivax autodetecta el interface o no

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 13:35
por Kyp
BCH escribió: 17 Mar 2020, 10:42 Molaria un ZXMMC que funcione con cualquiera de los dos puertos :) . El esquemático esta aquí: http://www.probosci.de/zxbada/zxmmc/schematic.html
El código fuente de la CPLD no está en esa web (o no lo encuentro) así que como mucho puedo probar con el del DivMMC quitando lo que sobra. ¿Puedo probarlo con el ZXMMC que me pasaste, no?

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 15:42
por desUBIKado
BCH escribió: 16 Mar 2020, 22:30 Supuestamente autodetecta el interface instalado y carga el driver correspondiente? Pregunto porque lo he probado en un clon que estamos montando con un ZXMMC y no me ha funcionado. Hay que hacer algun cambio para usar un interface que no sea el DivMMC?
Program_DISK.jpg
Ese es el programa DISK que tengo en mi imagen para ZX-Uno, y que se ejecuta con la opción "LOADER" del menú del +3e.

Como puedes ver añadí un reintento para ejecutar el driver porque a veces no me detectaba bien la interfaz divMMC a la primera, y sí lo hacía a la segunda. Por eso si en la primera llamada me devuelve un error 23, creo que era interfaz no encontrada, volvía a hacer una segunda llamada, y entonces ya sí que encontraba la interfaz divMMC.

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 20:00
por javier2112
He volcado tu imagen a una tarjeta SD, se la pongo a mi ZX-Uno y arranco con la ROM Spectrum +2e. OJO, que hay que poner el DivMMC en modo auto para poder arrancar el CP/M desde el menú Cargador. Esto puede parecer una obviedad pero en este foro creo que no lo es: si no lo activas no podrás entrar en el +3 BASIC y no podrás acceder a las 2 particiones que tiene creadas el archivo de imagen, y por tanto, arrancar el CP/M. Ese modo se puede configurar entrando en la BIOS, pulsando F2 al encenderlo.

Si todo está bien, podrás acceder desde BASIC +3 a los archivos de sistema del CP/M en C y otro software adicional en D. Sólo hay que seleccionar el menú cargador para que arranque el sistema. El problema es que, por el motivo que sea, desde CP/M, en C no hay archivos y en D si los hay pero aparecen sin nombre. Hasta ahí he llegado.

Creo que sería genial poder arrancar el CP/M copiando sus archivos en la partición FAT habitual del divMMC, porque esto lo simplificaría todo, aunque sospecho que eso no es posible de momento.


Saludos.

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 20:26
por BCH
Kyp escribió: 17 Mar 2020, 13:35
BCH escribió: 17 Mar 2020, 10:42 Molaria un ZXMMC que funcione con cualquiera de los dos puertos :) . El esquemático esta aquí: http://www.probosci.de/zxbada/zxmmc/schematic.html
El código fuente de la CPLD no está en esa web (o no lo encuentro) así que como mucho puedo probar con el del DivMMC quitando lo que sobra. ¿Puedo probarlo con el ZXMMC que me pasaste, no?
Si, claro. No me acordaba que te había pasado un ZXMMC :))
desUBIKado escribió: 17 Mar 2020, 15:42 Ese es el programa DISK que tengo en mi imagen para ZX-Uno, y que se ejecuta con la opción "LOADER" del menú del +3e.

Como puedes ver añadí un reintento para ejecutar el driver porque a veces no me detectaba bien la interfaz divMMC a la primera, y sí lo hacía a la segunda. Por eso si en la primera llamada me devuelve un error 23, creo que era interfaz no encontrada, volvía a hacer una segunda llamada, y entonces ya sí que encontraba la interfaz divMMC.
Gracias, lo mirare a ver si puedo solucionarlo.

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Mar 2020, 22:27
por desUBIKado
BCH escribió: 17 Mar 2020, 20:26
Kyp escribió: 17 Mar 2020, 13:35
BCH escribió: 17 Mar 2020, 10:42 Molaria un ZXMMC que funcione con cualquiera de los dos puertos :) . El esquemático esta aquí: http://www.probosci.de/zxbada/zxmmc/schematic.html
El código fuente de la CPLD no está en esa web (o no lo encuentro) así que como mucho puedo probar con el del DivMMC quitando lo que sobra. ¿Puedo probarlo con el ZXMMC que me pasaste, no?
Si, claro. No me acordaba que te había pasado un ZXMMC :))
desUBIKado escribió: 17 Mar 2020, 15:42 Ese es el programa DISK que tengo en mi imagen para ZX-Uno, y que se ejecuta con la opción "LOADER" del menú del +3e.

Como puedes ver añadí un reintento para ejecutar el driver porque a veces no me detectaba bien la interfaz divMMC a la primera, y sí lo hacía a la segunda. Por eso si en la primera llamada me devuelve un error 23, creo que era interfaz no encontrada, volvía a hacer una segunda llamada, y entonces ya sí que encontraba la interfaz divMMC.
Gracias, lo mirare a ver si puedo solucionarlo.
La verdad es que ahora me está reconociendo la interfaz divMMC siempre a la primera. Quizás pasaba antes y ahora ya no pasa por cambios en el core de Spectrum, o bien fallaba más en versiones anteriores del driver de otivax.

Os dejo un pequeño video del arranque en el ZX-Uno.


Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 16 Oct 2020, 15:23
por desUBIKado
He añadido el desarrollo que hizo otivax en esta distribución para ser usada con el ZX-Uno.

https://www.zxuno.com/forum/viewtopic.php?f=39&t=4099

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 17 Oct 2020, 00:08
por Alki
Que bien pinta, Me la apunto para probarla en el zxgo+

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 18 Oct 2020, 10:54
por desUBIKado
Estaría bien si otivax nos dijese si hay alguna forma de forzar que el LOADER.BIN utilice siempre la interfase divMMC (¿quizás usando unos POKE?), ya que en FPGAs como la MiST / Mistica / SiDi o el ZX-Uno con ciertos cores, no es capaz de detectar la interfase divMMC, pese a estar presente. Esto permitiría usar el CP/M 3.0 del Spectrum en más FPGA.

Re: Spectrum +3 CP/M en disco duro interfaz 8 bits, DivIDE, DivMMC y ZXMMC

Publicado: 08 Dic 2020, 12:56
por spark2k06
Lo primero, enhorabuena @otivax por este magnifico trabajo. Me gustaría poder usarlo en un ZXUno con una MicroSD que tiene dos particiones, la primera de +3DOS y después otra de FAT16, así es como tengo configurada la tabla de particiones en una tarjeta de 8Gb, para no tener que usarlo en una tarjeta exclusivamente con el +3DOS:

Imagen

Examinando la MicroSD con un editor hexadecimal, vemos que en este caso la firma PLUSIDEDOS comienza a partir del sector 128, dirección 0x10000 de la tarjeta. Los primeros sectores están ocupados por la información referente a las particiones, y por tanto, en el sector 0 (dirección 0x0) no se encuentra referencia alguna al +3DOS:

Imagen

Como se puede apreciar, la ROM del +2E detecta correctamente la partición en esta tarjeta:

Imagen

Y es que de hecho, el CP/M arranca... pero luego éste trata de buscar la partición en el sector 0, pista 0 y claro, ahí no se encuentra:

Imagen

¿Sería muy complicado modificarlo para que haga una búsqueda de la firma PLUSIDEDOS en los primeros sectores? (al menos los primeros 128), o buscar también en el 128 además de en el 0 y si lo detecta operar desde ahí... no se, tal y como debe de estar haciéndolo la propia ROM del +2E :)