Última actualización de la página, compilador o documentación: 20 oct 2009
(ver sección Novedades para consultar últimos cambios)
Índice
Descripción
El lenguaje ccz80 tiene una sintaxis basada en el lenguaje C. Trabaja en modo de línea de comando bajo Windows, pero es posible usarlo bajo Linux con WINE o MONO y también en Mac con MONO. A partir de un programa escrito en lenguaje ccz80 el compilador genera un fichero ejecutable binario para un ordenador basado en Z80 o un emulador y también un fichero ensamblador equivalente.
El compilador es gratuito para cualquier uso y la librería de funciones existente en esta página es de código abierto, pero el código fuente del compilador no está liberado.
Uso
Para desarrollar con el compilador ccz80 son necesarias las siguientes utilidades (se recomienda crear una carpeta dedicada al compilador, los ficheros de librerías de funciones y los ficheros fuente, objeto y binario generados):
  • Un editor de textos para escribir el programa fuente en lenguaje ccz80, como UltraEdit o PSPad. Se puede usar opcionalmente el IDE ccz80.
  • El compilador ccz80 (fichero ccz80.exe).
  • La librería estándard (fichero standard.ccz80).
  • Los ficheros de librerías necesarios dependiendo del ordenador destino del programa (ficheros cpc464.ccz80, cpc6128.ccz80, spectrum.ccz80 o msx.ccz80).
Si se escribe y salva un programa ccz80 llamado programa.ccz80 y se quiere ejecutar in la dirección #A000 (40960), para compilarlo se puede escribir en la línea de comandos:
ccz80 programa.ccz80 /org=#A000
Con esto se tendrá creado el fichero binario programa.bin, o el código ensamblador equivalente programa.asm si se especifica la opción /asm, si la compilación es correcta. Tras esto es necesario pasar el fichero binario a un ordenador real o a un emulador.
Ejemplos
Este ejemplo sirve para crear bajo Windows un programa para el emulador ZX Spin del ZX Spectrum. Los pasos recomendados son:
  1. Crear una nueva carpeta en el disco duro.
  2. Descargar el compilador y copiar el fichero ccz80.exe, la librería estándar standard.ccz80 y la librería spectrum.ccz80 a la carpeta creada.
  3. Abrir un editor de texto (por ejemplo Notepad), escribir y salvar con el nombre caracteres.ccz80 en la carpeta creada el siguiente programa en lenguaje ccz80 (tras salvar este programa no es necesario cerrar el editor de texto):

    include "spectrum.ccz80"; // Usar la librería de Spectrum (la librería estándar es incluída por la librería spectrum)
    byte i; // Declarar una varible byte
    stream(2); // Establecer el cauce actual hacia la pantalla principal
    for (i = 32; i <= 128; ++i) // Bucle donde i comienza con 32 y termina con 128 para ejecutar la siguiente línea
        printc(i); // Llamada a la función printc (incluida en la librería spectrum.ccz80)
    return; // Finaliza el programa y regresa al BASIC

  4. En Windows pulsar Inicio/Ejecutar, teclear cmd y pulsar Aceptar para abrir una ventana de comando.
  5. En la ventana de comando, ir hasta la carpeta creada utilizando la orden CD.
  6. Cuando se encuentre en la carpeta creada escribir la siguiente sentencia en la ventana de comandos:

    ccz80 caracteres.ccz80 /org=50000

    Si se muestra algún mensaje de error, comprobar el programa fuente escrito en el paso 3 y salvarlo tras corregirlo. No es necesario cerrar la ventana de comandos para los siguientes pasos.
  7. Ejecutar el emulador ZX Spin y usar la opción File/Load binary file. Pulsar el botón de carpeta para explorar y encontrar el fichero caracteres.bin generado en la carpeta creada tras el paso previo; teclear 50000 como dirección inicial y pulsar el botón Load para cargar el contenido del fichero en la memoria del emulador.
  8. Finalmente teclear en el emulador el comando RANDOMIZE USR 50000 para ejecutar el programa. Esto es todo.
