Último mensaje de la página anterior:
mgyv escribió:Una vez inicializado el framebuffer, aunque sea a 4 colores, necesitaba hacer unas tablas de senos/cosenos, y me he animado a hacer un programita en blitz basic 2 para generarlas. Sé que está la aplicación de windows, Sinus creator (que es muy completa, por cierto), pero me da rabia tener que hacer los archivos en Windows y traerlos al amiga (sobre todo después de ver las últimas retrocriptas de Microsoft de Ron, )
He intentado añadir el código fuente, pero no me deja adjuntar extensión .bb2. Lo dejo en zip, por si a alguien le interesa.
No me deis mucha caña, que es mi primer programa en Blitz....Para compilarlo hace falta el deflibs de 150k del disco de extras. Ah, y solo lo he probado en WB3.1.
download/file.php?mode=view&id=200025046
download/file.php?mode=view&id=200025044
Perdonad por los links e imágenes salpicadas, pero es que no me aclaro cómo ponerlas como yo quiero (voy a tener que practicarlo, también)
Ya volviendo al ensamblador, Sigo en el ejemplo 6. Todavía me cuesta "pensar" en ensamblador, y para ir practicando he hecho una rutina de poner puntos, para poder probar las tablas generadas por el otro programita. Solo es un círculo, pero es la base para poder hacer rotaciones.
download/file.php?mode=view&id=200025047
download/file.php?mode=view&id=200025048
Ah, y tengo unas dudas acerca del asmtwo que me rondan la cabeza...
-Si queda una tabla de dc.w desalineada en ram, ¿hay alguna directiva para que quede en posición par? Es que depende del código que tenga anterior a la tabla, a veces tengo que poner un dc.b delante de la misma.
-¿Cuánto stack tienes en tu programa al lanzarlo desde el asmtwo? Digo porque voy a tener que empezar a usar la pila para guardar registros, etc, y sería interesante saberlo.
-Sería interesante tener un ejemplo de añadir un módulo de protracker y poder tener una rutina para pegar en el código, inicializar, playear, parar, etc
PD: Buff, todo lo que me queda para ponerme al día......
Ahora mismo ando en el curro y no me puedo extender mucho. A ver si por la noche tengo un rato y puedo ojear con tranquilidad el codigo.
Lo primero gracias por el programa, en el amiga solia usar el propio asmone para crear las tablas. En cuanto pueda pruebo el tuyo.
Sobre alinear los datos, puedes usar el comando EVEN.
Por ejemplo :
Datos1: dc.b 3,4,8,7,5
EVEN
Datos2: dc.b 5,8
Hemos declarado 5 bytes en Datos1, para que Datos2 no quede en impar, usamos el EVEN.
En tu codigo, vi que has declarado un byte a 0. No se si hacia falta, porque en ese hunk solo esta la copperlist y la imagen de fondo y es dificil que la tabla caiga en impar.
Otra cosa, las tablas las tienes en memoria chip. Podrías pasarlas a memoria fast y asi gastas menos.
En este caso tendrias que poner un EVEN despues de "gfxlib" para que no te caiga en impar y meter ahi las tablas.
O meter las tablas antes y dejar gfxlib al final del hunk.
Sobre el tema del stack, eso lo gestiona el AmigaOS durante el arranque (por defecto tienes 4k en A7). Yo personalmente no uso apenas la pila mas alla de guardar algun registro para no perderlo . Y siempre que he intentado toquetear el tamaño/dirección acabo con cuelgues y problemas.
Por eso directamente paso de usarla.
Sobre el tema de los mod, te puedo preparar un post sobre el P61 si quieres, pero lo suyo es ver primero como funciona paula y despues usar esa libreria para ahorrarnos trabajo. Usarla sin saber como funciona es un poco dar palos de ciego.
Entiendo que cuando empiezas a ver bitmaps en pantalla te den ganas de correr , pero yo te recomiendo primero hacer cosas con el copper y familiarizarte con el DMA, cuando lo tengas dominado empezar con los bitplanes y el audio.
De todos modos por aqui estamos si estás "impaciente" jejeje...
Lo dicho, esta noche le echo un ojo mas a fondo a tu codigo y comentamos la jugada.