kernel
gcc-ia16
kernel | gcc-ia16 | |
---|---|---|
5 | 11 | |
731 | 158 | |
2.7% | - | |
8.6 | 0.0 | |
5 days ago | 3 months ago | |
C | 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.
kernel
-
Even the simplest possible assembly program will/can have a console window. How exactly?
You might find the source code for FreeDOS of interest for learning more about how the low-level access to the interrupt services worked. Specifically, console.asm installs a character write routine (which calls BIOS INT 10h under the hood).
-
Trying to run FreeDOS off CF Card on 286 homebrew system --- Question about bootloader and drive geometry information
Looking at https://github.com/FDOS/kernel/blob/master/boot/boot.asm, I see %define statements for this type of information, but I'm not sure how these memory locations are normally populated with proper values. Is this something that Sys does when preparing the CF card? Or should the BIOS populate this information when loading the boot loader?
-
"My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
That's where I'm coming from. FreeDOS still gets occasional commits once per few months but is not really developed anymore. Watcom C still seems like it's actively developed, but it's not clear what they are trying to achieve if they are not even interested in what's happening in C/C++ world!
-
How to Port to ARM (Just Curious, not ready to do it yet)
Here's the code for the kernel https://github.com/FDOS/kernel/ You will have to entirely rewrite the Assembly code since it is x86 assembly (Netwide Assembler is great, but not for ARM). Namely boot code is assembly. The kernel does compile under multiple compilers. I'm not too sure if ARM platforms handle this, but I would look at the Linux kernel for boot code on ARM.
-
Are DOS utilities open source.
"DOS" is a little bit of a general term. Microsoft's product, MS-DOS, is not Free Software. But there are other implementations, including FreeDOS, which is compatible with MS-DOS.
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
What are some alternatives?
fdpp - FreeDOS plus-plus, 64bit DOS
open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.
surface-aggregator-module - Linux ACPI and Platform Drivers for Surface Devices using the Surface Aggregator Module over Surface Serial Hub (Surface Book 2, Surface Pro 2017, Surface Laptop, and Newer)
elks - Embeddable Linux Kernel Subset - Linux for 8086
cacule-cpu-scheduler - The CacULE CPU scheduler is based on interactivity score mechanism. The interactivity score is inspired by the ULE scheduler (FreeBSD scheduler).
build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux
rust - Empowering everyone to build reliable and efficient software.
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
static-assertions - Ensure correct assumptions about constants, types, and more in Rust
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
util-linux
emu2 - Simple x86 and DOS emulator for the Linux terminal.