Se puede volver al editor de texto, modificar el programa y repetir las operaciones para crear nuevos programas.
Otro ejemplo, también bajo Windows, para el modelo Amstrad CPC 464:
  1. Crear una nueva carpeta en el disco duro.
  2. Descargar el compilador y copiar el fichero ccz80.exe, la librería estándar standard.ccz80 y la librería de Amstrad cpc464.ccz80 a la carpeta creada.
  3. Abrir un editor de texto (por ejemplo el Notepad), escribir y salvar con el nombre caracteres.ccz80 en la carpeta creada el siguiente programa en lenguaje ccz80 (tras salvar este programa no es necesario cerrar el editor de texto):

    include "cpc464.ccz80"; // Usar la librería de Amstrad CPC 464 (la librería estándar es incluída por la librería Amstrad)
    byte i = 32; // Declarar una varible byte e inicializarla con 32
    repeat (224) // Bucle de 224 repeticiones para ejecutar la siguiente línea
        printc(i++); // Llamada a la función printc (incluida en la librería cpc464.ccz80) y post-incrementar la varible i
    return; // Finalizar el programa y regresar al BASIC

  4. En Windows pulsar Inicio/Ejecutar, teclear cmd y pulsar Aceptar para abrir una ventana de comando.
  5. En la ventana de comando ir hasta la carpeta creada utilizando la orden CD.
  6. Cuando se esté en la carpeta creada escribir la siguiente sentencia en la ventana de comando:

    ccz80 caracteres.ccz80 /org=#A000

    Si aparece algún mensaje de error, comprobar el programa fuente escrito en el paso 3 y salvarlo tras las correcciones. No es necesario cerrar la ventana de comando para los siguientes pasos.
  7. Ejecutar el emulador WinCPC y usar la opción File/Load binary file, teclear A000 como dirección de carga y en el emulador teclear la sentencia CALL &A000 para ejecutar el programa ccz80 creado.
Descargas
Enlaces a las últimas versiones del compilador ccz80, documentación, librería de funciones y otros. Descargar el fichero todo en uno según el sistema a usar y descomprimirlo en una nueva carpeta. Opcionalmente descargar otros ficheros.

Archivos todo en uno para cada sistema

Otros

Enlaces
Enlaces a algunos programas y utilidades mencionados en esta página:
Novedades
13 ene 2008 Liberada la versión inicial 1.0.0 del compilador, librerías y documentación.
14 ene 2008 Compilador versión 1.0.2
  • Corrección en la operación de decremento de variables word.
  • Corrección en la optimización de líneas precedidas de línea en blanco.
17 ene 2008 Compilador versión 1.0.3
  • Cambio en el formato de mensajes de error.
  • Cambios internos para aumentar la velocidad de compilación.
Pequeñas mejoras en la documentación de ccz80.
Añadido un fichero de sintaxis para usar con UltraEdit (en la sección Descargas).
Añadido un forum dedicado (en la sección Contactar).
20 ene 2008 Compilador versión 1.1.0
  • Añadidas sentencias const y string.
  • Correcciones en la evaluación de los operadores && y ||.
  • Correcciones en la evaluación de suma de constantes numéricas.
  • Algunos cambios para intentar mayor velocidad de compilación.
  • Permitir escribir comentarios en cualquier lugar del código y eliminarlos del código ensamblador producido.
  • Limitar a aproximadamente 130 caracteres por línea de código ensamblador producido, para compatibilidad con más ensambladores.
  • Constantes de caracteres se escriben tal cual, no como el código ASCII correspondiente, para mejorar la comprensión del programa.
  • Etiquetas para la declaración de variables, tablas, cadenas, etc. aparecen en una sóla línea en el código ensamblador, para compatibilidad con más ensambladores.
Cambios en la documentación para las nuevas sentencias.
26 ene 2008 Liberada la versión inicial 1.0.0 del IDE ccz80 (en la sección Descargas se encuentra la aplicación y la documentación).
29 ene 2008 Liberada la versión 1.0.1 del IDE ccz80 con algunos errores corregidos y nuevas opciones para recargar un fichero y cambiar la fuente de las ventanas de edición.
03 feb 2008 Liberada la versión 1.0.2 del IDE ccz80 corrigiendo la activación de algunas teclas rápidas.
06 feb 2008 Añadida una librería básica para MSX.
20 feb 2008 Nuevo enlace relacionado con MSX.
24 feb 2008 Compilador para Linux.
02 abr 2008 Compilador versión 2.0.0
  • Añadida la claúsula inline en la definición de funciones.
  • Ensamblador integrado para generar el fichero binario directamente, junto al fichero ensamblador equivalente
  • Modificaciones en la sintaxis de algunos elementos del código ensamblador generado para el ensamblador integrado.
  • Otras pequeñas correcciones.
