Useful DOS utilities
MS-DOS compatible operating systems often require TSRs for basic functionality, such as memory management or CD-ROM drivers. Many older TSRs, like the drivers included in MS-DOS, often consume large amounts of conventional memory. There are however many free and open-source replacements for these TSRs, which use less base memory and/or add extra functionality. This page lists a number of these utilities.
Contents
Utilities
FreeDOS
Full MS-DOS-compatible operating system. Includes most of the utilities and drivers listed below. Website
UMBPCI
Enables Upper Memory without switching CPU to Virtual 8086 mode. Requires a supported PCI chipset, like the Intel 4x0 series and may have compatibility issues with drivers using DMA. Uses only 200 bytes of base memory. This tool is rather comfortable because it allows Real Mode configurations while still being able to load larger TSRs. An indication for the DMA issues are e.g. disk read/write errors. In this case it it strongly recommended to consult the readme or data corruption may occur. Website
Jemm386 and HimemX
XMS/EMS memory manager, replacement for HIMEM.SYS and/or EMM386.EXE. Website
XMGR
XMS memory manager, replacement for HIMEM.SYS. Website
UIDE
Universal IDE/SATA driver. Provides CD/DVD drivers and a large disk cache up to 4GB. Website
RDISK
Utility for creating very large RAM drives in XMS, up to 2GB. Website
FDAPM
APM/ACPI manager. Provides power management and energy saving funtionality. Can also be used to slow down the CPU, which can be useful with certain speed-sensitive programs and games. Website
4DOS
Command shell with many advanced features, replacement for COMMAND.COM. Website
GNU fileutils
The GNU file utilities (ls, cp, rm, etc..). If you are experienced with Unix or Linux you may prefer these over the standard DOS commands. Website
SETEDIT
Very advanced text editor, replacement for EDIT.EXE. Features include syntax highlighting, screensaver, integrated MP3 player, calculator and much more. Supports fancy text resolutions such as 132x60 (1056x480 px), depending on your graphics card. Website
Example configuration files
Here are some good example startup files. Selecting the first startup option results in the following MEM /C output:
Modules using memory below 1 MB: Name Total Conventional Upper Memory -------- ---------------- ---------------- ---------------- SYSTEM 16,288 (16K) 10,864 (11K) 5,424 (5K) 4DOS 5,392 (5K) 272 (0K) 5,120 (5K) UIDE 5,296 (5K) 0 (0K) 5,296 (5K) IFSHLP 3,968 (4K) 0 (0K) 3,968 (4K) NANSI 3,264 (3K) 0 (0K) 3,264 (3K) CTMOUSE 3,104 (3K) 0 (0K) 3,104 (3K) Free 678,608 (663K) 642,688 (628K) 35,920 (35K) Memory Type Total Used Free ---------------- -------- -------- -------- Conventional 639K 11K 628K Upper 61K 26K 35K Reserved 324K 324K 0K Extended (XMS) 261,056K 131,599K 129,457K ---------------- -------- -------- -------- Total memory 262,080K 131,960K 130,120K Total under 1 MB 700K 37K 663K Largest executable program size 628K (642,672 bytes) Largest free upper memory block 21K ( 21,680 bytes) FreeDOS is resident in the high memory area.
(Please note I just copied these from my 440BX system, they will probably not work on yours without modifications)
CONFIG.SYS
REM 0x12 = 80x50 SCREEN =0x12 REM country code, codepage, country file COUNTRY =031,437,C:\DOS\BIN\COUNTRY.SYS VERSION =6.22 BREAK =ON SWITCHES=/E MENUCOLOR=7,0 MENUDEFAULT=1 MENU 1 - Load FreeDOS (XMS) MENU 2 - Load FreeDOS (XMS + EMS) MENU 3 - Load Windows 2000 MENU 9 - Load FreeDOS without drivers 3?DEVICE=C:\GRUB\GRUB.EXE --config-file="root (hd0,0);chainloader /ntldr" REM /I= = Include region 1?DEVICE=C:\DOS\BIN\UMBPCI.SYS /I=E000-EFFF REM /W = Load in workspace buffer REM /Nn = n XMS handles 1?DEVICE=C:\DOS\BIN\XMGR.SYS /W /N128 REM nM = n MB EMS REM I= = Include UMB region REM X= = Exclude UMB region 2?DEVICE=C:\DOS\BIN\JEMMEX.EXE 8M I=TEST X=TEST 12?DOS =HIGH,UMB 12?DOSDATA =UMB 12?BUFFERSHIGH =4 12?FILESHIGH =40 12?STACKSHIGH =9,256 12?LASTDRIVEHIGH=Z REM /D: = CD device driver REM /H = Load to HMA REM /F = Use large (fast) cache blocks REM /Sn = n MB cache REM /Rn = Use memory above n MB 1?DEVICEHIGH=C:\DOS\BIN\UIDE.SYS /D:UIDECD01 /H /F /S128 /R63 2?DEVICEHIGH=C:\DOS\BIN\UIDE2.SYS /D:UIDECD01 /H /F /S128 /R63 12?DEVICEHIGH=C:\DOS\NET\IFSHLP.SYS REM /Txx= Set xx as text mode REM /P = Pass unknown requests to CON: 12?DEVICEHIGH=C:\DOS\BIN\NANSI.SYS /P /T5C /T5E /T6A /T70 /T71 /T72 /T73 /T74 /T75 REM /E: = Environment size REM /P= = Autoexec.bat location 12?SHELLHIGH=C:\DOS\BIN\4DOS.COM C:\DOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT 9?SHELL =C:\DOS\BIN\4DOS.COM C:\DOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT
AUTOEXEC.BAT
@ECHO OFF SET /R C:\DOS\ENV\DEFAULT.VAR REM -h = Human readable file size REM -a = Show all files REM -G = Do not show user group REM -X = Sort by extension ALIAS LS=*LS --color=auto -haGX ALIAS REBOOT=FDAPM WARMBOOT ALIAS HALT=FDAPM POWEROFF ALIAS SPINDOWN=FDAPM SPINDOWN BREAK ON IF "%CONFIG%"=="9" GOTO NODRIVERS LH DIRCOLORS -b C:\DOS\ENV\DIRCOLOR.CFG CALL YMF719 REM FastVid 001 CALL FV 0 REM CuteMouse REM /P = PS/2 port REM /3 = Three-button mouse IF "%CONFIG%"=="1" LH CTMOUSE /P /3 REM Logitech mouse driver REM PS2 = PS/2 port REM Sn = Speed n IF "%CONFIG%"=="2" LH MOUSE PS2 S05 LH FDAPM APMBIOS REM $P = Current directory in uppercase REM $g = > PROMPT $P$g REM Rate 32 = 30 cps REM Delay 1 = 1/4 sec MODE CON: RATE=32 DELAY=1 CLS :NODRIVERS