Source code distribution of FreeCOM - a Command line interface program, which substitutes COMMAND.COM
This software is part of the FreeDOS project. Please visit the freedos web page at http://www.freedos.org/ for more information about FreeDOS.
FreeCOM implements the command processor for the DOS kernel. It is usually the first program started by the kernel and provides a command line interface to interactively run other DOS programs.
Additionally, FreeCOM implements a BATCH file processor allowing scripting of commands as well. See http://help.fdos.org/en/hhstndrd/batch/index.htm for more help with batch commands.
Changes since last official release
The COMMAND.COM web site (including source hosting) is at
https://github.com/FDOS/freecom
Bugs may be filed at https://github.com/FDOS/freecom/issues or you may send any bug reports, comments or other info to the one of the FreeDOS mailing lists. For subscription and archives, see:
http://www.freedos.org/forums/
This software has been developed by many people. Older changes are listed along with who provided the change within docs/HISTORY.TXT file and more recent changes can be seen with git log (HISTORY.TXT is only updated periodically).
Please note that this software is separate from the DOS-C kernel and is intended to be compatible with a variety of kernels that implement the DOS API (i.e. it should run on FreeDOS DOS-C kernel and on other DOS kernels such as Microsoft's DOS).
To use this shell, just run the COMMAND.COM file. You can also add this to your CONFIG.SYS file:
SHELL=<shell path><shell filename>
e.g.
SHELL=C:\FREEDOS\COMMAND.COM /P
See http://help.fdos.org/en/hhstndrd/command.htm for description of command line options.
- environment handling with prompt and path support
- directory utilities
- command-line history with doskey-like features + filename completion (TAB)
- batch file processing
- input/output redirection and piping
- loadhigh support
- alias support
- flow control (IF, FOR, GOTO, labels)
- support for error and other messages in multiple languages
a fork of FreeCOM (COMMAND.COM for FreeDOS) to support:
- other platform(s) - like NEC PC-9801 series
- handle DBCS (double-byte character set) parameters correctly
- Japanese message
(yes, all tasks are work-in-progess and unstable...)
DBCS edition works on non-DBCS edition of DOSes (v3.1 or later).
source repository of FreeCOM DBCS edition:
https://github.com/lpproj/freecom_dbcs2/ (branch: dbcs)
original source repository of official FreeCOM:
old http://sourceforge.net/p/freedos/svn/HEAD/tree/freecom/trunk/
new https://github.com/FDOS/freecom
When you want to build freecom_dbcs with OpenWatcom, you need:
- Windows (x86/x64)
- OpenWatcom C++ (I'm using 2.0beta)
- Netwide assembler Win32/Win64 version at https://www.nasm.us/
When you want to build freecom_dbcs with ia16-elf-gcc, you need:
- Linux (i386/amd64) or msys2 on Windows (x86/x64)
- gcc-ia16 at https://github.com/tkchia/build-ia16/
- GNU make, gcc toolchain (for the host environment), nasm, bash
When you want to build freecom_dbcs with Turbo C/C++, you need:
- 100% DOS compatible environment (On DOSBox, you will need to use external command.com because of incompatibility with built-in command processor)
- Borland Turbo C++ 1.01 for IBM PC (I guess you can also build with Turbo C 2.0)
- Netwide assembler (DOS version) - for 16bit DOS platform, latest version is 0.98.39 on http://sourceforge.net/projects/nasm/
Build step is same as the original FreeCOM (copy config.b to config.bat, copy config.std to config.mak, modify config.mak and config.bat as you like, then invoke build.bat
) but build.bat for DBCS editon has some extra options:
- dbcs - build as DBCS edition
- ibmpc - build for IBM PC platform
- nec98 - build for NEC PC-98x1 platform
- generic - build DOS generic platform (without access of platform specific memory area and BIOS)
Specifying a platform (either ibmpc, nec98 or generic) is needed.
For example, to build FreeCOM DBCS edition for PC-98 with XMS-Swap and Japanese messages on Windows with OpenWatcom, build command is:
build -r dbcs nec98 japanese
To build DOS generic non-DBCS FreeCom without XMS-Swap (and english messages), build command is:
build -r generic no-xms-swap
To build FreeCOM DBCS edition for PC-98 with XMS-Swap and Japanese messages on Linux with gcc-ia16:
./build.sh -r dbcs nec98 gcc japanese
For DBCS edition, some works of preceders are merged:
- suzu (http://dos.minashiro.net/freecomj.html)
- codes around DBCS and PC-98
- Japanese translation (and other contributors: guri, Silphire, etc...)
- akm (http://radioc.web.fc2.com/ , http://diarywind.com/blog/e/commandj-11.html)
- Japanese translation