FreeCOM

Revision as of 09:33, 8 March 2024 by Jim Hall (talk | contribs) (Copy/paste from old wiki (pieces at a time))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

FreeCOM is the standard FreeDOS command shell that replaces COMMAND.COM from standard DOS.

The main duty of FreeCOM is to prompt the user to enter commands, which are interpreted, processed directly by FreeCOM or executed as executable files.

Those commands processed by FreeCOM directly are called Internal Commands. Non-internal commands which cannot be processed by FreeCOM directly are called External Commands, because FreeCOM will search for files equally named as typed-in.

Besides to implement certain commands FreeCOM offers other features.

Command line usage

COMMAND.COM [ path [ console ] ] [{ option }] [ '/' ( K | C ) commandline ]

If present, the first non-option argument specifies the location in which FreeCOM resides. This location is later stored in the environment variable COMSPEC. Since DOS3+ this option is no longer necessary to find the shell invoked during the boot process, but it may be used to let the system boot a primary shell from one location, but use a shell of the same version from a different location later on.

One shallt not point to a RAMdisk at this time, because FreeCOM needs to reload certain information relatively early during execution, before AUTOEXEC.BAT had been executed, in which, normally, FreeCOM is copied into the RAMdisk.

For convinience FreeCOM checks, if at the given location a FreeCOM exists and is accessable, if not, the given location is ignored. Also, the standard requires to specify a path only, but FreeCOM accepts an absolute filename, so accepting that FreeCOM is not necessarily named COMMAND.COM.

The second non-option argument, if present, specifies the console FreeCOM shall enable. This setting is system-wide and is not limited to FreeCOM or just this particular process tree. In its result, this argument is identical to the CTTY command.

FreeCOM knows the following options:

FreeCOM command line options
Option Meaning
/? Issues a help screen, then exists
/! Enable/disable debugging support, if compiled to FreeCOM
/Y Enables trace/single step mode, deacticated when the user prompt has been reached
/D Disables to parse AUTOEXEC.BAT, even if the /P option is present (usually set by the kernel, when F5 had been pressed during bootup)
/F Enables autofail of Critical Errors; then instead of displaying the Abort/Retry/Ignore/Fail dialog, Critical Errors are automatically answered with Fail
/P Installs a primary copy of FreeCOM. The option may have an argument to specify an alternate name for the AUTOEXEC.BAT script, such as /P:FDAUTO.BAT. This primary shell cannot be terminated with the EXIT command and always executes the AUTOEXEC.BAT script before any other command.
/E Sets another size of the environment segment (such as such as /E:1024) in which all the environment variables are stored
/L Sets the size of the internal command buffer (This option is ignored currently, the internal buffer always defaults to 512 bytes)
/U Sets the size of the internal user input buffer (This option is ignored currently. The input buffer always defaults to 255 bytes, which is the maximum)
/LOW Forces to load FreeCOM low (Currently this option has no effect, because no part of FreeCOM is loaded high)
/MSG Installs the message server (Because the message server is not used nowadays, this option forces to permanently load FreeCOM's messages into memory)
/SWAP Toggles, if to default to swapping or not; due to different default values of this internal flag, it is recommended to always prefix the option with '+' to enable or '-' to disable swapping

The options /K and /C are special cases and do not behave as normal options does. They are exclusive and all characters at the right side of such option (except an optional argument sign) specify a command to execute, e.g.: /C DIR /s, /C=DIR /s, and /CDIR /s do behave exactly the same and execuate the command DIR /s.

If these options are used in conjunction with the /P option, the AUTOEXEC.BAT script is executed prior executing the specified command.

In opposite to /K the /C option does not enter the interactive shell prompt after executing the specified command unless the /P options is present, too.

Boolean options, which can only be enabled or disabled, may be prefixed by '+' to enable or '-' to disable it.