πŸ’»

MS-DOS

C:\> _
The command line that ran a generation of PCs
1981 – 2000
Essential DOS Commands

MS-DOS was entirely keyboard-driven. Every action β€” creating files, managing directories, formatting disks, configuring the system β€” was accomplished by typing a command at the C:\> prompt and pressing Enter. Knowing these commands wasn't just useful; it was mandatory for anyone who wanted to use a PC in the 1980s and early 1990s. Internal commands were built into COMMAND.COM; external commands lived as .COM or .EXE files in C:\DOS.

DIR
DIR [path] [/P] [/W] [/S]
Lists files and directories. /P pauses after each screen. /W shows a wide listing. /S recursively searches subdirectories. The workhorse command β€” most DOS sessions started here.
CD / CHDIR
CD [path] | CD .. | CD \
Changes the current directory. CD .. goes up one level. CD \ jumps to the root. Without an argument, displays the current path. Navigation before GUI file managers.
MD / MKDIR
MD dirname | MKDIR dirname
Creates a new directory (subdirectory). MS-DOS 2.0 introduced subdirectories in 1983 β€” before that, all files lived in the root. Nested paths like MD C:\GAMES\DOOM were supported.
RD / RMDIR
RD dirname
Removes a directory. The directory must be empty β€” no files or subdirectories β€” before RD will work. Forgetting this and getting "Invalid path, not directory, or directory not empty" was a rite of passage.
COPY
COPY source [dest] | COPY *.TXT A:
Copies files. Supports wildcards (* and ?). Can concatenate files: COPY file1+file2 combined. Can copy to devices: COPY file.txt PRN prints the file. The most-used file operation command in DOS.
DEL / ERASE
DEL filename | DEL *.BAK
Deletes files. No Recycle Bin β€” deleted files were gone (though recovery was possible with Norton UnErase before the disk clusters were overwritten). DEL *.* asked "Are you sure (Y/N)?" β€” one of DOS's few confirmation prompts.
REN / RENAME
REN oldname newname
Renames a file. Wildcards work for batch renaming: REN *.TXT *.BAK renames all .TXT files to .BAK. Could not move files between directories β€” for that you needed COPY then DEL.
TYPE
TYPE filename
Displays the contents of a text file on screen. Scrolls without pausing β€” combine with MORE for paged output: TYPE README.TXT | MORE. Essential for reading NFO files, text documents, and configuration files.
MORE
MORE < file | command | MORE
Pipes output through a pager β€” displays one screen at a time, waiting for a keypress before continuing. "-- More --" at the bottom of the screen meant you pressed any key to see the next page. External command (MORE.COM).
FIND
FIND "string" filename [/I] [/N]
Searches for a text string in files. /I ignores case. /N shows line numbers. /V shows lines that do NOT contain the string. Primitive by modern standards but essential for searching config files and logs. External command.
SORT
SORT [/R] < input | DIR | SORT
Sorts lines of text alphabetically. /R reverses the sort order. Commonly piped after DIR to get alphabetical file listings. Can sort by column: SORT /+20 sorts starting from column 20.
FORMAT
FORMAT A: | FORMAT C: /S
Formats a disk, creating the FAT file system and checking for bad sectors. /S makes the disk bootable by transferring system files. Formatting C: was terrifying β€” it erased everything. "Reformat the hard drive" was the nuclear option for fixing a broken system.
FDISK
FDISK [drive]
Partitions a hard disk β€” creates, deletes, and manages disk partitions before formatting. Required before FORMAT on a new hard drive. Running FDISK on the wrong drive deleted all data instantly. Considered an advanced/dangerous command that most users never touched.
EDIT
EDIT [filename]
Full-screen text editor introduced in MS-DOS 5.0 (1991). Replaced EDLIN (the nightmarish line editor). Blue background, mouse support, menus via Alt key. Used for editing CONFIG.SYS and AUTOEXEC.BAT. Based on the QBasic IDE.
DEBUG
DEBUG [filename]
A machine-code debugger and hex editor. Could assemble x86 instructions directly, disassemble programs, read/write disk sectors, and patch executables. Used by hackers and sysadmins to fix corrupted boot sectors and patch software. A power tool that required deep knowledge to use safely.
ATTRIB
ATTRIB [+/-][R|A|S|H] filename
Sets or clears file attributes: Read-only (R), Archive (A), System (S), Hidden (H). Hidden and System files didn't appear in DIR listings by default. Used to protect system files and hide sensitive data. Essential for making bootable disks.
XCOPY
XCOPY src dest [/S] [/E] [/A]
Extended COPY β€” copies entire directory trees. /S copies subdirectories. /E copies empty subdirectories too. /A copies only files with the archive bit set (modified since last backup). The basis of many homemade backup scripts. External command; significantly more capable than COPY.
MEM
MEM [/C] [/D] [/F]
Displays memory usage. /C shows all programs loaded in memory and their size. /F shows free memory areas. The first thing to run when a program complained "Insufficient memory." The output revealed exactly how your precious 640K was allocated and where memory could be freed.
CONFIG.SYS & AUTOEXEC.BAT

