Hey boobies, there's no need to get abusive. If you don't use Cygwin, this might not make sense. Anyway, here's what I came up with.
FAUcc can produce 16-bit code. It understands GCC-style inline assembly.
I've got it to compile by
a) adding a small missing function to scan.l:
Code: Select all
#if defined(__CYGWIN__)
#define strtold(a,b) ((long double)strtod((a),(b)))
#endif
Since the scanner uses 2 1MB buffers on the stack, I've had to
b) run configure (after calling autoreconf --install --force of course) this way, else cc1 produces a segmentation fault:
Code: Select all
./configure LDFLAGS="-Wl,--stack,8388608"
I couldn't find the "official" sources, however, as the download link on FAUcc's homepage was dead or wrong. I've instead downloaded something from the Ubuntu package development site:
https://launchpad.net/ubuntu/+source/fa ... urce-files
Specifically, the original source, wherever it is from:
https://launchpad.net/ubuntu/+archive/p ... rig.tar.gz
By accident, I also found a Masters Thesis "Implementation of a 16 bit BIOS" (
PDF) that uses FAUcc + LD linker scripts for implementation of such a BIOS.
So, there you have a native compiler for Linux and Cygwin that can produce 16 bit (assembly) code!
