Open-source, free, multi-platform BASIC compiler, with syntax similar MS-QuickBASIC (including the GFX statements), that adds new features such as pointers, unsigned data types, inline assembly, a pre-processor and many others.
First, in response to tespro below, large serious compilers use lots of memory and the way to get that in DOS is by the DPMI service (whatever that is) that makes high memory available to programs and data. Windows includes that and Linux/Unix makes high memory available, but DOS doesn't (FreeDOS does, I think). So a compiler like fbc or djgpp's gcc needs a DPMI add-on to work in pure DOS. It's available as one of the djgpp files from delorie.com, and I think it needs to be installed by the config.sys boot script. The instructions should be on the delorie website. I like to compile my own version of such projects and stash them in /usr/local, but I found a problem with compiling FreeBASIC. It wants ffi.h and I just built and installed libffi-3.2.1. The header wasn't found. I dug and found that this lib release installs ffi.h in an odd place. It makes a folder, /usr/lib/libffi-3.2.1/include and puts the two created headers there. I copied them to /usr/include and the compilation proceeded ok. Haven't tried the actual compiler. I think I'd rather have the entire package coded in a standard language like C or C++ instead of like Ada, with a component that must be built with self-compilation by a previous version. I'm also not seeing that there's a test suite to be run by "make check" to make sure everything's working correctly. That would inspire confidence in users who might want to use FreeBASIC for business and other serious purposes. Hey, I've built new versions of the GCC compilers a number of times, always fun to see a build run quite cleanly. Speaking of standards compliance, the program statement for i=1 to 4:print i;" ";:next should leave 3 spaces between the positive numbers. In testing various Basics, I've seen everything from 2 to 8 spaces between numbers. Standards compliance is kinda scarce in Basic. You wouldn't find that inaccuracy in a language implementation for grownups. I'm rating the fbc pages mediocre for hiding the source, and the rest of it is pretty good.