In the early 1980s, large amounts of software directly used these sequences to update screen displays. This included everything on
VMS (which assumed DEC terminals), most software designed to be portable on
CP/M home computers, and significant amounts of Unix software, as it was easier to use than the termcap libraries.
Terminal emulators for communicating with remote machines almost always implement ANSI escape codes. This includes anything written to communicate with bulletin-board systems on home and personal computers. On Unix terminal emulators such as
xterm also can communicate with software running on the same machine, and thus software running in X11 under a terminal emulator could assume the ability to write these sequences. As computers got more powerful even built-in displays started supporting them, allowing software to be portable between CP/M systems. There were attempts to extend the escape sequences to support printers and as an early PDF-like document storage format, the
Open Document Architecture. The IBM PC, introduced in 1981, did not support these or any other escape sequences for updating the screen. Only a few
control characters (
BEL,
CR,
LF,
BS) were interpreted by the underlying BIOS. Any display effects had to be done with BIOS calls, which were notoriously slow, or by directly manipulating the IBM PC hardware. This made any interesting software non-portable and led to the need to duplicate details of the display hardware in
PC Clones. DOS version 2.0 included an optional
device driver named . Poor performance, and the fact that it was not installed by default, meant software rarely (if ever) took advantage of it. The
Windows Console did not support ANSI escape sequences, nor did Microsoft provide any method to enable them. Some replacements such as JP Software's
TCC (formerly 4NT), Michael J. Mefford's ANSI.COM, Jason Hood's and Maximus5's
ConEmu enabled ANSI escape sequences. Software such as the Python colorama package or
Cygwin modified text in-process as it was sent to the console, extracting the ANSI Escape sequences and emulating them with Windows calls. In 2016, Microsoft released the
Windows 10 version 1511 update which unexpectedly implemented support for ANSI escape sequences, over three decades after the debut of Windows. This was done alongside
Windows Subsystem for Linux, apparently to allow
Unix-like terminal-based software to use the Windows Console. Windows PowerShell 5.1 enabled this by default, and PowerShell 6 made it possible to embed the necessary ESC character into a string with .
Windows Terminal, introduced in 2019, supports the sequences by default. Since Windows 11 22H2 and Windows Terminal 1.15, Windows Terminal replaces Windows Console as the default. == C0 control codes ==