Free Software for DOS
Keyboard- and Mouse-related Utilities

21 Aug 2006

Global Menu:
Go back to Front Page Menus

This page:




 Mouse Copy / Paste utils are listed in Screen Utils.

Command Line Editing, History, Macros, Filename Completion
Also see:
"DOSKEY" an enhanced with command, path and filename auto-completion. Author: Paul Houle (2003). Get (5K) at the Doskey page.
FreeCOM, FreeDOS's replacement, has internal doskey-like features including filename completion. Get it at the Freedos kernel page at SourceForge.
wced, old but compatible. Download

TODDY — Command line editor with filename completion, macros, history, more.

* * * * *

[added 1998-04-15, updated 1999-05-26]

Flexible, rich with features, and well-documented. Listed below are just a few features which help distinguish TODDY from the crowd:

Limitaions: No Win9x LFN support (but works in DOS box otherwise). Editing of recalled long commands in history quirky.

Author: Eric Tauck (1999).

1999-06-04: v6.15.

Download (37K).

DOSED — Command line editor with file name completion, no command macros.

* * *

[updated 2004-11-28]

What is file name completion? If you type in the first couple characters of a filename, and then press DosEd's hotkey (TAB), it will type the rest of the filename in for you. If your files are named similarly, it can provide you with a list of alternatives and you type until you reach the unique character and press TAB again. It also completes path names. DOSED also performs command line editing, has a command history buffer, but does not have command macro or alias capability (a separate alias prog is included with dosed). There are utilities available that perform the individual tasks of DOSED better – but running several TSR programs concurrently can lead to hotkey conflicts or competition for the command line. When loaded in autoexec.bat, DOSED is available in DOS boxes under Win3.1x. In addition, the command history from one DOS session will appear in new DOS windows. Memory requirements: about 3.4K.

-b... Beep when filename is incomplete.
-d... Disable appending '\' to directory names.
-e... Use Emacs-like control keys.
-i... Make 'Insert on' default.
-l... Lowercase letters in completed file names.
-m... Min. number of character for stored lines. Default: -m3
-off. Temporarily disable program. Enable with DOSED.
-q... Quiet. suppress messages.
-r... Remove trailing backslashes (default).
-s... Skip .BAK-files when completing (default).
-u... Uninstall if possible.

Author: Sverre H. Huseby, Norway (1994).

ASM source

Sverre H. Huseby's Old Freeware for MS-DOS and MS Windows.

More in these pages from Sverre H. Huseby.

CmdEdit — Command line editor with filename completion, command macros, Win9x LFN support.

* * * *

[added 1997, updated 2006-08-21]

From the docs:

[CmdEdit]... supplies full editing features to the dos interface; stacks commands and drive/directory pairs for recall; supports definable symbols and variables, and programmable function-key definitions and macros; provides optional autocompletion of commands and file names, along with executable extensions and directories; and enables changing drives and directories simultaneously. Brace expansion and multiple commands on the one line are also supported.

Four COM files are included:

Internal directory commands (e.g., push/pop directory); internal prompt.
No directory commands; no internal prompt.
Directory commands; no internal prompt.
No directory commands; internal prompt.
Usage: CmdEdit [-bcefgiknoqrtwxz] [/u] [/pX] [/lN0]
               [/hN1] [/aN2] [/mN3] [/sN4] [filename]
   * /b    Disable appending backslash when completing directory name
   * /c    Swap cursor type used in insert and over-type modes
   * /e    Empty match will act like history
   * /f    Disable long filename completion
   * /g    Use silent mode
   * /i    Use insert mode
     /k    Keep buffers across DOS Windows sessions
     /n    Force a new install
     /o    Do not install
     /q    Quiet - no installed or status messages
   * /r    Auto recall mode
   * /t    Disable all macro and symbol translation
     /u    uninstall CmdEdit from memory if possible
   * /w    Use alternate error message display
   * /x    Keystrokes are read in via a raw read
   * /z    Disable CmdEdit
   * /p    Set the ignore macro character (default X is ;)
   * /l    Minimum command length to store in buffer (default N0 is 1)
     /h    DOS history buffer size (default N1 is 512 bytes)
     /a    Application history buffer size (default N2 is 64 bytes)
     /m    Macro buffer size (default N3 is 512 bytes)
     /s    Symbol buffer size (default N4 is 512 bytes)
