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
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

desUBIKado escribió:Buenas. He seguido las instrucciones de Tromponauta y no he conseguido hacer funcionar el CP/M en el ZX-Uno, aunque sí en el Fuse.

Lo primero decir que lo quiero conseguir es que me funcione en el ZX-Uno. Cuento para ello con un ZX-Uno, una tarjeta MMC de 32 Megas y uso Mageia Linux 5.0.

Con estos mimbres he creado la imagen de disco con

createhdf 244 2 128 Imagen3e.hdf

para poder usarla en el Fuse 1.3.4 (me he bajado y compilado la última versión) he seleccionado como máquina un +3e y como Periférico de Disco una unidad Simple IDE de 8 bits, ya que al intentar "montar" la imagen creada anteriormente solo me funcionaba con el IDE de 8 bits, y no me la reconocía con la interface DivIDE.

Una vez montada veo que al ser con la interfase de 8 bits solo utiliza la mitad de capacidad de la tarjeta (16 Megas). Creo las particiones, copio los archivos y funciona perfectamente en el Fuse.

Luego siguiendo las instrucciones, hago commit, salgo de fuse, convierto la imagen .hdf a .raw con el dd, y con éste grabo la imagen en mi tarjeta MMC.

Lo que no acaba de funcionar es que cuando la uso en el ZX-Uno me dice que hay una unidad IDE pero cuando hago un CAT TAB no se ven las particiones creadas, vamos como si fuese una tarjeta sin particionar.

Y aquí quiero preguntar si el problema puede ser por las ROMs que uso en el ZX-Uno. Para +3e tengo dos ROMS que había en el svn del ZX-Uno, la +3e EN (DivMMC) y la +3e ES (ZXMMC). Cuando he usado estas ROMS, al particionar la tarjeta usaba todo su capacidad (interface de 16 bits), 32 MB.

En otros comentarios o hilos se ha comentado que para usar el +3e en el ZX-Uno había que parchear las ROMS, pero yo no he hecho nada de eso, porque ya me funcionaban.

¿Puede ser que el problema que tenga es que debo usar una ROM distinta compatible DivIDE (8 bits)? Si ese es el caso, ¿tenéis alguna que me podáis pasar para probarla?

Y otra pregunta, ¿el CP/M puede usarse con interfases de 16 bits, y en caso negativo, si ese pudiese ser el problema por el que siempre me daba el error partición abierta?
Hola desUBIKado, te veo un tanto "desubicado" ;) Para empezar ten en cuenta que el DivMMC que usa el ZX-UNO no es un interface simple de 8 Bits, con este primer paso se rompe la coherencia que debe de haber a la hora de crear imágenes para el dispositivo que pretendes usar, un DivMMC es prácticamente un DivIDE con un lector de SD lo que significa que si quieres hacer funcionar mi tutorial primero tienes que hacer que funcione FUSE correctamente y formatear tu imagen hdf como una unidad DivIDE (Ojo Muy importante que uses en el FUSE las ROMS +3e para DivIDE sin parchear, las parcheadas solo son para el ZX-UNO), en cuanto a las Roms yo estoy usando la versión 1.43 parcheada específicamente para el ZX-UNO por carmeloco, las puedes descargar desde aquí

Si te arranca bien el ZX-UNO con una rom +3e es que la tienes parcheada si no te aseguro que no te arranca. No creo que una SD de 32MB tenga problema, una MMC no tengo ni idea, yo he usado una SD de 1GB y de 2GB y hasta ahora no he tenido problema alguno.

Procura seguir las instrucciones sin salirte del guión y estoy seguro que te funciona, si no, pues por aquí estamos para echarte una mano.
Última edición por Tromponauta el 31 Mar 2017, 01:36, editado 3 veces en total.
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

otivax escribió:DesUBIKado, si creas las particiones con el emulador, selecciona como interface el DivIDE y así podrás usar las imagen en un DivMMC o ZXMMC. Si usas el interface de 8 bits la imagen que crees solo aprovecha la mitad. Si abres las imágenes con el HxD verás que el contenido es algo así.
PLUSIDEDOS --- DivIDE, DivMMC y ZXMMC
P.L.U.S.I.D.E.D.O.S --- 8 bits
Los drivers son compatible con interfaces de 16 bits, para el CP/M esto es transparente. A ver si mañana te preparo la imagen que voy muy liado.
Salu2.
Te confirmo que creando el hdf para DivIDE en la cabecera tan solo pone PLUSIDEDOS.
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

