Cargando BASIC de manera no estándar

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

Moderador: Sir Cilve Sinclair

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

Cargando BASIC de manera no estándar

Mensaje por zup » Sab Ene 25, 2014 9:25 pm

Debido a que me he pasado tres pueblos escribiendo cosas, creo que este hilo estaría mejor en un blog. Voy a ir pasando todo lo que he escrito a mi blog, y dejaré aquí enlaces a cada entrada.

El fichero con las pruebas se puede descargar aquí e incluye todas las versiones generadas.

Parte I: Cargando BASIC como CODE
Parte II: Carga con contador
Parte III: Carga turbo
Parte IV: Compresión zx7
Intermedio: Crear bloques turbo en tzx
Parte V: Inception
Parte VI: Otras variantes y conclusiones
Última edición por zup el Mié Feb 05, 2014 10:45 pm, editado 18 veces en total.
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
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por Hark0 » Dom Ene 26, 2014 9:27 am

Muchisimas gracias por este tuto.... directamente me lo paso a PDF... :wink:
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

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

Re: Cargando BASIC de manera no estándar

Mensaje por zup » Dom Ene 26, 2014 10:45 pm

Dios la que he liado... he debido superar algún límite en el servidor (supongo que al número de enlaces/extensión del post/algo por el estilo).

Ya he terminado el tutorial, pero lo estoy migrando a mi blog... dejaré aquí enlaces a las entradas.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start...

zx81
Freddy Hardest
Mensajes: 619
Registrado: Vie Dic 28, 2007 2:14 pm
Ubicación: Valencia
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por zx81 » Dom Ene 26, 2014 11:36 pm

zup escribió:Dios la que he liado... he debido superar algún límite en el servidor (supongo que al número de enlaces/extensión del post/algo por el estilo).

Ya he terminado el tutorial, pero lo estoy migrando a mi blog... dejaré aquí enlaces a las entradas.


Yo creo que partiendo el mensaje original en varios mensajes, no deberías tener problemas. Prueba a ver, sería bueno que la explicación completa quedara aquí también.
Debido al fallo de un mecanismo, el lanzagranadas M203 se te podía disparar cuando menos lo esperaras, lo que te habría hecho bastante impopular entre lo que quedara de tu unidad.
Revista del ejército EE.UU. PS, agosto 1993.

Emulador JSpeccy
ZXBaremulator

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

Re: Cargando BASIC de manera no estándar

Mensaje por zup » Lun Ene 27, 2014 8:18 am

Lo siento, pero no sé cuál es el problema.

No estoy seguro de si he llegado a un límite de extensión, de bbcodes en mensaje o de links en mensajes; el caso es que no solo no me deja ampliar el mensaje original sino que tampoco me deja ir escribiendo respuestas largas.

Si "recorto" el contenido (lo que estoy haciendo al pasar cachos al blog), entonces sí que me deja escribir más cosas.

Dividir el tutorial en cachos y ponerlos en el mismo hilo no es viable (al final lo único que hago es repartir el contenido); creo que debería hacer un montón de hilos e ir poniendo una parte por hilo.

Los problemas son tres:
- No sé si el foro es buen sitio para un tutorial tan largo (habría que consultarlo con los admins).
- Al ser el foro un sitio dinámico, cuando la gente escriba comentario desordenará las partes.
- Como son bastantes partes, el foro va a mostrar un montón de hilos míos durante un tiempo.

Admito que no me gusta la idea de que se quede en mi blog (más que nada porque es un experimento abandonado), pero ahora mismo no tengo una solución mejor. Admito sugerencias.
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
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por Hark0 » Lun Ene 27, 2014 8:36 am

Yo diria que un blog es lo ideal... o... a PDF...
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1164
Registrado: Dom Ene 09, 2011 8:55 am

Re: Cargando BASIC de manera no estándar

Mensaje por antoniovillena » Lun Ene 27, 2014 1:10 pm

Está muy bien el tutorial. Lo que no me gusta es que no exista pantalla de carga, es vital para cualquier juego aunque sea BASIC. Desde luego hay una gran variedad de cargadores a elegir. Para mí lo más óptimo son 3 bloques:
  • Cabecera BASIC
  • Cuerpo BASIC con cargador CM con contador, descompresor y pantalla de carga comprimida
  • Cuerpo CODE con juego comprimido

Es que se pierde un montón de tiempo con las cabeceras. Por ejemplo tu zx7+contador emplea 6 bloques (3 cabeceras y 3 cuerpos) cuando se podría hacer en sólo 3.
Imagen

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

Re: Cargando BASIC de manera no estándar

Mensaje por zup » Lun Ene 27, 2014 1:46 pm

Bueno, es un tutorial. La idea es mostrar como manipular el BASIC para utilizar diferentes rutinas de carga.

