Mostrando entradas con la etiqueta c64. Mostrar todas las entradas
Mostrando entradas con la etiqueta c64. Mostrar todas las entradas

lunes, 4 de noviembre de 2019

Libros interesantes para Assembly en Commodore 64

He comenzado a retomar el desarrollo retro, esta vez fijándome en el Commodore 64. 

Para coger ritmo adquirí un par de libros y una libreta, que me acompañarán en esta aventura. 

Obviamente, Internet es el mejor de los recursos, pero encuentro los libros en papel y el uso de una libreta para tomar notas muy satisfactorio.

Los libros son:


Libro que refleja el trabajo realizado en el blog "Programación Retro del Commodore 64".

Todo lo que está en el libro tiene su origen en el blog. Está bien organizado y es de mucha ayuda. 


Este libro, aunque tiene una pequeña introducción al Assembly y al C64, va directo al desarrollo de un juego en ASM. Este lo dejo para más adelante, dado que quiero repasar bien lo básico con respecto al C64. 

Ah, y una libreta mágica para mis notas: 


Aquí voy escribiendo mis cositas y es también para referencia rápida.

El plan es ir publicando cosas sueltas, que me parecen interesantes mientras voy construyendo una librería propia en ASM, para mis desarrollos en el C64.

También iré haciendo cositas del ZX Spectrum, en medio, para no perder la costumbre.

Dentro de poco, comenzaré a publicar. 


martes, 19 de julio de 2016

C64. De dibujo en BASIC con caracteres a Sprite.

Rememorando libros que tengo por ahí de programación en BASIC para Commodore 64 me acordé de un ejemplo que vi en el que se "pinta" un globo.

Usando caracteres en BASIC y luego mediante un algoritmo, se convierte el globo en un Sprite y se pinta en pantalla. 

El ejemplo es muy bueno, dado que usa los conceptos básicos del uso de un Sprite y se usa un pequeño algoritmo para pasar ese dibujo en caracteres a pantalla. 



















En la segunda imagen, se ve que hay tres bucles anidados, para ir leyendo los caracteres contenidos en el DATA e ir calculando el valor para el Sprite. 

Es un truco muy chulo, pero sumamente lento. Está muy bien, para aprender pero nada más. 

Además, va imprimiendo en pantlla el valor entero (de o a 253) de cada cálculo del Sprite. 

Os dejo una imagen de disco D64 para poder cargar el código fuente en un emulador en este enlace

Solo recordar que hay tres entradas, cubriendo el tema de los Sprites, junto con una herramienta de desarrollo en este mismo blog, por si interesa profundizar en el tema. 



martes, 12 de julio de 2016

Neuromancer para C64. Adaptación de la novela de William Gibson.

Si eres un fan de la ficción de William Gibson, el demoninado "Padre del Cyberpunk", seguramente conoces el libro Neuromancer.

Y si no, deberías leerlo; es una de las "obras maestras" del Cyberpunk.

Uno de los primeros trabajos de la mítica compañía Interplay Productions fue el juego Neuromancer, basado en la obra de William Gibson.

Este juego de aventura y rol, fue revolucionario en muchas formas, y se editó para Commodore 64, Commodore Amiga , PC DOS y Apple II. 

OS dejo unos enlaces, por si os interesa probarlo.

Yo personalmente, estoy disfrutando esta joya en mi C64C. 

* Ejecutar neurocrk.com 






Todo es público y se ha distribuido con permiso de los dueños. 

Fuente en este enlace.









lunes, 8 de febrero de 2016

Ejemplo práctico de CBM .prog Studio .Sprites ,diseñador de pantallas y diseñador de juegos de caracteres.

Hace un tiempo recomendé el entorno de desarrollo para Commodore 64, el CBM .prog Studio

Aunque tiene carencias básicas con respecto a lo que estoy acostumbrado para el ZX Spectrum (BasinC), como por ejemplo, la imposibilidad de depurar código BASIC, es un entorno bastante completo y que tiene una organización estructural muy buena para el desarrollo de proyectos para el Commodore 64. 

Voy a aprovechar que quiero refrescar los conceptos básicos del manejo de Sprites desde el BASIC del Commodore 64, para darle visibilidad a esta herramienta de desarrollo. 

Si lo que queremos es desarrollar en ensamblador, la situación es distinta. Para código ensamblador el entorno sí que permite depuración y está mucho más avanzado. 

Aprovecharé entonces, el repaso que vamos a hacer de los Sprites en BASIC, para utilizar determinada funcionalidad del entorno CBM .prog Studio y así darlo a conocer. 

Lo primero que tenemos que hacer es descargarlo e instalarlo. 

Además, si no tenemos el emulador VICE funcionando, nos haremos con él y lo instalaremos también. 

