Programando firmware DIVIDE

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

Moderador: Sir Cilve Sinclair

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Jue Feb 11, 2016 2:52 pm

mcleod_ideafix escribió:
Goody escribió:¿Y se podría grabar a posteriori para no tener que repetirlo todo????
Puedes crear un TAP con ese programita, pero la cosa es que si desde NMI eliges un programa para ejecutar, pero después también por NMI eliges el programilla éste que te saca el menú del 128K, cuando estés en el menú de 128K no podrás cargar el primero, porque se perdió la elección cuando elegiste el segundo.

Vamos, que esto funciona siempre y cuando el ordenador esté lo suficientemente estable como para permitir que se pulse NMI, elijas un programa, y luego vuelvas al menú de 128K para darle a la opción del Cargador. El problema es que ninguno de los firmwares que hay para DivIDE/DivMMC soporta oficialmente este tipo de trucos. Si funciona, es más por suerte que otra cosa.
Se me occurre grabar un tap con el programa pero que no se ejecute, solo para evitar tener que estar escribiéndolo cada vez.

La idea es cargar el programa y con él en pantalla seleccionar el juego pulsando el NMI, luego habría que volver al basic para ejecutar RUN, saltar al menu del +2A y de allí al cargador. :mrgreen:

En teoría debería valer.
Rafa escribió:Para que funcione en un +2A o +3 hay que cambiar el programa. Meter el valor 7 en el puerto 32765 (7FFDh) y el valor 0 en el puerto 32513 (1FFDh). Con eso se consigue paginar ROM 0 y RAM 7 y saltar al menú del +2A/+3
¿Podrías pasar cómo queda el programa con las correcciones que comentas?
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Jue Feb 11, 2016 3:55 pm

Queda así. A mí me funciona con el divide puesto:

En C/M:

DI
LD BC,32765
LD A,7
OUT (C),A
LD B,31
XOR A
OUT (C),A
JP 1

En Basic:(es reubicable)

10 CLEAR 39999: FOR N=40000 TO 40015: READ A: POKE N,A: NEXT N

20 RANDOMIZE USR 40000

30 DATA 243,1,253,127,62,7,237,121,6,31,175,237,121,195,1,0

Creo que va mejor (al menos porque sólo hay que hacerlo una vez, si se graba a la tarjeta flash) de la forma que cita MacLeod, seleccionas el .tap, sales al basic con space, tecleas el programita, lo ejecutas y salta mágicamente al menú del 128k +3e. Entras en 128 Basic y cargas bloque por bloque el programa en cuestión, y lo vas grabando a la tarjeta flash o al disco
RANDOMIZE USR 0

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Jue Feb 11, 2016 4:06 pm

Ok, muchas gracias.

A ver si arreglo lo del fusible y lo pruebo.
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Jue Feb 11, 2016 10:37 pm

Bueno, ya he cambiado el fusible y vuelve a funcionar.

Estoy probando el programa de McLeod modificado por Rafa y la verdad es que m ha funcionado.

Lo malo es que el truco sólo funciona con archivos .tap y la mayoría de mis juegos son .z80 pero funcionar funciona.

Ahora estoy probando lo que comenté anteriormente de grabar el programa sin que se ejecute...
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Jue Feb 11, 2016 10:46 pm

...Y funciona :o
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Vie Feb 12, 2016 12:10 am

Jaja me alegro. Ahora sólo falta automatizarlo con los .tap.

Los .sna y .z80 quizá sea más fácil aún, pues no depende de si está protegido el programa, ni siquiera hay que salvar por bloques, sino de una sola pieza, y usar el poderoso comando SPECTRUM F$
RANDOMIZE USR 0

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Vie Feb 12, 2016 9:36 am

Yo de momento me voy a sacar un listado de los juegos que tengo en el divide y los voy a separar en dos carpetas.

Una para 48k y otra para 128k.

Luego probaré de los 128k a ver cuales son los que no cargan, ya que algunos si lo hacen y funcionan bien.

De los que no carguen veré si es posible descargar del WOS algún otro archivo que me pueda funcionar como es el caso de la Abadía del Crimen y poco a poco ir reduciendo al mínimo posible los juegos que necesiten de este truco.

En resumen, un trabajo de chinos. :?

Por suerte no tengo muchos juegos.

A todo esto:

El programa este que te salta al menú del +2A ¿Se podría usar como si fuese el típico cargador de vidas infinitas?

Me refiero a meterlo delante de los juegos que lo necesiten de forma que vaya todo más automatizado.

¿Qué extensión de archivo sería mejor? ¿z80 o tap?
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

carmeloco
Sabreman
Mensajes: 437
Registrado: Vie Mar 21, 2008 8:24 pm

Re: Programando firmware DIVIDE

Mensaje por carmeloco » Vie Feb 12, 2016 10:10 am

Goody escribió:El programa este que te salta al menú del +2A ¿Se podría usar como si fuese el típico cargador de vidas infinitas?

Me refiero a meterlo delante de los juegos que lo necesiten de forma que vaya todo más automatizado.

¿Qué extensión de archivo sería mejor? ¿z80 o tap?
No lo puedes poner delante por un razón muy sencilla. Después del randomize, cuando pasa al menu del 128, se para la ejecución del programa basic, de forma que si pusieses una última línea con un LOAD "", este no se ejecutaría.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Vie Feb 12, 2016 10:50 am

