Página 1 de 17

Programando firmware DIVIDE

NotaPublicado: Mie Nov 04, 2015 6:02 pm
por Rafa
Hola, quería saber si conoceis algún tipo de manual técnico o página donde se relate el uso interno a nivel de software del Divide, quiero decir, cómo acceder a él, cómo intercambia la ROM, etc.

Intento programar variaciones de su firmware, porque veo que tiene mucho potencial.

Gracias.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Nov 05, 2015 9:07 pm
por Rafa
¿ De verdad nadie sabe nada ?

Re: Programando firmware DIVIDE

NotaPublicado: Vie Nov 06, 2015 12:43 am
por Kyp
En la web de velesoft tienes los fuentes del FATware 0.14. Es lo más parecido a algo de información que he visto:
http://velesoft.speccy.cz/zx/divide/divide-fatware.htm

Al final de la página hay un ZIP con los fuentes.

Los del esxdos no son públicos de momento.

Re: Programando firmware DIVIDE

NotaPublicado: Vie Nov 06, 2015 10:48 am
por Rafa
Gracias. A estudiar toca.

En los ESXDOS será parecido el control del puerto de acceso, paginación de RAM, etc.

Desensamblando el ESXDOS compruebo que todo el control lo lleva el puerto 227, dependiendo del valor que se meta, se puede hacer una cosa u otra.

Re: Programando firmware DIVIDE

NotaPublicado: Vie Nov 06, 2015 2:38 pm
por Kyp
Yo no me he metido a ver como funciona el ROM del DivIDE pero si he investigado el hardware para implementarlo en una FPGA para mi clon ZXpp.

Esto es lo que he deducido por el momento. No es seguro al 100%.

Efectivamente, puerto de control parece ser el 227 (E3).

Los 16K de ROM se dividen en dos páginas de 8. La primera mapea los 8K de ROM (fatware o esxdos) y en la segunda se mapean páginas de RAM.

Los bits 0 a 3 seleccionan la página. Dependiendo de si es un DivIDE (¿32K?) o un DivMMC (¿128K?) tienes más o menos páginas.

Al bit 6 le llaman mapram_mode y al 7 conmem. No se muy bien que hacen.

La lógica de la placa mapea la ROM/RAM en el sigiente ciclo cuando se lee una instrucción (M1 = 0) en las direcciones 0000, 0008, 0038, 0066, 04C6 y 0562 (reset, error, nmi, load, save... ???).

Si se lee una instrucción en la dirección 3Dxx se mapea inmediatamente.

Se desmapea en el ciclo siguiente tras leer una instrucción en la dirección 03FF.

Cuéntanos tus progresos :wink:

Re: Programando firmware DIVIDE

NotaPublicado: Vie Nov 27, 2015 1:59 am
por mcleod_ideafix
Rafa escribió:¿ De verdad nadie sabe nada ?

El modelo de programación está perfectamente documentado. Tanto los puertos de control de paginación, autopaginación y acceso a la RAM, como los puertos para manejar la interface IDE.
http://www.divide.cz/files/info/pgm_model.txt

Re: Programando firmware DIVIDE

NotaPublicado: Lun Nov 30, 2015 11:37 am
por Kyp
Muy interesante, muchas gracias :) :) :)
Precisamente lo que había escrito en mi anterior mensaje lo había 'deducido' examinando el core del ZX-Uno :roll: :roll: :roll:

Re: Programando firmware DIVIDE

NotaPublicado: Mar Dic 01, 2015 1:26 am
por mcleod_ideafix
Kyp escribió:Muy interesante, muchas gracias :) :) :)
Precisamente lo que había escrito en mi anterior mensaje lo había 'deducido' examinando el core del ZX-Uno :roll: :roll: :roll:

El cuál escribí (la parte que maneja DivMMC) precisamente leyendo el documento que os he puesto ;)

Re: Programando firmware DIVIDE

NotaPublicado: Mie Ene 20, 2016 11:20 pm
por Goody
Tios, no entiendo de electrónica ni programación...

El caso es que tengo un Div-MMC y bueno, por algún motivo me da fallos en los gráficos y hay juegos que no parecen funcionar bien.

¿Recuerdan las pantallas de carga de los juegos que cuando había un error aparecían con colores cambiados y cuadros parpadeando? Pues eso es lo que me ocurra con el Div-MMC pero a mitad de partida.

Otras veces el juego se bloquea al perder una vida, me pasa con el Renegade, lo gracioso es que el juego venía, entre otros, con la tarjeta SD que traía el aparato cuando lo compré. Quiero decir que el aparato debe estar mas que probado con dichos juegos ¿No?

Otros juegos reinician en ordenador tal como se cargan. Tengo un +2B

¿Que puede ser?

¿Avería del Div-MMC o el Spectrum? No consigo cargar juegos por cinta para poder descartar problemas del ordenador.

También os digo que no sé muy bien cómo poner los interruptores de Div-MMC.

Torpe que es uno. :?

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 10:02 am
por carmeloco
Yo diría que parece más una avería del Spectrum. Probar el DIVMMC en otro spectrum confirmaría o descartaría esto.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 2:35 pm
por Goody
carmeloco escribió:Yo diría que parece más una avería del Spectrum. Probar el DIVMMC en otro spectrum confirmaría o descartaría esto.



Si, imagino, pero me temo que sólo tengo un Spectrum. :?

Ya que los compañeros del foro parecen controlar bastante de programación...

¿Exite la posibilidad de ejecutar alguna orden que me haga un test de hardware???

A todo esto: Gracias por responder.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 3:24 pm
por zup
Hay alguna ROM para IF2 que puede hacerlo, lo que no sé es si está disponible para ejecutarla en el divide.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 5:47 pm
por carmeloco
Yo ahora ando liado haciendo unos interface rom externos, precisamente con roms de diagnostico. He intentado hacer un snapshot .Z80 (para cargarlo con el DIVMMC) con una rom cargada en un emulador, pero el resultado no es bueno.

Si no recuerdo mal, el +2B, lleva un test interno. He leido por ahí que, tras sacar la carta de ajuste (reset+break) pulsando simultáneamente QAZPLM sale el test, pero no consigo hacerlo en un emulador.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 11:38 pm
por Kyp
No te funciona en el emulador porque la mayoría de los teclados de PC no permiten pulsar a la vez todas esas teclas. Pruébalo en el Spectrum que funcionará.

Re: Programando firmware DIVIDE

NotaPublicado: Jue Ene 21, 2016 11:39 pm
por Goody
Mmm

Suena interesante, lo probaré este finde.

Espero que no se haya estropeado algo, de todas formas los chips de este Spectrum creo que son desmontables por lo tanto, imagino que será relativamente fácil de reparar si fuese el caso.

Pero lo primero es ver qué falla.

A todo esto:

En el menú de opciones característico de este modelo de Spectrum, al pulsar los cursores la barra de selección se desplaza haciendo un sonido típico.

Pues bien, resulta que dejando el ordenador tal cual, sin tocar nada, de vez en cuando se oye ese sonido sin venir a cuento de nada.

Cuando esto ocurre la barra de selección se queda en su sitio, quiero decir que no es que se haya quedado una tecla pulsada ni nada de parecido. El teclado responde bien.

Y ya por último, pesnsaba que el problema del caset era debido a que el azimut (O como se llame) no debía estar bienajustado pero visto lo visto no sé qué pensar.

El caso es que me he pegado bastante tiempo sin usar mi Spectrum y ahora que lo he vuelto a usar me he encontrado con estos problemas. :(