Every time a DOS PC booted, it read two critical text files before presenting the prompt: CONFIG.SYS and AUTOEXEC.BAT. Getting these files right was the central challenge of DOS system administration. Too few buffers and disk access was slow. Too many files open and programs crashed. Wrong memory manager settings and you'd lose precious kilobytes. Optimizing these two files was an art form that spawned books, magazine columns, and entire utilities dedicated to helping you squeeze out every last free byte of conventional memory.

C:\CONFIG.SYS
REM ── Memory managers ──────────────────────────────────
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMS

REM ── System settings ────────────────────────────────────
FILES=30
BUFFERS=10
STACKS=0,0

REM ── Drivers loaded into UMBs (Upper Memory Blocks) ────
DEVICEHIGH=C:\DOS\ANSI.SYS
DEVICEHIGH=C:\DOS\SETVER.EXE
LineWhat It Does
DEVICE=HIMEM.SYSLoads the Extended Memory Manager (XMS). Required to access any memory above 1MB. Must be first β€” every other memory tool depends on it. Enables the High Memory Area (HMA, the first 64KB above 1MB).
DEVICE=EMM386.EXE NOEMSActivates the Upper Memory Block (UMB) manager. NOEMS disables Expanded Memory emulation (EMS), freeing more UMB space for drivers. With this loaded, DEVICEHIGH and LOADHIGH commands work. The crucial enabler of memory optimization.
DOS=HIGH,UMSTells DOS to load itself into the High Memory Area, freeing ~45KB of conventional memory. UMS enables Upper Memory Block support. Together with EMM386, this was the single most impactful optimization β€” recovered space that every program competed for.
FILES=30Maximum number of simultaneously open file handles. Default was 8 β€” wildly insufficient for any real application. WordPerfect recommended 20–30. Too high wasted conventional memory (each handle cost ~48 bytes in the file table).
BUFFERS=10Disk sector cache buffers in conventional memory. More buffers = faster disk access but less free RAM. With SMARTDRV loaded from AUTOEXEC.BAT, this could be set low (10) since SMARTDRV provided a superior disk cache.
STACKS=0,0Disables the hardware interrupt stack frames. Default was STACKS=9,128 which consumed over 1KB. Setting to 0,0 recovered that memory. Safe on most hardware; some older ISA cards required non-zero values. A popular optimization tip.
DEVICEHIGH=ANSI.SYSLoads the ANSI terminal driver into a UMB instead of conventional memory. ANSI.SYS provided ANSI escape code support for colored text and cursor positioning β€” essential for BBS software and any terminal emulator. Without HIMEM+EMM386+DOS=HIGH, this command was unavailable.
C:\AUTOEXEC.BAT
@ECHO OFF
PROMPT $P$G
PATH=C:\DOS;C:\WINDOWS;C:\UTILS
SET TEMP=C:\TEMP
SET BLASTER=A220 I5 D1 H5 P330 T6

