Science Fair Project Encyclopedia
A text mode program communicates with the user by only displaying text and possibly a limited set of predefined semi-graphical characters, which allow to draw rudimentary boxes around portions of text, either to highlight the content or to simulate widget or control interface objects found in GUI programs.
An important characteristic of text mode programs is that they assume constant width fonts, where every character has the same width on screen, which allows to easily maintain the vertical alignment when displaying semi-graphical characters. A text mode is implemented with a screen buffer that contains the matrix of characters and their attributes. This buffer is converted by the video controller into a video signal.
Depending on the environment, the screen buffer can be directly addressable. Programs that display output on remote video terminals must issue special control sequences to manipulate the screen buffer. The most popular standards for such control sequences are ANSI and VT100.
Programs accessing the screen buffer through control sequences may lose synchronization with the actual display, and so many text mode programs have a redisplay everything command, often associated with the Ctrl-L key combination.
The border between text mode and graphical programs can sometimes be fuzzy, especially on the PC's VGA hardware, because many later text mode programs tried to push the model to the extreme by playing with the video controller . For example, they redefined the character set in order to create custom semi-graphical characters, or even created the appearance of a graphical mouse by redefining the appearance of the characters over which the mouse was shown at a given time.
Many modern programs with a graphical interface simulate the display style of text mode programs, notably when it is important to preserve the vertical alignment of text, e.g., during computer programming. There exist also software components to emulate text mode, such as terminal emulators or Win32 consoles.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details