otivax escribió:Tromponauta, no tengo un ZX Uno pero recuerdo que en algún sitio de la configuración del mismo hay que indicar que el bus se comporte como en +2A/+3. Para detectar él interfaces voy leyendo puertos de cada interfaces y si me devuelve 0xFF, 255, entiendo que él interfaces no está presente. El primero que busco en el cargador es el interface de 8 Bits, después el DivIDE, el DiVMMC y finalmente el ZXMMC.
Creo que el problema de detección viene causado por lo del Bus.
Salu2.
La configuración se hace con el empaquetador de roms y salvo la contención de memoria desactivada no veo nada raruno....

ImagenImagenImagen
Enviado desde mi ZX-Spectrum :D
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 »

Bueno ya tengo funcionando el CP/M en mi super tarjeta 32 MB :D

Primero agradecer a otivax, Carmeloco y Tromponauta vuestro soporte y paciencia.

Al final lo he conseguido una vez que Carmeloco me ha pasado una imagen de de una tarjeta SD que le funcionaba en el ZX-Uno. A diferencia del formateo que yo le hacía a mi tarjeta, con 30 particiones, la de Carmeloco solo tenía 4:
  • PLUSIDEDOS
  • CP/M
  • SOFTWARE
  • SWAP
Así que en mi tarjeta también he creado las últimas 3 particiones (la primera la crea el sistema al formatear la tarjeta), adaptándolas al tamaño de ésta. Luego he creado una imagen raw en el PC con el programa linux ddrescue, he cargado en ella los ficheros con StrawSaw, y luego he copiado la imagen raw ya "cargadita" a la SD de nuevo con ddrescue.

Así he conseguido que funcione. Quizás todos los problemas veían, o porque tenía definidas demasiadas particiones al formatear, y eso no le gustaba al CP/M, o porque no tenía la partición SWAP creada.

En cualquier caso, además de conseguir hacer funcionar el CP/M, gracias al aviso de Tramponauta sobre las roms parcheadas, he visto que las roms +3e que me bajé en su día del servidor svn del proyecto ZX-Uno eran de la 1.38, mientras que las que habéis puesto parcheadas son para la última versión 1.43. Ya he actualizado mi lista de ROMS del ZX-Uno para poder usar esa última versión.

Lo que no conseguí fue que el Fuse reconociese las imágenes creadas con el comando createhdf usando la interface DivIDE, solo lo hacía con el interface simple IDE 8-BIT, y por eso mis problemas con la "receta" de Tromponauta.

Bueno, ahora después de tanta ayuda recibida yo también quiero aportar algo. Es cierto que en el ZX-Uno el cargador del CP/M no identifica bien a la primera la interface a utilizar. Al principio siempre la identifica como 8BIT, y da un error 23, sin embargo la segunda vez que lo intenta si que la reconoce como DivIDE.

He modificado el programa LOADER para añadirle esta línea:

35 IF error = 23 THEN LET error = USR 25000

De esa forma al principio lo identifica como 8BIT, da el error 23, y con el segundo reintento ya carga bien.

Por cierto, esta modificación la he grabado en disco con SAVE "DISK" LINE 10. De esta forma para arrancar el CP/M uso la opción "Cargador" del menú de inicio del +2e, en lugar de tener que entrar en el +3 BASIC y ejecutar LOAD "LOADER".

Lo dicho, muchas gracias a todos, y ahora seguiré trasteando.
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 »

Bueno ahora que puedo usar el CP/M en el ZX-Uno me encuentro más problemas.

Me da error al usar el comando PIP para copiar ficheros. Si por ejemplo hago:
C>PIP PROF.SUB=PROFILE.SUB

ERROR: MAKE FILE NONRECOVERABLE - C:PROF.$$$

C>
No me hace una copia del fichero PROFILE.SUB con nombre PROF.SUB, sino que da ese error y crea un fichero de tamaño 0 con nombre PROF.$$$

En el emulador fuse lo hace bien.

Por otra parte, ¿Cómo se pueden editar/crear los fichero .SUB desde el propio CP/M? Con el programa RPED no he podido ya que siempre intenta usar la unidad A:, y yo quiero trabajar con la C:

EDITO: Veo que puedo usar el comando ED para editar ficheros, pero me da error de disco si hago algo como esto:
C> ED C:PRUEBA.TEX

NEW FILE

CP/M Error On C: Disk I/O
BDOS Function = 19 File = PRUEBA   .$$$
C>
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

@desUBIKado ¿Seguro que en FUSE estás usando las ROMs dives3e0.rom , dives3e1.rom , dives3e2.rom , dives3e3.rom? Entiendo que del zip que se puede descargar de WOS.

Yo estoy usando 128 particiones sin problema.

