
This directory contains sample programs for the cc65 compiler.

Below is a short description for each of the programs, together with a list
of the supported platforms.

Please note:

  * The supplied makefile needs GNU make. It works out of the box on Linux and
    similar systems. If you're using Windows, then consider installing Cygwin
    or MSys2.

  * The makefile specifies the C64 as the default target system because all
    but three of the programs run on that platform. When compiling for another
    system, you will have to change the line that specifies the target system
    at the top of the makefile, specify the system with SYS=<target> on the
    make command line, or set a SYS environment variable.

  * Use "make disk" to build a disk image with all sample programs.

List of supplied sample programs:

-----------------------------------------------------------------------------
Name:           ascii
Description:    Shows the ASCII (or ATASCII, PETSCII) codes of typed
                characters. Written and contributed by Greg King
                <greg.king5@verizon.com>.
Platforms:      All platforms with conio or stdio (compile time configurable).

-----------------------------------------------------------------------------
Name:           atari2600hello
Description:    A "Hello world" type program.
Platforms:      Runs on only the Atari 2600 Video Console System.

-----------------------------------------------------------------------------
Name:           diodemo
Description:    A disc copy program written and contributed by Oliver
                Schmidt, <ol.sc@web.de>. Supports single or dual disc copy.
Platforms:      The program does depend on conio and dio (direct disk i/o),
                so it currently does compile for only the Atari and Apple ][
                machines.

-----------------------------------------------------------------------------
Name:           enumdevdir
Description:    Enumerates all devices, directories, and files. Written and
                contributed by Oliver Schmidt, <ol.sc@web.de>.
Platforms:      All systems with device enumeration and directory access
                (currently the Commodore machines, the Commander X16,
                and the Apple ][).

-----------------------------------------------------------------------------
Name:           fire
Description:    Another graphics demo written by groepaz/hitmen.
Platforms:      The program currently is running on only the C64, but should
                be portable to the C128 and CBM510 (and maybe more machines).

-----------------------------------------------------------------------------
Name:           gunzip65
Description:    A gunzip utility for 6502-based machines, written by Piotr
                Fusik <fox@scene.pl>.
Platforms:      Runs on all platforms with file I/O (currently the Atari, the
                Apple ][, Commodore machines, and the Commander X16).

-----------------------------------------------------------------------------
Name:           hello
Description:    A nice "Hello world" type program that uses the conio
                console I/O library for output.
Platforms:      Runs on all platforms that support conio, which means:
                Apple ][, Atari, Commodore machines, Commander X16,
                Creativision, Gamate, NES.

-----------------------------------------------------------------------------
Name:           mandelbrot
Description:    A mandelbrot demo using integer arithmetic. The demo was
                written by groepaz/hitmen, and converted to cc65 using TGI
                graphics by Stephan Haubenthal.
Platforms:      Runs on all platforms that have TGI support:
                Apple ][, Atari, C64, C128, Oric Atmos and Telestrat, GEOS,
                NES, and Lynx.

-----------------------------------------------------------------------------
Name:           mousedemo
Description:    Shows how to use the mouse.
Platforms:      All systems with mouse and conio support:
                C64, C128, CBM510, Atari, Apple ][.

-----------------------------------------------------------------------------
Name:           multidemo
Description:    Shows how to combine multiple cc65 features incl. overlays
                and extended memory drivers. Written and contributed by
                Oliver Schmidt, <ol.sc@web.de>.
Platforms:      All systems with an overlay linker config., disk directory
                access, and EMD support (currently the C64, the C128,
                the Atari, and the Apple ][).

-----------------------------------------------------------------------------
Name:           nachtm
Description:    Plays "Eine kleine Nachtmusik" by Wolfgang Amadeus Mozart.
Platforms:      All systems that have the Commodore SID (Sound Interface
                Device):
                C64, C128, CBM510, CBM610.

-----------------------------------------------------------------------------
Name:           overlaydemo
Description:    Shows how to load overlay files from disk. Written and
                contributed by Oliver Schmidt, <ol.sc@web.de>.
Platforms:      All systems with an overlay linker config. (currently the C64,
                the C128, the Atari, and the Apple ][).

-----------------------------------------------------------------------------
Name:           plasma
Description:    A fancy graphics demo written by groepaz/hitmen.
Platforms:      The program needs a VIC-II or a TED, so it runs on the following
                systems:
                C64, C128, CBM510, Plus/4.

-----------------------------------------------------------------------------
Name:           sieve
Description:    Implements the "Sieve of Eratosthenes" as a way to find all
                prime numbers in a specific number interval. Often used as
                a benchmark program.
Platforms:      All systems with conio and clock support:
                Atari, Commodore machines (VIC-20 needs memory expansion),
                Commander X16, Apple ][ (without timing due to missing clock
                support).

-----------------------------------------------------------------------------
Name:           supervisionhello
Description:    A "Hello world" type program.
Platforms:      Runs on only the Watara Supervision game console.

-----------------------------------------------------------------------------
Name:           tgidemo
Description:    Shows some of the graphics capabilities of the "Tiny Graphics
                Interface".
Platforms:      Runs on all platforms that have TGI support:
                Apple ][, Atari, C64, C128, Oric Atmos and Telestrat, GEOS,
                NES, and Lynx.
