gcc-ia16 VS rust_dos

Compare gcc-ia16 vs rust_dos and see what are their differences.

gcc-ia16

Fork of Lambertsen & Jenner (& al.)'s IA-16 (Intel 16-bit x86) port of GNU compilers ― added far pointers & more • use https://github.com/tkchia/build-ia16 to build • Ubuntu binaries at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://gitlab.com/tkchia/build-ia16/-/releases • mirror of https://gitlab.com/tkchia/gcc-ia16 (by tkchia)

rust_dos

Rust DOS : Creating a DOS executable with Rust (by o8vm)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
gcc-ia16 rust_dos
11 5
154 140
- -
0.0 0.0
2 months ago over 1 year ago
C Rust
GNU General Public License v3.0 only MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of gcc-ia16. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-17.
  • Building GCC 1.27 (first GCC with x86 support) (2019)
    1 project | news.ycombinator.com | 1 Apr 2024
    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
    4 projects | news.ycombinator.com | 17 Jan 2024
    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
    6 projects | /r/rust | 13 Mar 2023
    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
    1 project | /r/C_Programming | 13 Feb 2023
    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"
    11 projects | /r/rust | 2 Feb 2023
    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)?
    4 projects | /r/rust | 31 Dec 2022
    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?
    1 project | /r/roguelikedev | 7 Jun 2022
    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
    9 projects | news.ycombinator.com | 29 Jan 2022
    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
    4 projects | /r/linux | 6 Aug 2021
  • how to get started programming a game/program for dos?
    3 projects | /r/dosgaming | 7 Jul 2021
    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

rust_dos

Posts with mentions or reviews of rust_dos. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-17.
  • Djgpp
    4 projects | news.ycombinator.com | 17 Jan 2024
    You do not need segment registers much if you stick to the tiny model. Here is someone compiling Rust to a 16-bit DOS COM executable:

    https://github.com/o8vm/rust_dos

    Not sure what the approach would be for them to expand that to support segments.

    In DJGPP there are macros to allow your protected mode application access physical real-mode addresses (like when you want to write to video RAM). I don't know if IA-16 also does something like that, or if they added far/near keywords to the language like old 16-bit C compilers did (at least the ones I used).

    Free Pascal has helper-functions to work with segment+offset pointer pairs, also without having to modify the language itself. I think that would work well enough in C, but I guess the old method of adding non-standard keywords was seen as slightly more convenient.

  • Who invented file extensions in file names?
    5 projects | news.ycombinator.com | 2 Nov 2023
  • Moving from Rust to C++
    4 projects | /r/rust | 1 Apr 2023
    Demo: https://github.com/o8vm/rust_dos
  • Resources for programs they used back in the 90s/early 00s?
    4 projects | /r/retrogamedev | 25 Jan 2023
    It is probably possible for almost any old platform with some cross-compilation magic, but not anything that will be officially supported as the compiler-makers focus on modern systems. There is for instance an unofficial 16-bit DOS backend for GCC and at least one or two projects to compile Rust to DOS-executables (that I assume use Clang?) (in addition to 32-bit DJGPP(gcc) for MSDOS that I linked to above). Probably are similar projects to target 68k somewhere?
  • Rust DOS: Creating a DOS Executable with Rust
    1 project | news.ycombinator.com | 22 Jan 2021

What are some alternatives?

When comparing gcc-ia16 and rust_dos you can also consider the following projects:

open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.

Animator-Pro - A classic paint program originally for dos

elks - Embeddable Linux Kernel Subset - Linux for 8086

rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality

build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux

crates.io - The Rust package registry

MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes

file - Read-only mirror of file CVS repository, updated every half hour. NOTE: do not make pull requests here, nor comment any commits, submit them usual way to bug tracker or to the mailing list. Maintainer(s) are not tracking this git mirror.

emularity - easily embed emulators

linuxontheweb