Menos mal que estamos reproduciendo el mismo problema con el ZX-UNO es curioso que en el primer arranque siempre detecte un Interface simple de 8 bits y después funcione correctamente.

Cuando esté delante de mi ZX-UNO intentaré hacer lo mismo a ver si a mi me devuelve esos mismos errores.

Por cierto, como consejo yo usaría unidades A: y B: en el ZX-UNO nunca vas a tener disqueteras y yo me ahorro bastantes problemas con ciertos programas mapeando las particiones con estas letras.
Enviado desde mi ZX-Spectrum :D
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 »

Pues no. Estaba usando las rom dvm*, ahora he cambiado a las div* y ya me funciona. Muchas gracias.

¿Lo de mapear las unidades como A; y B:, en lugar de C: y D: también para trabajar con CP/M?

EDITO: Veo que aunque ponga "CP/M" a "A:" y "SOFTWARE" a "B:" desde el +3DOS, luego al cargar el CP/M mapea de nuevo esas particiones a C: y D: respectivamente.
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

desUBIKado escribió:Pues no. Estaba usando las rom dvm*, ahora he cambiado a las div* y ya me funciona. Muchas gracias.

¿Lo de mapear las unidades como A; y B:, en lugar de C: y D: también para trabajar con CP/M?

EDITO: Veo que aunque ponga "CP/M" a "A:" y "SOFTWARE" a "B:" desde el +3DOS, luego al cargar el CP/M mapea de nuevo esas particiones a C: y D: respectivamente.
No se pueden mapear desde profile.sub? Aquí @otivax seguro que nos puede ayudar, yo de CP/M ando justito de momento :)
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
otivax
Aspirante a demonio
Aspirante a demonio
Mensajes: 425
Registrado: 22 Ene 2015, 11:05
Ubicación: Alcoy
Been thanked: 1 time

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

Mensaje por otivax »

Tromponauta escribió:
desUBIKado escribió:Pues no. Estaba usando las rom dvm*, ahora he cambiado a las div* y ya me funciona. Muchas gracias.

¿Lo de mapear las unidades como A; y B:, en lugar de C: y D: también para trabajar con CP/M?

EDITO: Veo que aunque ponga "CP/M" a "A:" y "SOFTWARE" a "B:" desde el +3DOS, luego al cargar el CP/M mapea de nuevo esas particiones a C: y D: respectivamente.
No se pueden mapear desde profile.sub? Aquí @otivax seguro que nos puede ayudar, yo de CP/M ando justito de momento :)
Hola.
Me alegro de que ya te funcione desUBIKado. Ayer estuve intentando hacer funcionar la imagen que me pasaste pro no hubo forma.
El RPED si funciona con C: desplaza el cursor al seleccionar el nombre sobre A y cámbiala por C.
Lo de los dos intentos para cargar el CP/M en el ZX Uno sigo pensado que los puertos de este no se comportan como un +2A/+3 o no lo tienes configurado correctamente.
Respecto a mapear A y B no creo qu sea necesario, pero en el caso de A, es difícil porque el CP/M es un sistema operativo de disco y no he logrado ni siquiera desactivarla para el ZX Uno y +2A sino que implementé que cualquier acceso a esta unidad devolviera un error y no se colgara el equipo. C y D se mapean así por comodidad, tal vez algún día lo haga más configurable.
Salu2.

P.D. El StarwSaw ha vuelto a funcionar sin tocar nada :o
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

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

Mensaje por Tromponauta »

@otivax en la BIOS del ZX-UNO te puedo asegurar que no hay nada al respecto para configurar, tan solo en el empaquetador de ROMs se pueden desactivar el bit 2 de 1FFD el bit 4 de 7FFD y/o desactivar el puerto 1FFD que es la paginación de memoria +2A/+3 y el puerto 7FFD que es la paginación 128K, no hay más. Yo entiendo que los puertos no se comportan como en un +2A/+3 real ya que la implementación que han hecho para el ZX-UNO es un híbrido "enjendro", la ULA es la de siempre con los timings del 128, por poner un ejemplo, además ¿que sentido tiene que solo en el primer arranque detecte un interface simple de 8 bits y el resto de las ocasiones funcione bien? Puede ser una casualidad, lo que si se es que la mayoría de las veces funciona correctamente y solo en muy contadas ocasiones después de un ''Hard Reset'' del ZX-UNO detecta otra cosa, de todas formas no es algo grave, se vuelve a hacer un reset si eso pasa y solucionado :)
Enviado desde mi ZX-Spectrum :D
Responder

Volver a “Proyectos de software abiertos”