REM ── Load resident utilities into UMBs ─────────────────
LH C:\DOS\MSCDEX.EXE /D:MSCD001
LH C:\DOS\SMARTDRV.EXE
LH C:\MOUSE\MOUSE.COM
LineWhat It Does
@ECHO OFFSuppresses the display of each command as it executes. The @ prevents ECHO OFF itself from being displayed. Without this, booting would scroll a wall of commands across the screen. Every clean AUTOEXEC.BAT started with this line.
PROMPT $P$GSets the command prompt to show the current drive and path followed by >. Default DOS prompt was just C> β€” not very useful. $P = current path, $G = the > character. The result: C:\GAMES\DOOM> instead of C>. Every power user set this.
PATH=C:\DOS;C:\WINDOWS;...Sets the directories DOS searches for executable files. Without a PATH, you could only run programs in the current directory. With PATH, typing EDIT anywhere found C:\DOS\EDIT.COM. Semicolons separate directories; order matters β€” first match wins.
SET TEMP=C:\TEMPTells applications where to write temporary files. Without TEMP set, programs wrote temp files to the current directory or root β€” cluttering your disk. Pointing it to a dedicated C:\TEMP directory kept things organized. Some apps required TEMP to exist before they'd run.
SET BLASTER=...Sound Blaster environment variable. A220 = port address 220h, I5 = IRQ 5, D1 = DMA channel 1, H5 = High DMA, P330 = MIDI port, T6 = card type (SB16). Games read this to configure audio. Getting these settings wrong meant no sound or system hangs on exit.
LH MSCDEX.EXE /D:MSCD001Loads the Microsoft CD-ROM Extension into Upper Memory (LH = LoadHigh). Required for CD-ROM access β€” without it, you had no D: drive. The /D: parameter must match the device driver label in CONFIG.SYS. CD-ROMs were luxury items in the early 1990s.
LH SMARTDRV.EXELoads the disk cache utility into Upper Memory. SMARTDRV created a RAM cache for disk reads (and optionally writes), dramatically speeding up applications. In write-back mode (dangerous if you powered off without flushing), disk writes were also cached. Essential for Windows 3.1 performance.
The 640K Barrier
640 KB
Conventional memory β€” the precious limit
384 KB
Reserved for video, ROMs, and adapters
~45 KB
freed
By loading DOS into HMA
8086
CPU with 20-bit address bus = 1MB maximum

The IBM PC's original designers in 1981 made a fateful decision: the Intel 8088 CPU's 20-bit address bus allowed a maximum of 1 megabyte of addressable memory. Of that 1MB, only the bottom 640KB was available for programs β€” the rest was reserved for the video display, ROM BIOS, and expansion card firmware. Bill Gates' apocryphal quote "640K ought to be enough for anybody" became one of computing's most famous (misattributed) remarks. Whether he said it or not, it captured exactly what happened: 640K rapidly became desperately insufficient.

