ccz80 2.0.5

by Ivan on 28-03-2009, 08:04
Topic: Development

A new version of ccz80 was released yesterday. New features in this version:

  • New option /include to specify paths to files to be included in the program
  • Allowed the use of labels with the operators == and !=
  • Allowed assembler undocumented instructions (using registers IXh, IXl, IYh, IYl and rotate/shift instructions)
  • If the parameter of the repeat command is set to 0 no loop is executed (previously it was executed 65536 times)
  • No runtime error when an element is omitted in a list separated by commas (for instance in function parameters)
  • Optimization to remove function parameters from the stack after its execution
  • Improvements in multiplication, division and modulo operations and some imprevements to optimize the code
  • Improvements in the assembler source code generated when using the option /asm
  • A message is shown when the compilation is finished without errors

Relevant link: ccz80 website

Comments (5)

By Whizzy

Master (213)

Whizzy's picture

31-03-2009, 11:20

Nobody using this ? or plan on using this ?

It seems like a nice tool for implementing a game / application fast without worrying too much on the ASM code (and its speed) Big smile


Enlighted (6977)

ARTRAG's picture

01-04-2009, 00:20

There are also good C cross compilers for this...

By Yukio

Paragon (1540)

Yukio's picture

03-04-2009, 03:53

Actually, I am using this. And the speed is as fast as pure ASM (because it could use inline ASM!).
It is possible to compile most of my demonstrations programs written in Assembly on this ccz80, but I need to get more practice to integrate C and ASM.

It is good to use the MSX-BIOS calls, with some practice I believe that could be good to develop new software ...

By Dinoneno

Resident (41)

Dinoneno's picture

03-04-2009, 17:58

For any questions or doubt, please contact the author or write in the forum dedicated Thank you.

By Dinoneno

Resident (41)

Dinoneno's picture

13-04-2010, 21:06

ccz80 3.0.0

The main novelty is that it allows you to define macros for use in any expression. This allows for example to use arrays with indexes, structures, arrays structures, define functions whose content is a formula and other uses.

Example for using tables:

include "spectrum.ccz80"; // or "cpc464.ccz80" or "msx.ccz80"
define length = 10;
array byte data[length];
define table(i) = (*(data + i));
byte n;
for (n = 0; n < length; ++n) table(n) = n + 1;
for (n = 0; n < length; ++n) { printb(table(n)); printc(' '); }
pause(0); // For CPC o MSX remove this line

Function example formula:

include "spectrum.ccz80"; // or "cpc464.ccz80" or "msx.ccz80"
define average(a, b, c) = ((a + b + c) / 3);
printw(average(1, 7, 10));
pause(0); // For CPC or MSX remove this line