Cambios en la documentación para las nuevas sentencias.
Modificaciones en la sintaxis de las librerías de funciones (estándar, Amstrad CPC, Spectrum y MSX) para el ensamblador integrado.
Modificaciones en algunas funciones en las librerías para su optimización mediante la claúsula inline.
Cambio en la documentación del lenguaje ccz80 para explicar las novedades.
Eliminación de la versión del compilador para Linux (usar la versión Windows con WINE o MONO).
04 abr 2008 Actualización de fichero de sintaxis para UltraEdit.
15 abr 2008 Compilador versión 2.0.1
  • Añadido el parámetro /asm al compilador ccz80.
  • Algunas mejoras en la optimización de código.
Cambio en la documentación para describir el parámetro /asm.
28 abr 2008 Compilador versión 2.0.2
  • Evitar especificar como fichero fuente el valor "".
  • Evitar el aviso 'Constant not used' cuando sí es utilizada.
  • Correcciones en la evaluación de expresiones.
11 sep 2008 Compilador versión 2.0.3
  • Corrección del error cuando se utiliza una etiqueta como parámetro para un argumento de tipo byte en la llamada a una función.
23 oct 2008 Añadida versión en español de la página web.
Pequeñas correcciones y añadidos en el contenido de la página web.
29 oct 2008 Añadida versión en español del documento de especificación del lenguaje.
Correcciones en la versión inglesa de la web.
24 nov 2008 Versión 1.0.3 de IDE ccz80 con pequeñas correcciones.
Manual de IDE ccz80 en español.
Corrección del manual IDE ccz80 en inglés.
Liberado código fuente del IDE ccz80.
27 dic 2008 Publicada librería y documentación para usar rutinas de Sprites Alive en Amstrad CPC.
11 ene 2009 Compilador versión 2.0.4
  • Corregida la evaluación del operador ! para valores de tipo word.
  • Añadida la etiqueta __end_program al final del código fuente ensamblador generado para conocer donde comienza el espacio libre en memoria.
27 mar 2009 Compilador versión 2.0.5
  • Nueva opción para el compilador /include para especificar rutas de búsqueda de ficheros incluídos en el programa.
  • Permitir el uso de etiquetas con los operadores == y !=.
  • Permitir en el código ensamblador las instrucciones indocumentadas (uso de registros IXh, IXl, IYh, IYl y rotación/desplazamiento).
  • Si el parámetro del comando repeat es 0 no ejecutar el bucle (previamente a la corrección se ejecutaba 65536 veces).
  • Evitar error de ejecución del compilador cuando se omitía un elemento en una lista separada por comas (en los parámetros de una función por ejemplo).
  • Optimización para eliminar de la pila los parámetros de una función tras la ejecución de la misma.
  • Mejoras en las operación de producto, división y módulo y pequeñas mejoras en la optimización del código.
  • Mejora en el formato del código fuente ensamblador obtenido con la opción /asm.
  • Mostrar mensaje de compilación finalizada cuando no hay errores.
11 abr 2009 Nuevo formato en la sección de descargas.
17 abr 2009 Compilador versión 2.0.6
  • Corregidos errores al usar comillas (\") o punto y coma (;) dentro de una constante de cadena.
  • Nueva opción del compilador /post para lanzar otras aplicaciones tras la compilación.
  • Nueva directiva datafile para incluir ficheros binarios en un programa ccz80.
24 jul 2009 IDE version 1.0.6, almacena las opciones en un fichero .INI, no en el registro de Windows.
26 jul 2009 Incluído en el paquete para Amstrad CPC la librería sprUtilCPC para programar usando sprites.
5 ago 2009 Compilador ccz80 versión 2.0.7: admite claúsula register para funciones de un parámetro que pasan el valor en registro y no en pila.
Optimización de librería estándar y librerías específicas de cada ordenador para aprovechar la claúsula register.
Actualización de ficheros de sintaxis para los editores para la nueva claúsula.
Actualización de la documentación sobre la claúsula register.
Corrección de algunos errores en las librerías.
11 oct 2009 ccz80 IDE versión 1.0.7: corregidos algunos pequeños errores.
20 oct 2009 Incluida librería para utilizar rutinas de Fourspriter 1.0 para Spectrum.
Contactar
Para contactar con el autor del compilador ccz80 y comunicar errores, sugerencias, etc. se puede escribir a este correo:

emilioguerrero@terra.es


Si se quiere recibir notificación de novedades sobre este desarrollo, escribir un correo con el asunto "News" para ser añadido a la lista de correo.

Se puede visitar el foro dedicado:

Foro ccz80


Gracias por el interés.