open-watcom-v2
rust_dos
open-watcom-v2 | rust_dos | |
---|---|---|
23 | 5 | |
921 | 140 | |
2.6% | - | |
9.9 | 0.0 | |
1 day ago | over 1 year ago | |
C | Rust | |
GNU General Public License v3.0 or later | MIT License |
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.
open-watcom-v2
-
Djgpp
https://github.com/open-watcom/open-watcom-v2
In terms of ISO-complianceness, perhaps don't expect much. It basically C89 (the C99 support is still incomplete), and for C++... most likely not even C++98 - compliant.
-
Popularity of DOS/4GW made Win95 game compat easier, but with higher stakes
> You will also want to start with a 16-bit C compiler like Borland Turbo C or Microsoft C
The parent post mentioned they're going to use OpenWatcom which is an actively developed[0] C and C++ compiler that targets 16bit DOS (among others).
[0] https://github.com/open-watcom/open-watcom-v2
-
#pragma once / header guards / C++ committee.
Despite the lack of feature support, the compiler is still updated to this day, and still does support DOS, Windows, Linux, and OS/2, so it's modern in the sense of maintenance, just not really standards support. If you got further questions, I can send you the Discord link. They are pretty friendly.
-
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.
-
Build C/C++ programs to run on homebrew 286?
If you want to build under Linux, I would recommend you look at Open Watcom. It's the best open source 16-bit x86 C compiler, IMHO.
-
"My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
I have recently found out that Watcom C still exists. And not just exists, but there are plenty of commits.
-
Win16 Retro Development
I should note, that OpenWatcom 2.0[1] is far better for supporting more recent C and C++ code, modern hosts and tooling, but still able to compile into 16 bit code. It is also actively maintained. Instead of MASM I recommend JWasm[2] + Jwlink[3]. Back in time I did a fork[4] of JWasm that has cleaner build system (CMake).
[1] https://github.com/open-watcom/open-watcom-v2
[2] https://github.com/Baron-von-Riedesel/JWasm
[3] https://github.com/JWasm/JWlink
[4] https://github.com/JWasm/JWasm
-
Rendering like it's 1996 - Baby's first pixel
If you want to run this in DOS: the code under src/should actually compile with this OpenWatcom fork via the -za99 flag. MiniFB however will not compile. You'd have to palettize the output pixel buffer to 256 colors and then blit it to 0xa000if you fancy that.
-
Falsehoods programmers believe about undefined behavior
GCC, clang or maybe watcom? You wouldn't find it there (before invention of AGI, but that would be entirely different can of worms).
- Having trouble setting up whonix on Mac OS
rust_dos
-
Djgpp
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?
-
Moving from Rust to C++
Demo: https://github.com/o8vm/rust_dos
-
Resources for programs they used back in the 90s/early 00s?
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
What are some alternatives?
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
Animator-Pro - A classic paint program originally for dos
DOOM - DOOM Open Source Release
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
crates.io - The Rust package registry
em-dosbox - An Emscripten port of DOSBox
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.
abrash-black-book - Markdown source for Michael Abrash's Graphics Programming Black Book
linuxontheweb
emu2 - Simple x86 and DOS emulator for the Linux terminal.
awesome-dos - Curated list of references for development of DOS applications.