This page allows you to examine the variables generated by the Edit Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
null
Name of the user account (user_name)
'5.158.93.54'
Age of the user account (user_age)
0
Groups (including implicit) the user is in (user_groups)
[ 0 => '*' ]
Rights that the user has (user_rights)
[ 0 => 'createaccount', 1 => 'read', 2 => 'edit', 3 => 'createtalk', 4 => 'writeapi', 5 => 'viewmywatchlist', 6 => 'editmywatchlist', 7 => 'viewmyprivateinfo', 8 => 'editmyprivateinfo', 9 => 'editmyoptions', 10 => 'abusefilter-log-detail', 11 => 'urlshortener-create-url', 12 => 'centralauth-merge', 13 => 'abusefilter-view', 14 => 'abusefilter-log', 15 => 'vipsscaler-test' ]
Whether the user is editing from mobile app (user_app)
false
Whether or not a user is editing through the mobile interface (user_mobile)
false
Page ID (page_id)
496618
Page namespace (page_namespace)
0
Page title without namespace (page_title)
'Text-based user interface'
Full page title (page_prefixedtitle)
'Text-based user interface'
Edit protection level of the page (page_restrictions_edit)
[]
Last ten users to contribute to the page (page_recent_contributors)
[ 0 => 'ClueBot NG', 1 => '5.158.93.54', 2 => 'Guy Macon', 3 => 'OlliverWithDoubleL', 4 => '49.195.143.228', 5 => 'Altamel', 6 => '130.193.227.242', 7 => '100.34.195.215', 8 => '151.64.206.198', 9 => 'CLCStudent' ]
Page age in seconds (page_age)
521968988
Action (action)
'edit'
Edit summary/reason (summary)
'/* Under DOS and Microsoft Windows */ '
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'{{distinguish|Command-line interface}} {{refimprove|date=September 2014}} [[File:Midnight Commander (2005) en.png|thumb|300px|Some [[file manager]]s implement a TUI (''here: [[Midnight Commander]]'')]] [[File:Vim-%28logiciel%29-console.png|thumb|300px|[[Vim (text editor)|Vim]] is a very widely used TUI text editor]] In [[computing]], '''text-based user interfaces''' ('''TUI''') (alternately '''terminal user interfaces''', to reflect a dependence upon the properties of [[computer terminal]]s and not just text), is a [[retronym]] describing a type of [[user interface]] (UI) common as an early form of [[human–computer interaction]], before the advent of [[graphical user interface]]s (GUIs). Like GUIs, they may use the entire [[Electronic visual display|screen]] area and accept [[mouse (computing)|mouse]] and other inputs. They may also use color and often structure the display using special graphical [[Character (computing)|character]]s such as ┌ and ╣, referred to in [[Unicode]] as the "box drawing" set. The modern context of use is usually a [[terminal emulator]]. <!-- [[VisiCalc]] and the [[Emacs]] and [[vi]] [[visual editor]]s are the earliest examples of TUIs. --> == Types of text terminals == From [[console application|text application]]'s point of view, a text screen (and communications with it) can belong to one of three types (here ordered in order of decreasing accessibility): # A genuine [[text mode]] display, controlled by a [[video adapter]] or the central processor itself. This is a normal condition for a locally running application on various types of [[personal computer]]s and [[mobile device]]s. If not deterred by the [[operating system]], a smart program may exploit the full power of a hardware text mode. # A text mode [[emulator]]. Examples are [[xterm]] for [[X&nbsp;Window System]] and [[win32 console]] (in a window mode) for [[Microsoft Windows]]. This usually supports programs which expect a real text mode display, but may run considerably slower. Certain functions of an advanced text mode, such as an own [[raster font|font]] uploading<!-- BTW what about raw keyboard input? -->, almost certainly become unavailable. # A remote [[text terminal]]. The communication capabilities usually become reduced to a [[serial line]] or its emulation, possibly with few [[ioctl]]()s as an [[Out-of-band data|out-of-band]] channel in such cases as [[Telnet]] and [[Secure Shell]]. This is the worst case, because software restrictions hinder the use of capabilities of a remote display device. Under [[Linux kernel|Linux]] and other [[Unix-like]] systems, a program easily [[graceful degradation|accommodates]] to any of the three cases because the same interface (namely, [[standard streams]]) controls the display and keyboard. Also, [[#Under Unix-like systems|specialized programming libraries]] help to output the text in a way appropriate to the given display device and interface to it. See [[#Windows|below]] for a comparison to Windows. == On ANSI-compatible terminals == [[American National Standards Institute]] (ANSI) standard [[ANSI X3.64]] defines a standard set of [[escape sequence]]s that can be used to drive terminals to create TUIs (see [[ANSI escape code]]). Escape sequences may be supported for all three cases mentioned in the above section, allowing arbitrary [[text cursor|cursor]] movements and color changes. However, not all terminals follow this standard, and many non-compatible but functionally equivalent sequences exist. {{clear}} == Under DOS and Microsoft Windows == [[File:Fdedit.png|thumb|300px|The [[FreeDOS]] Edit user interface]] On [[IBM Personal Computer]]s and [[IBM PC compatible|compatibles]], the Basic Input Output System ([[BIOS]]) and [[DOS]] system calls provide a way to write text on the screen, and the [[ANSI.SYS]] driver could process standard ANSI escape sequences. However, programmers soon learned that writing data directly to the [[screen buffer]] was far faster and simpler to program, and less error-prone; see [[VGA-compatible text mode]] for details. This change in programming methods resulted in many DOS TUI programs. {{anchor|Windows}}The [[win32 console]] environment is notorious for its emulation of certain EGA/VGA text mode features, particularly random access to the text buffer, even if the application runs in a window. On the other hand, programs running under Windows (both native and DOS applications) have much less control of the display and keyboard than Linux and DOS programs can have, because of aforementioned win32 console layer. [[File:itmouse.png|thumb|300px|left|Mouse cursor in [[Impulse Tracker]]. A more precise cursor (per-pixel resolution) was achieved by regenerating the glyphs of characters used where the cursor was visible, at each mouse movement in real-time.{{citation needed|date=December 2011}}]] Most often those programs used a blue background for the main screen, with white or yellow characters, although commonly they had also user color customization. They often used [[box-drawing character]]s in IBM's [[code page 437]]. Later, the interface became deeply influenced by [[graphical user interface]]s (GUI), adding [[pull-down menu]]s, overlapping [[window (computing)|windows]], [[dialog box]]es and [[GUI widget]]s operated by [[mnemonics (keyboard)|mnemonics]] or [[keyboard shortcut]]s. Soon [[computer mouse|mouse]] input was added&nbsp;– either at text resolution as a simple colored box or at graphical resolution thanks to the ability of the [[Enhanced Graphics Adapter]] (EGA) and [[Video Graphics Array]] (VGA) display adapters to [[VGA-compatible text mode#Fonts|redefine the text character shapes by software]]&nbsp;– providing additional functions. Some notable programs of this kind were [[Microsoft Word]], [[DOS Shell]], [[WordPerfect]], [[Norton Commander]], [[Turbo Vision]] based [[Borland]] [[Turbo Pascal]] and [[Turbo C]] (the latter included the [[conio.h|conio]] [[library (computer science)|library]]), [[Lotus 1-2-3]] and many others. Some of these interfaces survived even during the [[Microsoft]] [[Windows 3.1x]] period in the early 1990s. For example, the [[Microsoft C]] 6.0 compiler, used to write true GUI programs under [[16-bit]] Windows, still has its own TUI. Since its start, [[Microsoft Windows]] includes a console to display DOS software. Later versions added the [[Win32 console]] as a native interface for [[command-line interface]] and TUI programs. The console usually opens in window mode, but it can be switched to full, true text mode screen and vice versa by pressing the [[Alt key|Alt]] and [[Enter key|Enter]] keys together. Full-screen mode is not available in Windows Vista and later, but may be used with some workarounds.<ref>[http://social.technet.microsoft.com/Forums/en/w7itprohardware/thread/3cc6994e-cbc2-4844-b040-a3c8385c69a5 cmd prompt full screen in Windows 7]. Social.technet.microsoft.com. Retrieved on 2013-06-15.</ref> {{-}} == Under Unix-like systems == [[File:XFdrake.png|thumb|300px|Snapshot of 'XFdrake', a TUI used in [[Mandriva Linux]] to configure the graphical system.]] In [[Unix-like]] operating systems, TUIs are often constructed using the terminal control [[library (computer science)|library]] ''[[curses (programming library)|curses]]'', or ''[[ncurses]]'' (a mostly compatible library), or the alternative ''[[S-Lang]]'' library. The advent of the ''curses'' library with [[BSD|Berkeley Unix]] created a portable and stable API for which to write TUIs. The ability to talk to various [[text terminal]] types using the same [[application programming interface|interfaces]] led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in [[text editor]]s such as [[vi]], [[E-mail client|mail clients]] such as [[pine (e-mail client)|pine]] or [[mutt (e-mail client)|mutt]], system management tools such as [[IBM AIX SMIT|SMIT]], [[SAM (HP-UX)|SAM]], [[FreeBSD]]'s [[Sysinstall]] and [[web browser]]s such as [[lynx (web browser)|lynx]]. Some applications, such as [[w3m]], and older versions of [[pine (e-mail client)|pine]] and [[vi]] use the less-able [[termcap]] library, performing many of the functions associated with [[curses (programming library)|curses]] within the application. Custom TUI applications based on ''widgets'' can be easily developed using the [[Dialog (software)|dialog]] program (based on [[ncurses]]), or the [[Newt (programming library)|Whiptail]] program (based on [[S-Lang]]). In addition, the rise in popularity of [[Linux]] brought many former DOS users to a Unix-like platform, which has fostered a DOS influence in many TUIs. The program [[minicom]], for example, is modeled after the popular DOS program [[Telix]]. Some other TUI programs, such as the [[Twin (windowing system)|Twin]] desktop, were [[ported]] over. Most Unix-like operating systems (Linux, FreeBSD etc.) support [[virtual console]]s, typically accessed through a Ctrl-Alt-F key combination. For example, under Linux up to 64 consoles may be accessed (12 via function keys), each displaying in full-screen text mode. The [[free software]] program [[GNU Screen]] provides for managing multiple sessions inside a single TUI, and so can be thought of as being like a [[window manager]] for text-mode and command-line interfaces. [[Tmux]] can also do this. The proprietary [[macOS]] [[text editor]] [[BBEdit]] includes a ''shell worksheet'' function that works as a full-screen shell window. The [[free software|free]] [[Emacs]] text editor can run a shell inside of one of its buffers to provide similar functionality. There are several shell implementations in Emacs, but only <code>ansi-term</code> is suitable for running TUI programs. The other common shell modes, <code>shell</code> and <code>eshell</code> only emulate command lines and TUI programs will complain "Terminal is not fully functional" or display a garbled interface. The [[free software|free]] [[Vim (text editor)|Vim]] and [[Neovim]] text editors have terminal windows (simulating [[xterm]]). The feature is intended for running jobs, parallel builds, or tests, but can also be used (with window splits and tab pages) as a lightweight terminal multiplexer. == OpenVMS == VAX/VMS and the later development [[OpenVMS]] had a similar facility to ''curses'' known as the Screen Management facility or SMG. This could be invoked from the command line or called from programs using the SMG$ library. == Oberon == [[File:OberonScreen.PNG|thumb|300px|Screenshot of the desktop of an Oberon System showing an image and several text viewers]] Another kind of TUI is the primary interface of the [[Oberon operating system]], first released in 1988 and still maintained. Unlike most other text-based user interfaces, Oberon does not use a text-mode console or terminal, but requires a large bit-mapped display, on which text is the primary target for mouse clicks. Commands in the format <code>Module.Procedure ''parameters''&nbsp;~</code> can be activated with a middle-click, like [[hyperlinks]]. Text displayed anywhere on the screen can be edited, and if formatted with the required command syntax, can be middle-clicked and executed. Any text file containing suitably-formatted commands can be used as a so-called '''tool text''', thus serving as a user-configurable menu. Even the output of a previous command can be edited and used as a new command. This approach is radically different from both conventional dialogue-oriented console menus or [[command line interface]]s. Since it does not use graphical [[Widget (GUI)|widgets]], only plain text, but offers comparable functionality to a [[GUI]] with a [[tiling window manager]], it is referred to as a Text User Interface or TUI. For a short introduction, see the 2nd paragraph on page four of the first published ''Report on the Oberon System''.<ref>Niklaus Wirth & Jürg Gutknecht: (1988) The Oberon System. [http://e-collection.library.ethz.ch/eserv/eth:3180/eth-3180-01.pdf Report Nr. 88].</ref> Oberon's [[User Interface|UI]] influenced the design of the [[Acme (text editor)|Acme text editor and email client]] for the [[Plan 9 from Bell Labs]] operating system. == In embedded systems == [[File:MicroVGA TUI demoapp.jpg|thumb|300px|Embedded system displaying menu on an LCD screen]] Modern [[embedded system]]s are capable of displaying TUI on a monitor like personal computers. This functionality is usually implemented using specialized integrated circuits, modules, or using [[FPGA]]. Video circuits or modules are usually controlled using [[VT100]]-compatible command set over [[UART]],{{Citation needed|date=January 2009}} FPGA designs usually allow direct video memory access.{{Citation needed|date=January 2009}} == Other uses == * The [[full screen editor]] of the [[Commodore 64]] 8-bit computers was advanced in its market segment for its time. Users could move the cursor over the entire screen area, entering and editing [[BASIC]] program lines, as well as [[direct mode]] commands. All Commodore [[8-bit]] computers used the [[PETSCII]] character set, which included character glyphs suitable for making a TUI. * Apple's [[Macintosh Programmer's Workshop]] programming environment included Commando, a TUI shell. It was the inspiration for BBEdit's shell worksheet. * Later [[Apple II]] models included [[MouseText]], a set of graphical glyphs used for making a TUI. * The [[Corvus Concept]] computer of 1982 used a [[function key]]-based text interface on a full-page pivoting display. == See also == * [[Command-line interface]] * [[Console application]] * [[Natural language user interface]] * [[Text-based game]], a game using a TUI === Examples of programming libraries === * [[curses (programming library)]] * [[ncurses]] * [[CDK (programming library)|CDK]] * [[Newt (programming library)|Newt]], a widget-based toolkit * [[Turbo Vision]] * [[Visual Basic#History|Early versions of Visual Basic]] == References == {{Reflist}} {{Operating system}} [[Category:Text user interface| ]] [[Category:User interfaces]]'
New page wikitext, after the edit (new_wikitext)
'{{distinguish|Command-line interface}} {{refimprove|date=September 2014}} [[File:Midnight Commander (2005) en.png|thumb|300px|Some [[file manager]]s implement a TUI (''here: [[Midnight Commander]]'')]] [[File:Vim-%28logiciel%29-console.png|thumb|300px|[[Vim (text editor)|Vim]] is a very widely used TUI text editor]] In [[computing]], '''text-based user interfaces''' ('''TUI''') (alternately '''terminal user interfaces''', to reflect a dependence upon the properties of [[computer terminal]]s and not just text), is a [[retronym]] describing a type of [[user interface]] (UI) common as an early form of [[human–computer interaction]], before the advent of [[graphical user interface]]s (GUIs). Like GUIs, they may use the entire [[Electronic visual display|screen]] area and accept [[mouse (computing)|mouse]] and other inputs. They may also use color and often structure the display using special graphical [[Character (computing)|character]]s such as ┌ and ╣, referred to in [[Unicode]] as the "box drawing" set. The modern context of use is usually a [[terminal emulator]]. <!-- [[VisiCalc]] and the [[Emacs]] and [[vi]] [[visual editor]]s are the earliest examples of TUIs. --> == Types of text terminals == From [[console application|text application]]'s point of view, a text screen (and communications with it) can belong to one of three types (here ordered in order of decreasing accessibility): # A genuine [[text mode]] display, controlled by a [[video adapter]] or the central processor itself. This is a normal condition for a locally running application on various types of [[personal computer]]s and [[mobile device]]s. If not deterred by the [[operating system]], a smart program may exploit the full power of a hardware text mode. # A text mode [[emulator]]. Examples are [[xterm]] for [[X&nbsp;Window System]] and [[win32 console]] (in a window mode) for [[Microsoft Windows]]. This usually supports programs which expect a real text mode display, but may run considerably slower. Certain functions of an advanced text mode, such as an own [[raster font|font]] uploading<!-- BTW what about raw keyboard input? -->, almost certainly become unavailable. # A remote [[text terminal]]. The communication capabilities usually become reduced to a [[serial line]] or its emulation, possibly with few [[ioctl]]()s as an [[Out-of-band data|out-of-band]] channel in such cases as [[Telnet]] and [[Secure Shell]]. This is the worst case, because software restrictions hinder the use of capabilities of a remote display device. Under [[Linux kernel|Linux]] and other [[Unix-like]] systems, a program easily [[graceful degradation|accommodates]] to any of the three cases because the same interface (namely, [[standard streams]]) controls the display and keyboard. Also, [[#Under Unix-like systems|specialized programming libraries]] help to output the text in a way appropriate to the given display device and interface to it. See [[#Windows|below]] for a comparison to Windows. == On ANSI-compatible terminals == [[American National Standards Institute]] (ANSI) standard [[ANSI X3.64]] defines a standard set of [[escape sequence]]s that can be used to drive terminals to create TUIs (see [[ANSI escape code]]). Escape sequences may be supported for all three cases mentioned in the above section, allowing arbitrary [[text cursor|cursor]] movements and color changes. However, not all terminals follow this standard, and many non-compatible but functionally equivalent sequences exist. {{clear}} Zeldasd isd cool ɲəəəəəəəəəə == Under Unix-like systems == [[File:XFdrake.png|thumb|300px|Snapshot of 'XFdrake', a TUI used in [[Mandriva Linux]] to configure the graphical system.]] In [[Unix-like]] operating systems, TUIs are often constructed using the terminal control [[library (computer science)|library]] ''[[curses (programming library)|curses]]'', or ''[[ncurses]]'' (a mostly compatible library), or the alternative ''[[S-Lang]]'' library. The advent of the ''curses'' library with [[BSD|Berkeley Unix]] created a portable and stable API for which to write TUIs. The ability to talk to various [[text terminal]] types using the same [[application programming interface|interfaces]] led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in [[text editor]]s such as [[vi]], [[E-mail client|mail clients]] such as [[pine (e-mail client)|pine]] or [[mutt (e-mail client)|mutt]], system management tools such as [[IBM AIX SMIT|SMIT]], [[SAM (HP-UX)|SAM]], [[FreeBSD]]'s [[Sysinstall]] and [[web browser]]s such as [[lynx (web browser)|lynx]]. Some applications, such as [[w3m]], and older versions of [[pine (e-mail client)|pine]] and [[vi]] use the less-able [[termcap]] library, performing many of the functions associated with [[curses (programming library)|curses]] within the application. Custom TUI applications based on ''widgets'' can be easily developed using the [[Dialog (software)|dialog]] program (based on [[ncurses]]), or the [[Newt (programming library)|Whiptail]] program (based on [[S-Lang]]). In addition, the rise in popularity of [[Linux]] brought many former DOS users to a Unix-like platform, which has fostered a DOS influence in many TUIs. The program [[minicom]], for example, is modeled after the popular DOS program [[Telix]]. Some other TUI programs, such as the [[Twin (windowing system)|Twin]] desktop, were [[ported]] over. Most Unix-like operating systems (Linux, FreeBSD etc.) support [[virtual console]]s, typically accessed through a Ctrl-Alt-F key combination. For example, under Linux up to 64 consoles may be accessed (12 via function keys), each displaying in full-screen text mode. The [[free software]] program [[GNU Screen]] provides for managing multiple sessions inside a single TUI, and so can be thought of as being like a [[window manager]] for text-mode and command-line interfaces. [[Tmux]] can also do this. The proprietary [[macOS]] [[text editor]] [[BBEdit]] includes a ''shell worksheet'' function that works as a full-screen shell window. The [[free software|free]] [[Emacs]] text editor can run a shell inside of one of its buffers to provide similar functionality. There are several shell implementations in Emacs, but only <code>ansi-term</code> is suitable for running TUI programs. The other common shell modes, <code>shell</code> and <code>eshell</code> only emulate command lines and TUI programs will complain "Terminal is not fully functional" or display a garbled interface. The [[free software|free]] [[Vim (text editor)|Vim]] and [[Neovim]] text editors have terminal windows (simulating [[xterm]]). The feature is intended for running jobs, parallel builds, or tests, but can also be used (with window splits and tab pages) as a lightweight terminal multiplexer. == OpenVMS == VAX/VMS and the later development [[OpenVMS]] had a similar facility to ''curses'' known as the Screen Management facility or SMG. This could be invoked from the command line or called from programs using the SMG$ library. == Oberon == [[File:OberonScreen.PNG|thumb|300px|Screenshot of the desktop of an Oberon System showing an image and several text viewers]] Another kind of TUI is the primary interface of the [[Oberon operating system]], first released in 1988 and still maintained. Unlike most other text-based user interfaces, Oberon does not use a text-mode console or terminal, but requires a large bit-mapped display, on which text is the primary target for mouse clicks. Commands in the format <code>Module.Procedure ''parameters''&nbsp;~</code> can be activated with a middle-click, like [[hyperlinks]]. Text displayed anywhere on the screen can be edited, and if formatted with the required command syntax, can be middle-clicked and executed. Any text file containing suitably-formatted commands can be used as a so-called '''tool text''', thus serving as a user-configurable menu. Even the output of a previous command can be edited and used as a new command. This approach is radically different from both conventional dialogue-oriented console menus or [[command line interface]]s. Since it does not use graphical [[Widget (GUI)|widgets]], only plain text, but offers comparable functionality to a [[GUI]] with a [[tiling window manager]], it is referred to as a Text User Interface or TUI. For a short introduction, see the 2nd paragraph on page four of the first published ''Report on the Oberon System''.<ref>Niklaus Wirth & Jürg Gutknecht: (1988) The Oberon System. [http://e-collection.library.ethz.ch/eserv/eth:3180/eth-3180-01.pdf Report Nr. 88].</ref> Oberon's [[User Interface|UI]] influenced the design of the [[Acme (text editor)|Acme text editor and email client]] for the [[Plan 9 from Bell Labs]] operating system. == In embedded systems == [[File:MicroVGA TUI demoapp.jpg|thumb|300px|Embedded system displaying menu on an LCD screen]] Modern [[embedded system]]s are capable of displaying TUI on a monitor like personal computers. This functionality is usually implemented using specialized integrated circuits, modules, or using [[FPGA]]. Video circuits or modules are usually controlled using [[VT100]]-compatible command set over [[UART]],{{Citation needed|date=January 2009}} FPGA designs usually allow direct video memory access.{{Citation needed|date=January 2009}} == Other uses == * The [[full screen editor]] of the [[Commodore 64]] 8-bit computers was advanced in its market segment for its time. Users could move the cursor over the entire screen area, entering and editing [[BASIC]] program lines, as well as [[direct mode]] commands. All Commodore [[8-bit]] computers used the [[PETSCII]] character set, which included character glyphs suitable for making a TUI. * Apple's [[Macintosh Programmer's Workshop]] programming environment included Commando, a TUI shell. It was the inspiration for BBEdit's shell worksheet. * Later [[Apple II]] models included [[MouseText]], a set of graphical glyphs used for making a TUI. * The [[Corvus Concept]] computer of 1982 used a [[function key]]-based text interface on a full-page pivoting display. == See also == * [[Command-line interface]] * [[Console application]] * [[Natural language user interface]] * [[Text-based game]], a game using a TUI === Examples of programming libraries === * [[curses (programming library)]] * [[ncurses]] * [[CDK (programming library)|CDK]] * [[Newt (programming library)|Newt]], a widget-based toolkit * [[Turbo Vision]] * [[Visual Basic#History|Early versions of Visual Basic]] == References == {{Reflist}} {{Operating system}} [[Category:Text user interface| ]] [[Category:User interfaces]]'
Unified diff of changes made by edit (edit_diff)
'@@ -23,16 +23,5 @@ {{clear}} -== Under DOS and Microsoft Windows == -[[File:Fdedit.png|thumb|300px|The [[FreeDOS]] Edit user interface]] -On [[IBM Personal Computer]]s and [[IBM PC compatible|compatibles]], the Basic Input Output System ([[BIOS]]) and [[DOS]] system calls provide a way to write text on the screen, and the [[ANSI.SYS]] driver could process standard ANSI escape sequences. However, programmers soon learned that writing data directly to the [[screen buffer]] was far faster and simpler to program, and less error-prone; see [[VGA-compatible text mode]] for details. This change in programming methods resulted in many DOS TUI programs. {{anchor|Windows}}The [[win32 console]] environment is notorious for its emulation of certain EGA/VGA text mode features, particularly random access to the text buffer, even if the application runs in a window. On the other hand, programs running under Windows (both native and DOS applications) have much less control of the display and keyboard than Linux and DOS programs can have, because of aforementioned win32 console layer. - -[[File:itmouse.png|thumb|300px|left|Mouse cursor in [[Impulse Tracker]]. A more precise cursor (per-pixel resolution) was achieved by regenerating the glyphs of characters used where the cursor was visible, at each mouse movement in real-time.{{citation needed|date=December 2011}}]] - -Most often those programs used a blue background for the main screen, with white or yellow characters, although commonly they had also user color customization. They often used [[box-drawing character]]s in IBM's [[code page 437]]. Later, the interface became deeply influenced by [[graphical user interface]]s (GUI), adding [[pull-down menu]]s, overlapping [[window (computing)|windows]], [[dialog box]]es and [[GUI widget]]s operated by [[mnemonics (keyboard)|mnemonics]] or [[keyboard shortcut]]s. Soon [[computer mouse|mouse]] input was added&nbsp;– either at text resolution as a simple colored box or at graphical resolution thanks to the ability of the [[Enhanced Graphics Adapter]] (EGA) and [[Video Graphics Array]] (VGA) display adapters to [[VGA-compatible text mode#Fonts|redefine the text character shapes by software]]&nbsp;– providing additional functions. - -Some notable programs of this kind were [[Microsoft Word]], [[DOS Shell]], [[WordPerfect]], [[Norton Commander]], [[Turbo Vision]] based [[Borland]] [[Turbo Pascal]] and [[Turbo C]] (the latter included the [[conio.h|conio]] [[library (computer science)|library]]), [[Lotus 1-2-3]] and many others. Some of these interfaces survived even during the [[Microsoft]] [[Windows 3.1x]] period in the early 1990s. For example, the [[Microsoft C]] 6.0 compiler, used to write true GUI programs under [[16-bit]] Windows, still has its own TUI. - -Since its start, [[Microsoft Windows]] includes a console to display DOS software. Later versions added the [[Win32 console]] as a native interface for [[command-line interface]] and TUI programs. The console usually opens in window mode, but it can be switched to full, true text mode screen and vice versa by pressing the [[Alt key|Alt]] and [[Enter key|Enter]] keys together. Full-screen mode is not available in Windows Vista and later, but may be used with some workarounds.<ref>[http://social.technet.microsoft.com/Forums/en/w7itprohardware/thread/3cc6994e-cbc2-4844-b040-a3c8385c69a5 cmd prompt full screen in Windows 7]. Social.technet.microsoft.com. Retrieved on 2013-06-15.</ref> -{{-}} +Zeldasd isd cool ɲəəəəəəəəəə == Under Unix-like systems == '
New page size (new_size)
10715
Old page size (old_size)
14123
Size change in edit (edit_delta)
-3408
Lines added in edit (added_lines)
[ 0 => 'Zeldasd isd cool ɲəəəəəəəəəə' ]
Lines removed in edit (removed_lines)
[ 0 => '== Under DOS and Microsoft Windows ==', 1 => '[[File:Fdedit.png|thumb|300px|The [[FreeDOS]] Edit user interface]]', 2 => 'On [[IBM Personal Computer]]s and [[IBM PC compatible|compatibles]], the Basic Input Output System ([[BIOS]]) and [[DOS]] system calls provide a way to write text on the screen, and the [[ANSI.SYS]] driver could process standard ANSI escape sequences. However, programmers soon learned that writing data directly to the [[screen buffer]] was far faster and simpler to program, and less error-prone; see [[VGA-compatible text mode]] for details. This change in programming methods resulted in many DOS TUI programs. {{anchor|Windows}}The [[win32 console]] environment is notorious for its emulation of certain EGA/VGA text mode features, particularly random access to the text buffer, even if the application runs in a window. On the other hand, programs running under Windows (both native and DOS applications) have much less control of the display and keyboard than Linux and DOS programs can have, because of aforementioned win32 console layer.', 3 => '', 4 => '[[File:itmouse.png|thumb|300px|left|Mouse cursor in [[Impulse Tracker]]. A more precise cursor (per-pixel resolution) was achieved by regenerating the glyphs of characters used where the cursor was visible, at each mouse movement in real-time.{{citation needed|date=December 2011}}]]', 5 => '', 6 => 'Most often those programs used a blue background for the main screen, with white or yellow characters, although commonly they had also user color customization. They often used [[box-drawing character]]s in IBM's [[code page 437]]. Later, the interface became deeply influenced by [[graphical user interface]]s (GUI), adding [[pull-down menu]]s, overlapping [[window (computing)|windows]], [[dialog box]]es and [[GUI widget]]s operated by [[mnemonics (keyboard)|mnemonics]] or [[keyboard shortcut]]s. Soon [[computer mouse|mouse]] input was added&nbsp;– either at text resolution as a simple colored box or at graphical resolution thanks to the ability of the [[Enhanced Graphics Adapter]] (EGA) and [[Video Graphics Array]] (VGA) display adapters to [[VGA-compatible text mode#Fonts|redefine the text character shapes by software]]&nbsp;– providing additional functions.', 7 => '', 8 => 'Some notable programs of this kind were [[Microsoft Word]], [[DOS Shell]], [[WordPerfect]], [[Norton Commander]], [[Turbo Vision]] based [[Borland]] [[Turbo Pascal]] and [[Turbo C]] (the latter included the [[conio.h|conio]] [[library (computer science)|library]]), [[Lotus 1-2-3]] and many others. Some of these interfaces survived even during the [[Microsoft]] [[Windows 3.1x]] period in the early 1990s. For example, the [[Microsoft C]] 6.0 compiler, used to write true GUI programs under [[16-bit]] Windows, still has its own TUI.', 9 => '', 10 => 'Since its start, [[Microsoft Windows]] includes a console to display DOS software. Later versions added the [[Win32 console]] as a native interface for [[command-line interface]] and TUI programs. The console usually opens in window mode, but it can be switched to full, true text mode screen and vice versa by pressing the [[Alt key|Alt]] and [[Enter key|Enter]] keys together. Full-screen mode is not available in Windows Vista and later, but may be used with some workarounds.<ref>[http://social.technet.microsoft.com/Forums/en/w7itprohardware/thread/3cc6994e-cbc2-4844-b040-a3c8385c69a5 cmd prompt full screen in Windows 7]. Social.technet.microsoft.com. Retrieved on 2013-06-15.</ref>', 11 => '{{-}}' ]
Parsed HTML source of the new revision (new_html)
'<div class="mw-parser-output"><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="/wiki/Command-line_interface" title="Command-line interface">Command-line interface</a>.</div> <table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div style="width:52px"><a href="/wiki/File:Question_book-new.svg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Text-based_user_interface&amp;action=edit">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i>&#160;<a rel="nofollow" class="external text" href="//www.google.com/search?as_eq=wikipedia&amp;q=%22Text-based+user+interface%22">"Text-based user interface"</a>&#160;–&#160;<a rel="nofollow" class="external text" href="//www.google.com/search?tbm=nws&amp;q=%22Text-based+user+interface%22+-wikipedia">news</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="//www.google.com/search?&amp;q=%22Text-based+user+interface%22+site:news.google.com/newspapers&amp;source=newspapers">newspapers</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="//www.google.com/search?tbs=bks:1&amp;q=%22Text-based+user+interface%22+-wikipedia">books</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="//scholar.google.com/scholar?q=%22Text-based+user+interface%22">scholar</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Text-based+user+interface%22&amp;acc=on&amp;wc=on">JSTOR</a></span></small></span> <small class="date-container"><i>(<span class="date">September 2014</span>)</i></small><small class="hide-when-compact"><i> (<a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this template message</a>)</i></small></div></td></tr></tbody></table> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/File:Midnight_Commander_(2005)_en.png" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Midnight_Commander_%282005%29_en.png/300px-Midnight_Commander_%282005%29_en.png" decoding="async" width="300" height="180" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Midnight_Commander_%282005%29_en.png/450px-Midnight_Commander_%282005%29_en.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Midnight_Commander_%282005%29_en.png/600px-Midnight_Commander_%282005%29_en.png 2x" data-file-width="640" data-file-height="384" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Midnight_Commander_(2005)_en.png" class="internal" title="Enlarge"></a></div>Some <a href="/wiki/File_manager" title="File manager">file managers</a> implement a TUI (<i>here: <a href="/wiki/Midnight_Commander" title="Midnight Commander">Midnight Commander</a></i>)</div></div></div> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/File:Vim-(logiciel)-console.png" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Vim-%28logiciel%29-console.png/300px-Vim-%28logiciel%29-console.png" decoding="async" width="300" height="178" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Vim-%28logiciel%29-console.png/450px-Vim-%28logiciel%29-console.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Vim-%28logiciel%29-console.png/600px-Vim-%28logiciel%29-console.png 2x" data-file-width="1236" data-file-height="735" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Vim-(logiciel)-console.png" class="internal" title="Enlarge"></a></div><a href="/wiki/Vim_(text_editor)" title="Vim (text editor)">Vim</a> is a very widely used TUI text editor</div></div></div> <p>In <a href="/wiki/Computing" title="Computing">computing</a>, <b>text-based user interfaces</b> (<b>TUI</b>) (alternately <b>terminal user interfaces</b>, to reflect a dependence upon the properties of <a href="/wiki/Computer_terminal" title="Computer terminal">computer terminals</a> and not just text), is a <a href="/wiki/Retronym" title="Retronym">retronym</a> describing a type of <a href="/wiki/User_interface" title="User interface">user interface</a> (UI) common as an early form of <a href="/wiki/Human%E2%80%93computer_interaction" title="Human–computer interaction">human–computer interaction</a>, before the advent of <a href="/wiki/Graphical_user_interface" title="Graphical user interface">graphical user interfaces</a> (GUIs). Like GUIs, they may use the entire <a href="/wiki/Electronic_visual_display" title="Electronic visual display">screen</a> area and accept <a href="/wiki/Mouse_(computing)" class="mw-redirect" title="Mouse (computing)">mouse</a> and other inputs. They may also use color and often structure the display using special graphical <a href="/wiki/Character_(computing)" title="Character (computing)">characters</a> such as ┌ and ╣, referred to in <a href="/wiki/Unicode" title="Unicode">Unicode</a> as the "box drawing" set. The modern context of use is usually a <a href="/wiki/Terminal_emulator" title="Terminal emulator">terminal emulator</a>. </p><p><br /> </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Types_of_text_terminals"><span class="tocnumber">1</span> <span class="toctext">Types of text terminals</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#On_ANSI-compatible_terminals"><span class="tocnumber">2</span> <span class="toctext">On ANSI-compatible terminals</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Under_Unix-like_systems"><span class="tocnumber">3</span> <span class="toctext">Under Unix-like systems</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#OpenVMS"><span class="tocnumber">4</span> <span class="toctext">OpenVMS</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Oberon"><span class="tocnumber">5</span> <span class="toctext">Oberon</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#In_embedded_systems"><span class="tocnumber">6</span> <span class="toctext">In embedded systems</span></a></li> <li class="toclevel-1 tocsection-7"><a href="#Other_uses"><span class="tocnumber">7</span> <span class="toctext">Other uses</span></a></li> <li class="toclevel-1 tocsection-8"><a href="#See_also"><span class="tocnumber">8</span> <span class="toctext">See also</span></a> <ul> <li class="toclevel-2 tocsection-9"><a href="#Examples_of_programming_libraries"><span class="tocnumber">8.1</span> <span class="toctext">Examples of programming libraries</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-10"><a href="#References"><span class="tocnumber">9</span> <span class="toctext">References</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Types_of_text_terminals">Types of text terminals</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=1" title="Edit section: Types of text terminals">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>From <a href="/wiki/Console_application" title="Console application">text application</a>'s point of view, a text screen (and communications with it) can belong to one of three types (here ordered in order of decreasing accessibility): </p> <ol><li>A genuine <a href="/wiki/Text_mode" title="Text mode">text mode</a> display, controlled by a <a href="/wiki/Video_adapter" class="mw-redirect" title="Video adapter">video adapter</a> or the central processor itself. This is a normal condition for a locally running application on various types of <a href="/wiki/Personal_computer" title="Personal computer">personal computers</a> and <a href="/wiki/Mobile_device" title="Mobile device">mobile devices</a>. If not deterred by the <a href="/wiki/Operating_system" title="Operating system">operating system</a>, a smart program may exploit the full power of a hardware text mode.</li> <li>A text mode <a href="/wiki/Emulator" title="Emulator">emulator</a>. Examples are <a href="/wiki/Xterm" title="Xterm">xterm</a> for <a href="/wiki/X_Window_System" title="X Window System">X&#160;Window System</a> and <a href="/wiki/Win32_console" class="mw-redirect" title="Win32 console">win32 console</a> (in a window mode) for <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>. This usually supports programs which expect a real text mode display, but may run considerably slower. Certain functions of an advanced text mode, such as an own <a href="/wiki/Raster_font" class="mw-redirect" title="Raster font">font</a> uploading, almost certainly become unavailable.</li> <li>A remote <a href="/wiki/Text_terminal" class="mw-redirect" title="Text terminal">text terminal</a>. The communication capabilities usually become reduced to a <a href="/wiki/Serial_line" class="mw-redirect" title="Serial line">serial line</a> or its emulation, possibly with few <a href="/wiki/Ioctl" title="Ioctl">ioctl</a>()s as an <a href="/wiki/Out-of-band_data" title="Out-of-band data">out-of-band</a> channel in such cases as <a href="/wiki/Telnet" title="Telnet">Telnet</a> and <a href="/wiki/Secure_Shell" class="mw-redirect" title="Secure Shell">Secure Shell</a>. This is the worst case, because software restrictions hinder the use of capabilities of a remote display device.</li></ol> <p>Under <a href="/wiki/Linux_kernel" title="Linux kernel">Linux</a> and other <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> systems, a program easily <a href="/wiki/Graceful_degradation" class="mw-redirect" title="Graceful degradation">accommodates</a> to any of the three cases because the same interface (namely, <a href="/wiki/Standard_streams" title="Standard streams">standard streams</a>) controls the display and keyboard. Also, <a href="#Under_Unix-like_systems">specialized programming libraries</a> help to output the text in a way appropriate to the given display device and interface to it. See <a href="#Windows">below</a> for a comparison to Windows. </p> <h2><span class="mw-headline" id="On_ANSI-compatible_terminals">On ANSI-compatible terminals</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=2" title="Edit section: On ANSI-compatible terminals">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p><a href="/wiki/American_National_Standards_Institute" title="American National Standards Institute">American National Standards Institute</a> (ANSI) standard <a href="/wiki/ANSI_X3.64" class="mw-redirect" title="ANSI X3.64">ANSI X3.64</a> defines a standard set of <a href="/wiki/Escape_sequence" title="Escape sequence">escape sequences</a> that can be used to drive terminals to create TUIs (see <a href="/wiki/ANSI_escape_code" title="ANSI escape code">ANSI escape code</a>). Escape sequences may be supported for all three cases mentioned in the above section, allowing arbitrary <a href="/wiki/Text_cursor" class="mw-redirect" title="Text cursor">cursor</a> movements and color changes. However, not all terminals follow this standard, and many non-compatible but functionally equivalent sequences exist. </p> <div style="clear:both;"></div> <p>Zeldasd isd cool ɲəəəəəəəəəə </p> <h2><span class="mw-headline" id="Under_Unix-like_systems">Under Unix-like systems</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=3" title="Edit section: Under Unix-like systems">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/File:XFdrake.png" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/25/XFdrake.png/300px-XFdrake.png" decoding="async" width="300" height="181" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/25/XFdrake.png/450px-XFdrake.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/25/XFdrake.png/600px-XFdrake.png 2x" data-file-width="641" data-file-height="386" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:XFdrake.png" class="internal" title="Enlarge"></a></div>Snapshot of 'XFdrake', a TUI used in <a href="/wiki/Mandriva_Linux" title="Mandriva Linux">Mandriva Linux</a> to configure the graphical system.</div></div></div> <p>In <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> operating systems, TUIs are often constructed using the terminal control <a href="/wiki/Library_(computer_science)" class="mw-redirect" title="Library (computer science)">library</a> <i><a href="/wiki/Curses_(programming_library)" title="Curses (programming library)">curses</a></i>, or <i><a href="/wiki/Ncurses" title="Ncurses">ncurses</a></i> (a mostly compatible library), or the alternative <i><a href="/wiki/S-Lang" title="S-Lang">S-Lang</a></i> library. The advent of the <i>curses</i> library with <a href="/wiki/BSD" class="mw-redirect" title="BSD">Berkeley Unix</a> created a portable and stable API for which to write TUIs. The ability to talk to various <a href="/wiki/Text_terminal" class="mw-redirect" title="Text terminal">text terminal</a> types using the same <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">interfaces</a> led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in <a href="/wiki/Text_editor" title="Text editor">text editors</a> such as <a href="/wiki/Vi" title="Vi">vi</a>, <a href="/wiki/E-mail_client" class="mw-redirect" title="E-mail client">mail clients</a> such as <a href="/wiki/Pine_(e-mail_client)" class="mw-redirect" title="Pine (e-mail client)">pine</a> or <a href="/wiki/Mutt_(e-mail_client)" class="mw-redirect" title="Mutt (e-mail client)">mutt</a>, system management tools such as <a href="/wiki/IBM_AIX_SMIT" class="mw-redirect" title="IBM AIX SMIT">SMIT</a>, <a href="/w/index.php?title=SAM_(HP-UX)&amp;action=edit&amp;redlink=1" class="new" title="SAM (HP-UX) (page does not exist)">SAM</a>, <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a>'s <a href="/wiki/Sysinstall" class="mw-redirect" title="Sysinstall">Sysinstall</a> and <a href="/wiki/Web_browser" title="Web browser">web browsers</a> such as <a href="/wiki/Lynx_(web_browser)" title="Lynx (web browser)">lynx</a>. Some applications, such as <a href="/wiki/W3m" title="W3m">w3m</a>, and older versions of <a href="/wiki/Pine_(e-mail_client)" class="mw-redirect" title="Pine (e-mail client)">pine</a> and <a href="/wiki/Vi" title="Vi">vi</a> use the less-able <a href="/wiki/Termcap" title="Termcap">termcap</a> library, performing many of the functions associated with <a href="/wiki/Curses_(programming_library)" title="Curses (programming library)">curses</a> within the application. Custom TUI applications based on <i>widgets</i> can be easily developed using the <a href="/wiki/Dialog_(software)" title="Dialog (software)">dialog</a> program (based on <a href="/wiki/Ncurses" title="Ncurses">ncurses</a>), or the <a href="/wiki/Newt_(programming_library)" title="Newt (programming library)">Whiptail</a> program (based on <a href="/wiki/S-Lang" title="S-Lang">S-Lang</a>). </p><p>In addition, the rise in popularity of <a href="/wiki/Linux" title="Linux">Linux</a> brought many former DOS users to a Unix-like platform, which has fostered a DOS influence in many TUIs. The program <a href="/wiki/Minicom" title="Minicom">minicom</a>, for example, is modeled after the popular DOS program <a href="/wiki/Telix" title="Telix">Telix</a>. Some other TUI programs, such as the <a href="/wiki/Twin_(windowing_system)" title="Twin (windowing system)">Twin</a> desktop, were <a href="/wiki/Ported" class="mw-redirect" title="Ported">ported</a> over. </p><p>Most Unix-like operating systems (Linux, FreeBSD etc.) support <a href="/wiki/Virtual_console" title="Virtual console">virtual consoles</a>, typically accessed through a Ctrl-Alt-F key combination. For example, under Linux up to 64 consoles may be accessed (12 via function keys), each displaying in full-screen text mode. </p><p>The <a href="/wiki/Free_software" title="Free software">free software</a> program <a href="/wiki/GNU_Screen" title="GNU Screen">GNU Screen</a> provides for managing multiple sessions inside a single TUI, and so can be thought of as being like a <a href="/wiki/Window_manager" title="Window manager">window manager</a> for text-mode and command-line interfaces. <a href="/wiki/Tmux" title="Tmux">Tmux</a> can also do this. </p><p>The proprietary <a href="/wiki/MacOS" title="MacOS">macOS</a> <a href="/wiki/Text_editor" title="Text editor">text editor</a> <a href="/wiki/BBEdit" title="BBEdit">BBEdit</a> includes a <i>shell worksheet</i> function that works as a full-screen shell window. The <a href="/wiki/Free_software" title="Free software">free</a> <a href="/wiki/Emacs" title="Emacs">Emacs</a> text editor can run a shell inside of one of its buffers to provide similar functionality. There are several shell implementations in Emacs, but only <code>ansi-term</code> is suitable for running TUI programs. The other common shell modes, <code>shell</code> and <code>eshell</code> only emulate command lines and TUI programs will complain "Terminal is not fully functional" or display a garbled interface. The <a href="/wiki/Free_software" title="Free software">free</a> <a href="/wiki/Vim_(text_editor)" title="Vim (text editor)">Vim</a> and <a href="/wiki/Neovim" class="mw-redirect" title="Neovim">Neovim</a> text editors have terminal windows (simulating <a href="/wiki/Xterm" title="Xterm">xterm</a>). The feature is intended for running jobs, parallel builds, or tests, but can also be used (with window splits and tab pages) as a lightweight terminal multiplexer. </p> <h2><span class="mw-headline" id="OpenVMS">OpenVMS</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=4" title="Edit section: OpenVMS">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>VAX/VMS and the later development <a href="/wiki/OpenVMS" title="OpenVMS">OpenVMS</a> had a similar facility to <i>curses</i> known as the Screen Management facility or SMG. This could be invoked from the command line or called from programs using the SMG$ library. </p> <h2><span class="mw-headline" id="Oberon">Oberon</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=5" title="Edit section: Oberon">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/File:OberonScreen.PNG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/OberonScreen.PNG/300px-OberonScreen.PNG" decoding="async" width="300" height="228" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/OberonScreen.PNG/450px-OberonScreen.PNG 1.5x, //upload.wikimedia.org/wikipedia/commons/c/cc/OberonScreen.PNG 2x" data-file-width="509" data-file-height="386" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:OberonScreen.PNG" class="internal" title="Enlarge"></a></div>Screenshot of the desktop of an Oberon System showing an image and several text viewers</div></div></div> <p>Another kind of TUI is the primary interface of the <a href="/wiki/Oberon_operating_system" class="mw-redirect" title="Oberon operating system">Oberon operating system</a>, first released in 1988 and still maintained. Unlike most other text-based user interfaces, Oberon does not use a text-mode console or terminal, but requires a large bit-mapped display, on which text is the primary target for mouse clicks. Commands in the format <code>Module.Procedure <i>parameters</i>&#160;~</code> can be activated with a middle-click, like <a href="/wiki/Hyperlinks" class="mw-redirect" title="Hyperlinks">hyperlinks</a>. Text displayed anywhere on the screen can be edited, and if formatted with the required command syntax, can be middle-clicked and executed. Any text file containing suitably-formatted commands can be used as a so-called <b>tool text</b>, thus serving as a user-configurable menu. Even the output of a previous command can be edited and used as a new command. This approach is radically different from both conventional dialogue-oriented console menus or <a href="/wiki/Command_line_interface" class="mw-redirect" title="Command line interface">command line interfaces</a>. </p><p>Since it does not use graphical <a href="/wiki/Widget_(GUI)" class="mw-redirect" title="Widget (GUI)">widgets</a>, only plain text, but offers comparable functionality to a <a href="/wiki/GUI" class="mw-redirect" title="GUI">GUI</a> with a <a href="/wiki/Tiling_window_manager" title="Tiling window manager">tiling window manager</a>, it is referred to as a Text User Interface or TUI. For a short introduction, see the 2nd paragraph on page four of the first published <i>Report on the Oberon System</i>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup> </p><p>Oberon's <a href="/wiki/User_Interface" class="mw-redirect" title="User Interface">UI</a> influenced the design of the <a href="/wiki/Acme_(text_editor)" title="Acme (text editor)">Acme text editor and email client</a> for the <a href="/wiki/Plan_9_from_Bell_Labs" title="Plan 9 from Bell Labs">Plan 9 from Bell Labs</a> operating system. </p> <h2><span class="mw-headline" id="In_embedded_systems">In embedded systems</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=6" title="Edit section: In embedded systems">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/File:MicroVGA_TUI_demoapp.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/MicroVGA_TUI_demoapp.jpg/300px-MicroVGA_TUI_demoapp.jpg" decoding="async" width="300" height="220" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/MicroVGA_TUI_demoapp.jpg/450px-MicroVGA_TUI_demoapp.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a1/MicroVGA_TUI_demoapp.jpg/600px-MicroVGA_TUI_demoapp.jpg 2x" data-file-width="2932" data-file-height="2152" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:MicroVGA_TUI_demoapp.jpg" class="internal" title="Enlarge"></a></div>Embedded system displaying menu on an LCD screen</div></div></div> <p>Modern <a href="/wiki/Embedded_system" title="Embedded system">embedded systems</a> are capable of displaying TUI on a monitor like personal computers. This functionality is usually implemented using specialized integrated circuits, modules, or using <a href="/wiki/FPGA" class="mw-redirect" title="FPGA">FPGA</a>. </p><p>Video circuits or modules are usually controlled using <a href="/wiki/VT100" title="VT100">VT100</a>-compatible command set over <a href="/wiki/UART" class="mw-redirect" title="UART">UART</a>,<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (January 2009)">citation needed</span></a></i>&#93;</sup> FPGA designs usually allow direct video memory access.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (January 2009)">citation needed</span></a></i>&#93;</sup> </p> <h2><span class="mw-headline" id="Other_uses">Other uses</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=7" title="Edit section: Other uses">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li>The <a href="/wiki/Full_screen_editor" class="mw-redirect" title="Full screen editor">full screen editor</a> of the <a href="/wiki/Commodore_64" title="Commodore 64">Commodore 64</a> 8-bit computers was advanced in its market segment for its time. Users could move the cursor over the entire screen area, entering and editing <a href="/wiki/BASIC" title="BASIC">BASIC</a> program lines, as well as <a href="/wiki/Direct_mode" title="Direct mode">direct mode</a> commands. All Commodore <a href="/wiki/8-bit" class="mw-redirect" title="8-bit">8-bit</a> computers used the <a href="/wiki/PETSCII" title="PETSCII">PETSCII</a> character set, which included character glyphs suitable for making a TUI.</li> <li>Apple's <a href="/wiki/Macintosh_Programmer%27s_Workshop" title="Macintosh Programmer&#39;s Workshop">Macintosh Programmer's Workshop</a> programming environment included Commando, a TUI shell. It was the inspiration for BBEdit's shell worksheet.</li> <li>Later <a href="/wiki/Apple_II" title="Apple II">Apple II</a> models included <a href="/wiki/MouseText" title="MouseText">MouseText</a>, a set of graphical glyphs used for making a TUI.</li> <li>The <a href="/wiki/Corvus_Concept" class="mw-redirect" title="Corvus Concept">Corvus Concept</a> computer of 1982 used a <a href="/wiki/Function_key" title="Function key">function key</a>-based text interface on a full-page pivoting display.</li></ul> <h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=8" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a href="/wiki/Command-line_interface" title="Command-line interface">Command-line interface</a></li> <li><a href="/wiki/Console_application" title="Console application">Console application</a></li> <li><a href="/wiki/Natural_language_user_interface" class="mw-redirect" title="Natural language user interface">Natural language user interface</a></li> <li><a href="/wiki/Text-based_game" title="Text-based game">Text-based game</a>, a game using a TUI</li></ul> <h3><span class="mw-headline" id="Examples_of_programming_libraries">Examples of programming libraries</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=9" title="Edit section: Examples of programming libraries">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ul><li><a href="/wiki/Curses_(programming_library)" title="Curses (programming library)">curses (programming library)</a></li> <li><a href="/wiki/Ncurses" title="Ncurses">ncurses</a></li> <li><a href="/wiki/CDK_(programming_library)" title="CDK (programming library)">CDK</a></li> <li><a href="/wiki/Newt_(programming_library)" title="Newt (programming library)">Newt</a>, a widget-based toolkit</li> <li><a href="/wiki/Turbo_Vision" title="Turbo Vision">Turbo Vision</a></li> <li><a href="/wiki/Visual_Basic#History" title="Visual Basic">Early versions of Visual Basic</a></li></ul> <h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Text-based_user_interface&amp;action=edit&amp;section=10" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">Niklaus Wirth &amp; Jürg Gutknecht: (1988) The Oberon System. <a rel="nofollow" class="external text" href="http://e-collection.library.ethz.ch/eserv/eth:3180/eth-3180-01.pdf">Report Nr. 88</a>.</span> </li> </ol></div></div> <div role="navigation" class="navbox" aria-labelledby="Operating_systems" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div class="plainlinks hlist navbar mini"><ul><li class="nv-view"><a href="/wiki/Template:Operating_systems" title="Template:Operating systems"><abbr title="View this template" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Operating_systems" title="Template talk:Operating systems"><abbr title="Discuss this template" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Operating_systems&amp;action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">e</abbr></a></li></ul></div><div id="Operating_systems" style="font-size:114%;margin:0 4em"><a href="/wiki/Operating_system" title="Operating system">Operating systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Operating_system_advocacy" title="Operating system advocacy">Advocacy</a></li> <li><a href="/wiki/Comparison_of_operating_systems" title="Comparison of operating systems">Comparison</a></li> <li><a href="/wiki/Forensic_software_engineering" title="Forensic software engineering">Forensic engineering</a></li> <li><a href="/wiki/History_of_operating_systems" title="History of operating systems">History</a></li> <li><a href="/wiki/Hobbyist_operating_system_development" title="Hobbyist operating system development">Hobbyist development</a></li> <li><a href="/wiki/List_of_operating_systems" title="List of operating systems">List</a></li> <li><a href="/wiki/Timeline_of_operating_systems" title="Timeline of operating systems">Timeline</a></li> <li><a href="/wiki/Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">Kernel</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em"><a href="/wiki/Computer_architecture" title="Computer architecture">Architectures</a></th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Exokernel" title="Exokernel">Exokernel</a></li> <li><a href="/wiki/Hybrid_kernel" title="Hybrid kernel">Hybrid</a></li> <li><a href="/wiki/Microkernel" title="Microkernel">Microkernel</a></li> <li><a href="/wiki/Monolithic_kernel" title="Monolithic kernel">Monolithic</a></li> <li><a href="/wiki/Vkernel" title="Vkernel">vkernel</a></li> <li><a href="/wiki/Rump_kernel" title="Rump kernel">Rump kernel</a></li> <li><a href="/wiki/Unikernel" title="Unikernel">Unikernel</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em">Components</th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Device_driver" title="Device driver">Device driver</a></li> <li><a href="/wiki/Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li> <li><a href="/wiki/Microkernel" title="Microkernel">Microkernel</a></li> <li><a href="/wiki/User_space" title="User space">User space</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Process_management_(computing)" title="Process management (computing)">Process management</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em">Concepts</th><td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Context_switch" title="Context switch">Context switch</a></li> <li><a href="/wiki/Interrupt" title="Interrupt">Interrupt</a></li> <li><a href="/wiki/Inter-process_communication" title="Inter-process communication">IPC</a></li> <li><a href="/wiki/Process_(computing)" title="Process (computing)">Process</a></li> <li><a href="/wiki/Process_control_block" title="Process control block">Process control block</a></li> <li><a href="/wiki/Real-time_operating_system" title="Real-time operating system">Real-time</a></li> <li><a href="/wiki/Thread_(computing)" title="Thread (computing)">Thread</a></li> <li><a href="/wiki/Time-sharing" title="Time-sharing">Time-sharing</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em"><a href="/wiki/Scheduling_(computing)" title="Scheduling (computing)">Scheduling<br />algorithms</a></th><td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Computer_multitasking" title="Computer multitasking">Computer multitasking</a></li> <li><a href="/wiki/Fixed-priority_pre-emptive_scheduling" title="Fixed-priority pre-emptive scheduling">Fixed-priority preemptive</a></li> <li><a href="/wiki/Multilevel_feedback_queue" title="Multilevel feedback queue">Multilevel feedback queue</a></li> <li><a href="/wiki/Preemption_(computing)" title="Preemption (computing)">Preemptive</a></li> <li><a href="/wiki/Round-robin_scheduling" title="Round-robin scheduling">Round-robin</a></li> <li><a href="/wiki/Shortest_job_next" title="Shortest job next">Shortest job next</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Memory_management" title="Memory management">Memory management</a>,<br /><a href="/wiki/System_resource" title="System resource">resource</a> protection</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Bus_error" title="Bus error">Bus error</a></li> <li><a href="/wiki/General_protection_fault" title="General protection fault">General protection fault</a></li> <li><a href="/wiki/Memory_protection" title="Memory protection">Memory protection</a></li> <li><a href="/wiki/Paging" title="Paging">Paging</a></li> <li><a href="/wiki/Protection_ring" title="Protection ring">Protection ring</a></li> <li><a href="/wiki/Segmentation_fault" title="Segmentation fault">Segmentation fault</a></li> <li><a href="/wiki/Virtual_memory" title="Virtual memory">Virtual memory</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Non-volatile_memory" title="Non-volatile memory">Storage</a> access,<br /><a href="/wiki/File_system" title="File system">file systems</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Booting#BOOT-LOADER" title="Booting">Boot loader</a></li> <li><a href="/wiki/Defragmentation" title="Defragmentation">Defragmentation</a></li> <li><a href="/wiki/Device_file" title="Device file">Device file</a></li> <li><a href="/wiki/File_attribute" title="File attribute">File attribute</a></li> <li><a href="/wiki/Inode" title="Inode">Inode</a></li> <li><a href="/wiki/Journaling_file_system" title="Journaling file system">Journal</a></li> <li><a href="/wiki/Disk_partitioning" title="Disk partitioning">Partition</a></li> <li><a href="/wiki/Virtual_file_system" title="Virtual file system">Virtual file system</a></li> <li><a href="/wiki/Virtual_tape_library" title="Virtual tape library">Virtual tape library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Supporting concepts</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a></li> <li><a href="/wiki/Computer_network" title="Computer network">Computer network</a></li> <li><a href="/wiki/Hardware_abstraction" title="Hardware abstraction">HAL</a></li> <li><a href="/wiki/Live_CD" title="Live CD">Live CD</a></li> <li><a href="/wiki/Live_USB" title="Live USB">Live USB</a></li> <li><a href="/wiki/Shell_(computing)" title="Shell (computing)">OS shell</a> <ul><li><a href="/wiki/Command-line_interface" title="Command-line interface">CLI</a></li> <li><a href="/wiki/Graphical_user_interface" title="Graphical user interface">GUI</a></li> <li><a href="/wiki/Graphical_user_interface#Three-dimensional_graphical_user_interfaces_(3D_GUIs)" title="Graphical user interface">3D GUI</a></li> <li><a href="/wiki/Natural_user_interface" title="Natural user interface">NUI</a></li> <li><a class="mw-selflink selflink">TUI</a></li> <li><a href="/wiki/Voice_user_interface" title="Voice user interface">VUI</a></li> <li><a href="/wiki/Zooming_user_interface" title="Zooming user interface">ZUI</a></li></ul></li> <li><a href="/wiki/Preboot_Execution_Environment" title="Preboot Execution Environment">PXE</a></li></ul> </div></td></tr></tbody></table></div> '
Whether or not the change was made through a Tor exit node (tor_exit_node)
false
Unix timestamp of change (timestamp)
1600090150