Funcionamiento del Ramjet: consulta

Si por algo se caracteriza el Spectrum es por su gran variedad de periféricos (clásicos y modernos)

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
dandare
Herbert
Mensajes: 82
Registrado: Sab Jun 04, 2016 9:42 pm
Ubicación: I Register

Funcionamiento del Ramjet: consulta

Mensaje por dandare » Sab Jul 30, 2016 12:42 am

Hola a todos,

En otro foro ha surgido la idea de "portar" el ramjet al Dandanator mini, un interfaz de ROM externa. Para que funcione sin ningún cambio HW, debemos modificar levemente el código Z80 original del ramjet. Voy a ponerme a investigar esta posibilidad y os agradecería cualquier información que pudierais aportar en estos dos aspectos:
  • 1) Estado de la propiedad intelectual del código del Ramjet. Originalmente pertenecería a MIcrosat/Hard Micro, supongo, que incluso hicieron un primer intento de cifrado al intercambiar D3 y D4 (o fue un fallo en el esquema que luego arreglaron, vete a saber :D ) en cualquier caso, y aunque esta no es una iniciativa comercial y todo el resultado será de dominio público, me gustaría saber el estado actual del interfaz/código del mismo.

    2) Uso del puerto IO del ramjet. Mi primer obstáculo es que no tengo un interfaz ramjet :D. Por el esquema veo que tenemos un botón de NMI que activa el asunto y un decodificador de puerto IO que debe ser, al menos, para desactivar la ROM externa (esperemos que sólo para eso) pero no sé si para algo más. Si tenemos suerte y es sólo para eso, sustituiremos la llamada a esa dirección IO por el comando del Dandanator mini para desactivarse. Si es para algo más, habrá que profundizar en el código para buscar otros usos.
Aunque me gustaría, no podemos hacer un clon del transtape, por ejemplo, porque tenía su propia RAM, cosa que no lleva el HW del Dandanator mini.

Gracias a todos!
_.. ._ _.

Jose Manuel
Sabreman
Mensajes: 459
Registrado: Mar Abr 17, 2007 1:25 pm
Ubicación: Madrid
Contactar:

Re: Funcionamiento del Ramjet: consulta

Mensaje por Jose Manuel » Sab Jul 30, 2016 8:02 pm

Buenas,

1) Estado de la propiedad intelectual del código del Ramjet

Ni idea. Lo mas probable es que Hard Micro desapareciera y con ella los derechos de copyright. Lo último que se sabe es que estaba en disolución:
https://www.einforma.com/servlet/app/pr ... I1MDY5Nw==

2) Uso del puerto I/O del ramjet.

Jose Leandro tiene un artículo sobre el Ramjet en su sección del Trastero:
http://trastero.speccy.org/cosas/JL/Ram ... jet-0.html
Mira si te puede ayudar.

Saludos, J.M:
El Trastero del Spectrum
http://trastero.speccy.org/

Avatar de Usuario
dandare
Herbert
Mensajes: 82
Registrado: Sab Jun 04, 2016 9:42 pm
Ubicación: I Register

Re: Funcionamiento del Ramjet: consulta

Mensaje por dandare » Sab Jul 30, 2016 8:27 pm

Gracias José Manuel,

Me viene muy bien el enlace de einforma que has enviado. Creo que eso nos puede indicar que los derechos de copyright están abandonados o, en todo caso, no se explotan y no se persiguen.
Parece ser, en todo caso, que hardmicro se integró o se transformó en Microsat. Seguiré mirando. No es algo tremendamente importante, creo yo, pero mejor intentar hacer las cosas bien si se puede :).

Precisamente ese artículo de José Leandro que citas es el que he estado usando. Creo que la parte HW la tengo clara, incluso con la ensalada de puertas y diodos que hay :)). El puerto IO, que recibe datos por D7, también lo tengo localizado, ahora hay que ver cuándo lo usa el software, que por lo menos lo hará para desactivar el ramjet al salir del menú o ejecutar una carga/grabación.
_.. ._ _.

Avatar de Usuario
dandare
Herbert
Mensajes: 82
Registrado: Sab Jun 04, 2016 9:42 pm
Ubicación: I Register

Re: Funcionamiento del Ramjet: consulta

Mensaje por dandare » Lun Ago 01, 2016 12:20 pm

Os cuento algunas de las cosas que he visto hasta ahora:

El puerto 0x887F que es el que usa el RamJet a tenor del código desensamblado (realmente usa cualquiera con el bit 15 o el 11 a 1 y el bit 7 a 0 según el esquema de hardware) se usa 10 veces en el código del Ramjet. Si no me equivoco, 7 para desactivarlo con el valor 0xC0 ó, a veces 0xFF que pone el bit 7 de los datos a 1 y 3 veces para activarlo, con el valor 0x00, que pone el bit 7 a 0. (1 deja de forzar OE1 y OE2 y desactiva las peticiones a la rom externa del Ramjet, 0 justo al revés)

La idea ahora es cambiar estas llamadas por llamadas de activación y desactivación de la rom externa del Dandanator Mini, mediante los comandos 32 (para activar la rom extra de momento, ya veremos dónde la ponemos al final) y 33 para activar la rom interna. o mediante los comandos especiales de Fast Change. Tengo que buscar un sitio con hueco en la ROM del Ramjet, que está bastante llena para poner el código que sustituya a los OUTs originales.

Me imagino que los comandos de activación serán para volver tras ejecutar las rutinas oportunas de disco de la rom interna del +3 y tras comprobar el tipo de spectrum mirando los contenidos de la rom interna. Lo comprobaremos.

No parece un porting difícil conceptualmente. Ahora, seguro que se lía la cosa al no tener los fuentes y tener que ir metiendo cosas (hay saltos/referencias absolutas)
En el 48k va a funcionar desde el principio si nos centramos en el HW, ya que el Dandanator mini funciona en ambos equipos. No tengo tan claro que el código del Ramjet sea compatible con el 48k, veo mucha llamada de paginación de memorias....
_.. ._ _.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 8 invitados