0 – 640 KB
Conventional Memory
The precious 640K. DOS itself, device drivers, TSRs (Terminate-and-Stay-Resident programs), and the running application all competed for this space. Every kilobyte spent on drivers and utilities was a kilobyte stolen from your game or word processor.
640 – 768 KB
Video Memory (VGA/EGA)
Display adapter RAM β€” the VGA frame buffer. Text mode used only a few KB; graphics modes used more. Memory managers could sometimes "fill the gaps" in this area to create UMBs (Upper Memory Blocks) for loading drivers.
768 – 960 KB
Adapter ROM / UMBs
Network card ROMs, SCSI BIOS, CD-ROM firmware. Unused sections of this area could be claimed by EMM386.EXE as Upper Memory Blocks (UMBs) β€” used to load device drivers high with DEVICEHIGH and TSRs with LOADHIGH/LH, freeing conventional memory.
960 KB – 1 MB
BIOS ROM
The system BIOS β€” Power-On Self Test, disk I/O, keyboard, video services. Cannot be reclaimed or moved. The "shadow RAM" trick copied the BIOS ROM into faster RAM at the same address to speed up BIOS calls.
1 MB – 64 MB+
Extended Memory (XMS)
Available on 286+ machines. Only accessible in protected mode β€” DOS programs running in real mode couldn't touch it directly. HIMEM.SYS provided the XMS API. Windows 3.x ran applications here. DOS programs used it only via XMS calls (disk cache, RAMDRIVE, etc.).
Bank-switched
Expanded Memory (EMS)
A pre-286 hack: a 64KB "window" in the 640–1MB range mapped to 16KB banks of memory on an EMS card (or emulated by EMM386). Lotus-Intel-Microsoft spec (LIM EMS). Allowed Lotus 1-2-3 and WordPerfect to access >640KB. Superseded by XMS on 386+ machines.
Memory Managers
HIMEM.SYS
Included with MS-DOS 5.0+
Microsoft's Extended Memory Manager. Provided the XMS (eXtended Memory Specification) API and unlocked the High Memory Area (HMA) β€” the first 64KB above 1MB. Required to use DOS=HIGH which moved DOS itself out of conventional memory, freeing ~45KB. The foundation of all DOS memory optimization.
Free with DOS
EMM386.EXE
Included with MS-DOS 5.0+
Ran in protected mode (386+ required) to create Upper Memory Blocks from unused address space in the 640–1MB range. Enabled DEVICEHIGH and LOADHIGH commands. Could also emulate EMS for legacy programs via the RAM parameter instead of NOEMS. Choosing NOEMS vs RAM vs a specific memory frame was the subject of endless config tweaking.
Free with DOS
QEMM-386
Quarterdeck Office Systems β€” ~$60-100
The most popular third-party memory manager. QEMM was smarter than EMM386 at finding available UMB space β€” it could "stealth" ROM by remapping it, recovering more upper memory than Microsoft's tools. Included OPTIMIZE, an automated configuration wizard that rebooted your system multiple times to measure exactly how each driver should be loaded. Many users swore by it.
Commercial
386MAX
Qualitas β€” QEMM's main competitor
Competed directly with QEMM. Included its own optimization wizard (MAXIMIZE). Some users found it freed slightly more memory than QEMM on certain hardware configurations; others found the reverse. The QEMM vs 386MAX debate was a constant topic in PC magazines and BBS technical conferences throughout the early 1990s.
Commercial
Legendary DOS Software
WordPerfect 5.1
1989 β€” WordPerfect Corporation
The dominant word processor of the late 1980s and early 1990s. Ran on a stark blue screen with no visible menus β€” all functionality was hidden behind function keys (F1–F10, shifted, ctrl'd, and alt'd). A laminated keyboard template was required. "Reveal Codes" (Alt-F3) showed the underlying format codes. Despite its steep learning curve, it was extraordinarily powerful and beloved by secretaries and lawyers who memorized its 200+ keyboard shortcuts.
Office Standard
Lotus 1-2-3
1983 β€” Lotus Development Corporation
The spreadsheet that made personal computers indispensable for business. Press "/" to access the menu tree; every action was a sequence of keystrokes like /WGC (Worksheet Global Column-width). So influential that it defined the cell reference syntax (A1, B2) and formula conventions that Excel still uses today. It was the "killer app" that drove IBM PC sales in the mid-1980s and single-handedly killed VisiCalc.
Killer App
dBASE III+
1985 β€” Ashton-Tate
The dominant database platform for DOS PCs. Operated via a "dot prompt" (.) where you typed commands and queries directly. Millions of custom business applications were built in dBASE's programming language. The .DBF file format it created is still used in geospatial software and legacy business systems today. Ashton-Tate's failure to deliver dBASE IV reliably opened the market to competitors like FoxPro and Paradox.
Database
Norton Utilities
1982 β€” Peter Norton Computing
The essential DOS toolkit. Began as Peter Norton's personal collection of disk recovery tools and grew into the most famous utility suite in personal computing history. Key tools: UnErase (recover deleted files), Speed Disk (disk defragmenter), SI (System Information), Norton Commander (file manager). The "Peter Norton handshake" logo became one of the most recognizable brands in software.
Essential Toolkit
PC Tools Deluxe
1987 β€” Central Point Software
Norton Utilities' main competitor. Included a full desktop shell, file manager, undelete, disk backup, anti-virus, and a memory-resident popup organizer. The backup component (PC Backup) was considered superior to Norton Backup by many users. Central Point also made Copy II PC, the most widely used floppy disk copy-protection bypass tool.
Utility Suite
DOOM
1993 β€” id Software
The game that required you to upgrade your PC. Required a 386DX or better and 4MB RAM β€” a serious investment in 1993. id Software distributed episode 1 free as shareware, creating the shareware model that defined 1990s game distribution. Network deathmatch via IPX/SPX caused IT departments nationwide to ban it from office networks. DOOM's WAD file format enabled an enormous modding community that continues today.
Defining Game
QBasic
1991 β€” Microsoft (included with DOS 5.0)
The programming environment that shipped free with every copy of DOS 5.0, teaching millions of people to write software. A full IDE with syntax highlighting, debugging, and line-based execution. Came with sample programs including GORILLAS.BAS (two gorillas on skyscrapers throwing explosive bananas) and NIBBLES.BAS (a snake game). For a generation of programmers, QBasic was their first language.
Free with DOS
PKZip / PKUnzip
1989 β€” Phil Katz (PKWARE)
Phil Katz created the ZIP format after a legal dispute with the creators of ARC (the previous compression standard). PKZIP's compression was better than ARC, it was fast, and Katz released it as shareware, making it free to use. It swept the BBS world in months. The ZIP format became the universal standard for file distribution β€” still the most widely used archive format 35 years later. Katz died in 2000; his legacy endures in every .zip file.
Universal Standard
The DOS Boot Sequence

