rutina custom loader

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
astromarinecorps
Mensajes: 28
Registrado: Sab, 15 Feb 2014, 17:52

Re: rutina custom loader

Mensajepor astromarinecorps » Mié, 19 Feb 2014, 14:28

he puesto un bloque en basic para cargar la rutina por las siguientes razones: porque solo se cargar un bloque desde ensamblador con ld ix longitud y ld de bytes como tu me enseñaste, pero no se ejecutar dicho bloque, por lo que lo hago con un randomize desde el bloque de basic, porque tampoco he aprendido por ahora a modificar el color de ink o paper para evitar que se muestre en pantalla el bloque a cargar o que una screen se vaya mostrando en pantalla mientras carga. Yo solo se basic, pero aprender ensamblador con el solo motivo de terminar esta rutina me parece imposible. Solamente quiero aprender lo basico para hacer esto, por ahora he averiguado que se pueden usar varios tipos de numeración, decimal,$hex, etc... que se pueden poner varias rutinas con org, pero las llamadas y anidamientos de la rutinas no los entiendo, me costó un mundo averiguar que el nombre de una rutina se puede poner solo o con los 2 puntos despues, tarde 2 dias en darme cuenta y eliminar el loop: jr loop el bucle infinito que me pusiste y no he sido capaz ni de emsamblar una pequeña rutina de microhobby que cambia el texto a negrita, haciendo un eloganmiento de los caracteres de la rom. En cuanto a lo de los baudios, yo uso zx block editor para convertir mis bloques a turbo con la configuración que yo quiera, adjunto el bloque de la animación de topo ya convertido a la carga de la "Abadia del Crimen", por lo que con eso no hay problema, la cosa esta en decirle a la rutina con que parametros de baudios tiene que cargar, se supone que esta es la rutina de carga completa, por lo que en ella debe haber algun sitio para modificar esto, pero he estado investigando una rutina publicada en microhobby llamada nanodrive que carga y salva a diferentes baudios y he visto que la modificación de los baudios esta en 2 sentencias que no figuran por ningun lado en esta rutina y por ahí me he quedado, por supuesto cuando la rutina este terminada la metere en un solo bloque en lineas REM o algo de eso. Gracias.
Adjuntos
topobytesturbo.zip
(2.49 KiB) Descargado 335 veces
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: rutina custom loader

Mensajepor antoniovillena » Mié, 19 Feb 2014, 18:07

Desgraciadamente esto no lo puedes hacer en BASIC. Tienes que aprender ensamblador sí o sí. Y para aprender aunque sea lo básico tienes que partir de un libro o un tutorial. Yo te puedo resolver una duda, pero nada más, el resto lo tienes que aprender por tu cuenta.
Avatar de Usuario
astromarinecorps
Mensajes: 28
Registrado: Sab, 15 Feb 2014, 17:52

Re: rutina custom loader

Mensajepor astromarinecorps » Mié, 19 Feb 2014, 22:48

siguiendo con mis investigaciones he conseguido medio comprender como estan compuestos los bloques de carga de cassette del zx, y he averiguado que de los 5 valores de la estructura de la rom, solo tendria que modificar a priori 2 de ellos: 0-bit pulse lenght y 1-bit pulse lenght que en realidad son la velocidad (baudios), ya que el la frecuencia y longitud del tono piloto o guia si estan dentro de lo normal (frecuencia no muy aguda ni grave 1750 a 3000 y longitud no muy corta a partir de 2000) aunque no sean los establecidos por la rom, ésta se los traga con papas, y como yo no tengo que temporizar nada en mi rutina, porque no voy a hacer nada tipo bleepload de firebird, no es necesario que trabaje con esos valores, algo que no me queda claro son las lenght del primer y segundo pulso de sincronismo pero su pongo que esto es la longitud del bloque que debe coincidir con el bloque. Analizando la rutina de Microdrive de microhobby que salva y carga a baudios variables he deducido que los valores a cambiar se hacen con el registro B de la rom y tambien tengo claro que la rutina a modificar es la LD-BYTES, que Antonio me pegó aquí modificada, yo la he conseguido de the complete spectrum rom disassembly pero los comentarios estan en ingles y me resulta imposible localizar los 2 valores antes mencionados de la rom para cambiarlos y tampoco se que subrutinas intervienen indirecctamente porque puede que LD-EDGE 1 y 2 o LD-SYNC tambien intervengan. una ayudita??? gracias.
Adjuntos
a.png
a.png (2.15 MiB) Visto 7593 veces
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: rutina custom loader

Mensajepor antoniovillena » Mié, 19 Feb 2014, 23:28

Me da la impresión que estás intentando llegar a una solución sin tener que aprender ensamblador, digamos que por ensayo y error. No te digo que así sea imposible, pero no es lo aconsejable, nunca lo es.

Mi recomendación es: aprende primero ensamblador, no te tienes por qué aprender todas las instrucciones, puesto que en la rutina de carga sólo aparece un 30%-40% del set de instrucciones del Z80. Una vez aprendas ensamblador ve depurando con el Spectaculator, leyendo los comentarios y entendiendo qué hace cada instrucción. Una vez comprendas lo que hace el código, ya sabrás dónde meterle mano para que haga lo que tú quieras.

Hacerlo por el camino "bueno" te llevará una semana o un mes, pero da igual porque al final habrás aprendido algo útil. Por el otro camino puede que llegues a una solución que medio te satisfaga en menos tiempo, pero no habrás aprendido nada.
Avatar de Usuario
astromarinecorps
Mensajes: 28
Registrado: Sab, 15 Feb 2014, 17:52

Re: rutina custom loader

Mensajepor astromarinecorps » Jue, 20 Feb 2014, 01:05

es que yo no quiero aprender ensamblador Antonio, si ya te lo comente al principio, solo quiero hacer esta rutina y nada mas, no voy a hacer nada mas para spectrum, y aunque el saber no ocupa lugar, aunque aprendiera ensamblador no lo volvería jamas a usar para nada mas, porque solo quiero terminar esto, es una cosa que se quedó en el tintero de mi infancia, un reto personal no realizado, una promesa, algo que no creo que nadie mas lo entienda salvo yo, y lo tengo que hacer por este metodo porque tardaría años en aprender ensamblador, por eso pregunto e investigo para irme al bulto del asunto y solucionarlo, cuando he tenido que hacer una operacion con decimales y hexadecimales me he abierto la calculadora de windows con la opción programmer y no he cogido los libros de informatica basica del instituto para ver como se pasa de dec a hex ya sume muchos 0 y 1 en la pizarra en su tiempo, solo me interesa el resultado de la operacion porque es lo que necesito y no como se hace, yo seguire con mis medios y mi estilo hasta que lo consiga, cuando me atranque lo aparcare y dentro de otros x años lo retomaré, lo siento, jajaja, soy asi de burro, a finales de los 90 un amigo me grabó una tdk de 120 minutos llena de utilidades, entre ellas estaba el PAW y el THE ART STUDIO, pues teniendo este ultimo, se me ocurrio la genial idea de hacer una screen$ en basic con graficos definidos por usuario, imagina cuantos 1 y 0 use y cuantas libretas cuadriculadas. ahora tengo la nostalgia de los 80 mezclada con la perrera de los 2000. :cafe:
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: rutina custom loader

Mensajepor antoniovillena » Jue, 20 Feb 2014, 01:40

Pues no me había quedado claro hasta ahora. De todas formas lo que dices es contradictorio, quieres hacer una rutina en ensamblador sin saber ensamblador. También te contradices en lo de que es un reto personal no realizado, una promesa. Si realmente es un reto personal, ¿de qué te sirve que lo haga otra persona por tí?. Ya deja de ser reto para convertirse en un capricho.

Que no pasa nada, no me siento ofendido ni nada de eso, si te he querido ayudar es porque he visto que mostrabas interés y no me arrepiento de ello. Pero creo que tu postura está equivocada totalmente. Las cosas se hacen por el gusto de aprender: a veces salen bien, otras salen mal y otras no salen, pero siempre te consolarás con el hecho de que has aprendido algo (aunque eso que hayas aprendido no lo vayas a usar luego).
Avatar de Usuario
astromarinecorps
Mensajes: 28
Registrado: Sab, 15 Feb 2014, 17:52

Re: rutina custom loader

Mensajepor astromarinecorps » Jue, 20 Feb 2014, 02:24

