Rom de "La maquina alucinante". La madre del cordero.

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
Z80user
Manic Miner
Mensajes: 215
Registrado: Vie Jun 08, 2007 9:42 am
Ubicación: En un lugar de la mancha
Contactar:

Rom de "La maquina alucinante". La madre del cordero.

Mensaje por Z80user » Mar Mar 13, 2012 12:50 am

Estoy mirando como hacer que la ROM de la maquina alucinante sea mas compatible y con mas funcionalidades.
Y me he encontrado una cosa curiosa, el metodo de carga utilizado en la rutina LOAD, al copiarla desde la direccion original a su posicion final, para poder estudiarla, y hacer un codigo ensamblador, para poder estudiarla mejor, y haber estudiado hace poco la rutina de carga de microsphere he descubierto lo siguiente.

Apartir de la direccion #FA58 hace esactamente las mismas comprobaciones y hay esactamente el mismo codigo, ya en la direccion #FA92 empiezan las diferencias, que son mas bien pocas.

La diferencia estriva en los valores que ciertas variables toman, el tiempo para detectar un bit a 0 o a 1, y sincronismos varios, los valores son mas comedidos que en la rutina original.

El programa graba 7 secuencias:
-. Las 2 primeras el bloque en basic
-. Las 2 siguientes, cargan el programa turbo modificado
-. La siguiente carga es de 9216 bytes con carga "custom", con lo que carga la parte de la pantalla (con los registros para hacer recuperar el punto esacto en el que se quedo)
-. La siguiente es la carga "custom", esta omite los bytes que esten con el valor #00, la rutina "turbo", lee desde la zona de pantalla, los valores calculados con anterioridad, que estan en las direcciones de pantalla.
-. La ultima carga es a velocidad normal y esta aprobecha la rutina LOAD de la ROM original, para sobreescribir la zona de memoria en que se encuentra hubicada la rutina con un JP, al que anteriormente se ha hecho un PUSH HL con HL=#4000, en la que se encuentra la rutina que restaura todos los registros y estados de la CPU.

Ya tenemos un rompecabezas menos en la historia del Spectrum por resolver. El codigo de la rom de "La maquina alucinante" esta extraido de la rutina de carga "Microsphere" a la que se le ha extraido la rutina de proteccion que borra parte de la pila.

Las pulsaciones de 1 a 4, especifican la velocidad de grabacion en la cinta.
Al savar, crea un programa en BASIC con alguna proteccion :-) una linea 0
LINE 0 LOAD "" CODE : RANDOMIZE VAL "64000"
Este codigo esta repetido 4 veces, en las que unicamente varia el valor de VAL, sumando 6 para especificar la velocidad, esto desperdicia bastate memoria, ya que se podia haber copiado a la zona de la pantalla, modificarla y grabarla, como se hace con la rutina de restauracion de registros que se copia en la direccion #4000.

La rutina para detectar que partes se salvan en cinta, se ejecuta antes de entrar en el menu. aunque luego no se realice un salvado, o cualquier otra variacion, por lo que relentiza algo el arranque inicial, pero uno no pulsa NMI y una tecla de manera simultanea :-D
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.

Avatar de Usuario
flopping
Nonamed
Mensajes: 1093
Registrado: Vie Jul 16, 2010 9:54 am

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por flopping » Mar Mar 13, 2012 9:44 pm

Por si te sirve de algo y quiza ya lo sepas pero si no, la rom de "La maquina alucinante" es la misma ,(vamos que es una copia), de la rom del interface Phoenix:

http://www.speccy.org/hardware/hardware ... Abaco.html
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, debido a la esquizofrenia paranoide que tengo.
(C) 1982-2016, 34 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente"

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por mcleod_ideafix » Mié Mar 14, 2012 12:09 am

¡Huy ¡Qué de tiempo de aquello! Lo comentamos aquí mismo, hace ya casi 4 años...

viewtopic.php?f=8&t=937&p=11912
Web: ZX Projects | Twitter: @zxprojects

Z80user
Manic Miner
Mensajes: 215
Registrado: Vie Jun 08, 2007 9:42 am
Ubicación: En un lugar de la mancha
Contactar:

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por Z80user » Mié Mar 14, 2012 8:35 pm

Pues la rutina del phoenix viene del microsphere, con las variaciones de tiempos y sin la proteccion de memoria (machaca la pila de retorno)
Un antepasado mas atras.

Y no, no conocia lo del phoenix. (no me pregunteis donde estaba por aquella epoca)

Hombre, copia copia, no tiene algunas optimizaciones, ocupa menos, y la rutina de carga ocupa menos 259 bytes la de LMA por mas de 768 de la del phoenix, la de microsphere tiene un vacio entre ambas rutinas save y load, y encima te ofrece ambas ...
La verdad no se la version esacta del WAV/CSW que hay en la web de los esquemas de carga del spectrum, pero muy normal no es que en un juego te pongan la rutina save y load simultaneamente, se les deberia de colar.
Por la duracion de la carga y el sonido (un monton de bytes a 0 o a 1) se podria intuir que hay algo raro, o que lo ensamblaron a mano y era mas facil contar bytes para los saltos absolutos.

En cualquier caso, es algo mas para atribuir el origen de la rutina que tiene incorporada el phoenix o la LMA
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.

zup
Freddy Hardest
Mensajes: 666
Registrado: Vie Ago 15, 2008 2:43 pm

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por zup » Dom Abr 29, 2018 9:38 am

Añado mi miniparche para hacer que la ROM de "La máquina alucinante" sea más utilizable en emuladores. En resumen:

- Se usan las rutinas de la ROM para cargar y grabar. Ya no hay turbo, pero a cambio los emuladores graban instantáneamente.
- Al terminar de grabar, se vuelve al programa. Esto evita que se guarden varias copias del mismo programa por accidente.

La ROM (y el código fuente del parche) se pueden descargar de mediafire.

(El nombre LMCA viene de "La máquina casi alucinante")
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start...

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 408
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por chernandezba » Mar Jul 17, 2018 10:26 am

MM ahora estoy flipando un poco con esto... he intentado seguir este hilo, el anterior, y la web del trastero donde explicaba el hallazgo de esta máquina... Por lo que he entendido, alguien en el pasado modificó la rom de ese spectrum y le metió una rutina propia de NMI... que tiene que ver también con el phoenix?
Alguna alma caritativa me resume rápidamente de que va esta rom? :)

Gracias
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por mcleod_ideafix » Mié Jul 18, 2018 1:28 am

chernandezba escribió:Alguna alma caritativa me resume rápidamente de que va esta rom? :)
Gracias
Pues un transfer sencillito para pasar el programa que esté en ese momento en memoria, a cassette. Quien fuera lo integró en la ROM, en el espacio habitualmente no usado (el que está todo a FF)
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
chernandezba
Sabreman
Mensajes: 408
Registrado: Mié Oct 17, 2007 5:26 pm

Re: Rom de "La maquina alucinante". La madre del cordero.

Mensaje por chernandezba » Jue Ago 09, 2018 8:50 am

mcleod_ideafix escribió:
chernandezba escribió:Alguna alma caritativa me resume rápidamente de que va esta rom? :)
Gracias
Pues un transfer sencillito para pasar el programa que esté en ese momento en memoria, a cassette. Quien fuera lo integró en la ROM, en el espacio habitualmente no usado (el que está todo a FF)
Muy curioso... gracias por la info!
Sabes que tiene que ver esta rom con la del phoenix?
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados