+@node Text Terminal Colors
+@section Text Terminal Colors
+@cindex colors on text-only terminals
+
+ Emacs can display color on text-only terminals, starting with version
+21. These terminals support only a small number of colors, and the
+computer uses small integers to select colors on the terminal. This
+means that the computer cannot reliably tell what the selected color
+looks like; instead, you have to inform your application which small
+integers correspond to which colors. However, Emacs does know the
+standard set of colors and will try to use them automatically.
+
+@cindex rgb value
+ Several of these functions use or return @dfn{rgb values}. An rgb
+value is a list of three integers, which give the amount of red, the
+amount of green, and the amount of blue. Each integer ranges in
+principle from 0 to 65535, but in practice the largest value used is
+65280.
+
+ These functions accept a display (either a frame or the name of a
+terminal) as an optional argument. We hope in the future to make Emacs
+support more than one text-only terminal at one time; then this argument
+will specify which terminal to operate on (the default being the
+selected frame's terminal). At present, though, the @var{display}
+argument has no effect.
+
+@defun tty-color-define name number &optional rgb display
+@tindex tty-color-define
+This function associates the color name @var{name} with
+color number @var{number} on the terminal.
+
+The optional argument @var{rgb}, if specified, is an rgb value; it says
+what the color actually looks like. If you do not specify @var{rgb},
+then this color cannot be used by @code{tty-color-approximate} to
+approximate other colors, because Emacs does not know what it looks
+like.
+@end defun
+
+@defun tty-color-clear &optional display
+@tindex tty-color-clear
+This function clears the table of defined colors for a text-only terminal.
+@end defun
+
+@defun tty-color-alist &optional display
+@tindex tty-color-alist
+This function returns an alist recording the known colors supported by a
+text-only terminal.
+
+Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
+or @code{(@var{name} @var{number})}. Here, @var{name} is the color
+name, @var{number} is the number used to specify it to the terminal.
+If present, @var{rgb} is an rgb value that says what the color
+actually looks like.
+@end defun
+
+@defun tty-color-approximate rgb &optional display
+@tindex tty-color-approximate
+This function finds the closest color, among the known colors supported
+for @var{display}, to that described by the rgb value @var{rgb}.
+@end defun
+
+@defun tty-color-translate color &optional display
+@tindex tty-color-translate
+This function finds the closest color to @var{color} among the known
+colors supported for @var{display}. If the name @var{color} is not
+defined, the value is @code{nil}.