Hello,
I have just released the first version of a port of the vbcc compiler to the 65816 at: http://www.compilers.de/vbcc.html
It contains a C compiler, assembler, linker and ports of a C Library for the Apple IIgs, SNES and a simulator (which can easily be adapted to SBCs or embedded targets).
A few of the good things:
- compiler is under active development
- supports C99 (variable-length arrays, designated initializers etc.)
- generates optimized code (see dhrystones in sample directory)
- supports near-, far- and huge-pointers and memory models
- (limited) floating point support based on Steve Wozniaks code
- support for SNES hardware multiplication/division
- support for writing interrupt handlers
- attributes for putting variables into zero page
- supports file I/O on selected targets (IIgs)
The README inside the archive contains a short intro regarding installation and usage. There is also a sample directory with a few demo programs.
As I am not very familiar with this machine, I would appreciate some feedback from people with more experience.
This compiler is pretty interesting. A lot of the older ones that targeted the Apple II have been pretty limited like Aztec C back in the day or cc65. I need to check this one out and see how well the version for 65C02 works. 65816 is interesting too but most of the time I am using a //e instead of a IIgs. Although I do have a couple 65802 for //e which might work with the 65816 targeted compiler.
The 6502 version has no library for Apple II yet (so many 6502 targets...). I will probably add support in the next release of vbcc6502.
Sounds good, I will check it out when you do!
I have just uploaded a second release of the vbcc compiler for the 65816 at: http://www.compilers.de/vbcc.html
Changes since r1:
- new floating point format based on MSBASIC code
- more complete math library
- vc allows passthrough of linker options
- certain options like stack size can now be specified on the command line
- minor code improvements
- a few bug fixes
- new versions of vasm/vlink
The biggest change is the addition of a floating point library based on the 6502 MSBASIC code which has been MIT licensed. It is much, much faster than the wozfp-based code (the mandelbrot demo from the samples directory is about 10 times faster).