The C2C version 2.1:

1.multiple input files;
2.project file;
3.libraries as input or output;
4.multiple parameters in functions;
5.const char*;
6.arrays;
7.examples;
8.preprocessor;
9.a new target;
10.C-sources into asm file;
11.16-bit code;
12.External defines.

1.Multiple input files.

There could be many input files (.c or .lib). Only one should contain
main function. This option is available if the compiler is used from
command line like:

c2cw dt.c delay.c f.c -otest.asm

2.Project file.

A project file can be used from C2CW IDE. The input and output files and
the type of output file( asm or lib) are specified in the project.

3.Libraries as input or output.

This option is available both from command line and from IDE.
There is an option to generate the code for the functions which have not
been called. By default the code for such functions is not generated.


4.Multiple parameters in functions.

The functions can have more than one parameter like for example:

void fun( char a, char b, char c );

5.Const char*.

Instead of declaration of an array a pointer to const char can be
declared and used further as an array like:

const char *ptr = "This is a test string";
char i = 0;
while( ptr[i] != 0 )
    output_port_b( ptr[i++] );

6.Arrays.

A bug has been fixed and now it's possible to write c code like:

char sz[3];
....
sz[1] = 10 - a - sz[b+6];
...

7.Examples.

The examples included into this package are:

divtest.c   this example tests *, / and % operations

dt.c        a split of divtest.c example file.
f.c         They can be compiled as three input files like:
delay.c     c2cw dt.c delay.c f.c
            or build a library and than asm file like:
            c2cw -lib -oexample.lib delay.c f.c
            c2cw dt.c example.lib -oexample.asm

inter.c     shows how to use interrupts

flash.c     contains two methods to read and write flash

flashtst.c  tests flash memory. The flash.c file is also needed.


8.Preprocessor.

The preprocessor directives supported are:
#include
#define
#undef
#ifdef
#ifndef
#else
#endif

Note that #define does not work with parameters inside. So the code like:

#define MINUS(a)  -(a)

will not work.

9.A new target.

A new microprocessor family is added as a target to generate .asm file.
That's the Scenix family.

10.C-sources into asm file.

There is an option to include C-sources into the generated assembler file
(only for the extended version). But note that to get the assembler code
fully optimized you have to compile without this option.

11.16-bit code.

The extended version of the compiler generates 16-bit code now. Look into
the compiler help for more information.

12. External defines.

The external defines can be set in command line or in the 'Compile options'
dialog in MS Windows version.
