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

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
BCH
Demonio tercer orden
Demonio tercer orden
Mensajes: 973
Registrado: 06 Sep 2014, 12:10
Ubicación: Barcelona
Been thanked: 4 times

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

Mensaje 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
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3373
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 28 times
Been thanked: 145 times

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

Mensaje 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?
Avatar de Usuario
desUBIKado
Le gustan las llamas
Le gustan las llamas
Mensajes: 83
Registrado: 11 Mar 2017, 01:21
Been thanked: 1 time

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

Mensaje 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.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
javier2112
Demonio tercer orden
Demonio tercer orden
Mensajes: 884
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 11 times
Been thanked: 13 times

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

Mensaje 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.
Visita mi hilo de ventas:
viewtopic.php?t=4789
BCH
Demonio tercer orden
Demonio tercer orden
Mensajes: 973
Registrado: 06 Sep 2014, 12:10
Ubicación: Barcelona
Been thanked: 4 times

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

Mensaje 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.
Avatar de Usuario
desUBIKado
Le gustan las llamas
Le gustan las llamas
Mensajes: 83
Registrado: 11 Mar 2017, 01:21
Been thanked: 1 time

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

Mensaje 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.

Avatar de Usuario
desUBIKado
Le gustan las llamas
Le gustan las llamas
Mensajes: 83
Registrado: 11 Mar 2017, 01:21
Been thanked: 1 time

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

Mensaje 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
Avatar de Usuario
Alki
Aspirante a demonio
Aspirante a demonio
Mensajes: 237
Registrado: 25 Jul 2020, 18:15
Has thanked: 25 times
Been thanked: 24 times

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

Mensaje por Alki »

Que bien pinta, Me la apunto para probarla en el zxgo+
Avatar de Usuario
desUBIKado
Le gustan las llamas
Le gustan las llamas
Mensajes: 83
Registrado: 11 Mar 2017, 01:21
Been thanked: 1 time

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

Mensaje 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.
Avatar de Usuario
spark2k06
Demonio segundo orden
Demonio segundo orden
Mensajes: 1048
Registrado: 16 Oct 2017, 10:18
Has thanked: 9 times
Been thanked: 6 times
Contactar:

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

Mensaje 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 :)
Responder

Volver a “Proyectos de software abiertos”