vbcc 65816 Release 2

This is a port of the vbcc compiler to the 65816 architecture. It
contains a compiler, assembler, linker and a port of a C Library for
the Apple IIgs, SNES/Super Famicom as well as a simulator target
usable to adapt 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
- floating point support based on MsBasic's or Steve Wozniak's 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)

This archive contains binaries for Windows and Linux x86 (statically
linked). A sample directory with a few small test cases is also
included.

To use the compiler on Windows:

  set VBCC=<path-to-vbcc-dir>
  set PATH=%VBCC%\bin;%PATH%

On Linux, use something like:

  export VBCC=<path-to-vbcc-dir>
  export PATH=$VBCC/bin:$PATH

Compiling works pretty much like most compilers, e.g.:

  vc file.c -o binary

When using floating point, link with the math library:

  vc file.c -lm -o binary

For the much faster Microsoft Basic routines, use:

  vc file.c -msfp4 -lms4 -o binary

Choose a different target confguration with +<cfg>:

  vc +snes-hi file.c -o file.sfc
  vc +iigs file.c -o file

See the documentation regarding use of different memory models etc.

Further information on vbcc can be found on

  http://www.compilers.de/vbcc

and in the vbcc.pdf included here. Apart from the general sections on
the compiler, be sure to have a look at the ones on the 65816 backend
and the 65816/IIGS, 65816/SNES, or 65816/Simulator part of the C library.


LEGAL

Please consult the vbcc.pdf regarding terms of usage.


For questions, results etc., reach me at: vb@compilers.de


Volker Barthelmann

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

