Hola gente,
Les comparto algo que hice. Como me gusta la astronomía, me decidí por ver qué sería posible hacer con la C64 en este aspecto.
Entonces implementé un sencillo programa para mostrar estrellas. Para usarlo simplemente hay que cargar primero las estrellas en memoria y luego cargar la aplicación que las muestra o analiza.
Ejemplo:
LOAD"LOADSAO1",8
RUN
LOAD"ASTRO",8
RUN
Con esto se parte de una base de datos con las 128 estrellas más brillantes. Si se quieren más estrellas, se carga LOADSAO2. Y si se quieren más, LOADSAO3. Y así... En total se pueden cargar hasta 2048 estrellas.
En la aplicación ASTRO, se pueden listar las estrellas cargadas, buscar alguna en particular (por su designación SAO) o mostrar una ventana con lo que se vería para una coordenada dada.
Por ejemplo, si eligen:
4. SHOW SKY
Y luego ponen 25 grados de campo de visión:
DIAMETER OF WINDOW [ 0.01 - 60 ]DEG? 25
Entonces, como puse que por defecto la ventana se centrara en Alnilam, lo que van a ver es la constelación de Orion. Les envío una foto de cómo se vería.
¿Alguno se anima a probarlo?
Ok, hasta acá lo que es el uso. Lo que sigue a continuación son detalles ténicos por si a alguno le interesa:
En principio, me propuse programar directamente con la C64 pero, además de lo incómodo, el datassette no me funciona bien. Así que terminé usando CBMprgStudio. Muy recomendable para esta clase de mini-proyectos.
El CBMprgStudio me genera los archivos ".prg". Después, con Star Commander y WAV-PRG, me armo el ".d64" y el ".tap".
Utilizo la memoria de la siguiente manera: cada estrella ocupa 8 bytes, así que 2048 estrellas las puedo ubicar en $A000-$BFFF y $E000-$FFFF. Para poder acceder a la RAM detrás de estas zonas de memoria (recuerden que están solapadas con la BASIC-ROM y la KERNAL-ROM) implementé una rutina sencillita en assembler que la llamo desde BASIC con el comando USR.
La rutinita se ubica en $C004.
Me di cuenta que realmente es muy poca la memoria del C64 como para poder tener mucha información de cada estrella, por lo que sólo dejé lo más indispensable: sus coordenadas (ascensión recta y declinación en J2000), su designación SAO, su brillo y 2 bits para su color (azul, blanca, amarilla y roja).
Para mostrar en pantalla la ventana con las estrellas, no uso ningún modo gráfico especial. Simplemente muestro los caracteres 128-227 en pantalla, y los modifico como si fuesen mapa de bits: es como una pantallita de 10x10 caracteres (80x80 pixels de resolución). También modifico algunos caracteres más para poder dibujar el símbolo de "grado" y un círculo.
Bueno, espero que hayan disfrutado mi relato.
Saludos!
]astro.d64[/file]
]astro.tap.zip[/file]