
The DOS target is still a supported FreeBASIC target, but it is not shaped like a modern hosted operating system. It normally uses a DJGPP-style toolchain and has platform limits that the compiler and runtime must respect.
Use the DOS build scripts when they are available in the checkout. They encode the current toolchain layout and package expectations better than the old manual DJGPP notes did.
./build_scripts/msdos-build-freebasic.sh
./build_scripts/msdos-test-freebasic.sh
For direct make work, prefer a target triplet rather than old short target names:
make print-config TARGET_TRIPLET=i586-pc-msdosdjgpp
make TARGET_TRIPLET=i586-pc-msdosdjgpp
Most normal compiler and runtime work is usable on DOS, but DOS-specific limits remain important. The DOS runtime does not provide thread support, TCP support is not available there, and audio playback is blocking compared with the more modern hosted ports.