From d4b635589c39c16c4fb1cb1777b652ede7df73c0 Mon Sep 17 00:00:00 2001 From: Oisin Grehan Date: Fri, 13 Nov 2020 06:39:33 -0500 Subject: [PATCH] initial draft of VT function support spec (#1884) conhost and windows terminal renamed files; updated script to do summary output only, also quiet mode and option file path for output (else stdout) added -quiet and fixed -summaryonly parameters added hyperlink directly to soruce implementation for conhost and terminal seqs Update doc/reference/master-sequence-list.csv Co-Authored-By: James Holderness Apply suggestions from code review Co-Authored-By: James Holderness Co-authored-by: James Holderness --- .../Build-SupportedSequenceIndex.ps1 | 239 ++++++++++++++++++ doc/reference/master-sequence-list.csv | 224 ++++++++++++++++ doc/reference/windows-terminal-logo.ans | 15 ++ 3 files changed, 478 insertions(+) create mode 100644 doc/reference/Build-SupportedSequenceIndex.ps1 create mode 100644 doc/reference/master-sequence-list.csv create mode 100644 doc/reference/windows-terminal-logo.ans diff --git a/doc/reference/Build-SupportedSequenceIndex.ps1 b/doc/reference/Build-SupportedSequenceIndex.ps1 new file mode 100644 index 0000000000..2ab846176c --- /dev/null +++ b/doc/reference/Build-SupportedSequenceIndex.ps1 @@ -0,0 +1,239 @@ +#requires -version 6.1 + +<# +.SYNOPSIS +Scan source code and build a list of supported VT sequences. +.DESCRIPTION +Scan source code and build a list of supported VT sequences. +TODO: add more details +#> +[cmdletbinding(DefaultParameterSetName="stdout")] +param( + [parameter(ParameterSetName="file", mandatory)] + [string]$OutFile, + [parameter(ParameterSetName="file")] + [switch]$Force, # for overwriting $OutFile if it exists + + [parameter(ParameterSetName="stdout")] + [parameter(ParameterSetName="file")] + [switch]$NoLogo, # no logo in summary + [parameter(ParameterSetName="stdout")] + [switch]$SummaryOnly, # no markdown generated + [parameter(ParameterSetName="stdout")] + [parameter(ParameterSetName="file")] + [switch]$Quiet, # no summary or logo + + [parameter(ParameterSetName="file")] + [parameter(ParameterSetName="stdout")] + [string]$SolutionRoot = "..\..", + [parameter(ParameterSetName="file")] + [parameter(ParameterSetName="stdout")] + [string]$InterfacePath = $(join-path $solutionRoot "src\terminal\adapter\ITermDispatch.hpp"), + [parameter(ParameterSetName="file")] + [parameter(ParameterSetName="stdout")] + [string]$ConsoleAdapterPath = $(join-path $solutionRoot "src\terminal\adapter\adaptDispatch.hpp"), + [parameter(ParameterSetName="file")] + [parameter(ParameterSetName="stdout")] + [string]$TerminalAdapterPath = $(join-path $solutionRoot "src\cascadia\terminalcore\terminaldispatch.hpp") +) + +if ($PSCmdlet.ParameterSetName -eq "stdout") { + Write-Verbose "Emitting markdown to STDOUT" +} + +<# + GLOBALS +#> + +[semver]$myVer = "0.6-beta" +$sequences = import-csv ".\master-sequence-list.csv" +$base = @{} +$conhost = @{} +$terminal = @{} +$prefix = "https://vt100.net/docs/vt510-rm/" +$repo = "https://github.com/oising/terminal/tree/master" +$conhostUrl = $ConsoleAdapterPath.TrimStart($SolutionRoot).replace("\", "/") +$terminalurl = $TerminalAdapterPath.TrimStart($SolutionRoot).replace("\", "/") + +function Read-SourceFiles { + # extract base interface + $baseScanner = [regex]'(?x)virtual\s\w+\s(?\w+)(?s)[^;]+;(?-s).*?(?(?<=\/\/\s).+)' + + $baseScanner.Matches(($src = get-content -raw $interfacePath)) | foreach-object { + $match = $_ + #$line = (($src[0..$_.Index] -join "") -split "`n").Length + #$decl = $_.groups[0].value + $_.groups["seq"].value.split(",") | ForEach-Object { + $SCRIPT:base[$_.trim()] = $match.groups["method"].value + } + } + + # match overrides of ITermDispatch + $scanner = [regex]'(?x)\s+\w+\s(?\w+)(?s)[^;]+override;' + + $scanner.Matches(($src = Get-Content -raw $consoleAdapterPath)) | ForEach-Object { + $line = (($src[0..$_.Index] -join "") -split "`n").Length + $SCRIPT:conhost[$_.groups["method"].value] = $line + } + + $scanner.Matches(($src = Get-Content -raw $terminalAdapterPath)) | ForEach-Object { + $line = (($src[0..$_.Index] -join "") -split "`n").Length + #write-verbose $_.groups[0].value + $SCRIPT:terminal[$_.groups["method"].value] = $line + } +} + +function Get-SequenceIndexMarkdown { + # "Sequence","Parent","Description","Origin","Heading","Subheading", "ImplementedBy", "ConsoleHost","Terminal" + + $heading = $null + $subheading = $null +<# + Emit markdown + + TODO: + - autogenerate TOC +#> +@" +# VT Function Support + +## Table of Contents + +* [Code Extension Functions](#code-extension-functions) + * [Control Coding](#control-coding) + * [Character Coding](#character-coding) + * [Graphic Character Sets](#graphic-character-sets) +* [Terminal Management Functions](#terminal-management-functions) + * [Identification, status, and Initialization](#identification-status-and-initialization) + * [Emulations](#emulations) + * [Set-Up](#set-up) +* [Display Coordinate System and Addressing](#display-coordinate-system-and-addressing) + * [Active Position and Cursor](#active-position-and-cursor) + * [Margins and Scrolling](#margins-and-scrolling) + * [Cursor Movement](#cursor-movement) + * [Horizontal Tabulation](#horizontal-tabulation) + * [Page Size and Arrangement](#page-size-and-arrangement) + * [Page Movement](#page-movement) + * [Status Display](#status-display) + * [Right to Left](#right-to-left) +* [Window Management](#window-management) +* [Visual Attributes and Renditions](#visual-attributes-and-renditions) + * [Line Renditions](#line-renditions) + * [Character Renditions](#character-renditions) +* [Audible Indicators](#audible-indicators) +* [Mode States](#mode-states) + * [ANSI](#ansi) + * [DEC Private](#dec-private) +* [Editing Functions](#editing-functions) +* [OLTP Features](#oltp-features) + * [Rectangular Area Operations](#rectangular-area-operations) + * [Data Integrity](#data-integrity) + * [Macros](#macros) +* [Saving and Restoring Terminal State](#saving-and-restoring-terminal-state) + * [Cursor Save Buffer](#cursor-save-buffer) + * [Terminal State Interrogation](#terminal-state-interrogation) +* [Keyboard Processing Functions](#keyboard-processing-functions) +* [Soft Key Mapping (UDK)](#soft-key-mapping-udk) +* [Soft Fonts (DRCS)](#soft-fonts-drcs) +* [Printing](#printing) +* [Terminal Communication and Synchronization](#terminal-communication-and-synchronization) +* [Text Locator Extension](#text-locator-extension) +* [Session Management Extension](#session-management-extension) +* [Documented Exceptions](#documented-exceptions) + +$($sequences | ForEach-Object { + if ($method = $base[$_.sequence]) { + $_.ImplementedBy = $method + $_.ConsoleHost = $conhost[$method] + $_.Terminal = $terminal[$method] + } + # "Sequence","Associated","Description","Origin","Heading","Subheading", "ImplementedBy", "ConsoleHost","Terminal" + $c0 = "[$($_.Sequence)]($prefix$($_.sequence).html ""View page on vt100.net"")" + $c1 = "$($_.description)" + $c2 = "$($_.origin)" + $c3 = $(if ($_.consolehost) {"[✓](${repo}/${conhostUrl}#L$($_.consolehost) ""View console host implementation"")"}) + $c4 = $(if ($_.terminal) {"[✓](${repo}/${terminalUrl}#L$($_.terminal)} ""View windows terminal implementation"")"}) + + $shouldRenderHeader = $false + + if ($heading -ne $_.heading) { + $heading = $_.heading +@" + +## $heading + +"@ + $shouldRenderHeader = $true + } + + if ($subheading -ne $_.subheading) { + $subheading = $_.subheading +@" + +### $subheading + +"@ + $shouldRenderHeader = $true + } + + if ($shouldRenderHeader) { +@" + +|Symbol|Function|Origin 🖳|Console Host|Terminal| +|:-|:--|:--:|:--:|:--:| +"@ + } +@" + +|$c0|$c1|$c2|$c3|$c4| +"@ +}) + +--- +Generated on $(get-date -DisplayHint DateTime) +"@ +} + +function Show-Summary { + write-host "`n$(' '*7)Windows Terminal Sequencer v${myVer}" + if (-not $NoLogo.IsPresent) { + Get-Content .\windows-terminal-logo.ans | ForEach-Object { Write-Host $_ } + } + $summary = @" + `e[1mSequence Support:`e[0m + + `e[7m {0:000} `e[0m known in master-sequence-list.csv. + `e[7m {1:000} `e[0m common members in ITermDispatch base, of which: + `e[7m {2:000} `e[0m are implemented by ConsoleHost. + `e[7m {3:000} `e[0m are implemented by Windows Terminal. + +"@ -f $sequences.Count, $base.count, $conhost.count, $terminal.Count + + write-host $summary +} + +<# + Entry Point +#> + +Read-SourceFiles + +if (-not $SummaryOnly.IsPresent) { + + $markdown = Get-SequenceIndexMarkdown + + if ($PSCmdlet.ParameterSetName -eq "file") { + # send to file and overwrite + $markdown | Out-File -FilePath $OutFile -Force:$Force.IsPresent -Encoding utf8NoBOM + } else { + # send to STDOUT + $markdown + } + + if (-not $Quiet.IsPresent) { + Show-Summary + } +} else { + # summary only + Show-Summary +} diff --git a/doc/reference/master-sequence-list.csv b/doc/reference/master-sequence-list.csv new file mode 100644 index 0000000000..85f81dc7e9 --- /dev/null +++ b/doc/reference/master-sequence-list.csv @@ -0,0 +1,224 @@ +"Sequence","Parent","Description","Origin","Heading","Subheading","ImplementedBy","ConsoleHost","Terminal" +"CAN","","Cancel","`VT100`","Code Extension Functions","Control Coding","","","" +"SUB","","Substitute","`VT100`","Code Extension Functions","Control Coding","","","" +"ESC","","Escape","`VT100`","Code Extension Functions","Control Coding","","","" +"DCS","","Device Control String","`VT220`","Code Extension Functions","Control Coding","","","" +"CSI","","Control Sequence Introducer","`VT100`","Code Extension Functions","Control Coding","","","" +"ST","","String Terminator","`VT220`","Code Extension Functions","Control Coding","","","" +"OSC","","Operating System Command","`DECterm`","Code Extension Functions","Control Coding","","","" +"PM","","Privacy Message","``","Code Extension Functions","Control Coding","","","" +"APC","","Application Program Command","`VT420`","Code Extension Functions","Control Coding","","","" +"S7C1T","","Select 7-bit C1 Transmission","`VT220`","Code Extension Functions","Control Coding","","","" +"S8C1T","","Select 8-bit C1 Transmission","`VT220`","Code Extension Functions","Control Coding","","","" +"LS0","","Locking Shift Zero (SI)","`VT100`","Code Extension Functions","Character Coding","","","" +"LS1","","Locking Shift One (SO)","`VT100`","Code Extension Functions","Character Coding","","","" +"LS2","","Locking Shift Two","`VT220`","Code Extension Functions","Character Coding","","","" +"LS3","","Locking Shift Three","`VT220`","Code Extension Functions","Character Coding","","","" +"LS1R","","Locking Shift One Right","`VT220`","Code Extension Functions","Character Coding","","","" +"LS2R","","Locking Shift Two Right","`VT220`","Code Extension Functions","Character Coding","","","" +"LS3R","","Locking Shift Three Right","`VT220`","Code Extension Functions","Character Coding","","","" +"SS2","","Single Shift Two","`VT220`","Code Extension Functions","Character Coding","","","" +"SS3","","Single Shift Three","`VT220`","Code Extension Functions","Character Coding","","","" +"SCS","","Select Character Set","`VT100`","Code Extension Functions","Graphic Character Sets","","","" +"DECNRCM","","(National Replacement) Character Set Mode","`VT220`","Code Extension Functions","Graphic Character Sets","","","" +"DECAUPSS","","Assign User-Preference Supplemental Set","`VT320`","Code Extension Functions","Graphic Character Sets","","","" +"DECRQUPSS","","Request User-Preference Supplemental Set","`VT320`","Code Extension Functions","Graphic Character Sets","","","" +"DA1","","Primary Device Attributes","`VT100`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DA2","","Secondary Device Attributes","`VT220`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DA3","","Tertiary Device Attributes","`VT420`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DSR","","Device Status Report","`VT100`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECID","","Identify Device","`VT100`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECTID","","Select Terminal ID","`VT510`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECSCL","","Select Conformance Level","`VT220`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECSR","","Secure Reset","`VT420`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECSRC","","Secure Reset Confirmation","`VT420`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECSTR","","Soft Terminal Reset","`VT220`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECSTUI","","Set Terminal Unit ID (Restricted)","`VT420`","Terminal Management Functions","Identification, status, and Initialization","","","" +"RIS","","Reset to Initial state","`VT100`","Terminal Management Functions","Identification, status, and Initialization","","","" +"DECPCTERM","","Enter/Exit PC Term Mode from DEC VT mode","`VT420PC`","Terminal Management Functions","Emulations","","","" +"DECTME","","Terminal Mode Emulation","`VT510`","Terminal Management Functions","Emulations","","","" +"DECSSL","","Select Set-Up Language","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECCRTSM","","CRT Save Mode (not required)","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECOSCNM","","Overscan Mode","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECSRFR","","Select Refresh Rate","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECLTOD","","Load Time of Day","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECLBAN","","Load Banner Message","`VT510`","Terminal Management Functions","Set-Up","","","" +"DECTCEM","","Text Cursor Enable Mode","`VT220`","Display Coordinate System and Addressing","Active Position and Cursor","","","" +"DECSCUSR","","Set Cursor Style","`VT510`","Display Coordinate System and Addressing","Active Position and Cursor","","","" +"DECSTBM","","Set Top and Bottom Margin","`VT100`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECSLRM","","Set Left and Right Margin","`VT420`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECLRMM","","Left Right Margin Mode","`VT420`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECOM","","Origin Mode","`VT100`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECSCLM","","Scrolling Mode","`VT100`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"IND","","Index","`VT100`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"RI","","Reverse Index","`VT100`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECFI","","Forward Index","`VT420`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECBI","","Back Index","`VT420`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"DECSSCLS","","Set Scroll Speed","`VT510`","Display Coordinate System and Addressing","Margins and Scrolling","","","" +"BS","","Backspace","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"LF","","Line Feed","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"VT","","Vertical Tab","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"FF","","Form Feed","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CR","","Carriage Return","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"NEL","","Next Line","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"LNM","","Line Feed/New Line Mode","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CUU","","Cursor Up","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CUD","","Cursor Down","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CUF","","Cursor Forward","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CUB","","Cursor Backward","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CUP","","Cursor Position","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"HVP","","Horizontal/Vertical Position","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"DSR-CPR","","Device Status Report (Cursor Position Report)","`VT100`","Display Coordinate System and Addressing","Cursor Movement","","","" +"DSR-XCPR","","Device Status Report (Extended Cursor Position Report)","`VT340` `VT420`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CHA","","Cursor Horizontal Absolute","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CNL","","Cursor Next Line","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"CPL","","Cursor Previous Line","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"HPA","","Horizontal Position Absolute","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"HPR","","Horizontal Position Relative","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"VPA","","Vertical Line Position Absolute","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"VPR","","Vertical Position Relative","`VT510`","Display Coordinate System and Addressing","Cursor Movement","","","" +"HT","","Horizontal Tab","`VT100`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"HTS","","Horizontal Tabulation Set","`VT100`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"TBC","","Tabulation Clear","`VT100`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"CBT","","Cursor Backward Tabulation","`VT510`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"CHT","","Cursor Horizontal Forward Tabulation","`VT510`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"DECST8C","","Set Tab at every 8 columns","`VT420PC`","Display Coordinate System and Addressing","Horizontal Tabulation","","","" +"DECCOLM","","Column Mode","`VT100`","Display Coordinate System and Addressing","Page Size and Arrangement","","","" +"DECNCSM","","No Clear Screen on column Mode","`VT510`","Display Coordinate System and Addressing","Page Size and Arrangement","","","" +"DECSCPP","","Set Columns Per Page","`VT340` `VT420`","Display Coordinate System and Addressing","Page Size and Arrangement","","","" +"DECSLPP","","Set Lines Per Page","`VT340` `VT420`","Display Coordinate System and Addressing","Page Size and Arrangement","","","" +"NP","","Next Page","`VT340` `VT420`","Display Coordinate System and Addressing","Page Movement","","","" +"PP","","Preceding Page","`VT340` `VT420`","Display Coordinate System and Addressing","Page Movement","","","" +"PPA","","Page Position Absolute","`VT340` `VT420`","Display Coordinate System and Addressing","Page Movement","","","" +"PPR","","Page Position Relative","`VT340` `VT420`","Display Coordinate System and Addressing","Page Movement","","","" +"PPB","","Page Position Backward","`VT340` `VT420`","Display Coordinate System and Addressing","Page Movement","","","" +"DECSASD","","Select Active Status Display","`VT340` `VT320`","Display Coordinate System and Addressing","Status Display","","","" +"DECSSDT","","Select Status Display Type","`VT340` `VT320`","Display Coordinate System and Addressing","Status Display","","","" +"DECRLM","","Right to Left Mode","`VT510`","Display Coordinate System and Addressing","Right to Left","","","" +"DECRLCM","","Right to Left Copy Mode","`VT510`","Display Coordinate System and Addressing","Right to Left","","","" +"DDD1","","`VT100` mode Hebrew","`VT510`","Display Coordinate System and Addressing","Right to Left","","","" +"DDD2","","`VT100` mode Hebrew","`VT510`","Display Coordinate System and Addressing","Right to Left","","","" +"DDD3","","`VT100` mode Hebrew","`VT510`","Display Coordinate System and Addressing","Right to Left","","","" +"DECHCCM","","Horizontal Cursor Coupling Mode","`VT340` `VT420`","Window Management","Right to Left","","","" +"DECVCCM","","Vertical Cursor Coupling Mode","`VT340` `VT420`","Window Management","Right to Left","","","" +"DECPCCM","","Page Cursor Coupling Mode","`VT340` `VT420`","Window Management","Right to Left","","","" +"DECRQDE","","Request Displayed Extent","`VT340` `VT420`","Window Management","Right to Left","","","" +"DECSNLS","","Select Number of Lines per Screen (exception)","`VT420`","Window Management","Right to Left","","","" +"DECARSM","","Auto Resize Mode","`DECterm` `VT420`","Window Management","Right to Left","","","" +"SU","","Pan Down","`VT340` `VT420`","Window Management","Right to Left","","","" +"SD","","Pan Up","`VT340` `VT420`","Window Management","Right to Left","","","" +"DECSCNM","","Screen Mode","`VT100`","Visual Attributes and Renditions","Right to Left","","","" +"DECSWL","","Single Width Line","`VT100`","Visual Attributes and Renditions","Line Renditions","","","" +"DECDWL","","Double Width Line","`VT100`","Visual Attributes and Renditions","Line Renditions","","","" +"DECDHLT","","Double Height Line Top","`VT100`","Visual Attributes and Renditions","Line Renditions","","","" +"DECDHLB","","Double Height Line Bottom","`VT100`","Visual Attributes and Renditions","Line Renditions","","","" +"SGR","","Select Graphic Rendition","`VT100`","Visual Attributes and Renditions","Character Renditions","","","" +"BEL","","Warning Bell","`VT100`","Audible Indicators","Character Renditions","","","" +"DECSKCV","","Set Keyclick Volume","`VT510`","Audible Indicators","Character Renditions","","","" +"DECSWBV","","Set Warning Bell Volume","`VT510`","Audible Indicators","Character Renditions","","","" +"DECSMBV","","Set Margin Bell Volume","`VT510`","Audible Indicators","Character Renditions","","","" +"IRM","","Insert/Replacement Mode","`VT102`","Editing Functions","DEC Private","","","" +"ICH","","Insert Character","`VT102`","Editing Functions","DEC Private","","","" +"DCH","","Delete Character","`VT102`","Editing Functions","DEC Private","","","" +"IL","","Insert Line","`VT100`","Editing Functions","DEC Private","","","" +"DL","","Delete Line","`VT100`","Editing Functions","DEC Private","","","" +"DECIC","","Insert Column","`VT420`","Editing Functions","DEC Private","","","" +"DECDC","","Delete Column","`VT420`","Editing Functions","DEC Private","","","" +"ECH","","Erase Character","`VT100`","Editing Functions","DEC Private","","","" +"EL","","Erase in Line","`VT100`","Editing Functions","DEC Private","","","" +"DECSEL","","Selective Erase in Line","`VT220`","Editing Functions","DEC Private","","","" +"ED","","Erase in Display","`VT100`","Editing Functions","DEC Private","","","" +"DECSED","","Selective Erase in Display","`VT220`","Editing Functions","DEC Private","","","" +"DECSCA","","Select Character Attribute (selective erase)","`VT220`","Editing Functions","DEC Private","","","" +"DECCRA","","Copy Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECFRA","","Fill Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECERA","","Erase Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECSERA","","Selective Erase Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECCARA","","Change Attribute in Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECRARA","","Reverse Attribute in Rectangular Area","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECSACE","","Select Attribute Change Extent Mode","`VT420`","OLTP Features","Rectangular Area Operations","","","" +"DECRQCRA","","Request Checksum of Rectangular Area","`VT420`","OLTP Features","Data Integrity","","","" +"DSR-DECCKSR","","Device Status Report (Memory Checksum)","`VT420`","OLTP Features","Data Integrity","","","" +"DECDMAC","","Define Macro","`VT420`","OLTP Features","Macros","","","" +"DECINVM","","Invoke Macro","`VT420`","OLTP Features","Macros","","","" +"DSR-MSR","","Device Status Report (Macro Space Report)","`VT420`","OLTP Features","Macros","","","" +"DECSC","","Save Cursor","`VT100`","Saving and Restoring Terminal State","Cursor Save Buffer","","","" +"DECRC","","Restore Cursor","`VT100`","Saving and Restoring Terminal State","Cursor Save Buffer","","","" +"DECRQM","","Request Mode","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECNKM","","Numeric Keypad Mode","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECRQSS","","Request Selection or Setting","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECRQPSR","","Request Presentation State Report","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECRSPS","","Restore Presentation State","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECRQTSR","","Request Terminal State Report","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECRSTS","","Restore Terminal State","`VT320`","Saving and Restoring Terminal State","Terminal State Interrogation","","","" +"DECARM","","Autorepeat Mode","`VT100`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECBKM","","Backarrow Key Mode","`VT420`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECCKM","","Cursor Keys Mode","`VT100`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKBUM","","Keyboard Usage Mode","`VT320`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKPAM","","Keypad Application Mode","`VT100`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKPM","","Key Position Mode","`VT420`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKPNM","","Keypad Numeric Mode","`VT100`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECNKM","","Numeric Keypad Mode","`VT320`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DSR-KBD","","Device Status Report (keyboard status)","`VT220`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"KAM","","Keyboard Action Mode","`VT220`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECLFC","","Local Functions Control","`VT420`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECLFKC","","Local Function Key Control","`VT420`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECSMKR","","Select Modifier Key Reporting","`VT420`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECHEBM","","Hebrew Keyboard Map mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECHCEM","","Hebrew Encoding Mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECNAKB","","NA/Greek Selection","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECESKM","","Secondary Keyboard Language Mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECSLCK","","Set Lock Key Style","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKBD","","Keyboard Dialect Selection","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECNUMLK","","NumLock Mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECCAPSLK","","CapsLock Mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECKLHIM","","Keyboard LEDs Host Indicator Mode","`VT510`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECLL","","Load LEDs","`VT100`","Keyboard Processing Functions","Terminal State Interrogation","","","" +"DECUDK","","User Defined Keys","`VT220`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DSR-UDK","","Device Status Report (UDK lock)","`VT220`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECPKA","","Program Key Action","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECPFK","","Program Function Key","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECPAK","","Program Alphanumeric Key","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECCKD","","Copy Key Default","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECRQPKFM","","Program Key Free Memory Inquiry","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECRQKT","","Inquire a Key Type","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECRQKD","","Inquire a Key Definition","`VT510`","Soft Key Mapping (UDK)","Terminal State Interrogation","","","" +"DECDLD","","Downline Load","`VT220`","Soft Fonts (DRCS)","Terminal State Interrogation","","","" +"DECPEX","","Print Extent Mode","`VT220`","Printing","Terminal State Interrogation","","","" +"DECPFF","","Print Form Feed Mode","`VT220`","Printing","Terminal State Interrogation","","","" +"DSR-PP","","Device Status Report (printer port)","`VT220`","Printing","Terminal State Interrogation","","","" +"MC","","Media Copy","`VT220`","Printing","Terminal State Interrogation","","","" +"DECSPRTT","","Select Printer Type","`VT510`","Printing","Terminal State Interrogation","","","" +"DECSDPT","","Select Digital Printed Data Type","`VT510`","Printing","Terminal State Interrogation","","","" +"DECSPPCS","","Select Proprinter Character Set","`VT510`","Printing","Terminal State Interrogation","","","" +"BREAK","","BREAK","`VT100`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"XON","","XON","`VT100`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"XOFF","","XOFF","`VT100`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"ENQ","","Enquiry","`VT100`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"SRM","","Send Receive Mode","`VT220`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECXRLM","","Transmit Rate Limiting Mode","`VT420`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECMCM","","Modem Control Mode","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECAAM","","Auto Answerback Mode","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECLANS","","Load Answerback Message","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECCANSM","","Conceal Answerback Message Mode","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECNULM","","Ignore Null Mode","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECHPDXM","","Half Duplex Mode","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSFC","","Select Flow Control","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSDDT","","Select Disconnect Delay Time","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSTRL","","Set Transmit Rate Limit","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSCS","","Select Communication Speed","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSCP","","Select Communication Port","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECSPP","","Set Port Parameter","`VT510`","Terminal Communication and Synchronization","Terminal State Interrogation","","","" +"DECEFR","","Enable Filter Rectangle","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECELR","","Enable Locator Reports","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECLKD","","Locator Key Definition","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECLRP","","Locator Report","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECRQLP","","Request Locator Position","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECSLE","","Select Locator Events","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DSR-LS","","Device Status Report (Locator Status)","`UWS`","Text Locator Extension","Terminal State Interrogation","","","" +"DECES","","Enable Sessions","`VT340` `VT420`","Session Management Extension","Terminal State Interrogation","","","" +"DECANM","","`ANSI`/`VT52` Mode","`VT100`","Documented Exceptions","Terminal State Interrogation","","","" +"DECALN","","Screen Alignment","`VT100`","Documented Exceptions","Terminal State Interrogation","","","" +"DECAWM","","Autowrap Mode","`VT100`","Documented Exceptions","Terminal State Interrogation","","","" +"DECTST","","Invoke Confidence Test","`VT100`","Documented Exceptions","Terminal State Interrogation","","","" +"CRM","","Control Representation Mode","`VT100`","Documented Exceptions","Terminal State Interrogation","","","" diff --git a/doc/reference/windows-terminal-logo.ans b/doc/reference/windows-terminal-logo.ans new file mode 100644 index 0000000000..5620900d99 --- /dev/null +++ b/doc/reference/windows-terminal-logo.ans @@ -0,0 +1,15 @@ +                                                   +       ▀                                  ▀        +                                                   +       ▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀  ▀  ▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀         +       ▀ ▀▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀▀▀ ▀▀ ▀▀ ▀▀         +        ▀▀▀▀▀▀▀▀▀▀  ▀  ▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀  ▀          +        ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀        +       ▀▀  ▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀  ▀ ▀▀ ▀▀        +       ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀  ▀  ▀         +       ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀  ▀ ▀▀ ▀▀ ▀▀ ▀▀         +        ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀        +       ▀▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀        +       ▀   ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀▀        +       ▀ ▀ ▀▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀        +