gcc-ia16
static-assertions
Our great sponsors
gcc-ia16 | static-assertions | |
---|---|---|
11 | 2 | |
154 | 554 | |
- | - | |
0.0 | 0.0 | |
2 months ago | 5 months ago | |
C | Rust | |
GNU General Public License v3.0 only | Apache License 2.0 |
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
static-assertions
-
"My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
The static-assertions crate tries to handle similar use cases but const generics are still problematic.
-
Const generics MVP hits beta!
For that, I've used static-assertions in the past.
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.
kernel - FreeDOS kernel - implements the core MS-DOS/PC-DOS (R) compatible operating system. It is derived from Pat Villani's DOS-C kernel and released under the GPL v2 or later. Please see http://www.freedos.org/ for more details about the FreeDOS (TM) Project.
elks - Embeddable Linux Kernel Subset - Linux for 8086
const_fixedp - A const type for fixed point arithmetic in Rust.
build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux
assertnever - Syntactical sugar for assert never
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
inox2d - Native Rust reimplementation of Inochi2D
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
current_platform - Find out what platform your code is running on from Rust
emularity - easily embed emulators
ntest - Testing framework for rust enhancing the built-in library with some useful features.