Good cómo haces para grabar el programa?? Porque a mi se me borra todo al saltar al menú de 128k
RANDOMIZE USR 0

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Vie Feb 12, 2016 12:49 pm

Cuando conectas el Divide el equipo entra en modo 48K ¿Correcto?

Bueno, pues ahí tecleas todo el programa.

Una vez que termines de teclear, no lo ejecutes: Déjalo tal cual y haz el snapshot (O como se llame) entrando en el menú del Divide y dándole a la tecla S creo recordar.

Haz un rest.

Cuando ejecutes el snapshot que has realizado te volverá a aparecer el programa tal como lo escribiste esperando a ser ejecutado con la orden RUN pero no lo hagas aún:

Vuelve al menú del Divide, selecciona el TAP que quieras jugar en 128k y pulsa I, luego regresa al basic y ahora es cuando ejecutas el programa, saltará al modo +2A donde podrás entrar en el cargador.


Con esto simplemente te ahorras tener que escribir el programa cada vez que lo quieras usar. No se puede hacer para que se ejecute solo porque no funcionaría...

... por lo que se ve el tap con el juego debe estar "precargado" en la memoria del DivIDE antes de pasar al modo 128k por lo tanto, no puedes ejecutar el programa automáticamente al ser cargado por el DivIDE.
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Vie Feb 12, 2016 2:26 pm

Lo probaré.

Vaya se borró el último post mío, donde se decía que si saltabamos a la dir. 1 se borraba toda la memoria y se hacía un test de memoria. La dirección correcta sería la 064Eh.
RANDOMIZE USR 0

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Vie Feb 12, 2016 3:18 pm

Tio, sé que es el foro de programación pero no sé programar.

Entre aquí por otro motivo...
Rafa escribió:Vaya se borró el último post mío, donde se decía que si saltabamos a la dir. 1 se borraba toda la memoria y se hacía un test de memoria. La dirección correcta sería la 064Eh.
... ¿Lo qué??? :lol:
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Vie Feb 12, 2016 4:48 pm

De tu manera no me funciona porque si doy a "Cargador" me lee del disco pues tengo un +3e, y al final me lee el fichero y al intentar ir al basic para grabarlo, me ve el basic y me lo lista, pero se queda ahí paralizado y no puedo hacer nada más
RANDOMIZE USR 0

Avatar de Usuario
Goody
Freddy Hardest
Mensajes: 563
Registrado: Mar Ago 27, 2013 6:59 pm

Re: Programando firmware DIVIDE

Mensaje por Goody » Vie Feb 12, 2016 5:03 pm

Pues no sé yo, nunca he tenido un +3

Supongo que en el +3 habrá alguna forma de decirle al ordenador que quieres cargar de disco o de cinta...

¿Y si haces todos los pasos pero en vez de usar el cargador entras en el basic del +3 y tecleas load "" ?

¿Te deja entrar? ¿Te pilla la unidad de disco?
En los 80 España fue potencia mundial en la creación de videojuegos compitiendo con Reino Unido que contaba con mucha mayor infraestructura.

Avatar de Usuario
Rafa
Jack The Nipper
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

Re: Programando firmware DIVIDE

Mensaje por Rafa » Vie Feb 12, 2016 5:35 pm

¡¡¡¡ CONSEGUIDO !!!!

El método para pasar archivos desde el Divide hasta la tarjeta flash del +3e o hacia el disco es el siguiente:
1. Apuntar en un papel la dirección de inicio y longitud de cada uno de los bloques. Normalmente sólo es uno.
2. Cargar con el divide el programa de MacLeod modificado pero sin autoejecucion. No ejecutar todavía.
3. Pulsar la NMI del Divide de nuevo, seleccionar el .tap a cargar en 128k, pulsar la tecla I, y Space, con lo que saldrá al Basic, donde veremos el programa de MacLeod
4. Teclear RUN y Enter, saldremos al modo 128k del +2A, +3 o +3e.
5. Seleccionar +3 Basic del menú.

Llegados aquí sólo hay dos inconvenientes: para grabar los bloques no podemos pasarnos al teclear en más de una línea, por lo que podemos hacerlo instrucción a instrucción (primero el LOAD""CODE XX, pulsamos Enter, se carga, ahora lo salvamos con un SAVE"Nombre" CODE inicio,longitud apuntados en el papel del principio). Si nos pasamos de una línea , se cuelga.
El otro inconveniente (bastante menor) es que si queremos salvar un bloque de Basic hay que hacerlo en una sola línea, la carga y la grabación. Por ejemplo:

Load"t:" (Enter)
merge"":save"nombre"(Enter)(el merge es para que no se ejecute.

Porque si se lista el Basic, se cuelga.

Y voila !!

Todo esto sólo hay que hacerlo una vez por cada juego, luego con el divide desactivado toca arreglar (solo si es necesario) el cargador para que lea el o los bloques desde el lugar deseado.

Ahora toca mirar los .sna y los .z80, grabarlos tal cual en el flash y ejecutarlos con SPECTRUM f$(nombre del archivo .sna o .z80)
RANDOMIZE USR 0

Responder

¿Quién está conectado?

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