ao486_MiSTer
gcc-ia16
Our great sponsors
ao486_MiSTer | gcc-ia16 | |
---|---|---|
21 | 11 | |
235 | 153 | |
1.3% | - | |
5.8 | 0.0 | |
7 days ago | 2 months ago | |
Verilog | C | |
GNU General Public License v3.0 or later | 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.
ao486_MiSTer
-
Reverse engineering the Intel 386 processor's register cell
How about a 486 instead? :)
-
Issues with AO486
Have you checked all the details in https://github.com/MiSTer-devel/ao486_MiSTer ?
- Ao486_MiSTer: i486 core for the MiSTer FPGA gaming system
-
Recently, I came across a video on Youtube by Linus Tech Tips about the PCEm emulator that I found to be cringy and ill-informed. As a computer engineer by education let me explain few core concepts on how emulation works.
You mention "Pentium MMX CPU" a few times in your post, but fail to mention any FPGA solution that can emulate a machine of that class. MiSTer can't do that, the best it can do is a 486 (not just missing MMX, doesn't even have an FPU).
- Exact 486 CPU Performance in Smallest Form Factor
-
Emulate Any ISA Card With A Raspberry Pi And An FPGA
It has already happened: https://github.com/MiSTer-devel/ao486_MiSTer
- Are there FPGA cores for SB16/ET4KW32/NE2K?
-
KEYBCS2
The last processor generation it worked on is the 486, but on a Pentium or newer it always fails with a “Debugging is not allowed” message.
I guessed the reason for that correctly - prefetch queue. Mentions of CUP386 in the comments also brought back more memories of the cracking scene in the late 80s/early 90s. There's some very interesting discussion on SMC vs CPU behaviour here --- in the context of an open-source 486-level SoC core:
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.
- 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?
dosbox-x - DOSBox-X fork of the DOSBox project
open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.
PCem-ROMs - This is a collection of requiered ROMs files for PCem emulator. RIP PCem 2021
build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux
elks - Embeddable Linux Kernel Subset - Linux for 8086
libi86 - Attempt to reimplement non-standard C library facilities (e.g. <conio.h>) used in MS-DOS programs, for IA-16 GCC & ACK ― mirror of https://gitlab.com/tkchia/libi86 • Ubuntu packages for cross-compilation at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://github.com/tkchia/libi86/releases
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
microwatt - A tiny Open POWER ISA softcore written in VHDL 2008
emu2 - Simple x86 and DOS emulator for the Linux terminal.
vISA
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality