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.
Reported by Dbug the Thu 9th April 2020
Issue #37: Crash on parsing 0xif 0
Details: By replacing by mistake a #if 0 by 0xif 0, I ended up with an internal compiler crash (possibly in lex.c around line 535 according to Jylam)
Reported by JiBĂ© Perin the Sun 18th April 2021
Fixed in OSDK 1.19
Fixed in OSDK 1.19
Details: Is it possible to have a way to give parameter to preprocessor cpp.exe? Like adding a %OSDK_xxxx% to the cpp.exe command line in build.bat
Reported by NekoNoNiaow the Thu 28th March 2019
Fixed in OSDK 1.14
Fixed in OSDK 1.14
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
Fixed in OSDK 1.13
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