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

martes, 16 de febrero de 2016

Que usar para programar para MSX/MSX2 en tu PC.

De las muchas opciones que hay para programar para MSX y MSX2 os destaco una que pasa por usar el lenguaje de programación Pascal. 

Hace tiempo gracias a Slotman, teníamos el IDE MSXPad el cual compila código Pascal para nuestros MSX. Esto, combinado con las librerías incluidas nos permitía acceder a todas las funcionalidades del MSX desde Pascal. 

Esta idea es muy buena, pero lamentablemente, MSXPad no funciona correctamente en los PC modernos. 

Os presento una alternativa que he desarrollado, usando como base el trabajo realizado por Slotman. 

Esta alternativa es el MSXPad Revived

MSXPad Revived  es : 
  • Un compilador de Pascal para MSX y MSX2.
  • Un pequeño IDE para desarrollar bajo Pascal para MSX y MSX2.
  • Un set de librerías en Pascal que nos permiten usar las capacidades del MSX y MSX2.


Hay que darle las gracias a Slotman por su esfuerzo original. 

Yo he modificado y hackeado la(s) herramienta(s) para poderlas usar en un entorno PC moderno. El MSXPad Revived lo podéis descargar de su página.

Un pequeño vídeo del IDE en acción: 






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.































viernes, 27 de noviembre de 2015

De BASIC a código máquina sin dolor, parte II

He estado probando diversos compiladores a Mcode (código máquina) aparte del ya mencionado Softek "FP" Full Compiler en la entrada "De BASIC a código máquina sin dolor". 

De las varias opciones con las que me he peleado (literal), os propongo como otra opción muy válida para pasar vuestros desarrollos BASIC a código máquina, el compilador "HiSoft BASIC" de Cameron Hayne y publicado en 1986 por HiSoft.

Este compilador soporta los modelos ZX Spectrum, ZX Spectrum +, ZX Spectrum 128 y ZX Spectrum Plus 2. 

Para usarlo en los ZX Spectrum +2A/B/3 deberéis usar el modo 48k. El cargador de 128 utiliza comandos CAT y nomenclatura de archivos que los 2A/B no entienden. 

En las versiones de 128k soportadas, solo ocupa 500 bytes de RAM de usuario, por lo que nos deja hasta 40k para nuestro programa BASIC. 

Estoy trabajando en una versión que cargue en los modelos +2A/B, dado que no hay una versión en cinta para ellos. Si hay una versión en disco para la el ZX Spectrum +3. 

Hay otra versión depurada por Zeljko Juric también disponible.

En general es un compilador muy robusto. Tiene varias particularidades muy buenas, como la de poder "mezclar" código máquina de una compilación con otra (al estilo de librerías o módulos) además de soportar básicamente todos los comandos de BASIC, incluyendo matrices de hasta 2 niveles (A(x,y)). Puedes definir renglones / áreas de compilación a Mcode y dejar bloques de BASIC libres. Esto es muy útil para los comandos no soportados desde el compilado. También es posible compilar por separado los segmentos DATA grandes que tengamos y "pegarlos" al código máquina principal del programa.

Los comandos no soportados, los podemos usar directamente con BASIC, yendo y viniendo del código máquina.

La versión que he utilizado es la 1.1.

La cinta viene con dos caras. Cara A para el 48k y cara B para los 128k soportados.

Hay un montón de ejemplos en la cinta y el manual de uso está muy bien; explica todo con detalle, da ejemplos y tiene un capítulo dedicado a tips para mejorar el rendimiento del código máquina generado por el compilador.

Otra funcionalidad muy curiosa, es la posibilidad de investigar las variables de nuestro programa, con el comando *T.

El propio compilador propone fijar un tipo de datos para la(s) variable(s) (con una directiva especial en una linea REM) , y así obtener un compilado aún más rápido y pequeño.

Soporta funciones de usuario, GOTO/GOSUB calculados, operaciones de floating point y otra gran cantidad de cosas.

El compilado contiene todo lo necesario para que el programa sea independiente (todos los run-time necesarios).

En las pruebas realizadas hasta ahora, con proyectos que tengo en curso, el resultado  (y la estabilidad) ha sido mejor que el obtenido con el compilador Softket "FP" Full Compiler.


martes, 17 de noviembre de 2015

De BASIC a código máquina sin dolor


Pues he aquí, de las muchas opciones de compiladores de BASIC a código máquina, la que encuentro más sencilla de usar, y que menos complicaciones presenta. 

El susodicho compilador es el "Softek FP Full Compiler".

Pero ojo, que no lo usaremos en su versión "estándar", sino en la versión "debugged" realizada por Zeljko Juric en 1988

Este compilador, es muy sencillo de usar y en su versión depurada, además de tener varios fallos corregidos y optimizaciones realizadas, viene con el programa "FPLINK", el cual nos permitirá "linkar" nuestro código máquina con el "run time" del compilador. 

De esta forma, nuestro programa BASIC, una vez pasado a código máquina y "linkado", será independiente y lo podremos distribuir sin el compilador.


Seguro que hay mejores compiladores (seguro vamos, por que lo he mirado), pero he aqui las principales ventajas de este: 

  1. Soporta operaciones de Floating Point.
  2. Aunque tiene (pocas) directivas de compilación, no es necesario usarlas. Vamos, que es cargar el código BASIC y ponerte a compilar, sin más. 
  3. Funciona con el editor BASIC 128. Los muchos otros que he probado, te revierten al modo de edición del 48k. 
  4. Carga bastante rápido desde la cinta. (Si, yo soy de esos, trabajo con cintas). 
  5. Deja bastante memoria libre RAM para trabajar. 


Tiene inconvenientes como que no le gustan las funciones de usuario.