pero es que yo no quiero que nadie lo haga por mi, yo solamente investigo y saco conclusiones, me basta con que alguien me de pistas o me diga por ese camino vas bien o vas mal sobre lo que voy exponiendo por aquí, tampoco quiero el codigo exacto de lo que quiero modificar, pero tampoco tiene nada de malo decir en la subrutina tal de load bytes tienes la respuesta, pero aprender ensamblador desde 0 para esto... puff ... en la vida lo conseguiria, y si alguien no quiere darmelas pues recurro a otros foros o personas, o simplemente lo aparco x un tiempo y ya esta no hay problema. yo te estoy muy agradecido por todo y te mando un abrazo, la satisfaccion para mi es investigar y que alguien me vaya apuntando, comprobar con los medios de hoy y rapidamente cosas imposibles en otra epoca, saber ensamblador no es ninguna satisfaccion para mi en el 2014, si lo hubiera sido en los 80. lo dicho. gracias!!! ;)
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: rutina custom loader

Mensajepor na_th_an » Jue, 20 Feb 2014, 08:04

No necesitas ser un experto en ensamblador, ni te llevaría años. Con la base que tienes, lo mínimo para poder seguir el flujo del programa lo pillas en unos días. Saber qué es un registro, cómo se mueven datos entre ellos y con la memoria, comprender los modos de direccionamiento y como funcionan los saltos es cuestión de tres tardes. Y luego, aunque seguramente no podrás programar desde cero tu propia rutina de carga, al menos sabrás "seguirla" a grandes rasgos y saber dónde tocar con más facilidad. Cuando veas un trozo de código sabrás que está escribiendo o leyendo de aquí o de acá, y si se te jode algo podrás abrir el debugger de Spectaculator y ver qué trozo de código está jodiendo las cosas aunque tampoco lo entiendas del todo.

Este documento que hizo Radas hace años se lee en un rato y te da muchas de las nociones basicas que necesitas para, por lo menos, intentar seguir un poco el flujo del código http://www.bytemaniacos.com/ficheros/cu ... _asm_1.pdf

De hecho, tampoco necesitas ponerte a aprender ensamblador y luego volver a tus planes. Puedes intentar seguir el flujo del programa, y examinar las partes que has marcado en los listados con un tutorial y una lista de opcodes por delante (por ejemplo, esta, o esta), por lo menos para intentar compreder qué se cuece. Y así irás aprendiendo, y probablemente encuentres las soluciones por tí mismo.

Creo que a lo que se refiere Antonio es que ni él ni creo que nadie tiene esas rutinas "en la cabeza", y muchas de tus preguntas implican que se ponga a examinar el código y a hacer un trabajo que en realidad tendrías que estar haciendo tú :) A diferencia de lo que ocurre con lenguajes de programación de más alto nivel o más estructurados, no se puede comprender un trozo de ensamblador a simple vista. Incluso identificar un simple bucle requiere algo de análisis.
Como diría Rorshach: "Urm..."
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: rutina custom loader

Mensajepor elborra » Jue, 20 Feb 2014, 12:14

Juer como mola el tuto de radas para dummies :roll: ... ya tengo lectura para los huecos en el curro
$this->bbcode_second_pass_code('', '"call borde". Suena francamente mal') .. Me encanta el tono del tutorial ^^ así da gusto aprender

Edito: vaya, tuto terminado :cry: creía que tendría más contenido XD, en cualquier caso salgo con varios conceptos mucho más claros y direcciones en memoria importantes, y como no, sabiendo hacer una rutina propia cls :P. Creo que a partir de esta voy a intentar hacerme una "cortinilla" para la zona de juego de la churrera para ciertas transiciones entre habitaciones (al cambiar de planta)

weee
Avatar de Usuario
astromarinecorps
Mensajes: 28
Registrado: Sab, 15 Feb 2014, 17:52

Re: rutina custom loader

Mensajepor astromarinecorps » Vie, 21 Feb 2014, 02:20

Ya tengo la primera version de mi rutina terminada, y sin aprender ensamblador... :jias:

http://www.youtube.com/watch?v=SJQo9jdb ... e=youtu.be

Volver a “Ayuda”

¿Quién está conectado?

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