The Compiler

Description

RCC16 is an Oric targeted version of the LCC Compiler.

This compiler is decently ANSI compliant, and event support C++ comments as well as standard C comments.

Optimisation level can be modified using the OSDKCOMP variable. By default this variable will be initialized to -O2 value, but you can try -O3 for more aggresive optimizations.

Data types

Since the 6502 is an 8 bit processor, the data size are as follow:

  • Pointers are 16 bits long
  • char and shorts are 8 bits long
  • int are 16 bits long
Libraries

Some standard functions (memcpy, printf, ...) are implemented, but most of the standard library is not available.

Some functions are just quick hacks done by directly calling the ROM functions. Unfortunately, ROM releases are different, and thus any code calling these functions will work only on ATMOS.



Known issues


No known problem - please signal any issue on the Cross development tools forum.



Resolved issues


Reported by NekoNoNiaow the Thu 28th March 2019
Fixed in OSDK 1.14


Issue #33: Compiler.exe crashes
Details: Compiler.exe crashes when compiling the following source:
--
void main(void)
{
 int returnValue;
 char* argv[] = { "dhrystone" };
 returnValue = main( sizeof(argv) / sizeof(*argv), argv );
}
--
Compile with:
%OSDK%\BIN\compiler.exe -Nlibc -O0 source.c >source.c2



Reported by Waskol the Wed 29th August 2018
Fixed in OSDK 1.13


Issue #27: Missing EQ0W_C code generator macro
Details: When compiling some C programs, the code generator creates EQ0W_C instructions which unfortunately are missing from the macro file. (See: topic)


comments powered by Disqus
Coverity Scan Build Status
History
Version 1.36
  • Fixes for the -O0 output
Version 1.35
  • defstring is used by the frontend not only to define strings (signed char data) but also for initializing unsigned char arrays. In this case, defstring will receive char data with possible negative char values which have to be printed as their corresponding unsigned char value.Very usefull when you want to spare a maximum of bytes in a size compo.