Options marked '*' are also available after installation.
Once installed, the buffer options will display their contents.
In addition, "/s? /m?" will display the bytes used.

Requires DOS 5+ and 80286+. Package includes source code, ASM & C.

Authors: PC Magazine version by Ashok P. Nadkarni (1990). Subsequent extensions by David Abbott and Wayne Davison. Latest revisions by Jason Hood, Australia (2003).

2003-03-21: v3.21.

Download (163K).

Jason Hood's CmdEdit page.

More in these pages from Jason Hood.

FileC — Command line filename completion TSR; support for Win9x LFNs under Win9x.


[added 2001-03-26]

A classic filename / pathname completion tool dating from 1987 and updated (2001)to support Win9x LFNs under Win9x. This TSR is designed to be used either alone or as a complement to DOSKEY-like programs which lack a filename completion function. By default FileC uses the Tab key to complete partially typed filenames on the command line. If more than one possible filename match exists, a Ctrl-D will list all possible matches (invoke FileC with -Q to allow automatic listing of possible matches). The user types more characters until a unique sequence is reached – a second TAB will then complete the filename. Extension exclusion is possible by setting an environment variable. Includes program (FILECKEY) which allows modification of default key bindings. Can be temporarily disabled but no option to uninstall. FileC requires about 4K memory.

  -A      FileC hotkeys are always active
  -B      Suppress beep when errors occur
  -C      Compatibility mode for reading from video memory
  -D      DosEdit compatibility mode
  -Q      Quick dir: if filename is ambiguous, list matching files
  -V      Use DOS instead of ROM calls for writing to display
  -\      Append a backslash when completing directory names

Author: Mike Morearty (2001).

2001-01-09: v2.0.

Download (14K).

Read the manual at the FileC 2.0 page.

NEWCOM — Command line enhancer with many features.

* *

[added 1998-03-29, updated 2004-07-09]

Newcom, a unique and interesting command line extender from France, co-opts too much control of the command line for my liking, but others may prefer its relatively user-friendly design. Loosely modeled on Linux (e.g., virtual consoles, "gpm mouse mode") and bash (e.g., completes any executable name residing in path). Now under GPL.

Quick feature list: Limitations:

Author: Gaël Le Mignot (Kilobug), France (1999).

1999-03-14: v1.1.47.

Downloads & pages:
In English
En Français
newcom.exe (553K)
newcom.exe (570K)
Source and other files
Code source et autres fiches
Newcom page
Page de Newcom


KEY-FAKE — TSR sends keystrokes to programs on startup.
StuffIt — Enhanced TSR keystroke buffer stuffer.

[updated 2006-08-21]

Stuffit [* * * *] and KEY-FAKE [* * *] are TSR keystroke stuffing programs for batch files. These similar programs send keystrokes to the keyboard buffer. Possible uses include feeding a set of commands to an application during initialization. KEY-FAKE is the ageless PC-Mag classic first published in 1985; I generally prefer StuffIt because it offers more options, can handle larger scripts (64K vs. KEY-FAKE's 124 characters), has a help screen listing key codes, and is easily uninstalled from memory.

I most frequently use these programs for answering prompts (e.g., format command) and closing splash screens that some programs use at start up. For example, PaintPro initializes by displaying a system status screen- and then a splash screen that the user must close with an ENTER keystroke (scan code 13). While KEY-FAKE can't handle the more complex start-up, StuffIt can use a time parameter to delay sending the keystrokes until the splash screen appears e.g.,


stuffit +4 13 (= 4 second delay and ENTER keystroke)
stuffit /r (removes stuffit from memory)
Charles Petzold, for PC Magazine
Terje W. Mathisen, Norway



SCANCODE — Flexible TSR keyboard stuffer and key macros util.


[added 1998-07-10, updated 2004-08-28]

From the docs:
SCANCODE can simulate ANY keystroke combination you can type from the keyboard (for example, <Alt>, <CapsLock>, <Shift>-<PrintScreen>, <Ctrl>- <Alt>-<Del>, or just "regular text")...other programs are just able to type "regular text". This is because the other programs use ASCII codes to stuff the Keyboard Buffer, while SCANCODE simulates keyboard hardware interrupts.
If you have more than one SCANCODE in memory at the same time, the first SCANCODE uses approximately 3300 bytes of RAM. Any SCANCODEs you put into memory after the first one only use about 1000 bytes.
SYNTAX: SCANCODE scancode1 [scancode2 ...], where the scancodes are:
  "A string enclosed in quotes"
  A Code Word (F1, Enter, Esc, CapsLk, Home, Right, Reboot, Beep, ...)
  n  -A decimal Scan Code (1-95, 98-127, 224-225 -> "SCANCODE T" for list)
  D  n.n            - DELAY approximately n.n seconds (0.1-3600.9)
  Init n.n          - INITIAL delay at beginning of program
  C  hh:mm[a|p|m|n] - Wait for the CLOCK to be at hour:minute
  K  <key>          - Wait for <KEY> to be pressed on the keyboard
  A                 - Wait for ANY key to be pressed (later refer to as *)
  W  Row,Col "Text" - WAIT for "Text" to appear on screen at Row, Col (0=any)
  W- Row,Col "Text" - WAIT for "Text" to NOT appear on screen at Row, Col
  I  n.n            - Wait for IDLE computer n.n seconds (0.1-3600.9)
  O  n.n            - ONLY wait n.n seconds for next WaitFor{xx} (0.1-3600.9)
  L n     - Keep LOOPing n times (1-65535)
  R       - Keep REPEATing the Scan Codes (infinite LOOP)
  S n     - SPEED - do n Scan Codes at one time (1-20, default=1)
  U       - UNINSTALL from memory any previous SCANCODES
  N       - NO Uninstall allowed for this SCANCODE
  Z / Z+  - SLEEP / WAKE UP the keyboard
  Q       - Be QUIET unless there's an error
  T       - Show the TABLE of decimal Scan Codes
  To hold more than one key down at the same time, put a dash between them.
  Examples: "SCANCODE Ctrl-Alt-Del", "SCANCODE Shift-Tab, Alt-D"

Well documented. Also in package: DELAY.COM

Author: Bret Johnson (1998).

1999-04-23: v5.90.

Download (119K).

More in these pages from Bret Johnson.

KeyPress — Non-TSR, keyboard buffer stuffer.


[added 2004-08-29]

From the docs:
KeyPress...does not hook any interrupt vectors...does not require any memory and does not pose a compatibility problem for any other programs...can only stuff in 16 characters before running out of space in the keyboard buffer.
...should be used from a batch file or can't have the stuffings saved if you use it at the DOS prompt – DOS would read the buffer itself were it not already reading from a batch or script file.
    <string>    :   ASCII to stuff into the keyboard buffer
    //          :   Stuff a "/" (slash) to the buffer. This is needed
                    because "/" is used to delimit special codes.
    /E          :   Stuff an .
    /R          :   Stuff <Enter>.
    /F#         :   Stuff Function-Key #.
    /S#         :   Stuff Shifted-Function-Key #.
    /A#         :   Stuff Alt-Function-Key #.
    /C#         :   Stuff Control-Function-Key #.
    /Cx         :   Stuff Control-x.
    /N###       :   Stuff ASCII character ### (000-255, all 3 digits needed.)
    /Kx         :   Stuff a Kursor Keypad character (0-9, or .+-*/)
    /?          :   Command summary - for quick usage reminders.

Author: Tony McNamara (1991).

1991-03-18: v3.0.

Download (3.8K).

Stuff Keys — Non-TSR, keyboard buffer stuffer.


[added 2004-08-29]

      Usage: stuffkey [string [#xxx]] [/!]

Allows key sequences to be "stuffed" into the keyboard buffer to allow
automatic command entry. Can be used instead of piping as it returns
control to the keyboard when the buffer becomes empty.

Non-keyboard characters and space characters can be entered in decimal as #xxx
Eg. "Hello#032world#002" = "Hello world"

Scan code keys such as function and Alt keys can be prefixed with #255.:
Eg. "#255#061" = F3 key,  "#255#120" = Alt 1 key sequence.

! - Display general program and OzWoz information.

Author: Australian IT Register [formerly OzWoz Consulting Services], Australia (2004).

2004-09-23: Rel 6. One of the OzWoz Utilities, see that listing for download.


DDKEY — Key stroke macro TSR with on-the-fly key definition.

* * * *

[added 2000-02-18]

This smart keystroke macro TSR is great for defining key shortcuts for strings of text that are repeatedly entered in editors or databases. DDKEY implements a popup screen where new key definitions can be entered, recorded, or edited. Adjustable buffer size can range from 1440 to 12960 bytes.

Author: David M. Dibble (1999).

1999-03-21: v2.03.

Download (25K).

Quickey — Keystroke macro processor.

* * *

[added 1998-07-03]

Quickey is a TSR keystroke macro processor that can save your fingers some typing and facilitate navigation within programs. Quickey acts on plain text macro files you create (or you can create macros on the fly). Uses about 11K conventional memory when resident.

Basic usage is simple, e.g.:

If you load Quickey with the file MY.MAC, where MY.MAC is a plain text file containing the following macro definition:
<BEGDEF><AltQ> My long and repetitive text <ENDDEF>

An Alt-Q keystroke will output the string "My long and repetitive text".

Syntax: QK [option]
 /l filepath    Loads a macro file and installs or re-enables QK.
 /s filepath    Saves the current macros to a file. Doesn't alter
                the disable status. QK must be installed first.
 /c filepath    Checks the macro file and reports the minimum size
                required for QK to load it.
 /r             Removes QK and releases memory if possible. Otherwise
                just disables QK.
 /a [+]hh:mm:ss m  Activates a macro (m) at a specified time. Note that
                macro keys may be denoted by naming them, e.g. <AltQ>
                but they must be quoted to DOS; "<AltQ>"
 /d             Disables QK, but leaves installed with current macros.
Usage: press <Alt=>               to Start a macro definition,
             <Alt->               End the definition,
             <the defined key>    Playback (expand) the macro,
             <AltESC>             Abort a definition or expansion,
                                  flushing keyboard buffer.

Notes: Docs could be more informative – and they are missing some available options (use QK2 /? instead). Also note that this program relies on the ALT key for some functions – many programs use the ALT key for menu access.

Author: David Weiss (1995), Suggested by Howard Schwartz.

1995-06-20: v2.02.

Download (19K).

ScanCode Show — Friendly interactive scan code lister.


[Added 2004-08-16]

From the docs: ScanCode Show
...reports scan and ASCII codes returned whenever the int 16h BIOS function is invoked, as well as the value left in the keyboard BIOS, when any valid key combination is used. most useful to programmers, though it's also a toy for the curious. It gives an accurate portrayal of which keystrokes are available on your system, i.e. which combinations are recognized by your keyboard and system BIOS, and which are recognized by int 16h.

Author: Paul Postuma, Canada (1995).

1995-02-05: v2.2.

Download (10K).

EKB (EuroKeyBoard) — Provides access to CP437 characters 80-FFh.

* * * * *

[added 2005-12-09, updated 2006-08-21]

EKB is a TSR that provides instant access to the upper half (128-255 or 80-FFh) of the standard PC character set (code page 437), including letters that do not appear on the US keyboard, and some other useful symbols as well. Copyrighted freeware.

From the docs:
EKB [v1.1] now intercepts the keyboard interrupt by the recommended method (int 15h) for PC/AT keyboards. This probably won't work on an old PC or XT, where you should use the older version 1.02 instead (which hooks int 9 and accesses the BIOS key buffer).

Author: Eric Meyer (1992, 2001).


For AT keyboards
For XT keyboards

Download (5K) from US or UK or India or Australia.

Download (4K) from US or UK or India or Australia.

More in these pages from Eric Meyer.

CTRLCAPS — Turns Shift key into CapsLock toggle or Ctrl key.

* * * * *

[added 2005-12-09, updated 2006-08-21]

CTRLCAPS is a TSR that gives the Caps Lock key a dual function. When pressed together with Shift, it actually toggles Caps Lock. Otherwise, it acts as an extra Ctrl key, making Ctrl-letter combinations easier to type than they are with the standard AT keyboard configuration. Copyrighted freeware.

Author: Eric Meyer (2001).

2001-06-26: v1.3.

Download (3K) from US or UK or India or Australia.

More in these pages from Eric Meyer.

FIXCAPS — TSR makes the shift key work like a typewriter's.

* * * * *

[added 2005-12-09, updated 2006-08-21]

On the IBM PC keyboard, when Caps Lock is on, the Shift key temporarily cancels it, turning uppercase letters back into lowercase. FIXCAPS provides two alternatives, so you may never again inadvertently type tEXT tHAT lOOKS lIKE tHIS. There are two options: (1) Use of Shift with a letter cancels Caps Lock (as on a typewriter); (2) The Shift key has no effect on typing letters while Caps Lock is on. Copyrighted freeware.

Author: Eric Meyer (2001).

2001-06-26: v1.2.

Download (3K) from US or UK or India or Australia.

More in these pages from Eric Meyer.

Shift Toggle — Turns the shift keys into Caps Lock toggles.

* * * * *

[added 2005-12-09]

Shift Toggle is a pair of TSRs that separately turn the keyboard's shift keys into Caps Lock toggles, like a typewriter's. When LSHIFTGL is loaded, a press of the Left-Shift key keeps upper case characters on, as if Caps Lock had been pressed. Pressing Left-Shift a second time restores the original state. RSHIFTGL works the same way, but on Right-Shift only. (Yes, it's possible to load and use both programs simultaneously, but don't – trust us, don't). The download package contains the two .COM executables, and the DEBUG scripts that created them.

Author: Vik Olliver, Mew Zealand (1996), originally for PC Magazine's UK edition.

1996-01-10 release.

Download (2K).


CuteMouse — Mouse driver uses only 3.5K memory.


[added 1998-03-05, updated 2005-09-24]

Save a significant amount of memory, by using this DOS mouse driver. From the docs:
CTMOUSE supports standard PS/2 and Mouse Systems, Microsoft (including Intellimouse/Wheel Mouse) and Logitech serial protocols...CuteMouse supports cursor drawing in all standard graphics and text modes with any screen size. These are automatically detected whenever reset functions are called or the video mode is changed.
CuteMouse has two development branches now. V1.9 branch uses BIOS to handle PS/2 mice. V2.0 branch uses direct hardware access for PS/2 mice, and supports the wheel. Wheel programming info is included in the v2.0 packages.
Usage, all versions:
CuteMouse [Options]
  /P       - force PS/2 mouse mode
  /S[c[i]] - force serial mouse mode at COM port c (1-4) with IRQ line i (1-7)
  /Y       - prevent Mouse Systems mode
  /V       - reverse search: find PS/2 after serial mouse
  /3       - force 3-button mode (for Microsoft and PS/2 mice only)
  /R[h[v]] - horizontal/vertical resolution (h,v=0-9; missing option R, no
             arguments or 0 as argument after R mean auto resolution, missing
             second argument means same value as for first argument)
  /L       - left hand mode (default is right hand mode)
  /B       - cancel run if mouse services are already present
  /N       - load CuteMouse as new TSR, even if CuteMouse is already loaded
             (useful for batch files which unload CuteMouse at end)
  /W       - prevent loading TSR into UMB
  /U       - uninstall driver
  /?       - show this help

Packages contain utils for testing mouse and ports, language modules, docs and source. Only CTMOUSE.EXE (any version) is needed for basic operation.

Author: Daniel Nagy, Hungary (2002, 2003). Suggested by Lars-Erik Sandberg.

1.9 stable
Base installation
1.9.1 alpha 1
Install over 1.9
2.0 alpha 4
Install over 1.9 or 1.91


Go to the CuteMouse Home Page for more info. Even more tech info and source code are at the Project page at Sourceforge.

Go to Top | Front Page ]

©1994-2004, Richard L. Green.
©2004-2006, Short.Stop.