Rom de "La maquina alucinante". La madre del cordero.
Moderador: Sir Cilve Sinclair
-
- 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.
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
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
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.
No abandones un ordenador en un vertedero, donalo a alguien.
- flopping
- Nonamed
- Mensajes: 1093
- Registrado: Vie Jul 16, 2010 9:54 am
Re: Rom de "La maquina alucinante". La madre del cordero.
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
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"
(C) 1982-2016, 34 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente"
- 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.
¡Huy ¡Qué de tiempo de aquello! Lo comentamos aquí mismo, hace ya casi 4 años...
viewtopic.php?f=8&t=937&p=11912
viewtopic.php?f=8&t=937&p=11912
Web: ZX Projects | Twitter: @zxprojects
-
- 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.
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
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.
No abandones un ordenador en un vertedero, donalo a alguien.
-
- Freddy Hardest
- Mensajes: 666
- Registrado: Vie Ago 15, 2008 2:43 pm
Re: Rom de "La maquina alucinante". La madre del cordero.
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")
- 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...
- chernandezba
- Sabreman
- Mensajes: 408
- Registrado: Mié Oct 17, 2007 5:26 pm
Re: Rom de "La maquina alucinante". La madre del cordero.
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
Alguna alma caritativa me resume rápidamente de que va esta rom?
Gracias
- 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.
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)chernandezba escribió:Alguna alma caritativa me resume rápidamente de que va esta rom?
Gracias
Web: ZX Projects | Twitter: @zxprojects
- chernandezba
- Sabreman
- Mensajes: 408
- Registrado: Mié Oct 17, 2007 5:26 pm
Re: Rom de "La maquina alucinante". La madre del cordero.
Muy curioso... gracias por la info!mcleod_ideafix escribió: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)chernandezba escribió:Alguna alma caritativa me resume rápidamente de que va esta rom?
Gracias
Sabes que tiene que ver esta rom con la del phoenix?
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 17 invitados