Cc65

Last updated
cc65
Developer(s) Ullrich von Bassewitz
Initial releaseNovember 15, 1998;25 years ago (1998-11-15) [1]
Stable release
2.19 [2]   OOjs UI icon edit-ltr-progressive.svg / November 20, 2020;3 years ago (2020-11-20)
Repository
Written in ANSI C
Operating system Multiplatform
Type Cross compiler
License zlib license
Website cc65.github.io

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.

Contents

Overview

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

static

dynamic

conio dioemdjoymousertgi
apple2YesYes11112
apple2enhYesYes11112
atariYesYes215 [6]
atmosYes1
c16Yes11
c64Yes64311
c128Yes52312
cbm510Yes111
cbm610Yes11
geosYesYes111
lynx111
nesYes11
osic1pYes
petYes1
plus4Yes11
supervision
sym1
vic20Yes2

Note: For static libraries, "Yes" means the feature is available. For dynamic libraries, the columns list the number of available drivers.

Related Research Articles

Applesoft BASIC is a dialect of Microsoft BASIC, developed by Marc McDonald and Ric Weiland, supplied with the Apple II series of computers. It supersedes Integer BASIC and is the BASIC in ROM in all Apple II series computers after the original Apple II model. It is also referred to as FP BASIC because of the Apple DOS command FP used to invoke it, instead of INT for Integer BASIC.

<span class="mw-page-title-main">Commodore 64</span> 8-bit home computer introduced in 1982

The Commodore 64, also known as the C64, is an 8-bit home computer introduced in January 1982 by Commodore International. It has been listed in the Guinness World Records as the highest-selling single computer model of all time, with independent estimates placing the number sold between 12.5 and 17 million units. Volume production started in early 1982, marketing in August for US$595. Preceded by the VIC-20 and Commodore PET, the C64 took its name from its 64 kilobytes(65,536 bytes) of RAM. With support for multicolor sprites and a custom chip for waveform generation, the C64 could create superior visuals and audio compared to systems without such custom hardware.

<span class="mw-page-title-main">MOS Technology 6502</span> 8-bit microprocessor from 1975

The MOS Technology 6502 is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology. The design team had formerly worked at Motorola on the Motorola 6800 project; the 6502 is essentially a simplified, less expensive and faster version of that design.

<span class="mw-page-title-main">History of operating systems</span> Aspect of computing history

Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity for everyday use.

<span class="mw-page-title-main">Atari 8-bit computers</span> Home computer series introduced in 1979

The Atari 8-bit computers, formally launched as the Atari Home Computer System, are a series of 8-bit home computers introduced by Atari, Inc. in 1979 with the Atari 400 and Atari 800. It is the first home computer architecture with coprocessors, enabling more advanced graphics and sound than most of its contemporaries. Video games are key to its software library, and the 1980 first-person space combat simulator Star Raiders is considered the platform's killer app.

<span class="mw-page-title-main">Atari BASIC</span> Dialect of the BASIC programming language

Atari BASIC is an interpreter for the BASIC programming language that shipped with Atari 8-bit computers. Unlike most American BASICs of the home computer era, Atari BASIC is not a derivative of Microsoft BASIC and differs in significant ways. It includes keywords for Atari-specific features and lacks support for string arrays.

Microsoft BASIC is the foundation software product of the Microsoft company and evolved into a line of BASIC interpreters and compiler(s) adapted for many different microcomputers. It first appeared in 1975 as Altair BASIC, which was the first version of BASIC published by Microsoft as well as the first high-level programming language available for the Altair 8800 microcomputer.

<span class="mw-page-title-main">TI-99/4A</span> Home computer by Texas Instruments

The TI-99/4 and TI-99/4A are home computers released by Texas Instruments in 1979 and 1981, respectively. The TI-99 series competed against home computers such as the Apple II, TRS-80, Atari 400/800, and VIC-20.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on Android devices is a cross compiler.

<span class="mw-page-title-main">Bill Mensch</span> American electrical engineer (born 1945)

William David Mensch, Jr. is an American electrical engineer born in Quakertown, Pennsylvania. He was a major contributor to the design of the Motorola 6800 8-bit microprocessor and was part of the team led by Chuck Peddle that created the MOS Technology 6502. He also designed the 16-bit successor to the 6502, the 65816.

<span class="mw-page-title-main">Text-based user interface</span> Type of interface based on outputting to or controlling a text display

In computing, text-based user interfaces (TUI), is a retronym describing a type of user interface (UI) common as an early form of human–computer interaction, before the advent of bitmapped displays and modern conventional graphical user interfaces (GUIs). Like modern GUIs, they can use the entire screen area and may accept mouse and other inputs. They may also use color and often structure the display using box-drawing characters such as ┌ and ╣. The modern context of use is usually a terminal emulator.

<span class="mw-page-title-main">WDC 65C02</span> CMOS microprocessor in the 6502 family

The Western Design Center (WDC) 65C02 microprocessor is an enhanced CMOS version of the popular nMOS-based 8-bit MOS Technology 6502. It uses less power than the original 6502, fixes several problems, and adds new instructions. The power usage is on the order of 10 to 20 times less than the original 6502 running at the same speed; its reduced power consumption has made it useful in portable computer roles and industrial microcontroller systems. The 65C02 has also been used in some home computers, as well as in embedded applications, including medical-grade implanted devices.

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for Atari 8-bit computers. The founders of OSS previously developed Atari DOS, Atari BASIC, and the Atari Assembler Editor for Atari, Inc., and many OSS products are substantially improved versions. OS A+ and DOS XL are based on Atari DOS. BASIC A+, BASIC XL, and BASIC XE are based on Atari BASIC. EASMD and MAC/65 are modeled on the Atari Assembler Editor. Action! is an ALGOL-inspired compiled programming language with an integrated full-screen editor. OSS also sold some software for the Apple II.

The Small Device C Compiler (SDCC) is a free-software, partially retargetable C compiler for 8-bit microcontrollers. It is distributed under the GNU General Public License. The package also contains an assembler, linker, simulator and debugger. As of March 2007, SDCC is the only open-source C compiler for Intel 8051-compatible microcontrollers. In 2011 the compiler was downloaded on average more than 200 times per day.

<span class="mw-page-title-main">Atari 8-bit computer software</span>

Many games, utilities, and educational programs were available for Atari 8-bit computers. Atari, Inc. was primarily the publisher following the launch of the Atari 400/800 in 1979, then increasingly by third parties. Atari also distributed "user written" software through the Atari Program Exchange from 1981 to 1984. After APX folded, many titles were picked up by Antic Software.

<span class="mw-page-title-main">Home computer</span> Class of microcomputers

Home computers were a class of microcomputers that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single, non-technical user. These computers were a distinct market segment that typically cost much less than business, scientific, or engineering-oriented computers of the time, such as those running CP/M or the IBM PC, and were generally less powerful in terms of memory and expandability. However, a home computer often had better graphics and sound than contemporary business computers. Their most common uses were word processing, playing video games, and programming.

<span class="mw-page-title-main">MAC/65</span> Atari 8-bit family 6502 assembler

MAC/65 is a 6502 assembler written by Stephen D. Lawrow for the Atari 8-bit family of home computers. MAC/65 was first released on disk by Optimized Systems Software in 1982, with the program requiring 16 KB RAM. A bank switched "SuperCartridge" from OSS followed in January 1984 for US$99, occupying only 8 KB.

<span class="mw-page-title-main">WDC 65C816</span> 8/16-bit microprocessor

The W65C816S is a 16-bit microprocessor (MPU) developed and sold by the Western Design Center (WDC). Introduced in 1983, the W65C816S is an enhanced version of the WDC 65C02 8-bit MPU, itself a CMOS enhancement of the venerable MOS Technology 6502 NMOS MPU. The 65C816 is the CPU for the Apple IIGS and, in modified form, the Super Nintendo Entertainment System.

<span class="mw-page-title-main">Atari joystick port</span> Computer port used for gaming controllers

The Atari joystick port is a computer port used to connect various gaming controllers to game console and home computer systems in the 1970s to the 1990s. It was originally introduced on the Atari 2600 in 1977 and then used on the Atari 400 and 800 in 1979. It went cross-platform with the VIC-20 in 1981, and was then used on many following machines from both companies, as well as a growing list of 3rd party machines like the MSX platform and various Sega consoles.

References

  1. C=Hacking #17 first mention
  2. "Release 2.19". 20 November 2020. Retrieved 8 December 2020.
  3. "Simplified license. · cc65/Cc65@aeb8492". GitHub .
  4. "Ohio Scientific-specific information for cc65".
  5. ca65 Users Guide
  6. By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.