gcc-ia16
Retro68
Our great sponsors
gcc-ia16 | Retro68 | |
---|---|---|
11 | 8 | |
154 | 522 | |
- | - | |
0.0 | 8.5 | |
2 months ago | 7 days ago | |
C | ||
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gcc-ia16
-
Building GCC 1.27 (first GCC with x86 support) (2019)
Mainstream GCC has never supported 16-bit code on x86, only 32-bit
However, there is (at least one) fork which adds 16-bit code support, see https://github.com/tkchia/gcc-ia16
I don't think the GCC maintainers have ever or will ever want to support 16-bit x86, because it is so limited, and adds a lot of messy corner cases, and nowadays is really only of hobbyist/retrocomputing interest.
Maybe there is some 16-bit x86 embedded system still being maintained–there were military spec versions of the 8086, and possibly some weapons system, aircraft, satellite, etc, still in use contains one. But I doubt they'd have any interest in adopting a 16-bit GCC – they'd already have some proprietary compiler they'd been using for decades, switching now would add a lot of risk, very late in the life of a legacy system, for no tangible benefit
-
Djgpp
These days there is also a 16-bit GCC port to DOS (https://github.com/tkchia/gcc-ia16). I never encountered one of those back in the day? I think the compiler itself does not run in 16-bit DOS though.
Anyone interested in compiling for DOS (32-bit or 16-bit) should also check out Free Pascal.
-
Rust is Boring
My advice is, when you feel you need that challenge, install DOSBox or DOSBox-X and Open Watcom C/C++, DJGPP, or gcc-ia16 and do some retro-programming. You'll also get the fun of being able to do low-level hardware twiddling and rely on DOS being so simple that it's effectively an RTOS.
-
Writing FreeDOS Programs in C
Looking at part 1 and some of the videos, it looks like this doesn't actually use OpenWatcom, but i16gcc from the FreeDOS distribution, which looks to be a port of gcc that targets 16-bit x86.
-
"My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
And, if that surprises you, gcc-ia16 is a thing that has come into existence not only over a decade after DJGPP but also after Open Watcom already existed.
-
How can I compile rust for 16bit x86 (Intel 8086)?
or GCC IA 16 (https://github.com/tkchia/gcc-ia16) gets someday mainlined (also a multi month/years project) and then gccrs can maybe use it as backend
-
Tools and/or tutorials for making a roguelike in DOS?
There is a 16-bit port of GCC these days as well included together with DJGPP if you install FreeDOS, but available separately as well (I think it can cross-compile from other systems like DJGPP can too?) https://github.com/tkchia/gcc-ia16
-
How FreeDOS Grew Up and Became a Modern DOS
TK Chia and others have been working on adding DOS C/C++ compiler-isms to GCC as well as improving the the codegen to make it more hospitable for DOS apps. So far, the FreeDOS kernel compilable by gcc-ia16.
https://github.com/tkchia/gcc-ia16
- Linux (ELKS) running on an IBM PC XT replica
-
how to get started programming a game/program for dos?
There is a more recent fork of gcc/DJGPP to make 16-bit DOS applications that I also never tried, but that might be worth using (and I think it is bundled in the latest FreeDOS, so it might be very easy to set up by just installing that in a virtual machine?): https://github.com/tkchia/gcc-ia16
Retro68
-
Like the macOS Dock but for macOS System 7
If you can live with cross-compiling from a modern PC (or Mac) you can use https://github.com/autc04/Retro68 which uses a recent version of GCC.
-
Rust is Boring
Alternatively, you could install Executor 2000 (sort of a Wine-like clean-room reimplementation of Macintosh System 6 for running on other OSes) and get into classic MacOS programming using the GCC-based Retro68 C++-17 toolchain.
-
Writing and Running a BBS on a Macintosh Plus
Strongly recommend checking out Retro68 and cross compiling from a newer machine: https://github.com/autc04/Retro68
There are some really good Retro68 code examples out there as well. I started compiling a list here, including a couple of my own: https://henlin.net/2021/12/21/Cool-Retro68-projects/
As a few other folks have said, the inside Macintosh books are extremely valuable references for Mac-specific code. I keep pdfs of them open the whole time I’m working on my Macintosh projects.
- Flood-It game for Mac OS 9 – Released in 2021
- My website - Foray into 68000 (System 6 game programming)
-
Cy384/ssheven: A modern SSH client for Mac OS 7/8/9
if you want to go period-appropriate, you can run Macintosh Programmer's Workshop or CodeWarrior natively
I use retro68 on linux, which is a modern GCC toolchain, so it's just like developing any other C/C++ (well, without some nice debugging tools, and with the added complexity of the mac OS resource stuff)
https://github.com/autc04/Retro68/
-
Stupid Idea to Stream Video on a Macintosh Plus
personally, I think retro68 (port of modern GCC for vintage macs) is way nicer to use than any period-correct compilers or IDEs.
What are some alternatives?
open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.
cryanc - TLS for the Internet of Old Things
elks - Embeddable Linux Kernel Subset - Linux for 8086
MacDock - Like the macOS Dock... but for System 7
build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux
winevdm - 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
executor - A modern fork of the classic Mac emulator
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
emularity - easily embed emulators
emu2 - Simple x86 and DOS emulator for the Linux terminal.
DOOM - DOOM Open Source Release