Con ambas cosas ya instaladas, lo primero es configurar el CBM .prog Studio para decirle en que directorio por defecto nos creará los proyectos y donde reside el emulador VICE

En el menú "Tools, Options" podemos definir el valor del directorio por defecto para nuestros proyectos.















Luego nos vamos a "Emulator Control" y le damos el directorio donde tenemos instalado el emulador VICE

No hace falta tener un proyecto ya abierto para hacer esta configuración, la podemos hacer sin ninguno abierto. 

Ahora, procedemos a crear un nuevo proyecto. 

El entorno tiene plantillas de proyecto para proyectos tipo BASIC y tipo ensamblador. 

Nos vamos  a "File" y a "New basic Project". 


Nos mostrará una ventana emergente, donde podemos personalizar. 



Esta es la pinta que tendrá nuestro entorno: 


Ya estamos listos para comenzar con nuestro código. 

Una cosa MUY importante que tenemos que hacer, si no queremos recibir petardazos continuamente, es modificar las propiedades del proyecto para decirle cual es el programa principal. 

Por defecto lo trata de "adivinar", dado que puede haber código BASIC y ensamblador mezclado, pero esto está dando problemas, si sólo tenemos BASIC. 

Así que a "Project", Properties y le decimos que solo compile nuestro programa principal. 



Vamos a usar "El Editor de Pantallas" para crearnos una pantalla chula como comienzo del programa. 

Botón de la derecha en "Screen Designs" y añadimos uno nuevo. 

Luego con doble click abrimos el editor. 

Este editor nos deja trabajar tanto con los dos set de caracteres por defecto como con los que hallamos creado nosotros. 

Yo me he hecho una pantalla tal que así: 


Las posibilidades las podéis explorar, yo he usado lo más básico para hacer un marco con un título.

En el menú "File" podemos exportar a código BASIC, lo que nos abrirá la ventana de "Preview". De ahí podemos copiar y pegar en nuestro código. 

Luego de pegado, lo apañamos lo re - numeramos y lo que nos parezca.

En el siguiente capítulo editaremos un sprite y lo cargaremos en pantalla, para lo cual refrescaremos los conceptos básicos para manejar Sprites desde C64 BASIC. 

El proyecto completo lo puedes descargar de este enlace

El CBM .prog Studio lo puedes descargar de este enlace

El emulador VICE lo puedes descargar de este enlace

Un pequeño vídeo de lo que hemos hecho hasta ahora: 





miércoles, 2 de diciembre de 2015

Que usar para programar el BASIC del Commodore 64 en tu PC.

Me puse como objetivo encontrar un entorno de programación  gráfico al estilo de BasinC para ZX Spectrum

La idea es tener una GUI (Graphical User Inerface) con todas las herramientas necesarias para la programación BASIC del Commodore 64 en nuestro PC. No solamente código fuente, sino herramientas gráficas y de sprites, manuales y otro tipo de complementos que nos permitan hacer todo desde un mismo sitio. 

Voy a resaltar CBM .prg Studio de Arthur Jordison

Es un entorno completo al estilo de los entornos de programación actuales, como puede ser Visual Studio o Eclipse. 

Traducido de su página web, podemos ver capacidades y funcionalidad: 

Permite realizar desarrollos para : 

  • Commodore 64 (and SuperCPU)
  • Commodore 128
  • Commodore VIC 20
  • Commodore 16
  • Commodore Plus/4
  • Commodore PET BASIC 2 machines, e.g. PET 2001
  • Commodore PET BASIC 4 machines, e.g. PET 4000/9000

Un resumen de sus capacidades es: 

  • Múltiples tipos de ficheros de código (ensamblador o BASIC) se pueden componer a un solo destino.
  • Ensamblador / Desemsamblador y Depurador integrado para 6502/6510/65816
  • Importación de programas (.prg, .T64 or .D64/.D71/.D81)
  • Exportación de programas (.prg, .p00)
  • Editor de Sprites
  • Editor de juegos de caracteres
  • Diseñador de pantallas 
  • Generador de códidos especuales de impresión
  • Visor de memoria
  • Importación y exportación de binarios
  • Herramienta de creación de discos .D64/.D71/.D81
  • Constantes en BASIC
  • Re-numerado y formateo de código 
  • Formateo automático de código ensamblador
  • Interfaz de usuario tipo MDI
  • Gran cantidad de manuales, ayuda y tutoriales

La verdad que es una herramienta muy completa y funcional. 

Una cosa que no termina de convencerme es que para compilar y ejecutar un proyecto, necesita un emulador externo configurado en la propia herramienta. 

Seguramente con el tiempo y adquiriendo experiencia con el entorno, esta circunstancia se verá justificada. 

En este enlace tenéis más imágenes de la herramienta en acción.