Artrag, you can compile with ccz80 any example of documentation and you see in assembler file created the code generated; it's very commented. Of course, if you program directly in assembler you can get the best results, but with ccz80 you can program easy and get a assembler code very optimized, but by example in assembler you can use a register, not a memory variable, and it's more fast. The use of compiler is for avoid more hard work y if you need in a critical point assembler you can write a ccz80 function or insert assembler code directly in ccz80 source program.
Manuel, thanks for your idea. I understand your idea of black hole, but in this moment ccz80 is my project and I am dedicated to it for any problem that it could have. If I think abandon the project I will public the source code. I use many programs with source code not public and I am not worried, if the programa works as I want, I use it, if it's don't work, I don't use it. Thanks.
If you keep it binary only release, you'll most likely end up being the only user. Unless you convince your auntie to download a copy too.
Dhau: for me it's the same. If you don't want use ccz80, you loss. It's a tool for me that I want share with other people. There are more people using it for Amstrad and Spectrum. If you want a good compiler with open source you can make one and share your work with the world.
Now released the ccz80 compiler version 2.0.0 with integrated assembler (for generate directly a executable file for Z80, without an external croos assembler) and inline funcions for maximum speed in small functions with none or one arguments.
inline functions, very good for the slow z80....
Actually, i'd like to know more on this compiler/language before investing time on it.
Or you state something like: "ultra super optimized asm code" or "full support of advanced graphic/music/SFX libraries"
or you risk to not attract a lot of developers.
ccz80 is a generic language for Z80. It has not specialitation for graphics, sound, ... and for nothing specific computer (Spectrum, Amstrad, MSX, ...). The libraries included in the web for MSX and others computers are also generic. There is not difficult write some functions for any kind of develop (game, graphics, ...) in hard assembler if the exists functions aren't useful (they are open source for modifications and adaptations if necessary). My idea is that each community of each computer or each programmer work for build functions.
About speed I invite to review the assembler code generate for a simple program and try write in assembler directly the a program with the same function, and compare.
Actually, I don't like this type of marketing for ccz80: "ultra super optimized asm code" or "full support of advanced graphic/music/SFX libraries", it's too . I prefeer everybody use a little the ccz80, and if a person thinks that is good, the same person can say her idea about ccz80.
Thanks for your sugerences and I hope more ideas.
After having passed 40mins on the manual i can conclude that ccz80 is sort of low level C
that has only 2 types (char and int) and that supports (only) explicit control on loops and array.
More than a macro assembler, but less than bare C (by bare i mean without float and libraries).
Consider that modern C cross compiler pass parameters using de and bc, not only on the stack.
(by modern i mean hitech c 7 years old, while coross compilers like IAR can use all undocumented
instructions and register, including ixh ect, for processing).
I like the * and ** operators, but array support with [] would improve readability of the code.
ps
actually ** is equivalent to *(int*) in C
Yes Artrag, it's correct. The ccz80 is a language adapted to Z80 microprocessor. As Z80 has only register of 8 and 16 bits, ccz80 only works with variables of this sizes. The ccz80 it's not C and don't want be C. Only implements the loops, conditions, etc. with the syntax of C, that is very flexible and easy to implement in a compiler, but ccz80 don't want be C, there are some goods compiler of C for Z80, as z88dk or sdcc (and others that a don't rememeber now). The syntax of ccz80 could be based in Pascal, Basic or another language, but I prefer C.
About the pass of parameter, also the inline functions I think to implement functions of type "register", for pass the parameter in registers directly (more speed, of course), with some conditions (a limited number of parameters, by example). It's a excelent idea, thanks Artrag.
For the undocumented instructions can be another improvement to compiler and integrate assembler.
For the support of arrays with [] I decided not. It's because the programmers (I'm the first) can use the arrays in this mode, and the code generated is less optimized that if the programmer use pointers directly. I prefer force the programmer to use pointers.
It's true, the ** operator is equivalent to *(int *) in C, good observation.
Another time, thanks for your ideas, I will work in them.