Bruce's C Compiler ================== * Introducton * General Notes * Porting Notes Introduction ============ Bruce's C compiler sits somewhere between Desmet-C and DJGPP. - not currently maintained - scant documentation. Read the source, Luke. + cross-compile 16-bit DOS executables from Linux. + more complete C library than Desmet-C. + much smaller than DJGPP or Watcom. Supported memory models: * small .exe 64k code + 64k data <gopher://gopherpedia.com/0/X86_memory_models> General Notes ============= dos.zip is 16-bit real mode hosted. win32.zip is 32-bit hosted. It requires HXRT to run on DOS. HXRT <https://github.com/Baron-von-Riedesel/HX> Porting Notes ============= * The -ansi option can be helpful. * If possible, compile and test the software with DJGPP first. DJGPP does a better job of producing useful errors, both at compile and run time. This can save a lot of work. * Beware of long arguments. fseek is a good example: FAIL: fseek(fp, 0, SEEK_END); /* always returns an error */ PASS: fseek(fp, 0L, SEEK_END); /* ahh, much better */ Apparently without the L the high bits are random instead of zero, resulting in absurdly large file offsets. I am lucky it didn't cause FAT corruption. :-)