Every time you pressed the power button or hit Ctrl+Alt+Del, DOS went through the same precise sequence of steps before presenting the C:\> prompt. Understanding this sequence was essential for troubleshooting β€” if something went wrong, knowing which step had failed told you exactly where to look. The sequence was elegant in its determinism: the same steps, in the same order, every single time.

1
Power On β†’ BIOS POST
The CPU executes the first instruction from the BIOS ROM at address FFFF0h. BIOS runs Power-On Self Test: checks CPU registers, tests RAM (counting up memory onscreen), verifies keyboard, identifies installed hardware. Beep codes signal errors. This is firmware β€” entirely independent of DOS.
β–Ό
2
BIOS Searches Boot Device
BIOS checks boot devices in configured order (usually A: then C:). Reads sector 0 of the first bootable device into memory at 0000:7C00h and jumps to it. This is the Master Boot Record (MBR) β€” 512 bytes containing a small bootstrap program and the partition table.
β–Ό
3
MBR Loads DOS Boot Sector
The MBR's bootstrap code reads the partition table, finds the active (bootable) partition, reads the Volume Boot Record from sector 0 of that partition into memory, and jumps to it. The VBR knows where to find the DOS system files on this specific partition.
β–Ό
4
IO.SYS / IBMBIO.COM Loaded
The VBR loads IO.SYS (MS-DOS) or IBMBIO.COM (PC-DOS) β€” the lowest-level DOS component. IO.SYS initializes default device drivers (CON, AUX, PRN, CLOCK$) and establishes the basic I/O infrastructure. It must be the first file on the disk and marked with Hidden + System + Read-Only attributes.
β–Ό
5
MSDOS.SYS / IBMDOS.COM Loaded
IO.SYS loads MSDOS.SYS β€” the DOS kernel providing system calls (Interrupt 21h), file system management (FAT), and process control. Together IO.SYS and MSDOS.SYS form the core operating system. In DOS 7.0 (Windows 95), these were merged into IO.SYS.
β–Ό
6
CONFIG.SYS Processed
DOS reads and processes CONFIG.SYS line by line. DEVICE= lines load drivers in order. Memory manager order is critical: HIMEM.SYS must come before EMM386.EXE. In DOS 6+, pressing F8 stepped through CONFIG.SYS line by line; F5 skipped it entirely β€” invaluable for troubleshooting a broken config.
β–Ό
7
COMMAND.COM Loaded
The command interpreter is loaded. COMMAND.COM has two parts: a resident portion (stays in memory to handle Ctrl+C, critical errors, and reload the transient portion) and a transient portion (handles commands, can be overwritten by programs and reloaded from disk). COMMAND.COM provides all internal commands: DIR, COPY, DEL, etc.
β–Ό
8
AUTOEXEC.BAT Executed
COMMAND.COM finds and runs AUTOEXEC.BAT as a batch file. Each line executes in sequence: setting the prompt, establishing the PATH, loading TSRs (LH MSCDEX, LH SMARTDRV, mouse driver). If AUTOEXEC.BAT doesn't exist, DOS prompts for the date and time instead.
β–Ό
9
C:\> Prompt Appears
AUTOEXEC.BAT completes, COMMAND.COM displays the prompt (formatted per the PROMPT setting), and the system awaits user input. Total boot time on a fast 486: 10–30 seconds. On a slow 286 with many drivers: 45–90 seconds. The familiar C:\> cursor blinks, ready for commands.
MS-DOS Timeline
1981
PC-DOS 1.0 Ships with IBM PC
Microsoft purchases QDOS ("Quick and Dirty Operating System") from Seattle Computer Products for $50,000 and licenses it to IBM as PC-DOS 1.0. IBM's fateful decision not to demand exclusivity allows Microsoft to license the same OS to other PC manufacturers as "MS-DOS" β€” the most consequential business decision in personal computing history.
1982
MS-DOS 1.25 β€” OEM Licensing Begins
Microsoft begins licensing MS-DOS to other PC manufacturers (OEMs): Compaq, Tandy, Zenith, and dozens more. Each OEM may customize the OS slightly. The IBM-compatible PC market explodes as customers realize they can buy a cheaper non-IBM PC that runs all the same software. Microsoft's per-copy royalty model generates a torrent of revenue.
1983
MS-DOS 2.0 β€” Unix Influence
A major upgrade introducing hierarchical directories (subdirectories), I/O redirection (< > |), pipes, installable device drivers, and an improved disk I/O system. These features were directly inspired by Unix. DOS 2.0 shipped with the IBM PC-XT (the first IBM PC with a built-in hard drive) and made the hard disk practical.
1984
MS-DOS 3.0 β€” Hard Disk & Networking
Added support for larger hard disks (up to 32MB β€” a seemingly vast amount in 1984), the 1.2MB 5.25" floppy drive, and basic network support via the IBM PC-AT bus. DOS 3.0 shipped with the IBM PC-AT, which set the standard bus and form factor that PC hardware used for the next decade.
1987
MS-DOS 3.3 β€” FAT12 and New Drives
Added support for the 3.5" 720KB floppy drive and IBM PS/2 hardware. The 32MB partition limit remained a growing annoyance as hard drives grew larger. Programmers began hitting the limits of the FAT file system. DOS 3.3 was the most stable 3.x release and remained widely used long after DOS 4.0 and 5.0 shipped.
1988
MS-DOS 4.0 β€” FAT16 and Bugs
Finally broke the 32MB partition barrier with FAT16 support, allowing partitions up to 2GB. Also added a graphical DOS Shell. Unfortunately, DOS 4.0 was notoriously buggy β€” some OEMs refused to ship it, and many users stayed on 3.3. The DOS Shell was slow and consumed precious memory. Microsoft later quietly released 4.01 to fix the worst bugs.
1991
MS-DOS 5.0 β€” The Renaissance
The version that redeemed DOS. Added HIMEM.SYS, EMM386.EXE, DOS=HIGH, LOADHIGH support, recovering precious conventional memory. Introduced QBasic, the full-screen EDIT text editor, UNDELETE, UNFORMAT, and a much-improved DOS Shell. The MEM /C command let you see exactly what was loaded where. Widely considered the best DOS release β€” most users finally had "enough" free conventional memory.
1993
MS-DOS 6.0/6.22 β€” Disk Compression
Introduced DoubleSpace (later DriveSpace after a Stac Electronics lawsuit), which transparently compressed entire hard drives, effectively doubling usable disk space at the cost of some performance. Also added DEFRAG, MSAV (anti-virus), MSBACKUP, MEMMAKER (automatic memory optimizer), and INTERLINK. The lawsuit over DoubleSpace forced Microsoft to remove it in 6.21 and replace it with DriveSpace in 6.22.
1995
Windows 95 β€” DOS 7.0 Hidden Inside
Windows 95 shipped with MS-DOS 7.0 embedded inside β€” it booted DOS, then automatically loaded the Windows 95 shell. Power users could boot to a "DOS prompt" and bypass Windows entirely. DOS 7.0 added long filename support (LFN) in the underlying file system, though the traditional 8.3 filenames still worked for compatibility.
1998
Windows 98 β€” DOS Further Hidden
Windows 98 shipped with MS-DOS 7.1, adding FAT32 support. Microsoft increasingly discouraged booting to DOS, removing the "Boot to previous version of MS-DOS" option in Windows 98 SE. The DOS prompt was now firmly positioned as a maintenance/recovery tool rather than a primary interface.
2000
MS-DOS 8.0 β€” Windows ME, the Final Version
Windows Millennium Edition (ME) shipped with MS-DOS 8.0, the last standalone DOS release. Windows ME removed the ability to boot to a DOS prompt at all β€” triggering widespread anger from power users and sysadmins who relied on it for troubleshooting. Real-mode DOS was now officially a legacy compatibility layer.
2001
Windows XP β€” DOS Finally Dead
Windows XP was built on the NT kernel β€” there was no real-mode DOS inside. The "command prompt" (cmd.exe) emulated DOS commands but ran in a Win32 process with no real-mode execution. Sixteen-bit DOS programs required NTVDM (NT Virtual DOS Machine) for compatibility. Twenty years of DOS evolution ended not with a shutdown command, but with a quiet architectural replacement.
MS-DOS Simulator
MS-DOS Prompt β€” C:\>
C:\>
Type HELP for a list of commands. Try DIR, VER, TYPE AUTOEXEC.BAT, or FORMAT A: