A development toolchain to compile your modern C or assembly projects on a modern OS and run on an Amstrad CPC or emulator.
C HTML Makefile Assembly Shell C++ CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.




By cpcitor

Build status Linux result
Full build: SDCC cross-compiler + binutils + tape/disk image tools + tape/disk images + test projects Build Status

Quick Summary

What is this ?

This is a portable toolchain for C/ASM development targetting the Amstrad CPC platform.

What does it do ?

  • It takes your project's C and/or assembly source code and use your modern computer to automatically produces a ready-to-run disk or tape image for an Amstrad CPC or emulator.
  • You can edit source and get another image, at will.
  • Eventually it will allow you to edit your graphics/music/whatever in your preferred editor, save, get another image, run.

C? But Amstrad did not provide a C-level API!

Sure. But we made one.

To be complete, there are options:

  • Use CFWI, our provided thin C-level API around CPC firmware. Imagine most elements from amstrad CPC Basic available with the ease of use of C. See coverage statistics.
  • If you're after 2D sprite routines consider using a cousin project, cpctelera.
  • From C call your assembly routines. Assembly can call firmware or hardware directly. As efficient as assembly can be! Wolfenstein 3D (running on 16bit processor 80286) then Doom were fully written in C except one line drawing routine in assembly!

You can mix-and-match options, like using firmware at initialization because it's easy, then switch to own routines or even pure ASM once hardware is initialized.

Why would I want to use that ?

  • If you know to program in C and want to try that for the CPC without first learning all details of all tools.
  • Or if you're an advanced hacker who like an open starting point to build upon (in that case you'll feel at home with the Makefile-based internals).

Why would I not want to use that ?

  • If you don't want to know that virtually all Integrated Development Environments are indeed graphical front-ends for a toolchain.
  • If anything looking like a command line or an open-source style environment makes you sick. In that case, it might be interesting for you to read Wikipedia's article about Hacker (programmer subculture) and ponder whether some kind of structure or common tools helps every member of a community.

More topics

  • Why this tool ? more about the situation that cpc-dev-tool-chain is meant to solve.
  • How to install
    • Just get a copy in a local directory. cpc-dev-tool-chain only needs a bunch of common tools (definitely available and often already installed in most Linux PCs).
    • It then installs automatically on-demand the needed third party tools (like Z80 compiler).
    • No global change or administrator permission needed.
  • CDTC with custom project: Quickstart tutorial: how do I work with my own project ?

Tested platforms

If you encounter any trouble (even minor) on your platform, please report and I'll be happy to help.

Until you report, trouble remains. Once you report, trouble is known, can be fixed for everyone, all will benefit.


  • Thanks to ronaldo / Cheesetea (ronaldo@cheesetea.com) for testing on cygwin, reporting issues and offering fixes.
  • Thanks to artaburu, upstream author of cpcrslib, for cooperation making it easier to use.