Eso nos lleva a que el zx7+contador tenga 6 bloques, para que quede más claro dónde queda cada cosa (en realidad debería haber puesto 8, BASIC, CODE contador, CODE zx7, CODE comprimido). No es tanto un recetario de "haz esto así" sino un depósito de ideas raras que puedes hacer... luego puedes mezclarlas como quieras.

En el fichero almacen.tzx hay dos versiones que juegan un poco con lo que dices: la "Inception" que mete todo el código comprimido con zx7 en una línea REM (y ahorra tiempo eliminando pausas entre bloques) y la "Loader Remix" que usa turbo, zx7, tres bloques y además tiene manipuladas las pausas entre bloques (y aún así utiliza al menos 25 bytes de más).

Eso nos lleva a las pantallas de carga y bloques CODE. Hacer que cualquier rutina de la Microhobby lea archivos CODE es fácil, ya que todas están preparadas para eso; la parte complicada era hacer que tragaran con los listados BASIC. Hacer que carguen bloques CODE se puede lograr simplemente leyendo los artículos de Microhobby (excepto la cabrona de nanodrive, cuya documentación y forma de uso dejan bastante que desear).

Cuando acabe con esto (tengo que documentar algunas cosas nuevas), puedo intentar algún programa de Microhobby que mezcle BASIC y c/m. El Russian's Attack parece buen candidato (BASIC + unos cuantos CODE).
Última edición por zup el Lun Ene 27, 2014 1:56 pm, editado 2 veces en total.
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
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por Hark0 » Lun Ene 27, 2014 1:51 pm

zup escribió:Bueno, es un tutorial. La idea es mostrar como manipular el BASIC para utilizar diferentes rutinas de carga.

Eso nos lleva a que el zx7+contador tenga 6 bloques, para que quede más claro dónde queda cada cosa (en realidad debería haber puesto 8, BASIC, CODE contador, CODE zx7, CODE comprimido).

En el fichero almacen.tzx hay dos versiones que juegan un poco con lo que dices: la "Inception" que mete todo el código comprimido con zx7 en una línea REM (y ahorra tiempo eliminando pausas entre bloques) y la "Loader Remix" que usa turbo, zx7, tres bloques y además tiene manipuladas las pausas entre bloques (y aún así utiliza al menos 25 bytes de más).

Eso nos lleva a las pantallas de carga y bloques CODE. Hacer que cualquier rutina de la Microhobby lea archivos CODE es fácil, ya que todas están preparadas para eso; la parte complicada era hacer que tragaran con los listados BASIC. Hacer que carguen bloques CODE se puede lograr simplemente leyendo los artículos de Microhobby (excepto la cabrona de nanodrive, cuya documentación y forma de uso dejan bastante que desear).


A mi ya me has dado trabajo para unos días... :lol:
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1164
Registrado: Dom Ene 09, 2011 8:55 am

Re: Cargando BASIC de manera no estándar

Mensaje por antoniovillena » Lun Ene 27, 2014 1:54 pm

Entonces no he dicho nada. No me había leído el tutorial y desconocía el requerimiento de cargador basic. Otra cosa, no sería mala idea disponer de las distintas versiones en archivos separados en lugar de un único tzx, más que nada para facilitar las cosas al usuario
Imagen

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por Hark0 » Lun Ene 27, 2014 1:55 pm

antoniovillena escribió:Entonces no he dicho nada. No me había leído el tutorial y desconocía el requerimiento de cargador basic. Otra cosa, no sería mala idea disponer de las distintas versiones en archivos separados en lugar de un único tzx, más que nada para facilitar las cosas al usuario


Cara A, protegido

Cara B, código abierto

:P
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

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

Re: Cargando BASIC de manera no estándar

Mensaje por zup » Mié Feb 05, 2014 10:53 pm

He terminado de migrar el tutorial a mi blog, y lo he actualizado con algunas cosillas interesantes. Entre ellas:
- Explico un método para crear bloques turbo en ficheros tzx y evitar los "Direct recording".
- Pongo un método para crear sentencias REM de una longitud determinada.
- Explico el método Inception, donde se usa una sentencia REM para meter una versión comprimida del programa.

Y las aclaraciones de siempre...
- Esto está hecho para mostrar cómo hacer cargas chulas de programas en BASIC (no desde BASIC). Cargar bloques CODE se puede hacer sin tanta tontería.
- Esto no es un modo de proteger programas BASIC. Vale, no te van a poder hacer un MERGE... pero vas a ver que risas en cuanto pulsen BREAK. Necesitarás un poquito más de esfuerzo para proteger tus programas.

...y mi primer hijo nacerá en menos de 48h... he acabado el tutorial justito justito (queda pendiente lo de mangonear con el Russian's Attack, pero lo dejaré para más adelante).
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
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Cargando BASIC de manera no estándar

Mensaje por Hark0 » Jue Feb 06, 2014 10:31 am

Genial!

Con tu permiso pongo post en mi blog apuntando al artículo tuyo...

Se lo merece!

;)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Responder

¿Quién está conectado?

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