cc65
is a cross development package for
6502
and
65C02
targets, including a macro
assembler
, a
C
cross compiler
,
linker
,
librarian
and several other
tools
.
Overview
[
edit
]
cc65 is based on a native C compiler that was originally adapted for the
Atari 8-bit computers
by John R. Dunning in 1989, which originated as a
Small-C
descendant. It has several extensions, and some of the limits of the original Small C compiler are gone.
The toolkit has largely been expanded by Ullrich von Bassewitz and other contributors. The actual cc65 compiler, a complete set of binary tools (assembler, linker, etc.) and runtime library are under a license identical to
zlib
's.
[3]
The compiler itself comes close to
ANSI C
compatibility, while C library features depend on the target platform's hardware.
stdio
is supported on many platforms, as is
Borland
-style
conio.h
screen handling.
GEOS
is also supported on the
Commodore 64
and the
Apple II
. The library supports many of the Commodore platforms (
C64
,
C128
,
C16/116
/
Plus/4
,
P500 and 600/700 family
), Apple II,
Atari 8-bit computers
,
Oric Atmos
,
Nintendo Entertainment System
,
Watara Supervision
game console,
Synertek
Systems
SYM-1
and
Ohio Scientific
Challenger 1P.
[4]
Officially supported host systems include
Linux
,
Microsoft Windows
,
MS-DOS
and
OS/2
, but the source code itself has been reported
[
by whom?
]
to work almost unmodified on many platforms beside these.
The ca65 macro assembler supports
6502
,
65C02
, and
65C816
processors, and can be used standalone without the C compiler.
[5]
Supported API
[
edit
]
static
[
edit
]
- conio (text-based console I/O non-scrolling)
- dio (block-oriented disk I/O bypassing the file system)
dynamic
[
edit
]
- em (expanded memory, used for all kinds of memory beyond the 6502's 64K barrier, similar
EMS
)
- joystick (relative input devices)
- mouse (absolute input devices)
- serial (communication)
- tgi (2D graphics primitives inspired by
BGI
)
|
conio
|
dio
|
emd
|
joy
|
mou
|
ser
|
tgi
|
apple2
|
Yes
|
Yes
|
1
|
1
|
1
|
1
|
2
|
apple2enh
|
Yes
|
Yes
|
1
|
1
|
1
|
1
|
2
|
atari
|
Yes
|
Yes
|
|
2
|
|
|
15
[6]
|
atmos
|
Yes
|
|
|
|
|
|
1
|
c16
|
Yes
|
|
1
|
1
|
|
|
|
c64
|
Yes
|
|
6
|
4
|
3
|
1
|
1
|
c128
|
Yes
|
|
5
|
2
|
3
|
1
|
2
|
cbm510
|
Yes
|
|
1
|
1
|
|
1
|
|
cbm610
|
Yes
|
|
1
|
|
|
1
|
|
geos
|
Yes
|
Yes
|
1
|
1
|
|
|
1
|
lynx
|
|
|
|
1
|
|
1
|
1
|
nes
|
Yes
|
|
|
1
|
|
|
1
|
osic1p
|
Yes
|
|
|
|
|
|
|
pet
|
Yes
|
|
|
1
|
|
|
|
plus4
|
Yes
|
|
|
1
|
|
1
|
|
supervision
|
|
|
|
|
|
|
|
sym1
|
|
|
|
|
|
|
|
vic20
|
Yes
|
|
|
2
|
|
|
|
Note: For static libraries, "Yes" means the feature is available. For dynamic libraries, the columns list the number of available drivers.
References
[
edit
]
External links
[
edit
]