Hola,
Una pregunta sobre el almacenamiento de datos y su carga en la memoria del Spectrum.
Resulta que tengo un TAP que he montado con una aventura conversacional que estoy terminando con DAAD. El caso es que dentro del TAP esta el loader BASIC la pantalla de presentacion y luego se cargan 3 modulos diferentes, el interprete, la base de datos de la aventura y la base de datos gráfica. Lo que yo querria hacer es unir esos 3 bloques en uno solo y que modificar en el loader BASIC para que cargue correctamente. Y si fuera posible no solo saber como hacerlo sino el porque de hacerlo de esa forma.
Gracias.
Unir bloques de datos de un TAP
Moderador: Fundadores
-
- El infierno es su lugar
- Mensajes: 161
- Registrado: 01 Nov 2015, 18:35
- elfoscuro
- Demonio segundo orden
- Mensajes: 1835
- Registrado: 01 Abr 2013, 22:00
- Been thanked: 26 times
Re: Unir bloques de datos de un TAP
Es bastante complicado lo que pides, porque no es sólo unir los bloques... También habría que cambiar el cargador BASIC y aun así, no te podría asegurar que funcionara. Depende de si usas toda la RAM o no, porque hay que tener en cuenta las variables del sistema.
Unir los bloques, realmente es muy sencillo... si sabes algo de programación. Los TAP son los ficheros más fáciles de modificar, sólo tienen una pequeña cabecera de bloque y luego los datos sin comprimir ni nada. Pero... imagina que el tercer bloque lo carga el mismo motor tras un RANDOMIZE USR...
Bueno, lo primero... pon por aquí el listado BASIC para ver qué hace, y luego mira en los bloques, la dirección de inicio y la longitud. Puedes usar un programa como TAPPER para ello.
Un saludo.
Unir los bloques, realmente es muy sencillo... si sabes algo de programación. Los TAP son los ficheros más fáciles de modificar, sólo tienen una pequeña cabecera de bloque y luego los datos sin comprimir ni nada. Pero... imagina que el tercer bloque lo carga el mismo motor tras un RANDOMIZE USR...
Bueno, lo primero... pon por aquí el listado BASIC para ver qué hace, y luego mira en los bloques, la dirección de inicio y la longitud. Puedes usar un programa como TAPPER para ello.
Un saludo.
Fin de impresión
- mad3001
- Demonio segundo orden
- Mensajes: 1954
- Registrado: 25 Nov 2015, 00:15
- Ubicación: Mostoles(Madrid)
- Has thanked: 92 times
- Been thanked: 120 times
Re: Unir bloques de datos de un TAP
Entiendo que lo que necesitas es hacer un único bloque de código (un único LOAD ""CODE que se diría) y luego una pequeña rutina en ASM que te "mueva" cada cosa a su sitio, por que entiendo que cada bloque carga en una dirección y longitud que no van consecutivos...
Si como dice elfoscuro pones el listado basic y si además cargas el tap por ejemplo en ZX-BlockEditor y nos pones un pantallazo del contenido del TAP, seguramente podamos ayudarte algo más...
Salu2
Si como dice elfoscuro pones el listado basic y si además cargas el tap por ejemplo en ZX-BlockEditor y nos pones un pantallazo del contenido del TAP, seguramente podamos ayudarte algo más...
Salu2
Volviendo a los origenes... programa en assembler
-
- El infierno es su lugar
- Mensajes: 161
- Registrado: 01 Nov 2015, 18:35