The Apple IIGS just got a massive C compiler update
Byte Works has released ORCA/C 2.3.0 B1, bringing modern C23 programming standards to the 16-bit Apple IIGS.
Byte Works just released ORCA/C 2.3.0 B1, a major update to the classic Apple IIGS compiler that adds support for the modern C23 programming standard. The update is available now on the Byte Works GitHub repository.
Native 16-bit code
ORCA/C is part of the ORCA/M development environment created by Mike Westerfield in the 1980s. Apple actually licensed the assembler portion of this environment and distributed it as the official Apple Programmer's Workshop (APW) before Byte Works eventually took over direct distribution of the complete toolchain. It was the premier way to write desktop software for the platform.
The Apple IIGS runs on the Western Design Center 65C816 processor, which is the same CPU family later used in the Super Nintendo. ORCA/C generates native 16-bit code to take full advantage of it. The compiler accesses the expanded 16-megabyte memory space and utilizes the 16-bit index registers. This allows it to produce highly optimized binaries that leave the older 8-bit Apple II limitations far behind. Note that I think the IIGS "only" supports 8MB RAM, not 16MB.
The C23 standard arrives
The 2.3.0 B1 release brings a massive list of C23 language features to the vintage platform. Developers now have access to the #embed preprocessor directive. This is a huge quality-of-life improvement for retro developers, as it allows them to easily embed binary data like sprite sheets or level maps directly from files without writing custom assembly scripts. The compiler also adds type inference using auto in variable declarations.
Many keywords no longer require awkward underscores. You can just type bool, true, false, and nullptr. The update introduces bit-precise integer types, variable-length array types, and the ability to explicitly specify underlying types for enumerations.
On the library side, the compiler includes new floating-point math functions, a <stdbit.h> header packed with bit utility functions, and support for binary numbers in printf and scanf. I find it completely surreal that a computer released during the Reagan administration is getting compiler updates for a programming standard finalized in 2024. The dedication of the retro development community never ceases to amaze me.
From Apple Programmer's Workshop to Wolfenstein 3D
ORCA/C and its assembly counterpart were the backbone of Apple IIGS software development. Many of the most impressive games and applications for the platform were built using these tools. When Rebecca Heineman programmed the massive Apple IIGS port of Out of This World, the ORCA environment was part of the toolchain. The same goes for the community-driven IIGS port of Wolfenstein 3D.
The compiler allowed developers to push the 65C816 processor to its absolute limits. It handled complex game logic and rendering routines that standard Apple II models could never dream of running. Having modern C23 conveniences available means new homebrew projects can be written with much cleaner code.
Not exactly plug and play
Getting the new version running requires a bit of setup. This is an update package, meaning you need an existing installation of ORCA/C 2.1 or later to use it. The provided disk image must be mounted as a hard drive image or a high-density floppy image. If you are still relying on physical 800KB floppies, you have to extract the SHK file and place it on the disk manually instead of using the raw image.
Comments ()