Build a managed assembly
Compile the C# project normally. The input is a managed PE assembly with CIL method bodies.
CLOSED-WORLD CIL AOT COMPILER
CopperSharp compiles a constrained subset of CIL into native Motorola 68k code. It emits Amiga HUNK executables, Kickstart ROM images, or assembler source.
using CopperSharp.Sdk.Amiga;public static class Hello{ public static int Main() { DOS.PutStr(Hello, Amiga!
); return 0; }}copper68kc Hello.dll --cpu 68000 --format hunkTHE PIPELINE
The compiler resolves reachable managed code, lowers supported CIL to Motorola 68k instructions, and writes the selected output format.
Compile the C# project normally. The input is a managed PE assembly with CIL method bodies.
Starting at the selected entry point, resolve reachable methods, framework members, and platform calls.
Lower supported CIL into machine IR, allocate registers, and generate code for the selected 68k CPU.
Resolve imports, relocations, and symbols, then emit HUNK, ROM, or assembler output.
OUTPUT FORMATS
The backend can write a loadable Amiga executable, a fixed-layout Kickstart ROM image, or readable assembler source.
Executable
Boot image
Readable output
AMIGA SDK
The SDK declares Amiga libraries, pointer types, hooks, tag lists, and register conventions. Platform calls are resolved during closed-world analysis and lowered using the Amiga ABI.
Browse the SDK ↗exec.libraryBOUNDdos.libraryBOUNDintuition.libraryBOUNDgraphics.libraryBOUNDmuimaster.libraryBOUNDiffparse.libraryBOUND
PROJECT SCOPE
The supported CIL and .NET framework surface is intentionally constrained and tracked in the repository alongside execution tests and compatibility reports.
GETTING STARTED
The project template uses the packaged CopperSharp MSBuild SDK. Publishing restores the compiler and writes the Amiga executable, map, and compatibility report.
Complete example and instructions →dotnet new install CopperSharp.Templates::0.1.0-preview.1
dotnet new amiga -n HelloAmiga
cd HelloAmiga && dotnet publish -r amiga-m68k